Composing style-based software architectures from architectural primitives

Software architectures provide high-level abstractions to deal with the complexity and richness of large-scale software systems. Often, similar architectural organization is found in different software systems. Architectural styles are an approach to exploit such similarities between different architectures. A style is useful in the design of architectures due to guarantees of desirable stylistic properties across architectures based on that style. Styles are also believed to bring economies of scale in the design and implementation of architectures. Although there are many systematic techniques for describing and selecting styles, there is considerably less underpinning for the systematic design and construction of style-based architectures. This dissertation motivates, presents, and validates a methodology for the composition of style-based software architectures from architectural primitives. This methodology, embodied as the Alfa framework, is a collection of related techniques that support the expression of stylistic constraints as well as architectural organization through the use of architectural primitives. Not only does the Alfa framework ensure the conformance of stylistic constraints in architectures using those styles, but it is also amenable to scalable implementation of architectural designs. Moreover, our methodology is comprehensive in its scope: it supports the data, structural, topological, interaction, and behavioral concerns in styles and architectures. The unique aspects of Alfa are: explicit recognition of architectural primitives that underlie a wide range of styles and architectures; type checking of data in styles and architectures, to ensure validity of architectural compositions; effective analysis of architectures for conformance to style(s) used in them, to preserve stylistic properties; and scalable implementation of architectural primitives and their composition, to support architectural prototyping. The key proposition of the dissertation is demonstrated through a case study that applies Alfa to distributed systems. The dissertation is validated analytically by deducing the algorithmic complexity of Alfa's conformance analysis; and quantitatively, by measuring the scalability of Alfa-based architectural implementations in terms of memory usage and processing time. The dissertation is concluded by inferring the consequences of Alfa on the design, analysis, and implementation of software systems.

[1]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

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

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

[4]  Kevin J. Sullivan,et al.  Analysis of a Conflict between Aggregation and Interface Negotiation in Microsoft's Component Object Model , 1999, IEEE Trans. Software Eng..

[5]  David S. Wile AML: an Architecture Meta-Language , 1999, 14th IEEE International Conference on Automated Software Engineering.

[6]  A. A. Abd Allah Composing heterogeneous software architectures , 1996 .

[7]  David Garlan,et al.  Architectural Styles, Design Patterns, And Objects , 1997, IEEE Softw..

[8]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[9]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[10]  Tom Markham,et al.  Security modeling in the COTS environment , 1999, NSPW '99.

[11]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[12]  Shing-Chi Cheung,et al.  An integrated method for effective behaviour analysis of distributed systems , 1994, Proceedings of 16th International Conference on Software Engineering.

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

[14]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

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

[16]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[17]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[18]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[19]  Peyman Oreizy,et al.  Reuse of Off-the-Shelf Components in C2-Style Architectures , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[20]  Farhad Arbab,et al.  Effective modeling of software architectural assemblies using constraint automata , 2003 .

[21]  P. Borsook Data communications , 1994, IEEE Spectrum.

[22]  Leigh A. Davis,et al.  A notation for problematic architecture interactions , 2001, ESEC/FSE-9.

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

[24]  Paola Inverardi,et al.  Automatic synthesis of deadlock free connectors for COM/DCOM applications , 2001, ESEC/FSE-9.

[25]  Andrew S. Tanenbaum,et al.  Network Protocols , 1981, CSUR.

[26]  Robert J. Allen A formal approach to software architecture , 1997 .

[27]  Paolo Ciancarini,et al.  Architecting families of software systems with process algebras , 2002, TSEM.

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

[29]  David Garlan,et al.  Style-based refinement for software architecture , 1996, ISAW '96.

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

[31]  Oscar Nierstrasz,et al.  Scripting Coordination Styles , 2000, COORDINATION.

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

[33]  Luis Mandel,et al.  On the expressive power of the Object Constraint Language OCL , 1999, FM 1999.

[34]  Barry W. Boehm,et al.  Escaping the software tar pit: model clashes and how to avoid them , 1999, SOEN.

[35]  Mary Shaw,et al.  A field guide to boxology: preliminary classification of architectural styles for software systems , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[36]  Mary Shaw,et al.  The coming-of-age of software architecture research , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[37]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[38]  D. Corkill Blackboard Systems , 1991 .

[39]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[40]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[41]  Peyman Oreizy,et al.  xADL: enabling architecture-centric tool integration with XML , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[42]  Richard N. Taylor,et al.  Architecture-based specification-time software evolution , 1999 .

[43]  Octavian Patrascoiu,et al.  OCL 2.0 - Implementing the Standard for Multiple Metamodels , 2004, Electron. Notes Theor. Comput. Sci..

[44]  Philip A. Bernstein,et al.  Middleware: a model for distributed system services , 1996, CACM.

[45]  Gabor Karsai,et al.  Smart Dust: communicating with a cubic-millimeter computer , 2001 .

[46]  Nenad Medvidovic,et al.  Multi-view Software Component Modeling for Dependability , 2003, WADS.

[47]  Marija Mikic-Rakic,et al.  Software Architectural Support for Handheld Computing , 2003, Computer.

[48]  David A. Carrington,et al.  Guiding object-oriented design , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271).

[49]  Diego Calvanese,et al.  Reasoning on UML Class Diagrams is EXPTIME-hard , 2003, Description Logics.

[50]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[51]  Robert T. Monroe Capturing Software Architecture Design Expertise with Armani , 2000 .

[52]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[53]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[54]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

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

[56]  David M. Booth,et al.  Web Services Architecture , 2004 .

[57]  Mei-Hwa Chen,et al.  Software architecture analysis-a case study , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

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

[59]  Farhad Arbab,et al.  Abstract Behavior Types: a foundation model for components and their composition , 2002, Sci. Comput. Program..

[60]  Gabor Karsai,et al.  Composing Domain-Specific Design Environments , 2001, Computer.

[61]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

[62]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

[63]  Francisca Losavio,et al.  Comparing architectural styles: broker specializes mediator , 1998, ISAW '98.

[64]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[65]  Marija Mikic-Rakic,et al.  A Family of Software Architecture Implementation Frameworks , 2002, WICSA.

[66]  Gary D. Scudder,et al.  Concurrent software development , 2000, CACM.

[67]  Richard N. Taylor,et al.  Exploiting architectural style to develop a family of applications , 1997, IEE Proc. Softw. Eng..

[68]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[69]  Ralph E. Johnson,et al.  Surveying current research in object-oriented design , 1990, CACM.

[70]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[71]  M.P.J. Stevens,et al.  Specification and analysis , 1996 .

[72]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[73]  David Garlan,et al.  Style-based reuse for software architectures , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

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

[75]  Richard N. Taylor,et al.  Separating fact from fiction in software architecture , 1998, ISAW '98.

[76]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

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

[78]  Bradley R. Schmerl,et al.  AcmeStudio: supporting style-centered architecture development , 2004, Proceedings. 26th International Conference on Software Engineering.

[79]  Reiko Heckel,et al.  UML - A Universal Modeling Language? , 2000, ICATPN.

[80]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

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

[82]  Murali Sitaraman,et al.  Formal specification of COTS-based software: a case study , 1999, SSR '99.

[83]  Paolo Ciancarini,et al.  On the formalization of architectural types with process algebras , 2000, SIGSOFT '00/FSE-8.

[84]  Richard N. Taylor,et al.  Using off-the-shelf middleware to implement connectors in distributed software architectures , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[85]  Nenad Medvidovic,et al.  Composing architectural styles from architectural primitives , 2003, ESEC/FSE-11.

[86]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[87]  H. P Nii,et al.  Blackboard Systems , 1986 .

[88]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[89]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

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

[91]  Barry Boehm,et al.  Composing heterogeneous software architectures , 1996 .

[92]  Alex Berson Client-Server Architecture , 2006, Encyclopedia of Multimedia.

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

[94]  John L. Furstenberg,et al.  Separating fact from fiction , 2004 .

[95]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[96]  Connie U. Smith,et al.  PASASM: a method for the performance assessment of software architectures , 2002, WOSP '02.

[97]  Christel Baier,et al.  Modeling component connectors in Reo by constraint automata , 2004, Sci. Comput. Program..