XCD – Simple, Modular, Formal Software Architectures

Connector-Centric Design (XCD) is a new approach for specifying software architectures that focuses on the use of complex connectors. In XCD simple interconnection mechanisms like procedure-calls, event-buses, etc. are abstracted and components take a second place. XCD aids the clear separation in a modular manner of the highlevel functional, interaction, and control system behaviour, thus increasing the reusability of both components and connectors. As such, XCD allows designers to experiment with different interaction behaviours (connectors), without having to modify the functional behaviour specifications (components). It further allows designers to experiment with different control behaviours (“role strategies”), without modifying components or connectors. Inspired by JML, XCD follows a formal, Design-by-Contract approach, describing behaviour through simple pre/post-conditions, which should make it easier for practitioners to use. XCD extends Design-by-Contract so as to separate contracts into functional and interaction subcontracts, and so as to allow service consumers to specify their own contractual clauses. The specifications of XCD connectors are completely decentralized (e.g., no “connector glue”) to facilitate their realization and their refinement for further formal analyses.

[1]  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.

[2]  Christos Kloukinas Better abstractions for reusable components & architectures , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[3]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[4]  Yérom-David Bromberg,et al.  Middleware-Layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability , 2011, SFM.

[5]  Laurent Balmelli,et al.  The Systems Modeling Language for Products and Systems Development , 2007, J. Object Technol..

[6]  Gary T. Leavens,et al.  Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2 , 2005, FMCO.

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

[8]  Steve Vestal,et al.  The SAE Architecture Analysis & Design Language (AADL) a standard for engineering performance critical systems , 2006, 2006 IEEE Conference on Computer Aided Control System Design, 2006 IEEE International Conference on Control Applications, 2006 IEEE International Symposium on Intelligent Control.

[9]  Wouter Joosen,et al.  Using AADL to Model a Protocol Stack , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

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

[11]  William F. Gilreath,et al.  Concurrency State Models and Java Programs , 2000, Parallel Distributed Comput. Pract..

[12]  Rajeev Alur,et al.  Inference of message sequence charts , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[13]  Sebastián Uchitel,et al.  Towards a Periodic Table of Connectors , 1999, COORDINATION.

[14]  Jeff Magee,et al.  Concurrency - state models and Java programs (2. ed.) , 2006 .

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

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

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

[18]  Felicita Di Giandomenico,et al.  Dependability Analysis and Verification for Connected Systems , 2010, ISoLA.

[19]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[20]  Frantisek Plasil,et al.  Software Connectors and their Role in Component Deployment , 2001, DAIS.

[21]  Matthew B. Dwyer,et al.  Extending JML for Modular Specification and Verification of Multi-threaded Programs , 2005, ECOOP.

[22]  Frantisek Plasil,et al.  Bounding component behavior via protocols , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

[23]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

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

[25]  Rajeev Alur,et al.  Realizability and verification of MSC graphs , 2005, Theor. Comput. Sci..