Formalization and Model Checking of Software Architectural Style

Formal analysis is required to check the behavior of the system before implementation of any safety critical system. As the complexity of software increases, the need for reasoning about correct behavior becomes more prominent. Algorithmic analysis of different programs is usually carried out in order to prove their properties of execution. Application of formal method is being considered necessary for modeling, verification, and development of any software or hardware systems. In the formal verification of behavioral model, an attempt has been made to formally describe a real-time system e.g., use of Automated Teller Machine (ATM) in Banks. In this thesis, formal models of ATM system are described using state-based languages such as, Z, B, and Alloy as well as event-based language such as, Monterey Phoenix. Model checking is being carried out by automated tools, viz. Z/EVES, Atelier B, and Alloy Analyzer for Z, B, and Alloy specifications respectively. Furthermore, a comparative analysis of different characteristics shown by varied formal approaches has been presented in this thesis. Software architecture plays an important role in the high level design of a system in terms of components, connectors, and configurations. The main building block of software architecture is an architectural style that provides domain specific design semantics. In the analysis of complex architectural style, an attempt has been made in our work to formalize one complex style e.g., C2 (component and connector) using formal specification language Alloy. For consistency checking of modeling notations, the model checker tool e.g., Alloy Analyzer is used. Alloy Analyzer automatically checks properties such as,compatibility between components and connectors, satisfiability of predicates over the architectural structure, and consistency of an architectural style. For modeling and verification of C2 architectural style, one case study on Cruise Control System has been considered. At the end of this study, performance evaluation of different SAT solvers associated with Alloy Analyzer has been performed in order to assess the quality.

[1]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[2]  Daniel Jackson,et al.  Lightweight Formal Methods , 2001, FME.

[3]  Xiao-ping Jia ZTC: A Type Checker for Z Notation User's Guide , 1995 .

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

[5]  Jun Sun,et al.  A Scalable Approach to Multi-style Architectural Modeling and Verification , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

[6]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[7]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[8]  Arturo Azcorra,et al.  Tool Support to Implement LOTOS Formal Specifications , 1993, Comput. Networks ISDN Syst..

[9]  Nick Battle,et al.  The overture initiative integrating tools for VDM , 2010, ACM SIGSOFT Softw. Eng. Notes.

[10]  Colin F. Snook,et al.  UML-B: Formal modeling and design aided by UML , 2006, TSEM.

[11]  David Garlan,et al.  Analyzing architectural styles , 2010, J. Syst. Softw..

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

[13]  Nenad Medvidovic,et al.  Software architecture and mobility: A roadmap , 2010, J. Syst. Softw..

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

[15]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[16]  Jirí Srba,et al.  TAPAAL 2.0: Integrated Development Environment for Timed-Arc Petri Nets , 2012, TACAS.

[17]  Munina Yusufu,et al.  Comparison of Software Specification Methods Using a Case Study , 2008, 2008 International Conference on Computer Science and Software Engineering.

[18]  Alastair F. Donaldson,et al.  Software Model Checking , 2014, Computing Handbook, 3rd ed..

[19]  Behzad Bordbar,et al.  UML2ALLOY: A tool for lightweight modelling of discrete event systems , 2005, IADIS AC.

[20]  Petr Hnetynka,et al.  Automated resolution of connector architectures using constraint solving (ARCAS method) , 2014, Software & Systems Modeling.

[21]  Wilhelm Hasselbring,et al.  Ontology-based modelling of architectural styles , 2009, Inf. Softw. Technol..

[22]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[23]  Klaus Marius Hansen,et al.  Modeling and analyzing architectural change with alloy , 2010, SAC '10.

[24]  Marija Mikic-Rakic,et al.  An Extensible Framework for Improving a Distributed Software System's Deployment Architecture , 2012, IEEE Transactions on Software Engineering.

[25]  Daniel Jackson,et al.  A Comparison of Object Modelling Notations : Alloy , UML and Z , 1999 .

[26]  Wouter Joosen,et al.  Reusable Formal Models for Secure Software Architectures , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[27]  Shivani Goel,et al.  Specifying safety and critical real-time systems in Z , 2010, 2010 International Conference on Computer and Communication Technology (ICCCT).

[28]  Jane Sinclair,et al.  Investigating post-completion errors with the Alloy Analyzer , 2007 .

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

[30]  Mikhail Auguston,et al.  Monterey Phoenix, or how to make software architecture executable , 2009, OOPSLA Companion.

[31]  Marco Pistore,et al.  Nusmv version 2: an opensource tool for symbolic model checking , 2002, CAV 2002.

[32]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[33]  Marc Frappier,et al.  Software Specification Methods , 2006, Formal Approaches to Computing and Information Technology FACIT.

[34]  Hassan Gomaa Software design methods for concurrent and real-time systems , 1993, SEI series in software engineering.

[35]  Mark Saaltink,et al.  The Z/EVES Reference Manual (for Version 1.5) , 1997 .

[36]  Jun Sun,et al.  PAT 3: An Extensible Architecture for Building Multi-domain Model Checkers , 2011, 2011 IEEE 22nd International Symposium on Software Reliability Engineering.

[37]  Jun Sun,et al.  Using Monterey Phoenix to Formalize and Verify System Architectures , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

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

[39]  Jun Sun,et al.  Model Checking Software Architecture Design , 2012, 2012 IEEE 14th International Symposium on High-Assurance Systems Engineering.

[40]  Djamel Bennouar,et al.  A new approach for component's port modeling in software architecture , 2010, J. Syst. Softw..

[41]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .

[42]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[43]  Anne Elisabeth Haxthausen,et al.  The Raise Specification Language , 1992 .

[44]  Mordechai Ben-Ari,et al.  Principles of the spin model checker , 2008 .

[45]  Mohammad Reza Nami,et al.  A comparative evaluation of the Z, CSP, RSL, and VDM languages , 2009, SOEN.

[46]  Ashish Kumar Dwivedi,et al.  Analysis of a Complex Architectural Style C2 Using Modeling Language Alloy , 2014 .

[47]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[48]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[49]  James E. Rumbaugh,et al.  Object-Oriented Modeling and Design with UML , 2004 .

[50]  John A. McDermid,et al.  CADi: An architecture for Z tools and its implementation , 1995, Softw. Pract. Exp..

[51]  Lars Michael Kristensen,et al.  Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems , 2007, International Journal on Software Tools for Technology Transfer.

[52]  Peter Gorm Larsen,et al.  The IFAD VDM-SL toolbox: a practical approach to formal specifications , 1994, SIGP.

[53]  Yuanyuan Song,et al.  Architectural style as an independent variable , 2010, ASE.

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

[55]  Ashish Kumar Dwivedi,et al.  Model to specify real time system using Z and alloy languages: A comparative approach , 2012, ICSE 2012.

[56]  Henry Muccini,et al.  Software architecture-based analysis and testing: a look into achievements and future challenges , 2013, Computing.

[57]  Henry Muccini,et al.  Software architecture-based regression testing , 2006, J. Syst. Softw..

[58]  Clifford A. Whitcomb,et al.  System Architecture Specification Based on Behavior Models , 2010 .

[59]  Benoît Fraikin,et al.  Comparison of Model Checking Tools for Information Systems , 2010, ICFEM.

[60]  Séverine Sentilles,et al.  A Classification Framework for Software Component Models , 2011, IEEE Transactions on Software Engineering.

[61]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[62]  Sophie Dupuy-Chessa,et al.  An Overview of RoZ: A Tool for Integrating UML and Z Specifications , 2000, CAiSE.

[63]  Jan Kofron,et al.  Modes in component behavior specification via EBP and their application in product lines , 2009, Inf. Softw. Technol..

[64]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[65]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[66]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.