A framework for software architecture verification

The authors present a framework for analyzing software architecture descriptions using machine-assisted formal proof. Our approach is based on the translation of an existing architecture description language (ADL) based specification to an alternate mathematical representation. We use higher order logic as mechanized by the Prototype Verification System (PVS) as the formal basis of our framework. Our approach is not tied to any particular ADL. Rather, we define an ADL-independent model of architecture description which formalizes the fundamental design concepts of architecture modeling notations. A key feature of our framework is its flexibility; the architect can choose the design concepts that are modeled. Moreover, since the model is generic to many ADLs, our approach allows for the analysis of systems that are specified using more than one notation. We introduce our model of architecture description, and illustrate the utility of our approach by verifying internal properties of an example architecture, a simple compiler specified in a pipe-and-filter architectural style.

[1]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[2]  Paul Clements,et al.  Features of Architecture Representation Languages , 1994 .

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

[4]  R. Allen,et al.  The Wright Architectural Speci cation Language , 1996 .

[5]  Stan Jarzabek Systematic design of static program analyzers , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

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

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

[8]  Donald Cowan,et al.  Using view-based models to formalize architecture description , 1998, ISAW '98.

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

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

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

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

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

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

[15]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[16]  G Tredoux Mechanising execution sequence semantics in HOL , 1992 .

[17]  Stephen J. Garland,et al.  PVS: A Prototype . . . , 1992 .

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

[19]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[20]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[21]  Paul Clements,et al.  Software Architecture: An Executive Overview , 1996 .

[22]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[23]  Michael D. Rice,et al.  An approach to architectural analysis and testing , 1998, ISAW '98.

[24]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[25]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.