Tracing Non-Functional Requirements

Non-functional requirements, describing quality concerns such as performance, security, and availability, often exhibit complex interdependencies and trade-offs and have broad-reaching impacts across the architectural design of a software intensive system. This creates significant challenges for tracing NFRs, as traceability links can quickly proliferate and the traceability effort can be costly and impractical. As a result, many organizations do not even attempt to trace NFRs; however this means that functional changes are often implemented with very little understanding of how system qualities are affected by the change. The challenge, from a traceability perspective, is to develop effective techniques which simplify the task of creating and maintaining NFR-related traceability links, while still providing effective support for critical tasks such as impact analysis, requirements validation, and architectural preservation. In this chapter we first describe and evaluate existing methods for tracing NFRs and then propose a new pattern-based approach which leverages software architectural techniques to achieve NFR traceability. We illustrate our approach with examples from the mobile phone case study.

[1]  João Araújo,et al.  Early aspects: a model for aspect-oriented requirements engineering , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[2]  John Mylopoulos,et al.  Towards requirements-driven information systems engineering: the Tropos project , 2002, Inf. Syst..

[3]  J. D. Aplin Primary flight computers for the Boeing 777 , 1997, Microprocess. Microsystems.

[4]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

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

[6]  João Araújo,et al.  Modularisation and composition of aspectual requirements , 2003, AOSD '03.

[7]  Daniel Gross,et al.  From Non-Functional Requirements to Design through Patterns , 2001, Requirements Engineering.

[8]  Axel van Lamsweerde,et al.  From Object Orientation to Goal Orientation: A Paradigm Shift for Requirements Engineering , 2002, RISSEF.

[9]  Muhammad Ali Babar,et al.  A comparative study of architecture knowledge management tools , 2010, J. Syst. Softw..

[10]  H. van Vliet Software Architecture Knowledge Management , 2008 .

[11]  Bedir Tekinerdogan,et al.  Metamodel for Tracing Concerns Across the Life Cycle , 2007, EA@AOSD.

[12]  Ajantha Dahanayake,et al.  Introducing non-functional requirements in UML , 2003 .

[13]  Liming Zhu,et al.  UML Profiles for Design Decisions and Non-Functional Requirements , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[14]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[15]  B. Ramesh,et al.  Issues in the development of a requirements traceability model , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[16]  Oussama Ben Khadra,et al.  Goal-centric traceability for managing non-functional requirements , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[17]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

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

[19]  John C. Grundy,et al.  Aspect-oriented requirements engineering for component-based software systems , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[20]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[21]  Bedir Tekinerdogan,et al.  Modeling Traceability of Concerns for Synchronizing Architectural Views , 2007, J. Object Technol..

[22]  Alan M. Davis,et al.  Software Requirements: Objects, Functions and States , 1993 .

[23]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[24]  Sjaak Brinkkemper,et al.  Journal of Software Maintenance and Evolution: Research and Practice Design Preservation over Subsequent Releases of a Software Product: a Case Study of Baan Erp , 2022 .

[25]  Antony Tang,et al.  A rationale-based architecture model for design traceability and reasoning , 2007, J. Syst. Softw..

[26]  Alexander Egyed,et al.  Supporting Software Understanding with Automated Requirements Traceability , 2005, Int. J. Softw. Eng. Knowl. Eng..

[27]  Somesh Jha,et al.  Automated generation and analysis of attack graphs , 2002, Proceedings 2002 IEEE Symposium on Security and Privacy.

[28]  Bedir Tekinerdogan,et al.  Special issue on Early aspects: aspect-oriented requirements engineering and architecture design , 2004, IEE Proc. Softw..

[29]  Jim Arlow,et al.  UML and the unified process , 2001 .

[30]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[31]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[32]  Julio Cesar Sampaio do Prado Leite,et al.  Nonfunctional requirements: from elicitation to conceptual models , 2004, IEEE Transactions on Software Engineering.

[33]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[34]  Tom Mens,et al.  Design preservation over subsequent releases of a software product: a case study of Baan ERP: Practice Articles , 2005 .

[35]  Jane Cleland-Huang,et al.  Transforming trace information in architectural documents into re-usable and effective traceability links , 2011, SHARK '11.

[36]  Jane Cleland-Huang,et al.  Using tactic traceability information models to reduce the risk of architectural degradation during system maintenance , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

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

[38]  Philippe Kruchten,et al.  An Ontology of Architectural Design Decisions in Software-Intensive Systems , 2004 .

[39]  Ana I. Anton,et al.  Goal identification and refinement in the specification of software-based information systems , 1997 .

[40]  Rafael Capilla,et al.  A web-based tool for managing architectural design decisions , 2006, SOEN.

[41]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[42]  Hans van Vliet,et al.  Software Architecture Knowledge Management , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[43]  David C. Brown,et al.  Software Engineering Using RATionale , 2008, J. Syst. Softw..

[44]  Jane Cleland-Huang,et al.  Tracing architectural concerns in high assurance systems: (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[45]  Øystein Nytrø,et al.  Dynamic traceability links supported by a system architecture description , 1997, 1997 Proceedings International Conference on Software Maintenance.

[46]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[47]  Karl E. Wiegers,et al.  Software Requirements , 1999 .