Future Research Challenges in Software Evolution

Similar documents
Software Engineering & Architecture

TELSTRA HOSTED SAP SOLUTIONS WITH ACCENTURE A SMARTER SAP SOLUTION

Learning Technology Implementation Guide: econtent Development and Integration

Cloud-iPad Era. Real-time Industrial automation software, evolving with technology!

WHAT TO LOOK FOR IN A CMMS/EAM SOLUTION

How Much Will Serialization Really Cost? AN INTRODUCTION TO THE TOTAL COST OF OWNERSHIP

Chapter 6: Software Evolution and Reengineering

Enterprise PLM Solutions Advanced PLM Platform

CHAPTER 4 PRODUCT DEVELOPMENT LIFE CYCLE

Innovative IT Solutions Better for business. Better for business

Nicx Limited Cloud Computing

En Pointe Technologies

Dynamics AX Out of support

Most major software vendors are touting some version of SaaS, leading to confusion about the solution model and its advantages.

INCREASE BUSINESS FLEXIBILITY BY RATIONALISING BUSINESS APPLICATIONS AND ADOPTING CLOUD-BASED ERP SYSTEMS.

Software Evolution. Software Evolution. in the textbook. Importance of evolution. Overview of software evolution. 1. Introduction

CLOUD: IS IT IN YOUR FORECAST Matt Sexton Eric Mastroianni

Issues and Remedies for PLM Obsolescence

Solution Pathway Series. Applying Microsoft tools to support the full life cycle of Grants Management

Software Evolution und Reengineering!

Toward Business Agility: The Essential Role of B2B Managed Services

Innovation From the Ground Up:

As Published at Information Management

HQX HQX. HQXchange Is Your Single Comprehensive EDI Platform

Kofax Software Lifecycle Policy

CORE APPLICATIONS ANALYSIS OF BUSINESS-CRITICAL ADABAS & NATURAL

Quality & Validation for the Supply Chain

WIND RIVER SIMICS WHEN IT MATTERS, IT RUNS ON WIND RIVER DEVELOP SOFTWARE IN A VIRTUAL ENVIRONMENT

A New Divide & Conquer Software Process Model

WHITE PAPER Migrating to the Cloud

CODE REVIEW AUTOMATION. CODE REVIEWS BY Balachandra Tarodi

Accelerate Your Digital Transformation

SHOULD YOUR BARCODE LABELING SOLUTION BE FULLY INTEGRATED WITH YOUR BUSINESS SYSTEM?

SIMPLIFY YOUR REPORTING SYSTEM

Affordability by Design for Aerospace and Defense Systems

Model-based Architectural Framework for Rapid Business Transformation of Global Operations

Innovations in Manufacturing And the impact on South Africa. November 2018

MICROSOFT DYNAMICS NAV FOR INTERNATIONAL

Test Maturity Assessment and Improvement Using TPI and Quality Blueprint. Performance driven. Quality assured.

Multi-core Management A new Approach

Operational effectiveness

Successful Service Virtualization

By Merit Solutions August, 2015

Kepion Solution vs. The Rest. A Comparison White Paper

GEN-11: Enabling Manufacturing Execution Standards In a Multi-site Environment

delivers training across 100+ stores in UK with a Responsive and Reliable LMS CASE STUDY

Information Technology Strategic Plan /13/2012

CLOUD TECHNOLOGY MAXIMIZES ROI BY REDUCING TCO

Guide on AASB 16 Technology solutions AASB 16 Leases

IDENTITY AND ACCESS MANAGEMENT SOLUTIONS

Developing for Success in Consumer Electronics

SOA Research Agenda. Grace A. Lewis

IT Enterprise Services. SharePoint. for records management

BT Advise Compute Quick Start

For Business Process & Applications Professionals

At the Heart of Surety Solutions

Business Process Management: The Right Way to Do It

ATLASSIAN TOOLS INCREASE PRODUCTIVITY AND ROI FOR LARGE RETAIL COMPANY 2016 ATLASSIAN TOOLS INCREASE PRODUCTIVITY AND ROI FOR LARGE RETAIL COMPANY

W H I T E PA P E R. Cloud Migration Methodology -Janaki Jayachandran (Director of Technology) a t t e n t i o n. a l w a y s.

Daitan White Paper The Software Development versus Maintenance Dilemma COMMON MISCALCULATIONS IMPACT REVENUE AND MARKET SHARE

Research Opportunities in Supply Chain Management

Building & Scaling a Profitable SaaS Business In the Cloud

Realize More with the Power of Choice. Microsoft Dynamics ERP and Software-Plus-Services

2010 ERP REPORT. Organizational Change Management

Whitepaper March Reference Design: Faster Time to Market for Robust, Responsive Internet of Things Devices

Discover the Difference

Security Assurance and Agile Development an Industry Perspective

SPIRAL UNIFIED SUPPLY CHAIN MANAGEMENT

DevOps Journey. adoption after organizational and process changes. Some of the key aspects to be considered are:

Cloud Considerations for the PLM ISV Jim Brown President Tech-Clarity

Get your services up to speed

Microsoft s Professional Developer Conference Announcements: Impact and Insights

The Outsourced IT Hiring Guide

The Cloud at Your Service

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

Software Processes 1

SAP IN THE CLOUD, IS IT THE BEST FOR YOU & HOW? CHRIS CARTER CEO, APPROYO

Increasing Business Agility with Service Oriented Architecture

digital finance t a l e n t A GUIDE TO ATTRACTING AND RETAINING ERP, EPM & ANALYTICS TALENT The eu-solutions 2017 employment survey

INTRODUCTION INTRODUCTION. Successful IT systems provide an integrated view of:

UNDERSTANDING CLOUD ERP BUYERS AND PROVIDERS

Now, I wish you lots of pleasure while reading this report. In case of questions or remarks please contact me at:

Product Innovation Platform Assessment

8 Critical Success Factors When Planning a CMS Data Migration

ARC VIEW. Global Enterprises Need MOM. Keywords. Summary. Globalization Brings Intense Competition. Manufacturing Operations Management.

BUDGETING FOR INTEGRATION

7 things to ask when upgrading your ERP solution

Digital Transformation - What s Happening in Waste and Recycling Tech, Software, Cloud, Data, Mobile & Analytics?

Business Process Management Position BPM in organization. Marek Zborowski PhD.

Luxoft and the Internet of Things

Verification and Validation

How to Support Customisation on SaaS: A Grounded Theory from Customisation Consultants

Top Omni-Channel Challenges in Retail and its Single Platform Solution

Toolbox for Architecture Framework Discussions at The Open Group. SKF Group, February 2018

CHAPTER 3 ENTERPRISE SYSTEMS ARCHITECTURE

Hitachi Solutions. Ground to Cloud Dynamics AX 2012 Migration to D365

SAP AUTOMATION WITHOUT THE COMPLEXITY

Role of Business Intelligence in Decision-Making for SMEs

PLM Frustrations Aras White Paper

Blake Biernacki. Brian Bailey. Chad Sessions

Transcription:

Future Research s in Software Evolution Tom Mens Université de Mons Director of the ERCIM Working Group on Software Evolution With contributions from: Y.-G. Guéhéneuc, J. Buckley, R. Mittermeir, A. Winter, J. Muccini, R. Wuyts, R. Laemmel, S. Ducasse, J.M. Jézéquel

PhDs in Europe in the of software evolution

Observations Software change/evolution is inevitable unpredictable costly difficult time- and resource -consuming poorly supported by tools, techniques, formalisms underestimated by managers poorly understood

Software changes are unavoidable / inevitable Requirements and business environment changes due to New customers; existing customers with new demands Changes in organisational structure; competitors Changes in legislation Feedback loop: The changed software may be the reason why the environment changes! Bug fixes New hardware and software technologies Need for better quality, performance, reliability, New versions of interacting software Software degrades/erodes/ages over time (due to deadline pressure, missing documentation, inconsistent specs, lack of modularity, code duplication, )

(Schach, 2008): Most of the effort and cost is spent on post-delivery maintenance based on various data sources Average cost between 1976 and 1981 Changing software is costly Development 33% Average cost between 1992 and 1998 Development 25% Maintenance 67% Maintenance 75% (Erlikh, 2000, IT Pro) Leveraging legacy system dollars for E-business more than 90% of companies resources dedicated to software maintenance

Software Evolution s How/why is software evolution research relevant to society and industry? Software evolution is a transversal research activity that is required In all software engineering activities e.g. requirements specifications, analysis and design, programming, deployment, At all levels of abstraction E.g. executable code, bytecode, source code, design models, In all software development paradigms For all technologies In a wide variety of application s For many different types of stakeholders

Software Evolution s We need to support evolution at higher levels of abstraction e.g. models as opposed to code In emerging paradigms and associated technologies e.g. aspect-oriented, service-oriented, ambient, mobile, multicore, open source, distributed software development e.g., the future internet, cloud computing, SaaS, sustainable software development In relevant application s E.g. banking and finance, wireless networks, distributed systems, telecommunication, internet and web-based systems, healthcare systems, embedded and real-time systems,

Software Evolution s The order of the following list of challenges does not reflect their relative importance. We consider them all very important.

Software renovation / migration / re-engineering Finance Any where legacy systems need to be upgraded to newer technologies Legacy systems that are of strategic value to the company have become too expensive to modify, or need to make use of newer technologies How to rejuvenate/renovate/migrate/re-engineer these systems in a timely, cost-effective, resource-limited manner? How to ensure that the resulting system has the desired quality and functionality?

Upgrading software frameworks ERP systems (e.g. SAP, Microsoft Dynamics, Eclipse, ) Any software framework that is subject to customisation Many major software vendors develop software frameworks, i.e. partial software systems that need to be customised by their clients. Upgrading such frameworks becomes problematic as it often conflicts with the customisations (add-ons, add-ins, plug-ins) made by the clients. Provide techniques to address the upgrade problem and to facilitate framework development and upgrading

Runtime evolution and dynamic updating Telecommunication systems, distributed systems, finance, internet applications Many systems have become so indispensable that one cannot (afford to) shut them down to upgrade them How to safely update/change/evolve a software system during its execution? How to build in a control system in the software to decide when and how to change? self-optimization and self-healing and other self-* activities How to achieve dynamic reconfiguration of (component-based, serviceoriented etc.) distributed architectures? Context-awareness: How to make software more robust to changes by dynamically adapting to its context of use. Remark The static evolution challenges are as least as important to industry as the dynamic evolution challenge stated here.

Estimating change effort Any Most changes cannot be predicted/anticipated in advance For a given change, it is very difficult to estimate its impact or the effort it takes to implement it Practitioners need better support (tools, models, theories) to address the following questions: When should an accepted change request be planned? What is the potential (local and system-wide) impact of a particular change? How much effort (time and resources) does it take to make a particular change? When should one restructure the software to make future changes easier? Understanding the feedback loop: how does the external environment influence how the system evolves and vice versa?

Integrate evolution and maintenance in software development processes and tools Software development Current software development tools do not provide sufficient support for software evolution and maintenance Provide better languages, formal methods, and tools that embrace and provide more explicit support for incremental change Design for change: increase awareness (of developers, managers, end-users) of maintenance and evolution issues during initial development to create longer-lasting and enduring software systems Focus on quality and other non-functional attributes : need for integrated techniques to measure, control and improve these aspects of software

Software quality improvement and quality assurance Any Software is too often suffering from poor quality. Short-term vs long-term ROI: How to change managers mindframe? At a long-term, high quality software may pay off more than quick-and-dirty solutions that have a direct profit but are difficult to maintain in the long run How to develop integrated techniques and tools for measuring, controlling and improving quality and other non-functional attributes of software? Would certification of software quality lead to better industrial software?

Scaleability Systems of systems, distributed systems, ultra-large scale systems, Current solutions do not scale up to very large systems involving multiple languages, multiple levels of abstraction, different geographical locations, with hundreds or thousands of developers, a large (and diverse) user base, Provide techniques that support multi-language systems Cope with massive amounts of data (e.g. metadata, programs, models, languages, processes, tools, documentation, tests) Combine many different data sources (e.g. version repositories, file systems, databases, mailing lists, developer fora, bug tracking systems) Combine many different technologies Performance: how to achieve it, and keep it when the system evolves Tools: how to debug and maintain such systems?

The developer mismatch (1) Software evolution is often carried out by the wrong people: maintenance is more difficult than development from scratch, but too often carried out by unsupervised novices without proper tools; Software maintenance and evolution are often outsourced to external companies/countries that may not have the best developers or may not be willing to commit their best developers (2) Different development activities require different levels of expertise e.g., sw product line engineering, sw product development, sw product customisation, sw product configuration (3) The majority of software creators are not software professionals (Keynote M. Shaw, ESEC/FSE 2009) Raise awareness (in academia and industry) of the evolution problem Assign the right job to the right people Train people (in academia and industry) to achieve the right level of expertise Create and provide the right set of tools, depending on the required level of expertise

Model-driven evolution and maintenance MDE,MDA,MDD Any where high-level models or -specific visual languages are/can be used How to support evolution, reengineering and maintenance of software at the level of models (all kinds of software artefacts at a higher abstraction level than source code) Examples of models: business process models, analysis and design models, architectures,... How to support traceability between software artefacts? How to cope with co-evolution (of models and code, of different types of models, of programs and data, )?

Empirical research in software evolution Telecommunication systems, distributed systems, finance, internet applications, Empirical research in software evolution is hard due to: lack of subjects, lack of industrial data, threats to validity How to access industrial data of how software evolves in the field and the ability to perform replicable empirical studies based on this data? How to involve a sufficient number of subjects (e.g. experienced developers) in an experiment in order to obtain statistically significant results? How to set up an experiment in such a way that it is replicable by other researchers (access to data, tools, and other resources)? How to identify the main problems maintainers face?

A common framework and theory for joint software evolution research How can we improve European research in the field and avoid waste of geographically dispersed (human) resources? How can we better understand and explain the underlying principles governing software evolution? Develop a common research platform for doing joint research. Example: MOOSE reengineering platform (http://moose.unibe.ch/) Develop a theoretical model to explain how and why software evolves. Use this model to better understand, control and support software evolution