Skip to main content

2012 | Buch

Formal Methods for Model-Driven Engineering

12th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM 2012, Bertinoro, Italy, June 18-23, 2012. Advanced Lectures

herausgegeben von: Marco Bernardo, Vittorio Cortellessa, Alfonso Pierantonio

Verlag: Springer Berlin Heidelberg

Buchreihe : Lecture Notes in Computer Science

insite
SUCHEN

Über dieses Buch

This book presents 11 tutorial lectures by leading researchers given at the 12th edition of the International School on Formal Methods for the Design of Computer, Communication and Software Systems, SFM 2012, held in Bertinoro, Italy, in June 2012. SFM 2012 was devoted to model-driven engineering and covered several topics including modeling languages; model transformations, functional and performance modeling and analysis; and model evolution management.

Inhaltsverzeichnis

Frontmatter
The Less Well Known UML
A Short User Guide
Abstract
The general perception and opinion of the Unified Modeling Language in the minds of many software professionals is colored by its early versions. However, the language has evolved into a qualitatively different tool: one that not only supports informal lightweight sketching in early phases of development, but also full implementation capability, if desired. Unfortunately, these powerful new capabilities and features of the language remain little known and are thus underutilized. In this article, we first review how UML has changed over time and what new value it can provide to practitioners. Next, we focus on and explain one particularly important new modeling capability that is often overlooked or misrepresented and explain briefly what is behind it and how it can be used to advantage.
Bran Selic
MDE Basics with a DSL Focus
Abstract
Small languages are gaining popularity in the software engineering community. The development of MOF and EMF has given the Domain Specific Language community a tremendous boost. In this tutorial the basic aspects of model driven engineering in combination with Domain Specific Languages will be discussed. The focus is on textual Domain Specific Languages developed using the language invention pattern. The notion of abstract syntax will be linked to metamodels as well as the definition of concrete syntax. Defining static and dynamic semantics will be discussed. A small but non trivial Domain Specific Language SLCO will be used to illustrate our ideas.
Suzana Andova, Mark G. J. van den Brand, Luc J. P. Engelen, Tom Verhoeff
Object Constraint Language (OCL): A Definitive Guide
Abstract
The Object Constraint Language (OCL) started as a complement of the UML notation with the goal to overcome the limitations of UML (and in general, any graphical notation) in terms of precisely specifying detailed aspects of a system design. Since then, OCL has become a key component of any model-driven engineering (MDE) technique as the default language for expressing all kinds of (meta)model query, manipulation and specification requirements. Among many other applications, OCL is frequently used to express model transformations (as part of the source and target patterns of transformation rules), well-formedness rules (as part of the definition of new domain-specific languages), or code-generation templates (as a way to express the generation patterns and rules).
This chapter pretends to provide a comprehensive view of this language, its many applications and available tool support as well as the latest research developments and open challenges around it.
Jordi Cabot, Martin Gogolla
Model Transformations
Abstract
In recent years, Model-Driven Engineering has taken a leading role in advancing a new paradigm shift in software development. Leveraging models to a first-class status is at the core of this methodology. Shifting the focus of software development from coding to modeling permits programs to transform models in order to generate other models which are amenable for a wide range of purposes, including code generation. This paper introduces a classification of model transformation approaches and languages, illustrating the characteristics of the most prominent ones. Moreover, two specific application scenarios are proposed to highlight bidirectionality and higher-order transformations in the change propagation and coupled evolution domains, respectively.
Davide Di Ruscio, Romina Eramo, Alfonso Pierantonio
Graph Transformations for MDE, Adaptation, and Models at Runtime
Abstract
Software evolution and the resulting need to continuously adapt the software is one of the main challenges for software engineering. The model-driven development movement therefore aims at improving the longevity of software by keeping the development artifacts more consistent and better changeable by employing models and to a certain degree automated model operations. Another trend are systems that tackle the challenge at runtime by being able to adapt their structure and behavior to be more flexible and operate in more dynamic environments (e.g., context-aware software, autonomic computing, self-adaptive software). Finally, models at runtime, where the benefits of model-driven development are employed at runtime to support adaptation capabilities, today lead towards a unification of both ideas.
In this paper, we present graph transformations and show that they can be employed to engineer solutions for all three outlined cases. Furthermore, we will even be able to demonstrate that graph transformation based technology has the potential to also unify all three cases in a single scenario where models at runtime and runtime adaptation is linked with classical MDE. Therefore, we at first provide an introduction in graph transformations, then present the related techniques of Story Pattern and Triple Graph Grammars, and demonstrate how with the help of both techniques model transformations, adaptation behavior and runtime model framework work. In addition, we show that due to the formal underpinning analysis becomes possible and report about a number of successful examples.
Holger Giese, Leen Lambers, Basil Becker, Stephan Hildebrandt, Stefan Neumann, Thomas Vogel, Sebastian Wätzoldt
Abstractions for Validation in Action
Abstract
Many software engineering artefacts, such as source code or specifications, define a set of operations and impose restrictions to the ordering on which they have to be invoked. Enabledness Preserving Abstractions (EPAs) are concise representations of the behaviour space for such artefacts. In this paper, we exemplify how EPAs might be used for validation of software engineering artefacts by showing the use of EPAs to support some programming tasks on a simple C# class.
Guido de Caso, Victor Braberman, Diego Garbervetsky, Sebastian Uchitel
Software Performance Modeling
Abstract
Ideally, a software development methodology should include both the ability to specify non-functional requirements and to analyze them starting early in the lifecycle; the goal is to verify whether the system under development would be able to meet such requirements. This chapter considers quantitative performance analysis of UML software models annotated with performance attributes according to the standard “UML Profile for Modeling and Analysis of Real-Time and Embedded Systems” (MARTE). The chapter describes a model transformation chain named PUMA (Performance by Unified Model Analysis) that enables the integration of performance analysis in a UML-based software development process, by automating the derivation of performance models from UML+MARTE software models, and by facilitating the interoperability of UML tools and performance tools. PUMA uses an intermediate model called “Core Scenario Model” (CSM) to bridge the gap between different kinds of software models accepted as input and different kinds of performance models generated as output. Transformation principles are described for transforming two kinds of UML behaviour representation (sequence and activity diagrams) into two kinds of performance models (Layered Queueing Networks and stochastic Petri nets). Next, PUMA extensions are described for two classes of software systems: service-oriented architecture (SOA) and software product lines (SPL).
Dorina C. Petriu, Mohammad Alhaj, Rasha Tawhid
Model Transformations in Non-functional Analysis
Abstract
The quality assessment of software design models in early development phases can prevent wrong design decisions on the architectural level. As such wrong decisions are usually very cost-intensive to revert in late testing phases, model-driven quality predictions offer early quality estimates to prevent such erroneous decisions. By model-driven quality predictions we refer to analyses which run fully automated based on model-driven methods and tools. In this paper, we give an overview on the process of model-driven quality analyses used today with a special focus on issues that arise in fully automated approaches.
Steffen Becker
Software Performance Antipatterns: Modeling and Analysis
Abstract
The problem of capturing performance problems is critical in the software design, mostly because the results of performance analysis (i.e. mean values, variances, and probability distributions) are difficult to be interpreted for providing feedback to software designers. Support to the interpretation of performance analysis results that helps to fill the gap between numbers and design alternatives is still lacking. The aim of this chapter is to present the work that has been done in the last few years on filling such gap. The work is centered on software performance antipatterns, that are recurring solutions to common mistakes (i.e. bad practices) affecting performance. Such antipatterns can play a key role in the software performance domain, since they can be used in the investigation of performance problems as well as in the formulation of solutions in terms of design alternatives.
Vittorio Cortellessa, Antinisca Di Marco, Catia Trubiani
An Introduction to Model Versioning
Abstract
With the emergence of model-driven engineering (MDE), software models are considered as central artifacts in the software engineering process, going beyond their traditional use as sketches. In MDE, models rather act as the single source of information for automatically generating executable software. This shift poses several new research challenges. One of these challenges constitutes model versioning, which targets at enabling efficient team-based development of models. This compelling challenge induced a very active research community, who yielded remarkable methods and techniques ranging from model differencing to merging of models.
In this tutorial, we give an introduction to the foundations of model versioning, the underlying technologies for processing models and their evolution, as well as the state of the art in model versioning. Thereby, we aim at equipping students and researchers alike that are new to this domain with enough information for commencing to contribute to this challenging research area.
Petra Brosch, Gerti Kappel, Philip Langer, Martina Seidl, Konrad Wieland, Manuel Wimmer
Formal Specification and Testing of Model Transformations
Abstract
In this paper we present some of the key issues involved in model transformation specification and testing, discuss and classify some of the existing approaches, and introduce the concept of Tract, a generalization of model transformation contracts. We show how Tracts can be used for model transformation specification and black-box testing, and the kinds of analyses they allow. Some representative examples are used to illustrate this approach.
Antonio Vallecillo, Martin Gogolla, Loli Burgueño, Manuel Wimmer, Lars Hamann
Backmatter
Metadaten
Titel
Formal Methods for Model-Driven Engineering
herausgegeben von
Marco Bernardo
Vittorio Cortellessa
Alfonso Pierantonio
Copyright-Jahr
2012
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-30982-3
Print ISBN
978-3-642-30981-6
DOI
https://doi.org/10.1007/978-3-642-30982-3