Architecture Diagrams: A Graphical Language for Architecture Style Specification

Architecture styles characterise families of architectures sharing common characteristics. We have recently proposed configuration logics for architecture style specification. In this paper, we study a graphical notation to enhance readability and easiness of expression. We study simple architecture diagrams and a more expressive extension, interval architecture diagrams. For each type of diagrams, we present its semantics, a set of necessary and sufficient consistency conditions and a method that allows to characterise compositionally the specified architectures. We provide several examples illustrating the application of the results. We also present a polynomial-time algorithm for checking that a given architecture conforms to the architecture style specified by a diagram.

[1]  Craig Larman,et al.  "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development”, Third Edition, Pearson Education, 2005. , 2015 .

[2]  Michel Wermelinger,et al.  A graph based architectural (Re)configuration language , 2001, ESEC/FSE-9.

[3]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[4]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[5]  Joseph Sifakis,et al.  Causal semantics for the algebra of connectors , 2008, Formal Methods Syst. Des..

[6]  William Del Ra,et al.  Service design patterns , 2012, ACM SIGSOFT Softw. Eng. Notes.

[7]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

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

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

[10]  David Garlan,et al.  Analyzing architectural styles , 2010, J. Syst. Softw..

[11]  MedvidovicNenad,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000 .

[12]  Kristin Decker,et al.  Uml Distilled A Brief Guide To The Standard Object Modeling Language , 2016 .

[13]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[14]  Petr Tuma,et al.  Distributed Component System Based on Architecture Description: The SOFA Experience , 2002, OTM.

[15]  Joseph Sifakis,et al.  Configuration Logics: Modelling Architecture Styles , 2015, FACS.

[16]  Christos Kloukinas,et al.  Are We There Yet? Analyzing Architecture Description Languages for Formal Analysis, Usability, and Realizability , 2013, 2013 39th Euromicro Conference on Software Engineering and Advanced Applications.

[17]  Farhad Arbab,et al.  Connector Rewriting with High-Level Replacement Systems , 2008, FOCLASA.

[18]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[19]  Robert Daigneau,et al.  Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services , 2011 .

[20]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

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

[22]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[23]  Paola Inverardi,et al.  Modeling Software Architecutes and Styles with Graph Grammars and Constraint Solving , 1999, WICSA.

[24]  Joseph Sifakis,et al.  A general framework for architecture composability , 2014, Formal Aspects of Computing.

[25]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

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

[27]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[28]  Roberto Bruni,et al.  Style-Based Architectural Reconfigurations , 2008, Bull. EATCS.

[29]  Rich Hilliard,et al.  Architecture Description Languages in Practice Session Report , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[30]  Joseph Sifakis,et al.  The Algebra of Connectors—Structuring Interaction in BIP , 2007, IEEE Transactions on Computers.

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

[32]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[33]  Paul Clements,et al.  Documenting Component and Connector Views with UML 2.0 , 2004 .

[34]  Joseph Sifakis,et al.  A General Framework for Architecture Composability , 2014, SEFM.

[35]  David Garlan,et al.  Analyzing architectural styles with alloy , 2006, ROSATEA '06.

[36]  Joseph Sifakis,et al.  Synthesizing Glue Operators from Glue Constraints for the Construction of Component-Based Systems , 2011, SC@TOOLS.

[37]  Kangde Yao,et al.  A Brief Guide to the Standard Object Modelling Language , 2000 .

[38]  Farhad Arbab,et al.  Modeling dynamic reconfigurations in Reo using high-level replacement systems , 2011, Sci. Comput. Program..

[39]  Jeff Kramer Configuration programming-a framework for the development of distributable systems , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[40]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[41]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[42]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .