Abstract
Designing software architectures to meet both functional and non-functional requirements (FRs and NFRs) is difficult as it oftentimes relies on the skill and experience of the architect, and the resulting architectures are rarely derived directly from the requirements models. As a result, the relationships between the two artifacts are not explicitly captured, making it difficult to reason more precisely whether an architecture indeed meets its requirements, and if yes, why. This chapter presents a goal-oriented software architecting approach, where FRs and NFRs are treated as goals to be achieved, which are refined and used to explore achievement alternatives. The chosen alternatives and the goal model are then used to derive, using the provided mapping rules, a logical architecture, which is further mapped to a final concrete architecture by applying an architectural style and architectural patterns chosen based on the NFRs. The approach has been applied in an empirical study based on the 1992 London ambulance dispatch system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bass L, Clements P, Kazman R (2003) Software architecture in practice. Addison-Wesley Professional, New York
Bengtsson P, Bosch J (1998) Scenario-based software architecture reengineering. In: Proceedings 5th International Conference on Software Reuse, IEEE, pp 308–317
Blevins TJ, Spencer J, Waskiewicz F (2004) TOGAF ADM and MDA. The Open Group and OMG. http://www.opengroup.org/bookstore/catalog/w052.htm
Bosch J, Molin P (2002) Software architecture design: evaluation and transformation. In: Proceedings IEEE Conference and Workshop on Engineering of Computer-Based Systems (ECBS'99), IEEE, pp 4–10, http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=755855
Brandozzi M, Perry D (2003) From goal oriented requirements to architectural prescriptions: the preskiptor process. In: Proceedings from Software Requirements to Architectures Workshop (STRAW'03)
Chung L, Leite JCSP (2009) On non-functional requirements in software engineering. In: Borgida AT, Chaudhri VK, Giorgini P, Yu ES (eds) Conceptual modeling: foundations and applications. Springer, Berlin, pp 363–379
Chung L, Nixon BA, Yu E, Mylopoulos J (2000) Non-Functional requirements in software engineering. Kluwer Academic Publishers, Boston
Chung L, Nixon BA, Yu E (1995) Using non-functional requirements to systematically select among alternatives in architectural design. In: Proceedings 1st International Workshop on Architectures for Software Systems, Seattle, pp 31–43
Clements P, Kazman R, Klein M (2002) Evaluating software architectures: methods and case studies. Addison-Wesley, Reading
Dalcher D (1999) Disaster in London: the LAS case study. In: Proceedings 6th Annual IEEE International Conference and Workshop on Engineering of Computer Based System (ECBS), pp 41–52
Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20(1–2):3–50
Feiler P, Gluch D, Hudak J, Lewis B (2005) Pattern-based analysis of an embedded real-time system architecture. Arch Description Lang 176:51–65
Harrison N, Avgeriou P (2007) Leveraging architecture patterns to satisfy quality attributes. Software Architecture 4758:263–270
Hill T, Supakkul S, Chung L (2009) Confirming and reconfirming architectural decisions on scalability: a goal-driven simulation approach. In: Proceedings 8th International Workshop on System/Software Architectures, Springer, pp 327–336
Hofmeister C, Kruchten P, Nord RL, Obbink H, Ran A, America P (2007) A general model of software architecture design derived from five industrial approaches. J Syst Softw 80(1):106–126
Hofmeister C, Nord R, Soni D (2000) Applied software architecture. Addison-Wesley Professional, Reading
Ivers J, Clements P, Garlan D, Nord R, Schmerl B, Silva JR (2004) Documenting component and connector views with UML 2.0. Technical report, Software Engineering Institute, CMU
Kazman R, Bass L, Webb M, Abowd G (1994) SAAM A method for analyzing the properties of software architectures. In: Proceedings 16th International Conference on Software engineering, 81–90
Kitchenham B, Pickard L, Peege SL (2002) Case studies for method and tool evaluation. Softw IEEE 12(4):52–62
Kramer J, Wolf A (1996) Succeedings of the 8th international workshop on software specification and design. ACM SIGSOFT Softw Eng Notes 21(5):21–35
Kruchten P (1995) The 4 + 1 view model of architecture. IEEE Softw 12(6):42
Kruchten P, Obbink H, Stafford J (2006) The past, present, and future for software architecture. Softw IEEE 23(2):22–30
Monroe B, Garland D, Wile D (1996) ACME BNF and examples. In Microsoft Component-Based Software Development Workshop
Mylopoulos J, Chung L, Nixon BA (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Software Eng 18(6):483–497
Mylopoulos J (2006) Goal-oriented requirements engineering, part II. Keynote. In: 14th IEEE International Requirements Engineering Conference
Page D, Williams P, Boyd D (1993) Report of the inquiry into the London Ambulance Service. South West Thames Regional Health Authority, vol. 25
Ran A (2000) ARES conceptual framework for software architecture. In: Jazayeri M, Ran A, van der Linden F (eds) Software architecture for product families principles and practice. Addison-Wesley, Boston
Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice-Hall, Upper Saddle River
Supakkul S, Chung L (2005) A UML profile for goal-oriented and use case-driven representation of NFRs and FRs. In: Proceedings 3rd International Conference. on Software Engineering Research, Management & Applications (SERA05)
Supakkul S, Hill T, Chung L, Tun TT, Leite JCSP (2010) An NFR pattern approach to dealing with NFRs. In: 18th IEEE International Requirements Engineering Conference, pp 179–188
The Open Group (2003) The Open Group Architecture Framework v8.1. http://www.opengroup.org/architecture/togaf8-doc/arch, accessed on Dec. 19, 2003
van Lamsweerde A (2003) From system goals to software architecture. Formal Methods for Software Architectures 2804:25–43
Yu E, Mylopoulos J (1994) Understanding why in software process modelling, analysis, and design. In: Proceedings 16th International Conference on Software Engineering, pp 159–168
Zhao J (1997) Using Dependence Analysis to Support Software Architecture Understanding. In: Li M (ed) New Technologies on Computer Software, International Academic Publishers, pp 135–142
Acknowledgments
The authors would like to thank the anonymous reviewers for their valuable comments that greatly helped improve the presentation of this chapter.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Chung, L. et al. (2011). Goal-Oriented Software Architecting. In: Avgeriou, P., Grundy, J., Hall, J.G., Lago, P., Mistrík, I. (eds) Relating Software Requirements and Architectures. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21001-3_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-21001-3_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21000-6
Online ISBN: 978-3-642-21001-3
eBook Packages: Computer ScienceComputer Science (R0)