Model-Based Continuous Verification

Model-based engineering has emerged as a key set of technologies to engineer software systems. While system source code is expected to match with the designed model, legacy systems and workarounds during deployment would undoubtedly change the source code, making the actual running implementation mismatch with its model. Such mismatch poses a challenge of maintaining the conformance between the model and the corresponding implementation. Prior techniques, such as model checking and model-based testing, simply assumed the sole correctness of the model or the implementation, which is naive since they both could contain correct information (e.g. representing either the software requirements or the actual running environment).In this paper, we aim to address this problem through model-based continuous verification (ConV), an iterative verification process that links the traditional model checking phase with the software testing phase to a feedback loop, ensuring the conformance between the system model and its implementation. It allows to execute the abstract test cases over the implementation through a semi-automatic binding mechanism to guide the update of the code, and augments system properties from the actually running system to guide the update of the model through model checking. Based on these techniques, we implemented Eunomia, a conformance verification system, to support the continuous verification process. Experiments show that Eunomia can effectively detect and locate inconsistencies both in the model and the source code.

[1]  Mirko Seifert,et al.  Closing the Gap between Modelling and Java , 2009, SLE.

[2]  Bashar Nuseibeh,et al.  Leveraging Inconsistency in Software Development , 2000, Computer.

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[4]  Junfeng Yang,et al.  Scalable and systematic detection of buggy inconsistencies in source code , 2010, OOPSLA.

[5]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[6]  Florentin Ipate,et al.  Learn and Test for Event-B - A Rodin Plugin , 2012, ABZ.

[7]  Richard N. Taylor,et al.  Enhancing architecture-implementation conformance with change management and support for behavioral mapping , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[8]  Andreas Hoffmann,et al.  Model-Based Testing , 2012, IEEE Software.

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

[10]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[11]  Huibiao Zhu,et al.  Complementary Methodologies for Developing Hybrid Systems with Event-B , 2012, ICFEM.

[12]  Kristin Yvonne Rozier,et al.  Linear Temporal Logic Symbolic Model Checking , 2011, Comput. Sci. Rev..

[13]  Naoyasu Ubayashi,et al.  Archface: a contract place where architectural design and code meet together , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[14]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[15]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[16]  Vladimir V. Rybakov,et al.  Linear Temporal Logic LTL: Basis for Admissible Rules , 2011, J. Log. Comput..

[17]  Alexander Egyed,et al.  Towards Model-and-Code Consistency Checking , 2014, 2014 IEEE 38th Annual Computer Software and Applications Conference.

[18]  Uwe Zdun,et al.  Plausibility Checking of Formal Business Process Specifications in Linear Temporal Logic , 2016, CAiSE Forum.

[19]  Damien Cassou,et al.  Leveraging software architectures to guide and verify the development of sense/compute/control applications , 2011, 2011 33rd International Conference on Software Engineering (ICSE).