Formally analyzing software architectural specifications using SAM

In the past decade, software architecture has emerged as a major research area in software engineering. Many architecture description languages have been proposed and some analysis techniques have also been explored. In this paper, we present a graphical formal software architecture description model called software architecture model (SAM). SAM is a general software architecture development framework based on two complementary formalisms--Petri nets and temporal logic. Petri nets are used to visualize the structure and model the behavior of software architectures while temporal logic is used to specify the required properties of software architectures. These two formal methods are nicely integrated through the SAM software architecture framework. Furthermore, SAM provides the flexibility to choose different compatible Petri net and temporal logic models according to the nature of system under study. Most importantly, SAM supports formal analysis of software architecture properties in a variety of well-established techniques--simulation, reachability analysis, model checking, and interactive proving, In this paper, we show how to formally analyze SAM software architecture specifications using two well-known techniques--symbolic model checking with tool Symbolic Model Verifier, and theorem proving with tool STeP.

[1]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

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

[3]  Xudong He,et al.  A Temporal Logic Approach for Analyzing Safety Properties of Predicate Transition Nets , 1992, IFIP Congress.

[4]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[5]  Monika Maidl,et al.  The Common Fragment of CTL and LTL , 2000, FOCS.

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

[7]  Martín Abadi,et al.  Composing Specifications , 1989, REX Workshop.

[8]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[9]  M. Maidi The common fragment of CTL and LTL , 2000, Proceedings 41st Annual Symposium on Foundations of Computer Science.

[10]  Mary Shaw,et al.  The coming-of-age of software architecture research , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[11]  Antti Valmari,et al.  Compositionality in State Space Verification Methods , 1996, Application and Theory of Petri Nets.

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

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

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

[15]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[16]  David Notkin,et al.  Model checking large software specifications , 1996, SIGSOFT '96.

[17]  C. Mascolo Model Checking a Software Architecture , 1998 .

[18]  Yi Deng,et al.  Specifying Software Architectural Connectors in SAM , 2000, Int. J. Softw. Eng. Knowl. Eng..

[19]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[20]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[21]  Guido Wimmel A BDD-based Model Checker for the PEP Tool , 1997 .

[22]  Alexander L. Wolf,et al.  Software testing at the architectural level , 1996, ISAW '96.

[23]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[24]  Dino Mandrioli,et al.  Formal Methods for Real-Time Computing , 1996 .

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

[26]  Kurt Lautenbach,et al.  System Modelling with High-Level Petri Nets , 1981, Theor. Comput. Sci..

[27]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[28]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[29]  Paola Inverardi,et al.  ROSATEA: International Workshop on the Role of Software Architecture in Analysis E(and) Testing , 1999, SOEN.

[30]  Joanne M. Atlee,et al.  Feasibility of model checking software requirements: a case study , 1996, Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96.

[31]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[32]  John A. N. Lee,et al.  Integrating predicate transition nets with first order temporal logic in the specification and verification of concurrent systems , 1990, Formal Aspects of Computing.

[33]  Patrick Brézillon,et al.  Lecture Notes in Artificial Intelligence , 1999 .

[34]  Jiacun Wang,et al.  Introducing software architecture specification and analysis in SAM through an example , 1999, Inf. Softw. Technol..

[35]  Edward Y. Chang,et al.  STeP: The Stanford Temporal Prover , 1995, TAPSOFT.

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

[37]  Mauro Pezzè,et al.  A Petri Net and Logic Approach to the Specification and Verification of Real Time Systems , 1996 .

[38]  Xudong He,et al.  A Formal Definition of Hierarchical Predicate Transition Nets , 1996, Application and Theory of Petri Nets.

[39]  P. Ciancarini,et al.  Software architecture and mobility , 1998, ISAW '98.

[40]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[41]  Yi Deng,et al.  A Framework for Developing and Analyzing Software Architecture Specifications in SAM , 2002, Comput. J..

[42]  Julian C. Bradfield Proving temporal properties of Petri Nets , 1990, Applications and Theory of Petri Nets.

[43]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[44]  Sérgio Vale Aguiar Campos,et al.  Compositional Reasoning in Model Checking , 1997, COMPOS.

[45]  Jeffrey J. P. Tsai,et al.  Compositional verification of concurrent systems using Petri-net-based condensation rules , 1998, TOPL.

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