Specifying and verifying reconfigurable software architectures

The concept of software architecture (also called system structure or system configuration) is especially important in the design of complex software systems, providing a model of the large-scale structural properties of systems. Module interconnection languages (MILs) introduce the idea of creating program modules and connecting them to form larger structures. However, MILs do not support the description of important architectural elements. A new class of description languages, referred to as architectural description languages (ADLs), have recently emerged. Most ADLs, however, support only the description of static software architectures and not dynamic or reconfigurable software architectures. A further limitation of current ADLs is that they focus mainly on the formal notation and usually do not offer proof systems and tools to enable designers to formably verify the properties of their designs. We have developed the ZCL framework, which is a formal framework, specified in Z, to describe and reason about dynamic distributed software architectures. In this paper, we use a simple case study-the client-server system-to demonstrate how our formal framework ZCL can be used to specify and verify reconfigurable software architectures.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  George R. Ribeiro-Justo,et al.  An application framework for dynamic distributed software architectures , 1998, Scalable Comput. Pract. Exp..

[3]  George R. Ribeiro-Justo,et al.  Formal Specification of Dynamic Architectural Styles , 1999, PDPTA.

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

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

[6]  Mark Saaltink,et al.  The Z/EVES System , 1997, ZUM.

[7]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

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

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

[10]  Judy M. Bishop Languages for configuration programming: a comparison , 1994 .

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

[12]  George R. Ribeiro-Justo,et al.  Programming distributed systems with configuration languages , 1992, CDS.

[13]  Mary Shaw,et al.  Characteristics of Higher-Level Languages for Software Architecture. , 1994 .

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

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

[16]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[17]  Peyman Oreizy Issues in the Runtime Modification of Software Architectures , 1997 .

[18]  Xiaolei Qian,et al.  Correctness and composition of software architectures , 1994, SIGSOFT '94.

[19]  Naranker Dulay,et al.  A constructive development environment for parallel and distributed programs , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

[20]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[21]  George R. Ribeiro-Justo,et al.  Formal specification of evolving distributed software architectures , 1998, Proceedings Ninth International Workshop on Database and Expert Systems Applications (Cat. No.98EX130).

[22]  Nenad Medvidovic ADLs and dynamic architecture changes , 1996, ISAW '96.