Formal Modeling and Analysis of Software Architecture: Components, Connectors, and Events

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


Developing a good software architecture for a complex system is a critically important step for insuring that the system will satisfy its principal objectives. Unfortunately, today descriptions of software architecture are largely based on informal “box-and-line” drawings that are often ambiguous, incomplete, inconsistent, and unanalyzable. This need not be the case. Over the past decade a number of researchers have developed formal languages and associated analysis tools for software architecture. In this paper I describe a number of the representative results from this body of work.


Software Engineer Software Architecture Architectural Design Graph Grammar Architectural Style 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abowd, G., Allen, R., Garlan, D.: Formalizing style to understand descriptions of software architecture. ACM Transactions on Software Engineering and Methodology (October 1995)Google Scholar
  2. 2.
    Allen, R.: A Formal Approach to Software Architecture. PhD thesis, Carnegie Mellon, School of Computer Science, Issued as CMU Technical Report CMU-CS-97-144 (January 1997)Google Scholar
  3. 3.
    Allen, R., Douence, R., Garlan, D.: Specifying and analyzing dynamic software architectures. In: Astesiano, E. (ed.) ETAPS 1998 and FASE 1998. LNCS, vol. 1382, p. 21. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  4. 4.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology (July 1997)Google Scholar
  5. 5.
    Allen, R., Garlan, D., Ivers, J.: Formal modeling and analysis of the HLA component integration standard. In: Proceedings of the 6th International Symposium on the Foundations of Software Engineering (FSE-6), Lake Buena Vista, Florida. ACM Press, New York (November 1998)Google Scholar
  6. 6.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Reading (1998) ISBN 0-201-19930-0Google Scholar
  7. 7.
    Binns, P., Vestal, S.: Formal real-time architecture specification and analysis. In: Tenth IEEE Workshop on Real-Time Operating Systems and Software, New York, NY (May 1993)Google Scholar
  8. 8.
    Clements, P., Bachmann, F., Bass, L., GArlan, D., Ivers, J., Little, R., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond. Addison-Wesley, Reading (2002)Google Scholar
  9. 9.
    Coglianese, L., Szymanski, R.: DSSA-ADAGE: An Environment for Architecture-based Avionics Development. In: Proceedings of AGARD 1993 (May 1993)Google Scholar
  10. 10.
    Failures Divergence Refinement: User Manual and Tutorial. Formal Systems (Europe) Ltd., Oxford, England, 1.2β edn. (October 1992)Google Scholar
  11. 11.
    Garlan, D., Allen, R., Ockerbloom, J.: Exploiting style in architectural design environments. In: Proceedings of SIGSOFT 1994: The Second ACM SIGSOFT Symposium on the Foundations of Software Engineering, December 1994, pp. 179–185. ACM Press, New York (1994)Google Scholar
  12. 12.
    Garlan, D., Cheng, S.-W., Schmerl, B.: Increasing system dependability through architecture-based self-repair. In: Romanovsky, A., de Lemos, R., Gacek, C. (eds.) Architecting Dependable Systems. Springer, Heidelberg (2003)Google Scholar
  13. 13.
    Garlan, D., Monroe, R.T., Wile, D.: Acme: Architectural description of component-based systems. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, p. 47. Cambridge University Press, Cambridge (2000)Google Scholar
  14. 14.
    Garlan, D., Perry, D.: Introduction to the special issue on software architecture. IEEE Transactions on Software Engineering 21(4) (April 1995)Google Scholar
  15. 15.
    Georgiadis, I., Magee, J., Kramer, J.: Self-organising software architectures for distributed systems. In: Proceedings of the First ACM SIGSOFT Workshop on Self-Healing Systems, WOSS 2002 (2002)Google Scholar
  16. 16.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  17. 17.
    Inverardi, P., Wolf, A.: Formal specification and analysis of software architectures using the chemical, abstract machine model. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4), 373–386 (1995)Google Scholar
  18. 18.
    Kruchten, P.B.: The 4+1 view model of architecture. IEEE Software, 42–50 (November 1995)Google Scholar
  19. 19.
    Luckham, D.C., Augustin, L.M., Kenney, J.J., Veera, J., Bryan, D., Mann, W.: Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4), 336–355 (1995)Google Scholar
  20. 20.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, vol. 989. Springer, Heidelberg (1995)Google Scholar
  21. 21.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. Wiley, Chichester (1999)zbMATHGoogle Scholar
  22. 22.
    Medvidovic, N., Oreizy, P., Robbins, J.E., Taylor, R.N.: Using object-oriented typing to support architectural design in the C2 style. In: SIGSOFT 1996: Proceedings of the Fourth ACM Symposium on the Foundations of Software Engineering. ACM Press, New York (October 1996)Google Scholar
  23. 23.
    Medvidovic, N., Taylor, R.N.: Architecture description languages. In: Jazayeri, M. (ed.) ESEC 1997 and ESEC-FSE 1997. LNCS, vol. 1301. Springer, Heidelberg (1997)Google Scholar
  24. 24.
    Metayer, D.L.: Software architecture styles as graph grammars. In: Proceedings of the Fourth ACM Symposium on the Foundations of Software Engineering. ACM SIGSOFT (October 1996)Google Scholar
  25. 25.
    Monroe, R.T.: Rapid Develpoment of Custom Software Design Environments. PhD thesis, Carnegie Mellon University (July 1999)Google Scholar
  26. 26.
    Moriconi, M., Qian, X., Riemenschneider, R.: Correct architecture refinement. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4), 356–372 (1995)Google Scholar
  27. 27.
    Oriezy, P., et al.: An architecture-based approach to self-adaptive software. IEEE Intelligent Systems 14(3), 54–62 (1999)CrossRefGoogle Scholar
  28. 28.
    Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)Google Scholar
  29. 29.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  30. 30.
    Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4), 314–335 (1995)Google Scholar
  31. 31.
    Shaw, M., Garlan, D.: Formulations and formalisms in software architecture. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  32. 32.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  33. 33.
    Spitznagel, B., Garlan, D.: Architecture-based performance analysis. In: 10th International Conference on Software Engineering and Knowledge Engineering (SEKE 1998), San Francisco, CA (June 1998)Google Scholar
  34. 34.
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E., Nies, K.A., Oreizy, P., Dubrow, D.L.: A component- and message-based architectural style for gui software. IEEE Transactions on Software Engineering 22(6), 390–406 (1996)CrossRefGoogle Scholar
  35. 35.
    Wermelinger, M.: Formal specification and analysis of dynamic reconfiguration of software architecture. In: Proceedings of the 20th International Conference on Software Engineering, vol. 2, pp. 178–179. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  1. 1.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations