Abstract
Requirements and architecture are two essential inter-related products in the software lifecycle. Software architecture has long been recognized to have a profound impact on non-functional requirements about security, fault tolerance, performance, evolvability, and so forth. In spite of this, very few techniques are available to date for systematically building software architectures from functional and non-functional requirements so that such requirements are guaranteed by construction. The paper addresses this challenge and proposes a goal-oriented approach to architectural design based on the KAOS framework for modeling, specifying and analyzing requirements. After reviewing some global architectural decisions that are already involved in the requirements engineering process, we discuss our architecture derivation process. Software specifications are first derived from requirements. An abstract architectural draft is then derived from functional specifications. This draft is refined to meet domain-specific architectural constraints. The resulting architecture is then recursively refined to meet the various non-functional goals modelled and analyzed during the requirements engineering process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transctions on Software Engineering and Methodology 6(3), 213–249 (1997)
Allen, R., Garlan, D., Ivers, J.: Formal Modeling and Analysis of the HLA Component Integration Framework. In: Proc. FSE-6 - 6th Intl Symposium on the Foundations of Software Engineering, Lake Buena Vista. ACM, New York (November 1998)
Bosch, J., Molin, P.: Software Architecture Design: Evaluation and Transformation. In: Proc. IEEE Symp. On Engineering of Computer-Based Systems (1999)
Bosch, J.: Design and Use of Software Architectures - Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)
Chung, L., Nixon, B., Yu, E., Mylopoulos, J.: Non-functional requirements in software engineering. Kluwer Academic, Boston (2000)
Dardenne, A., van Lamsweerde, A., Fickas, S.: Goal-Directed Requirements Acquisition. Science of Computer Programming 20, 3–50 (1993)
Darimont, R., van Lamsweerde, A.: Formal Refinement Patterns for Goal-Driven Requirements Elaboration. In: Proc. FSE 2004 - Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco, October 1996, pp. 179–190 (1996)
Darimont, R., Delor, E., Massonet, P., van Lamsweerde, A.: GRAIL/KAOS: An Environment for Goal-Driven Requirements Engineering. In: Proc. ICSE 1998 - 20th Intl. Conf. on Software Engineering, Kyoto, April 1998, vol. 2, pp. 58–62 (1998); Earlier and shorter version found in Proc. ICSE 1997 - 19th Intl. Conf. on Software Engineering, Boston, May 1997, pp. 612–613 (1997)
Feather, M., Fickas, S., Finkelstein, A., van Lamsweerde, A.: Requirements and Specification Exemplars. Automated Software Engineering 4, 419–438 (1997)
Feather, M., Fickas, S., van Lamsweerde, A., Ponsard, C.: Reconciling System Requirements and Runtime Behaviour. In: Proc. IWSSD 1998 - 9th International Workshop on Software Specification and Design, Isobe. IEEE CS Press, Los Alamitos (April 1998)
Garlan, D., Monroe, R., Wile, D.: ACME: An Architecture Description Interchange Language. In: Proceedings CASCON 1997, Toronto, November 1997, pp. 169–183 (1997)
Gross, D., Yu, E.: From Non-Functional Requirements to Design Through Patterns. Requirements Engineering Journal 6, 18–36 (2001)
Jackson, M.: Software Requirements & Specifications - A Lexicon of Practice, Principles and Pejudices. ACM Press, Addison-Wesley (1995)
Koymans, R.: Specifying Message Passing and Time-Critical Systems with Temporal Logic. LNCS, vol. 651. Springer, Heidelberg (1992)
van Lamsweerde, A., Sintzoff, M.: Formal Derivation of Strongly Correct Concurrent Programs. Acta Informatica 12, 1–31 (1979)
van Lamsweerde, A., Darimont, R., Massonet, P.: Goal-Directed Elaboration of Requirements for a Meeting Scheduler: Problems and Lessons Learned. In: Proc. RE 1995 - 2nd Int. Symp. on Requirements Engineering, York. IEEE, Los Alamitos (1995)
van Lamsweerde, A., Darimont, R., Letier, E.: Managing Conflicts in Goal-Driven Requirements Engineering. IEEE Trans. on Sofware. Engineering, Special Issue on Inconsistency Management in Software Development (November 1998)
van Lamsweerde, A., Willemet, L.: Inferring Declarative Requirements Specifications from Operational Scenarios. IEEE Trans. on Sofware. Engineering, Special Issue on Scenario Management, 1089–1114 (December 1998)
van Lamsweerde, A.: Requirements Engineering in the Year 2000: A Research Perspective, Keynote paper. In: Proc. ICSE 2000 - 22ndIntl. Conference on Software Engineering. IEEE Press, Los Alamitos (June 2000)
van Lamsweerde, A.: Formal Specification: a Roadmap. In: Finkelstein, A. (ed.) The Future of Software Engineering. ACM Press, New York (2000)
van Lamsweerde, A., Letier, E.: Handling Obstacles in Goal-Oriented Requirements Engineering, IEEE Transactions on Software Engineering, Special Issue on Exception Handling (October 2000)
van Lamsweerde, A.: Goal-Oriented Requirements Engineering: A Guided Tour. Invited Minitutorial. In: Proc. RE 2001 - 5th Intl. Symp. Requirements Engineering, Toronto, August 2001, pp. 249–263 (2001)
Letier, E., van Lamsweerde, A.: Agent-Based Tactics for Goal-Oriented Requirements Elaboration. In: Proc. ICSE 2002: 24th Intl. Conf. on Software Engineering, Orlando. IEEE Computer Society Press, Los Alamitos (May 2002)
Letier, E., van Lamsweerde, A.: Deriving Operational Software Specifications from System Goals. In: Proc. FSE 2010: 10thACM SIGSOFT Symp. on the Foundations of Software Engineering, Charleston (November 2002)
Luckham, D., Vera, J.: An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)
Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying Distributed Software Architectures. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, vol. 989, pp. 137–153. Springer, Heidelberg (1995)
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, Heidelberg (1992)
Medvidovic, N., Oreizy, P., Robbins, J., Taylor, R.: Using Object-Oriented Typing to Support Architectural Design in the C2 Style. In: Proc. FSE 2004 - Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco (October 1996)
Model Problems for Software Architecture, http://www-2.cs.cmu.edu/People/ModProb/
Moriconi, M., Qian, X., Riemenschneider, R.: Correct Architecture Refinement. IEEE Transactions on Software Engineering 21(4), 356–372 (1995)
Mylopoulos, J., Chung, L., Nixon, B.: Representing and Using Nonfunctional Requirements: A Process-Oriented Approach. IEEE Trans. on Sofware. Engineering 18(6), 483–497 (1992)
Nuseibeh, B.: Weaving Together Requirements and Architecture. IEEE Computer 34(3), 115–117 (2001)
Parnas, D.L.: Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering SE-5(2) (March 1979)
Parnas, D.L., Madey, J.: Functional Documents for Computer Systems. Science of Computer Programming 25, 41–61 (1995)
Perry, D., Wolf, A.: Foundations for the Study of Software Architecture. ACM Software Engineering Notes 17(4), 40–52 (1992)
Riemenschneider, R.A.: Checking the Correctness of Architectural Transformation Steps via Proof-Carrying Architectures. In: Proc. W1CSA1 - First IFIP Conference on Software Architecture, San Antonio (February 1999)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Object Technology Series. Addison-Wesley, Reading (1999)
Shaw, M., DeLine, R., Klein, D., Ross, T., Young, D., Zelesnick, G.: Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering 21(4), 314–335 (1995)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
The Standish Group, Software Chaos, http://www.standishgroup.com/chaos.html
Swartout, W., Balzer, R.: On the Inevitable Intertwining of Specification and Implementation. Communications of the ACM 25(7), 438–440 (1982)
Yue, K.: What Does It Mean to Say that a Specification is Complete? In: Proc. IWSSD-4, Fourth International Workshop on Software Specification and Design. IEEE, Los Alamitos (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
van Lamsweerde, A. (2003). From System Goals to Software Architecture. In: Bernardo, M., Inverardi, P. (eds) Formal Methods for Software Architectures. SFM 2003. Lecture Notes in Computer Science, vol 2804. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39800-4_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-39800-4_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20083-3
Online ISBN: 978-3-540-39800-4
eBook Packages: Springer Book Archive