Skip to main content

From System Goals to Software Architecture

  • Chapter
Formal Methods for Software Architectures (SFM 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2804))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transctions on Software Engineering and Methodology 6(3), 213–249 (1997)

    Article  Google Scholar 

  2. 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)

    Google Scholar 

  3. Bosch, J., Molin, P.: Software Architecture Design: Evaluation and Transformation. In: Proc. IEEE Symp. On Engineering of Computer-Based Systems (1999)

    Google Scholar 

  4. Bosch, J.: Design and Use of Software Architectures - Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)

    Google Scholar 

  5. Chung, L., Nixon, B., Yu, E., Mylopoulos, J.: Non-functional requirements in software engineering. Kluwer Academic, Boston (2000)

    MATH  Google Scholar 

  6. Dardenne, A., van Lamsweerde, A., Fickas, S.: Goal-Directed Requirements Acquisition. Science of Computer Programming 20, 3–50 (1993)

    Article  MATH  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Feather, M., Fickas, S., Finkelstein, A., van Lamsweerde, A.: Requirements and Specification Exemplars. Automated Software Engineering 4, 419–438 (1997)

    Article  Google Scholar 

  10. 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)

    Google Scholar 

  11. Garlan, D., Monroe, R., Wile, D.: ACME: An Architecture Description Interchange Language. In: Proceedings CASCON 1997, Toronto, November 1997, pp. 169–183 (1997)

    Google Scholar 

  12. Gross, D., Yu, E.: From Non-Functional Requirements to Design Through Patterns. Requirements Engineering Journal 6, 18–36 (2001)

    Article  MATH  Google Scholar 

  13. Jackson, M.: Software Requirements & Specifications - A Lexicon of Practice, Principles and Pejudices. ACM Press, Addison-Wesley (1995)

    Google Scholar 

  14. Koymans, R.: Specifying Message Passing and Time-Critical Systems with Temporal Logic. LNCS, vol. 651. Springer, Heidelberg (1992)

    MATH  Google Scholar 

  15. van Lamsweerde, A., Sintzoff, M.: Formal Derivation of Strongly Correct Concurrent Programs. Acta Informatica 12, 1–31 (1979)

    Article  MathSciNet  MATH  Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. van Lamsweerde, A.: Formal Specification: a Roadmap. In: Finkelstein, A. (ed.) The Future of Software Engineering. ACM Press, New York (2000)

    Google Scholar 

  21. van Lamsweerde, A., Letier, E.: Handling Obstacles in Goal-Oriented Requirements Engineering, IEEE Transactions on Software Engineering, Special Issue on Exception Handling (October 2000)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. Luckham, D., Vera, J.: An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, Heidelberg (1992)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. Model Problems for Software Architecture, http://www-2.cs.cmu.edu/People/ModProb/

  30. Moriconi, M., Qian, X., Riemenschneider, R.: Correct Architecture Refinement. IEEE Transactions on Software Engineering 21(4), 356–372 (1995)

    Article  Google Scholar 

  31. 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)

    Article  Google Scholar 

  32. Nuseibeh, B.: Weaving Together Requirements and Architecture. IEEE Computer 34(3), 115–117 (2001)

    Google Scholar 

  33. Parnas, D.L.: Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering SE-5(2) (March 1979)

    Google Scholar 

  34. Parnas, D.L., Madey, J.: Functional Documents for Computer Systems. Science of Computer Programming 25, 41–61 (1995)

    Article  Google Scholar 

  35. Perry, D., Wolf, A.: Foundations for the Study of Software Architecture. ACM Software Engineering Notes 17(4), 40–52 (1992)

    Article  Google Scholar 

  36. 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)

    Google Scholar 

  37. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Object Technology Series. Addison-Wesley, Reading (1999)

    Google Scholar 

  38. 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)

    Article  Google Scholar 

  39. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)

    MATH  Google Scholar 

  40. The Standish Group, Software Chaos, http://www.standishgroup.com/chaos.html

  41. Swartout, W., Balzer, R.: On the Inevitable Intertwining of Specification and Implementation. Communications of the ACM 25(7), 438–440 (1982)

    Article  Google Scholar 

  42. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics