Round-trip support for extra-functional property management in model-driven engineering of embedded systems Federico Ciccozzi , Antonio Cicchetti, Mikael Sjödin School of Innovation, Design and Engineering (IDT), MRTC, Mälardalen University, Västerås, Sweden article info Article history: Available online 1 August 2012 Keywords: Model-driven engineering Code generation Back-propagation Model transformations Traceability Extra-functional properties abstract Context: In order for model-driven engineering to succeed, automated code generation from models through model transformations has to guarantee that extra-functional properties specified at design level are preserved at code level. Objective: The goal of this research work is to provide a full round-trip engineering approach in order to evaluate quality attributes of the embedded system by code execution monitoring as well as code static analysis and then provide back-propagation of the resulting values to modelling level. In this way, prop- erties that can only be roughly estimated statically are evaluated against observed values and this con- sequently allows to refine the design models for ensuring preservation of analysed extra-functional properties at code level. Method: Following the model-driven engineering vision, (meta-) models and transformations are used as main artefacts for the realisation of the round-trip support which is finally validated against an industrial case study. Result: This article presents an approach to support the whole round-trip process starting from the gen- eration of source code for a target platform, passing through the monitoring of selected system quality attributes at code level, and finishing with the back-propagation of observed values to modelling level. The technique is validated against an industrial case study in the telecommunications applicative domain. Conclusion: Preservation of extra-functional properties through appropriate description, computation and evaluation makes it possible to reduce final product verification and validation effort and costs by generating correct-by-construction code. The proposed round-trip support aids a model-driven compo- nent-based development process in ensuring a desired level of extra-functional properties preservation from the source modelling artefacts to the generated code. Ó 2012 Elsevier B.V. All rights reserved. 1. Introduction The increasing complexity of modern software systems de- mands adequate development techniques able to reduce the com- plexity of the problem, allow to focus on the aspects that matter in the design of the application, and permit to reason about model aspects in domain-specific terms. In this respect, Model-Driven Engineering (MDE) aims to assist the system development by creat- ing, manipulating and maintaining models that provide abstrac- tions of real phenomena with an intended purpose [1]. Rules and constraints for building a model have to be properly stated through a corresponding language definition. In this respect, a meta-model describes the set of available concepts and well-formedness rules a correct model must conform to [2]. A system is developed by refining models through model transformations starting from high- er and moving to lower levels of abstraction until code is generated. A model transformation converts a source model to a target model preserving their conformance to their respective meta-models [3]. One of the major ambitions of MDE is to provide automated code generation to be executed on specific target platforms; how- ever, this goal is too often seen as the very final step of an MDE ap- proach [4]. On the one hand, preservation of Extra-Functional Properties (EFPs) throughout the development process by means of appropriate description and verification is of paramount impor- tance since it allows to reduce final product verification and valida- tion effort and costs by providing correctness-by-construction [5]. On the other hand, certain EFPs (e.g.,‘‘worst-case execution time’’) specified at modelling level may not be preserved at code level they cannot be accurately determined without code execution [6]; that is the reason for which these properties need to be mea- sured at code level through monitoring and analysis activities [7]. It is important to notice that we refer to the abstraction level called 0950-5849/$ - see front matter Ó 2012 Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/j.infsof.2012.07.014 Corresponding author. E-mail addresses: federico.ciccozzi@mdh.se (F. Ciccozzi), antonio.cicchetti@ mdh.se (A. Cicchetti), mikael.sjodin@mdh.se (M. Sjödin). Information and Software Technology 55 (2013) 1085–1100 Contents lists available at SciVerse ScienceDirect Information and Software Technology journal homepage: www.elsevier.com/locate/infsof