Supporting evolutionary development by feature models and traceability links

During their usage, software systems have to be changed constantly. If such changes are implemented in an incomplete or inconsistent way a loss of architectural quality will occur, i.e. in terms of maintainability and understandability. The lack of traceability of the impact of changed requirements in the software enhances this effect. Traceability links have been proposed as a link between the requirements and the different parts of a solution. In practical use, these links are difficult to establish and maintain. Currently, tools cannot effectively support these links due to human-required decisions. This paper introduces feature models as an intermediate element for linking requirements to design models. They enable a more appropriate bridging of the different levels of abstraction. Feature models group sets of requirements to a feature and enable a modeling of the variability of requirements. The feature models structure traceability links between requirements, design elements and implementation parts. This leads to lower efforts of establishing and maintaining the links. Furthermore, descriptions of design decisions can be attached to the links. Industrial experience with this approach shows its support for the evolutionary development of large software systems, especially in the improved comprehension of the changes by the developers.

[1]  Scott W. Ambler,et al.  Agile modeling: effective practices for extreme programming and the unified process , 2002 .

[2]  Matthias Riebisch,et al.  Using feature modeling for program comprehension and software architecture recovery , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[5]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[6]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..

[7]  Ilka Philippow,et al.  EXTENDING FEATURE DIAGRAMS WITH UML MULTIPLICITIES , 2002 .

[8]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[9]  Johannes Sametinger,et al.  Evolution support by homogeneously documenting patterns, aspects and traces , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[10]  Ilian Pashov,et al.  Feature based methodology for supporting architecture refactoring and maintenance of long life software systems , 2005 .

[11]  Matthias Riebisch,et al.  Modeling Variability for Object-Oriented Product Lines , 2003, ECOOP Workshops.

[12]  Detlef Streitferdt Family-oriented requirements engineering , 2004 .

[13]  A. Berztiss,et al.  Requirements Engineering , 2002, J. Object Technol..

[14]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[15]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[16]  J. Dick Rich Traceability , 2002 .

[17]  Spencer Rugaber,et al.  The use of domain knowledge in program understanding , 2000, Ann. Softw. Eng..

[18]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).