Inconsistency Management in Model-driven Software Engineering. An Approach using Description Logic.

Research output: ThesisPhD Thesis

Abstract

Model-driven engineering (MDE) is an approach to software development where the primary focus is on models, as opposed to source code. Models are built representing different views on a software system. Models can be refined, evolved into a new version, and can be used to generate executable code. The ultimate goal is to raise the level of abstraction, and to develop and evolve complex software systems by manipulating models only. The manipulation of models is achieved by means of model transformation. Because model-driven engineering is still in its infancy, there is a need for sophisticated formalisms, techniques and associated tools supporting model development, evolution and transformation. The main concern of the research presented in this dissertation, is the definition, detection and resolution of model inconsistencies. We focus on two aspects of these activities: defining inconsistencies and resolutions, and a feasibility study of Description Logics (DLs) as a formalism for supporting these activities. Since the Unified Modeling Language (UML) is the generally accepted object-oriented modelling language, it ought to play an essential role in MDE. A software design is typically specified as a collection of different UML diagrams. Because different aspects of the software system are covered by different UML diagrams, there is an inherent risk that the overall specification of the system is inconsistent. Also model transformations, such as (arbitrary) model evolutions, can transform a model into an inconsistent state. Unfortunately, current-day UML CASE tools provide poor support for managing inconsistencies between (evolving) UML models. Inconsistency management is a complex process consisting of different activities. It is a well-studied process that is also well-known within software engineering. However, in the UML context, little research has been done taking into account a wide range of inconsistencies over different kinds of UML diagrams. Inconsistency management in the UML context, is quite complicated due several reasons. The most obvious reasons are the missing formal semantics for the UML and the UML being a general purpose language that can be applied to several application domains and in several software development processes. To be able to define the occurrence of UML model inconsistencies in a precise and unambiguous way, there is first of all a need to formalise the UML's abstract syntax and concepts. A first contribution is to formalise an important fragment of the abstract syntax. The studied UML fragment allows the specification of the static structure of an application and the specification of behaviour of individual objects and the possible interactions between objects. As a second contribution, we propose a classification of inconsistencies. These inconsistencies are defined based on our formalisation. Inconsistency management, as a process, also includes the activity of resolving inconsistencies. Different resolution strategies are known in literature. The resolution of inconsistencies gives rise to some particular challenges. We give an overview of these challenges in the context of our classified inconsistencies. From the formalisation of a fragment of the UML abstract syntax, from our classification of inconsistencies, from the definition of different inconsistencies and from the different resolution strategies, we distil a set of key criteria. The requirements for each of these criteria can be used to evaluate a formalism and tool support supporting detection and resolution of inconsistencies. Through the second focus of this dissertati
Original languageEnglish
Awarding Institution
  • Vrije Universiteit Brussel
Supervisors/Advisors
  • Mens, Tom, Co-Supervisor, External person
  • Jonckers, Viviane, Supervisor
Place of PublicationBrussels
Publication statusPublished - 2005

Keywords

  • Description Logics

Fingerprint

Dive into the research topics of 'Inconsistency Management in Model-driven Software Engineering. An Approach using Description Logic.'. Together they form a unique fingerprint.

Cite this