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

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.

[1]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[2]  Mahadev Satyanarayanan,et al.  Disconnected operation in the Coda File System , 1992, TOCS.

[3]  David R. Barstow,et al.  Proceedings of the 25th International Conference on Software Engineering , 1978, ICSE.

[4]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[6]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[7]  Gruia-Catalin Roman,et al.  Secure Sharing of Tuple Spaces in Ad Hoc Settings , 2003, SecCo.

[8]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[9]  Jeff Magee,et al.  Self-organising software architectures for distributed systems , 2002, WOSS '02.

[10]  Daniel Le Métayer,et al.  Software architecture styles as graph grammars , 1996, SIGSOFT '96.

[11]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[12]  Mehdi Jazayeri,et al.  Software Engineering — ESEC/FSE'97 , 1997, Lecture Notes in Computer Science.

[13]  Mark Weiser The computer for the 21st century , 1991 .

[14]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[15]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[16]  David Garlan,et al.  Formal modeling and analysis of the HLA component integration standard , 1998, SIGSOFT '98/FSE-6.

[17]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[18]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[19]  Jan van Leeuwen,et al.  Computer Science Today , 1995, Lecture Notes in Computer Science.

[20]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[21]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[22]  Peyman Oreizy,et al.  Using object-oriented typing to support architectural design in the C2 style , 1996, SIGSOFT '96.

[23]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[24]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[25]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[26]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[27]  Pattie Maes,et al.  Hive: distributed agents for networking things , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[28]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[29]  Gruia-Catalin Roman,et al.  Consistent group membership in ad hoc networks , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[30]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[31]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[32]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[33]  Gruia-Catalin Roman,et al.  Service Provision in Ad Hoc Networks , 2002, COORDINATION.

[34]  David Garlan,et al.  Architecture-Based Performance Analysis , 1998 .

[35]  Steve Vestal,et al.  Formal real-time architecture specification and analysis , 1993 .

[36]  David S. Rosenblum,et al.  A design framework for Internet-scale event observation and notification , 1997, ESEC '97/FSE-5.

[37]  Gruia-Catalin Roman,et al.  Compositional Programming Abstractions for Mobile Computing , 1998, IEEE Trans. Software Eng..

[38]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.

[39]  Wilhelm Schäfer,et al.  Software Engineering — ESEC '95 , 1995, Lecture Notes in Computer Science.

[40]  Amy L. Murphy,et al.  LIME: Linda meets mobility , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[41]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[42]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[43]  Toby Walsh,et al.  Automated Deduction—CADE-11 , 1992, Lecture Notes in Computer Science.

[44]  Mary Shaw,et al.  Formulations and Formalisms in Software Architecture , 1995, Computer Science Today.

[45]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[46]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[47]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..