Towards Automated Transformation of UML/OCL to Prolog for Efficient Configuration of Integrated Control Systems

The configuration of product-lines can be an error-prone and time consuming process. In this thesis we extend on the work by Behjati [A model-based approach to the software configuration of integrated control systems,2012], where a product-line methodology has been proposed. The end goal is to implement a configuration tool that will ease the product-line configuration process. The configuration tool demands two model transformations. The first transformation produces an intermediate model (used internally by the tool) from a product-line model, the implementation of this transformation is fully described in this thesis. The second transformation uses this intermediate model, together with OCL constraints, to produce a logic-program, specified in Prolog. The efficiency of the generated Prolog code is critical for the configuration tool. In this thesis we take steps towards this transformation. We hypothesized that the following aspects of the Prolog code is critical for efficiency: How instances of the intermediate model are represented in Prolog (i.e., the structure of the Prolog query), how associations are represented and resolved, and how the Prolog predicates, representing the intermediate-model and OCL, are organized. We performed a large scale experiment investigating these factors, as well as the impact of instance size, the configuration of attributes (i.e., if values has been set), and impact of changing the OCL constraint sets used. The main findings were the following: Representing the instances as a binary-tree structure, combined with a resolution of associations through id-references, yielded the highest efficiency. Further, condensing the Prolog predicates led to increased efficiency in cases where the individual predicates (i.e., the transformed OCL constraints), shared association-navigations. The configuration of attributes were found to not impact efficiency. Future work can take advantage of these findings to move even closer to getting a fulfilled and efficient transformation to Prolog.

[1]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[2]  Harald Störrle,et al.  MQ-2 A Tool for Prolog-based Model Querying , 2012, ECMFA 2012.

[3]  Jordi Cabot Sagrera,et al.  Verification of UML/OCL Class Diagrams Using Constraint Programming , 2008 .

[4]  Eugene C. Freuder,et al.  Constraint satisfaction using constraint logic programming , 1994 .

[5]  Luís Ferreira Pires,et al.  Performance in Model Transformations: Experiments with ATL and QVT , 2011, ICMT@TOOLS.

[6]  Steven Bosems,et al.  A Performance Analysis of Model Transformations and Tools , 2011 .

[7]  Harald Störrle A Logical Model Query Interface , 2009 .

[8]  Peter Dalgaard,et al.  Introductory statistics with R , 2002, Statistics and computing.

[9]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[10]  Jordi Cabot,et al.  A metric for measuring the complexity of OCL expressions , 2006 .

[11]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[12]  Razieh Behjati A model-based approach to the software configuration of integrated control systems , 2012 .

[13]  Bran Selic,et al.  SimPL: A product-line modeling methodology for families of integrated control systems , 2013, Inf. Softw. Technol..

[14]  Harald Störrle,et al.  A PROLOG-based Approach to Representing and Querying Software Engineering Models , 2007, VLL.

[15]  Christian Bessiere,et al.  Constraint Propagation , 2006, Handbook of Constraint Programming.

[16]  Martin Verlage,et al.  The Economic Impact of Product Line Adoption and Evolution , 2002, IEEE Softw..

[17]  Guided Interactive Configuration of Embedded Software Systems Using Constraint Satisfaction over Finite Domains , 2012 .