+ All Categories
Home > Education > Future Research Challenges in Software Evolution

Future Research Challenges in Software Evolution

Date post: 28-Nov-2014
Category:
Upload: tom-mens
View: 1,232 times
Download: 2 times
Share this document with a friend
Description:
This presentation provides a list of open challenges in software evolution research and practice.
17
Tom Mens Université de Mons General Chair of the ERCIM Working Group on Software Evolution Future Research Challenges in Software Evolution With contributions from other WG members: Y.-G. Guéhéneuc, J. Buckley, R. Mittermeir, A. Winter, J. Muccini, R. Wuyts, R. Laemmel, S. Ducasse, J.M. Jézéquel, K. Mens, J. Visser
Transcript
Page 1: Future Research Challenges in Software Evolution

Tom Mens Université de Mons

General Chair of the ERCIM Working Group on

Software Evolution

Future Research Challenges in Software Evolution

With contributions from other WG members: Y.-G. Guéhéneuc, J. Buckley, R. Mittermeir, A. Winter, J. Muccini, R. Wuyts, R. Laemmel, S. Ducasse, J.M. Jézéquel, K. Mens, J. Visser

Page 2: Future Research Challenges in Software Evolution

Some references used in this presentation •  L. Erlikh. Leveraging legacy system dollars for E-business. IT

Pro, May/June, pages 17-23, IEEE Press, 2000 •  T. Mens, M. Wermelinger, S. Ducasse, S. Demeyer, R.

Hirschfeld, and M. Jazayeri. Challenges in software evolution. In Proc. Int’l Workshop on Principles of Software Evolution (IWPSE), 2005.

•  N. H. Madhavji, J. F. Ramil, D. E. Perry. Software Evolution and Feedback: Theory and Practice. John Wiley & Sons, 2006.

•  S. R. Schach. Object Oriented Software Engineering, McGraw Hill, 2008. ISBN 978-007-125941-5

•  T. Mens, S. Demeyer. Software Evolution. Springer, 2008 •  T. Mens, The ERCIM Working Group on Software Evolution:

the Past and the Future. Proc. IWPSE-EVOL 2009 (ESEC/FSE proceedings), ACM, 2009

•  T. Mens. CSMR 2009 European Projects Track. Proc. CSMR, pages 275–276. IEEE, 2009

Page 3: Future Research Challenges in Software Evolution

PhDs in Europe in the domain of software evolution

(data for 2009 not yet included)

Page 4: Future Research Challenges in 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

•  If performed well, a major success factor for business innovation !

Page 5: Future Research Challenges in Software Evolution

Software changes are unavoidable / inevitable •  Continuous business innovation

•  Is essential for competitiveness and survival of companies •  Is an important driver of software evolution

•  Requirements 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 !

•  Continuous software quality improvement •  Bug fixes •  Improvement of quality, performance, reliability, … •  Anti-regressive work to counter software ageing/erosion

•  Changes in external environment •  New hardware and software technologies •  New versions of interacting software

Page 6: Future Research Challenges in Software Evolution

Development

25%

Maintenance

75%

Development

33%

Maintenance

67%

(Schach, 2008): Most of the effort and cost is spent on post-delivery maintenance based on various data sources

(Erlikh, 2000, IT Pro) “Leveraging legacy system dollars for E-business” more than 90% of companies resources dedicated to software maintenance

Average cost between 1976 and 1981

Average cost between 1992 and 1998

Changing software is costly

Page 7: Future Research Challenges in Software Evolution

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 domains

•  For many different types of “stakeholders”

Page 8: Future Research Challenges in Software Evolution

Software Evolution Challenges The order of the following list of challenges does not

reflect their relative importance. We consider them all very important.

Some challenges are generic (i.e. relevant to any type of software), while others are specific to a particular domain

Page 9: Future Research Challenges in Software Evolution

Specific Challenge

Scaleability

Application domain

Interconnected systems, distributed systems, ultra-large scale systems, …

Problem Current research only studies evolution of individual systems. 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, different data sources, …

Challenge •  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 and paradigms •  Performance: how to achieve it, and keep it when the system evolves •  Tools: how to debug and maintain such systems?

• Study and support co-evolution of interconnected systems.

Page 10: Future Research Challenges in Software Evolution

Specific Challenge

Software migration / re-engineering

Application domain

Any domain where “legacy” systems need to be upgraded to newer technologies

Problem •  Legacy systems that are of strategic value to the company have become too expensive to modify, or need to make use of newer technologies •  “Wrapping” existing legacy systems is a short-term workaround solution that does not have long-term benefits •  Today’s new technology will be tomorrow’s legacy !

Challenge •  How to migrate/re-engineer legacy systems (and their data) in a timely, cost-effective, resource-limited manner? •  How to ensure that the resulting system has the desired quality and functionality? •  How to migrate to new technologies and paradigms? (E.g. towards cloud computing, multi-core computing, and so on) •  How to use software transformation techniques to automate the migration process? •  Come up with good software process models for migration

Page 11: Future Research Challenges in Software Evolution

Specific Challenge

Upgrading software frameworks

Application domain

ERP systems (e.g. SAP, Microsoft, Oracle, …), CMS systems, … Any software framework that is subject to customisation

Problem Many major software vendors develop software frameworks, i.e., partial software systems that need to be customised by their clients. •  For vendors, upgrading such frameworks is problematic as it often conflicts with the customisations (add-ons, add-ins, plug-ins) made by the clients. •  Customers suffer from vendor lock-in, which threatens evolvability of their IT systems

Challenge •  Provide techniques to address the upgrade problem and to facilitate framework development and upgrading •  Ensure data consistency and preservation after an upgrade •  Provide means to evolve frameworks away from vendor lock-in

Page 12: Future Research Challenges in Software Evolution

Specific Challenge

Runtime evolution and dynamic updating

Application domain

Telecommunication, distributed systems, finance, internet applications Any domain that requires some degree of high availability

Problem Many systems have become so indispensable that one cannot (afford to) shut them down to upgrade them

Challenge •  How to safely update/change a software system during its execution? •  How to build in a control system to decide when and how to change? •  How to achieve dynamic reconfiguration of (component-based, service-oriented 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.

Page 13: Future Research Challenges in Software Evolution

Specific Challenge

Model-driven evolution and maintenance

Application domain

MDE,MDA,MDD Application domains where high-level models or domain-specific visual languages are/can be used

Problem How to support evolution and reengineering of software that make heavy use of models (i.e. any kind of software artefact at a higher abstraction level than source code) Examples of models: business process models, analysis and design models, architectures, ...

Challenge •  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

•  How to show that adopting MDE delivers a return-on-investment?

Page 14: Future Research Challenges in Software Evolution

Generic Challenge

Software quality improvement and quality assurance

Application domain

Any

Problem •  Software is too often suffering from poor quality and lack of evolvability •  Software quality and evolvability problems are not visible to managers

Challenge •  Make software quality and evolvability visible to decision makers by providing integrated techniques and tools for measuring, controlling and improving these non-functional properties •  Based on measurable and visible quality problems, managers and project leaders can start to focus on medium- and long-term ROI, as opposed to quick-and-dirty solutions that have a direct profit but are difficult to maintain in the long run

Page 15: Future Research Challenges in Software Evolution

Generic Challenge

Effort estimation and change impact analysis

Application domain

Any

Problem For a given change request, it is very difficult to analyse its impact or to estimate the effort it takes to implement it

Challenge Provide non-intrusive tool support for logging current effort, measuring developer productivity, … in order to address the following questions: •  When should an accepted change request be planned? •  What is the estimated (local and system-wide) impact of a particular change? •  How much effort (time and resources) does it take to make a particular change? •  When and where should one restructure the software to make a planned change easier?

Page 16: Future Research Challenges in Software Evolution

Generic Challenge

Integrate evolution support in software development processes and tools

Application domain

Any type of software development

Problem Current software development tools do not provide sufficient support for software evolution

Challenge •  Provide better languages, formal methods, and tools that embrace and provide more explicit support for incremental change •  Design for change: address maintenance and evolution issues during initial development to create longer-lasting and enduring software systems •  Support co-evolution of requirements, design, code, tests •  Focus on quality and other non-functional attributes : need for integrated techniques to measure, control and improve these aspects of software •  Integrate process support in the development environment

Page 17: Future Research Challenges in Software Evolution

Generic Challenge

Empirical research in software evolution

Application domain

Any

Problem Empirical research in software evolution is hard due to: lack of subjects, lack of industrial data, threats to validity

Challenge •  How to access industrial data of how software evolves “in the field” and the ability to perform 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?

Open source partially addresses this problem: it is easier to access/study/analyse their data


Recommended