Optimisation Process for Maintaining Evolvability during Software Evolution

Software systems have to be changed continuously and evolutionarily throughout the whole time of their development and usage. Meanwhile, the software systems have to remain flexible in order to retain the ability to be extended by additional new features or to be changed. To maintain this ability, known as evolvability, the architecture of such software systems and its evolution must be continuously controlled and, if necessary improved. Existing design methodologies do not provide sufficient support for controlling the evolvability. One reason for this is, that in comparison with software maintainability, evolvability characteristics are hardly defined. This paper discusses evolvability, and introduces a quality model for it. Furthermore, a meta-model-based process for controlling and optimising the evolvability characteristics of software baselines is presented. The feasibility of this approach is shown by a case study based on the results from its implementation in large industrial projects.

[1]  Lawrence Chung,et al.  Process-oriented metrics for software architecture evolvability , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[2]  Richard Stevens,et al.  Requirements Traceability , 1997, RE.

[3]  Mohamed E. Fayad Software Maintenance , 2005, IEEE Softw..

[4]  J.-C. Deprez,et al.  Defining Software Evolvability from a Free/Open-Source Software , 2007, Third International IEEE Workshop on Software Evolvability 2007.

[5]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[6]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[7]  Selim Ciraci,et al.  Evolvability as a Quality Attribute of Software Architectures , 2006, EVOL.

[8]  Hongyu Pei Breivold Evaluating Software Evolvability , 2009 .

[9]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[10]  Rachel Harrison,et al.  Dynamic and static views of software evolution , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[11]  Leigh A. Davis,et al.  Identifying Evolvability for Integration , 2002, ICCBSS.

[12]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[13]  A. Aho,et al.  Towards Assessing the Impact of Crosscutting Concerns on Modularity , 2007 .

[14]  Cláudio Sant'Anna,et al.  On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[15]  Ivica Crnkovic,et al.  Using dependency model to support software architecture evolution , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[16]  Matthias Riebisch,et al.  Architecting for evolvability by means of traceability and features , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[17]  Juan Hernández,et al.  Analysis of crosscutting across software development phases based on traceability , 2006, EA '06.

[18]  Adam Trendowicz,et al.  Quality Modeling for Software Product Lines , 2003 .

[19]  Alfonso Fuggetta,et al.  Software process: a roadmap , 2000, ICSE '00.

[20]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[21]  Ilka Philippow,et al.  The feature-architecture mapping (FArM) method for feature-oriented development of software product lines , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[22]  Arnaldo Dias Belchior,et al.  Quality Characteristics for Software Components: Hierarchy and Quality Guides , 2003, Component-Based Software Quality.

[23]  Vorgelegt Der Fakult,et al.  The Feature-Architecture Mapping Method for Feature-Oriented Development of Software Product Lines , 2007 .

[24]  Matthias Riebisch,et al.  Optimizing Design for Variability Using Traceability Links , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).

[25]  Tom Mens,et al.  Assessing the Evolvability of Software Architectures , 1998, ECOOP Workshops.

[26]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[27]  M. Riebisch,et al.  Defining a Traceability Link Semantics for Design Decision Support , 2008 .

[28]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[29]  Manfred Broy,et al.  Demystifying maintainability , 2006, WoSQ '06.