Support for evolving software architectures in the ArchWare ADL

Software that cannot evolve is condemned to atrophy: it cannot accommodate the constant revision and re-negotiation of its business goals nor intercept the potential of new technology. To accommodate change in software systems, we have defined an active software architecture to be: dynamic in that the structure and cardinality of the components and interactions are changeable during execution; updatable in that components can be replaced; decomposable in that an executing system may be (partially) stopped and split up into its components and interactions; and reflective in that the specification of components and interactions may be evolved during execution. Here we describe the facilities of the ArchWare architecture description language (ADL) for specifying active architectures. The contribution of the work is the unique combination of concepts including: a /spl pi/-calculus based communication and expression language for specifying executable architectures; hyper-code as an underlying representation of system execution that can be used for introspection; a decomposition operator to incrementally break up executing systems; and structural reflection for creating new components and binding them into running systems.

[1]  Steve Vestal,et al.  Domain-Specific Software Architectures for Guidance, Navigation and Control , 1996, Int. J. Softw. Eng. Knowl. Eng..

[2]  José M. Troya,et al.  Specification and Refinement of Dynamic Software Architectures , 1999, WICSA.

[3]  Robert D. Tennent,et al.  Language design methods based on semantic principles , 1977, Acta Informatica.

[4]  Richard C. H. Connor,et al.  Persistent Hyper-Programs , 1992, POS.

[5]  Christopher Strachey,et al.  Fundamental Concepts in Programming Languages , 2000, High. Order Symb. Comput..

[6]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[7]  Steve Pettifer,et al.  Knowledge Integration , 2004, The Grid 2, 2nd Edition.

[8]  Leon J. Osterweil,et al.  Containment units: a hierarchically composable architecture for adaptive systems , 2002, SIGSOFT '02/FSE-10.

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

[10]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

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

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

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

[14]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[15]  Ronald Morrison,et al.  ArchWare ADL:Definition of Textual Concrete Syntax , 2002 .

[16]  Markus Endler,et al.  Programming generic dynamic reconfigurations for distributed applications , 1992, CDS.

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

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

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

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

[21]  Ronald Morrison,et al.  On the development of Algol , 1979 .

[22]  David Notkin,et al.  Architectural Reasoning in ArchJava , 2002, ECOOP.

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

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

[25]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

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

[27]  Evangelos Zirintsis,et al.  Towards Simplification of the Software Development Process The Hyper-Code Abstraction , 2000 .