On challenges of model transformation from UML to Alloy

Kyriakos Anastasakis, Behzad Bordbar, Geri Georg, Indrakshi Ray
<span title="2008-12-12">2008</span> <i title="Springer Nature"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/dfdth37zyfetvchsdjk5e2osrq" style="color: black;">Journal of Software and Systems Modeling</a> </i> &nbsp;
The Unified Modeling Language (UML) is the de facto language used in the industry for software specifications. Once an application has been specified, Model Driven Architecture (MDA) techniques can be applied to generate code from such specifications. Since implementing a system based on a faulty design requires additional cost and effort, it is important to analyse the UML models at earlier stages of the software development lifecycle. This paper focuses on utilizing MDA techniques to deal
more &raquo; ... the analysis of UML models and identify design faults within a specification. 2 Kyriakos Anastasakis et al. Specifically, we show how UML models can be automatically transformed into Alloy which, in turn, can be automatically analysed by the Alloy Analyzer. The proposed approach relies on MDA techniques to transform UML models to Alloy. This paper reports on the challenges of the model transformation from UML class diagrams and OCL to Alloy. Those issues are caused by fundamental differences in the design philosophy of UML and Alloy. To facilitate better the representation of Alloy concepts in the UML, the paper draws on the lessons learnt and presents a UML profile for Alloy. 4 Kyriakos Anastasakis et al. navigation expression will either return an undefined value or the empty set. Because of these differences, model transformation from UML to Alloy has proved to be very challenging. Our earlier paper [8] has outlined some of the challenges of the model transformation from UML class diagrams and OCL to Alloy. This paper extends our previous work, by discussing further challenges related to object identifiers (Section 6.1), multiple inheritance (Section 6.3) and supported collection constructs (Section 6.4). The transformation rules from UML and OCL to Alloy are presented in more details and the case study presented here is explained in more depth. Moreover this paper presents a UML profile for Alloy to allow the representation of Alloy concepts in the UML. The paper is organised as follows. Section 2 presents an overview of basic concepts in this paper, such as the MDA and Alloy. Section 3 demonstrates our work on the definition of the transformation rules from UML to Alloy. An example of a secure e-business system, on which we have applied our approach is presented in Section 4 and Section 5 presents the transformation rules from UML and OCL to Alloy. Section 6 illustrates some of the most important issues involved in the transformation. Section 7 describes a UML profile for Alloy, developed to allow the representation of Alloy concepts in UML. An outline of our implementation and a presentation of how our method can be used to analyse the secure e-business system, can be found in Section 8. Section 9 elaborates further on some issues of the transformation On Challenges of Model Transformation from UML to Alloy 5 and provides pointers to future work. Finally, Section 10 presents approaches related to ours and Section 11 concludes the paper. Preliminaries This section provides a brief introduction to the basic concepts of the MDA and Alloy, which will be used in the rest of the paper. Model Driven Architecture: The method adopted in this paper makes use of Model Driven Architecture (MDA) [33] techniques for defining and implementing the transformations from models captured in the UML class diagrams and OCL into Alloy. Central to the MDA is the notion of metamodels [40]. A metamodel defines the elements of a language, which can be used to represent a model of the language. Figure 1 depicts how a model transformation in the MDA is carried out. In particular, a model transformation is defined by mapping the constructs of the metamodel of a source language into constructs of the metamodel of a destination language. Then every model, which is an instance of the source metamodel, can be automatically transformed to an instance of the destination metamodel with the help of a model transformation framework [6, 31]. Alloy: Alloy [30] is a textual modelling language based on first-order relational logic. An Alloy model consists of a number of signature declarations, fields, facts and predicates. Each signature denotes a set of atoms, which are the basic entities in Alloy. Atoms are indivisible (they cannot be di-
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/s10270-008-0110-3">doi:10.1007/s10270-008-0110-3</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/mad5dtauxzgt5f5gjvbjezgkgi">fatcat:mad5dtauxzgt5f5gjvbjezgkgi</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170706071337/http://www.cs.colostate.edu/%7Eiray/research/papers/sosym10.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/a2/99/a299cec094a3634e0a7114aba9b92f97b56234a8.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/s10270-008-0110-3"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> springer.com </button> </a>