Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Antón, A.I.: Goal Identification and Refinement in the Specification of Software-Based Information Systems. Georgia Institute of Technology, Atlanta, GA (1997).
Antoniol, G., Canfora, G., Casazza, G., De Lucia, A., Merlo, E.: Recovering traceability links between code and documentation. IEEE Trans. Softw. Eng. 28(10), 970–983 (2002).
Aplin, J.: Primary flight computers for the Boeing 777. Microprocess. Microsy. 20(8), 473–478 (1997).
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison Wesley, Boston, MA (2003).
Booch, G., Jacobson, I., Rumbaugh, J.: Unified Modelling Language Specification, version 1.3. (2000).
Burge, J.E., Brown, D.C.: Software engineering using RATionale. J. Syst. Softw. 81(3), 395–413 (2008).
C4ISR Architecture Working Group: C4ISR Architecture Framework, Version 2.0. Washington, DC: Department of Defense, 1997, http://www.afcea.org/education/courses/archfwk2.pdf.
Capilla, R., Nava, F., Pérez, S., Dueñas, J.C.: A web-based tool for managing architectural design decisions. SIGSOFT Softw. Eng. Notes. 31 (2006). http://dl.acm.org/citation.cfm?id=1163514.1178644.
Castro, J., Kolp, M., Mylopoulos, J.: Towards requirements-driven information systems engineering: The Tropos project. Inf. Syst. 27(6), 365–389 (2002).
CDC UP | Practices Guides on Requirements Traceability, http://www2.cdc.gov/cdcup/library/practices_guides/CDC_UP_Requirements_Traceability_Practice_Guide.pdf.
Chromium projects, Design documents, http://www.chromium.org/developers/design-documents.
Chung, L.: Non-functional Requirements in Software Engineering. Kluwer Academic, Boston, MA (2000).
Cleland-Huang, J., Schmelzer, D.: Dynamically tracing non-functional requirements through design pattern invariants. In: Workshop on Traceability in Emerging Forms of Software Engineering in Conjunction with ASE 2003 IEEE International Conference on Automated Software Engineering. Montreal, Canada (2003).
Cleland-Huang, J., Settimi, R., Khadra, O.B., Berezhanskaya, E., Christina, S.: Goal-centric traceability for managing non-functional requirements. In: Roman, G., Griswold, W.G., Nuseibeh, B. (eds.) Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), 15–21 May 2005, St. Louis, MO, USA, pp. 362–371, ACM, New York, NY (2005).
Cysneiros, L.M., Leite, J.C.S.D.P.: Nonfunctional requirements: From elicitation to conceptual models. IEEE Trans. Softw. Eng. 30(5), 328–350 (2004).
Davis, A.M.: Software Requirements – Objects, Functions, and States. Prentice Hall, Englewood Cliffs, NJ (1993).
Dutoit, A.H., McCall, R., Mistrik, I., Paech, B.: Rationale Management in Software Engineering. Springer-Verlag New York, Inc., Secaucus, NJ (2006).
Egyed, A., Grünbacher, P.: Supporting software understanding with automated requirements traceability. Int. J. Softw. Eng. Know. Eng. 15(5), 783–810 (2005).
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object Oriented Software. Addison Wesley, Reading, MA (1995).
Gan, B.T., Moreira, A., Araújo, J., Clements, P.: Early aspects: Aspect-oriented requirements engineering and architecture design—workshop report. In: Gan, B.T., Clements, P., Moreira, A., Araújo, J. (eds.) Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design. pp. 3–14. Lancaster, UK (2004). http://doc.utwente.nl/56986/1/00000112.pdf.
Gross, D., Yu, E.S.K.: From non-functional requirements to design through patterns. Requirements Eng. 6(1), 18–36 (2001).
Grundy, J.C.: Aspect-oriented requirements engineering for component-based software systems. In: Proceedings of the 4th IEEE International Symposium on Requirements Engineering. pp. 84–91. IEEE Computer Society, Washington, DC (1999).
Gurp, J.V., Brinkkemper, S., Bosch, J.: Design preservation over subsequent releases of a software product: a case study of Baan ERP: Practice articles. J. Softw. Maint. Evol. 17, 277–306 (2005).
Hofmeister, C., Nord, R., Soni, D.: Applied Software Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (2000).
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, pp. 109–120. IEEE Computer Society, Washington, DC (2005).
Kassab, M., Ormandjieva, O.: Towards an aspect oriented software development model with tractability mechanism. In: Proceedings of Workshop on Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design. Bonn, Germany (2006). http://trese.cs.utwente.nl/workshops/early-aspects-Traceability-AOSD2006/.
Kazman, R., Klein, M., Clements, P.: ATAM: A Method for Architecture Evaluation. Software Engineering Institute, Pittsburgh, PA (2000).
Kruchten, P.: An Ontology of Architectural Design Decisions in Software Intensive Systems. In 2nd Groningen Workshop on Software Variability. Citeseer. pp. 54–61 (2004). http://www.kruchten.com/inside/citations/Kruchten2004_DesignDecisions.pdf.
Kruchten, P.: The 4+1 View Model of Architecture. IEEE Softw. 12, 42–50 (1995).
Lamsweerde, A.V., Letier, E.: From Object Orientation to Goal Orientation: A Paradigm Shift for Requirements Engineering. Springer, Berlin (2004).
Mirakhorli, M., Cleland-Huang, J.: A decision-centric approach for tracing reliability concerns in embedded software systems. In: Proceedings of the Workshop on Embedded Software Reliability (ESR), ISSRE10. San Jose, CA, USA (2010).
Mirakhorli, M., Cleland-Huang, J.: Tracing architectural concerns in high assurance systems (NIER Track). In: Proceedings of the 33th International Conference on Software Engineering, New Ideas and Emerging Results Track, ICSE. Waikiki, Honolulu, HI, USA (2011a).
Mirakhorli, M., Cleland-Huang, J.: Transforming trace information in architectural documents into re-usable and effective traceability links. In: Proceedings of the 6th Workshop on Sharing and Reusing Architectural Knowledge. Waikiki, Honolulu, HI, USA (2011b).
Mirakhorli, M., Cleland-Huang, J.: Using tactic traceability information models to reduce the risk of architectural degradation during system maintenance. In: Proceedings of the 27th International Conference on Software Maintenance. Williamsburg, VA, USA (ICSM) (2011c).
NASA’s Robots, http://prime.jsc.nasa.gov/ROV/nlinks.html.
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes. 17(4), 40–52 (1992).
Ramesh, B., Edwards, M.: Issues in the development of a requirements traceability model. In: Proceedings of IEEE International Symposium on Requirements Engineering, pp. 256–259 (1993). http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=324849%26;tag=1.
Ramesh, B., Jarke, M.: Toward reference models of requirements traceability. IEEE Trans. Softw. Eng. 27(1), 58–93 (2001).
Rashid, A., Moreira, A., Araújo, J.: Modularisation and composition of aspectual requirements. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development. pp. 11–20. ACM, New York, NY (2003).
Rashid, A., Sawyer, P., Moreira, A.M.D., Araújo, J.A.: Early aspects: A model for aspect-oriented requirements engineering. In: Proceedings of the 10th Anniversary IEEE Joint International Conference on Requirements Engineering. pp. 199–202. IEEE Computer Society, Washington, DC (2002).
Rummler, A., Pohl, C., Grammel, B.: Improving traceability through AOSD. In: Proceedings of the Third Workshop on Models and Aspects, Handling Crosscutting Concerns in MDSD at the 21st European Conference on Object-Oriented Programming. Berlin, Germany. pp. 9–10 (2007) (Forschungsberichte der Fakultät IV, Elektrotechnik und Informatik, Bericht Nr. 6, 2007).
Salazar-Zárate, G., Botella, P., Dahanayake, A.: Introducing non-functional requirements in UML. In: Favre, L. (ed.) UML and the Unified Process. pp. 116–128. IGI Publishing, Hershey, PA, USA (2003).
Sheyner, O., Haines, J., Jha, S., Lippmann, R., Wing, J.M.: Automated generation and analysis of attack graphs. 2002 IEEE Symposium on Security and Privacy (SSP '02). pp. 273–284. IEEE, Washington – Brussels – Tokyo (2002).
Siewiorek, D.P., Narasimhan, P.: Fault-tolerant architectures for space and avionics applications (2005). http://ic-www.arc.nasa.gov/projects/ishem/Papers/Siewiorek_Fault_Tol.pdf.
Sommerville, I.: Software Engineering, 7th edn. Pearson Addison Wesley, Boston, MA (2004).
Tang, A., Avgeriou, P., Jansen, A., Capilla, R., Babar, M.A.: A comparative study of architecture knowledge management tools. J. Syst. Softw. 83(3), 352–370 (2010).
Tang, A., Jin, Y., Han, J.: A rationale-based architecture model for design traceability and reasoning. J. Syst. Softw. 80(6), 918–934 (2007).
Tekinerdogan, B., Hofmann, C., Aksit, M.: Modeling traceability of concerns for synchronizing architectural views. J. Object Technol. 6(7), 7–25 (2007).
Tekinerdoğan, B., Hofmann, C., Akşit, M., Bakker, J.: Metamodel for tracing concerns across the life cycle. In: Proceedings of the 10th International Conference on Early Aspects: Current Challenges and Future Directions, pp. 175–194. Springer, Berlin, Heidelberg (2007).
Tryggeseth, E., Nytro, I.: Dynamic traceability links supported by a system architecture description. In: Proceedings International Conference on Software Maintenance, pp. 180–187. Bari, Italy (1997).
Tyree, J., Akerman, A.: Architecture decisions: Demystifying architecture. IEEE Softw. 22(2), 19–27 (2005).
van Vliet, H.: Software architecture knowledge management. In: Proceedings of 19th Australian Conference on Software Engineering, 2008, ASWEC 2008, pp. 24–31 (2008).
Wiegers, K.E.: Software Requirements. Microsoft Press, Redmond, WA (1999).
Yu, E.S.K.: Towards modeling and reasoning support for early-phase requirements engineering. In Proceedings of the 3rd IEEE International Symposium on Requirements Engineering (RE'97), pp. 226–235 (1997).
Zhu, L., Gorton, I.: UML profiles for design decisions and non-functional requirements. Proceedings of the 2nd Workshop on SHAring and Reusing Architectural Knowledge Architecture, Rationale, and Design Intent, pp. 8–15. IEEE Computer Society, Washington, DC (2007).
Acknowledgments
The work described in this chapter related to Goal Centric Traceability and Architectural Centric Traceability has been partially funded by the National Science Foundation under grants CCF-0810924 and CCF-0447594.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag London Limited
About this chapter
Cite this chapter
Mirakhorli, M., Cleland-Huang, J. (2012). Tracing Non-Functional Requirements. In: Cleland-Huang, J., Gotel, O., Zisman, A. (eds) Software and Systems Traceability. Springer, London. https://doi.org/10.1007/978-1-4471-2239-5_14
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2239-5_14
Published:
Publisher Name: Springer, London
Print ISBN: 978-1-4471-2238-8
Online ISBN: 978-1-4471-2239-5
eBook Packages: Computer ScienceComputer Science (R0)