Formal model-driven engineering of critical information systems

Model-driven engineering is the generation of software artefacts from abstract models. This is achieved through transformations that encode domain knowledge and implementation strategies. The same transformations can be used to produce quite different systems, or to produce successive versions of the same system. A model-driven approach can thus reduce the cost of development. It can also reduce the cost of verification: if the transformations are shown or assumed to be correct, each new system or version can be verified in terms of its model, rather than its implementation. This paper introduces an approach to model-driven engineering that is particularly suited to the development of critical information systems. The language of the models, and the language of the transformations, are amenable to formal analysis. The transformation strategy, and the associated development methodology, are designed to preserve systems integrity and availability. Model-driven tools can reduce the cost of development and verification.Information systems can be produced automatically from object oriented designs.A formal, model-driven approach is proposed for use in safety critical systems.A framework is provided for the correctness of model transformations.

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

[2]  Amel Mammar,et al.  A systematic approach to generate B preconditions: application to the database domain , 2009, Software & Systems Modeling.

[3]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[4]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[5]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

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

[7]  John C. Knight,et al.  Safety critical systems: challenges and directions , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[8]  Graeme Smith,et al.  A fully abstract semantics of classes for Object-Z , 1995, Formal Aspects of Computing.

[9]  Ralph-Johan Back,et al.  Trace Refinement of Action Systems , 1994, CONCUR.

[10]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[11]  Eelco Visser,et al.  The spoofax language workbench: rules for declarative specification of languages and IDEs , 2010, OOPSLA.

[12]  Seyed-Hassan Mirian-Hosseinabadi,et al.  Translation of Z specifications to executable code: Application to the database domain , 2013, Inf. Softw. Technol..

[13]  Clemens Fischer,et al.  How to Combine Z with Process Algebra , 1998, ZUM.

[14]  Jim Davies,et al.  Compositionality and Refinement in Model-Driven Engineering , 2012, SBMF.

[15]  Kurt Stenzel,et al.  Formal verification of QVT transformations for code generation , 2011, MODELS'11.

[16]  Jim Davies,et al.  Model-driven engineering of information systems: 10 years and 1000 versions , 2014, Sci. Comput. Program..

[17]  Jim Davies,et al.  Domain-specific Semantics and Data Refinement of Object Models , 2008, Electron. Notes Theor. Comput. Sci..

[18]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[19]  Jerrold L. Wagener Guarded command , 2003 .

[20]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[21]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[22]  Other Contributors Are Indicated Where They Contribute The Eclipse Foundation , 2017 .

[23]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[24]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[25]  Jim Davies,et al.  Formality, Evolution, and Model-driven Software Engineering , 2005, Electron. Notes Theor. Comput. Sci..

[26]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[27]  Jin Song Dong,et al.  Blending Object-Z and Timed CSP: an introduction to TCOZ , 1998, Proceedings of the 20th International Conference on Software Engineering.

[28]  Christian Bauer,et al.  Java Persistence with Hibernate , 2006 .

[29]  Jim Davies,et al.  A singleton failures semantics for Communicating Sequential Processes , 2006, Formal Aspects of Computing.

[30]  Perdita Stevens,et al.  Refinement in Z and object-Z: foundations and advanced applications , 2002, Softw. Test. Verification Reliab..

[31]  Jim Davies,et al.  Formal Model-Driven Engineering: Generating Data and Behavioural Components , 2012, FTSCS.

[32]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[33]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[34]  Kangde Yao,et al.  A Brief Guide to the Standard Object Modelling Language , 2000 .

[35]  Kurt Stenzel,et al.  Formal Verification of QVT Transformations for Code Generation , 2011, MoDELS.

[36]  Augusto Sampaio,et al.  Unifying classes and processes , 2005, Software & Systems Modeling.

[37]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[38]  Eerke A. Boiten,et al.  Relational concurrent refinement part II: Internal operations and outputs , 2009, Formal Aspects of Computing.

[39]  Graeme Smith,et al.  Compositional Class Refinement in Object-Z , 2006, FM.

[40]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).