Specifying and Analyzing Complex Software Systems

Summary Software has been a major enabling technology for advancing modern society, and is now an indispensable part of daily life. Because of the increased complexity of these software systems, and their critical societal role, more effective software development and analysis technologies are needed. How to develop and ensure the dependability of these complex software systems is a grand challenge. It is well-known that a highly dependable complex software system cannot be developed without a rigorous development process and a precise specification and design documentation. Formal methods are one of the most promising technologies for precisely specifying, modeling, and analyzing complex software systems. Although past research experience and practice in computer science have convincingly shown that it is not possible to formally verify program behavior and properties at the program source code level due to its extreme huge size and complexity, recently advances in applying formal methods during software specification and design, especially at software architecture level, have demonstrated significant benefits of using formal methods. In this chapter, we will review several well-known formal methods for software system specification and analysis. We will present recent advances of using these formal methods for specifying, modeling and analyzing software architectural design.

[1]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

[2]  Dianxiang Xu,et al.  Compositional schedulability analysis of real-time systems using time Petri nets , 2002 .

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

[4]  Wolfgang Reisig,et al.  A Primer in Petri Net Design , 1992, Springer Compass International.

[5]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

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

[7]  John C. Knight Dependability of embedded systems , 2002, ICSE '02.

[8]  M. Diaz,et al.  Modeling and Verification of Time Dependent Systems Using Time Petri Nets , 1991, IEEE Trans. Software Eng..

[9]  Jiacun Wang,et al.  Timed Petri Nets: Theory and Application , 1998 .

[10]  A. Prasad Sistla,et al.  Quantitative temporal reasoning , 1990, Real-Time Systems.

[11]  Xudong He,et al.  Modeling and Analyzing the Software Architecture of a Communication Protocol Using SAM , 2002, WICSA.

[12]  Martín Abadi,et al.  Composing specifications , 1989, TOPL.

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

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

[15]  Zohar Manna,et al.  How to cook a temporal proof system for your pet language , 1983, POPL '83.

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

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

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

[19]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[20]  Xudong He,et al.  A methodology for dependability and performability analysis in SAM , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

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

[22]  Xudong He A method for analyzing properties of hierarchical predicate transition nets , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[23]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[24]  Yi Deng,et al.  Modeling and analyzing SMIL documents in SAM , 2002, Fourth International Symposium on Multimedia Software Engineering, 2002. Proceedings..

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

[26]  Yi Deng,et al.  An Approach for Modeling and Analysis of Security System Architectures , 2003, IEEE Trans. Knowl. Data Eng..

[27]  Gianfranco Ciardo,et al.  SMART: stochastic model-checking analyzer for reliability and timing , 2002, Proceedings International Conference on Dependable Systems and Networks.

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

[29]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

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

[31]  X. He,et al.  Structured analysis using hierarchical predicate transition nets , 1992, [1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference.

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

[33]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[34]  Kurt Jensen,et al.  Coloured Petri Nets , 1997, Monographs in Theoretical Computer Science An EATCS Series.

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

[36]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[37]  Bengt Jonsson,et al.  A logic for reasoning about time and reliability , 1990, Formal Aspects of Computing.

[38]  Dan Craigen,et al.  Formal Methods Reality Check: Industrial Usage , 1993, IEEE Trans. Software Eng..

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

[40]  Michael Jackson,et al.  Conjunction as composition , 1993, TSEM.

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

[42]  Xudong He,et al.  Temporal predicate transition nets—a new formalism for specifying and verifying concurrent systems , 1992 .

[43]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[44]  Xudong He,et al.  PZ nets a formal method integrating Petri nets with Z , 2001, Inf. Softw. Technol..

[45]  John A. N. Lee,et al.  A methodology for constructing predicate transition net specifications , 1991, Softw. Pract. Exp..

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