UML2Alloy: a challenging model transformation

Alloy is a formal language, which has been applied to modelling of systems in a wide range of application domains. It is supported by Alloy Analyzer, a tool, which allows fully automated analysis. As a result, creating Alloy code from a UML model provides the opportunity to exploit analysis capabilities of the Alloy Analyzer to discover possible design flaws at early stages of the software development. Our research makes use of model based techniques for the automated transformation of UML class diagrams with OCL constraints to Alloy code. The paper demonstrates challenging aspects of the model transformation, which originate in fundamental differences between UML and Alloy. We shall discuss some of the differences and illustrate their implications on the model transformation process. The presented approach is explained via an example of a secure e-business system.

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

[2]  Derek Rayside,et al.  Automating commutativity analysis at the design level , 2004, ISSTA '04.

[3]  John Swarbrooke,et al.  Case Study 18 – Las Vegas, Nevada, USA , 2007 .

[4]  Chris Wallace,et al.  Using Alloy in process modelling , 2003, Inf. Softw. Technol..

[5]  Jean-Michel Bruel,et al.  Satellite Events at the MoDELS 2005 Conference , 2006 .

[6]  Adam Wolisz,et al.  Formal Techniques for Networked and Distributed Systems - FORTE 2003 , 2003, Lecture Notes in Computer Science.

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

[8]  Robert B. France,et al.  Using Alloy and UML/OCL to Specify Run-Time Configuration Management: A Case Study , 2001, pUML.

[9]  Jürgen Dingel,et al.  Package merge in UML 2: practice vs. theory? , 2006, MoDELS'06.

[10]  Ivar Jacobson,et al.  Unified Modeling Language , 2020, Definitions.

[11]  Martin Gogolla,et al.  Transformation Rules for UML Class Diagrams , 1998, UML.

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

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

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

[15]  Mikael Lindvall in Software Engineering , 2002 .

[16]  Daniel Jackson,et al.  Some Shortcomings of OCL, the Object Constraint Language of UML , 2000, TOOLS.

[17]  Soon-Kyeong Kim,et al.  A metamodel-based approach to integrate object-oriented graphical and formal specification techniques , 2002 .

[18]  Yujing He Comparison of the Modeling Languages Alloy and UML , 2006, Software Engineering Research and Practice.

[19]  Giuseppe Pelagatti,et al.  Formal semantics of SQL queries , 1991, TODS.

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

[21]  Robert B. France,et al.  Towards Formal Reasoning with UML , 1999 .

[22]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[23]  Dirk Draheim,et al.  Trends in Enterprise Application Architecture, 2nd International Conference, TEAA 2006, Berlin, Germany, November 29 - December 1, 2006, Revised Selected Papers , 2007, TEAA.

[24]  Manuel Wimmer,et al.  Bridging Grammarware and Modelware , 2005, MoDELS Satellite Events.

[25]  W. Gareth J. Howells,et al.  SiTra: simple transformations in Java , 2006, MoDELS'06.

[26]  Mark Richters,et al.  A precise approach to validating UML models and OCL constraints , 2002 .

[27]  Behzad Bordbar,et al.  MDA and Analysis of Web Applications , 2005, TEAA.

[28]  Mana Taghdiri,et al.  A Lightweight Formal Analysis of a Multicast Key Management Scheme , 2003, FORTE.