A Pattern Approach to Increasing the Maturity Level of Class Models

A Pattern Approach to Increasing the Maturity Level of Class Models

Michael Wahler (IBM Zurich Research Laboratory, Switzerland)
Copyright: © 2009 |Pages: 32
DOI: 10.4018/978-1-60566-006-6.ch009
OnDemand PDF Download:


Class models are typically specified at a high level of abstraction and subsequently refined with textual constraints to obtain higher maturity levels. This task requires significant expertise and effort because constraints must be elicited and formalized. In this chapter, we identify typical refinement problems for class models that threaten model quality and show how a list of refinement tasks can be automatically compiled from a given model. We present constraint patterns that help to carry out these tasks semiautomatically and introduce a tool prototype for our approach.
Chapter Preview

1. Introduction

Models have been used in software engineering for illustration and documentation purposes for a long time. In the past few years, model-driven development approaches such as Model-Driven Engineering (MDE) have become popular, and with these approaches, models have enormously gained importance. Still used for illustration, models now also serve as semantic foundation for the development of whole systems in certain domains: they are abstract representations of various aspects of a system and drive the development process. This new role requires a certain degree of formality for the syntax and the semantics of models: Whereas it was sufficient for the syntax and the semantics to be intuitively understandable in the age of “models-as-illustrations”, they need to be formally specified in the MDE age because they are the basis of the generated code.

In MDE, the abstract syntax of a modeling language is defined by a meta-model, which is usually a class model that graphically specifies the elements of a modeling language, such as classes and their properties, and the dependencies between these elements. The dependencies between classes are especially important in this refinement: Since each model that complies with its meta-model must be a valid abstraction of the system, the dependencies between elements in the model must be precisely captured in the meta-model. Whereas these dependencies can only be coarsely constrained within the graphical model itself, textual constraint languages such as the Object Constraint Language (OCL) (Object Management Group (OMG), 2003) are used to express details about the dependencies.

Adding textual constraints to a class model rules out invalid instances, which increases the maturity level of the class model (Kleppe and Warmer, 2003). For visualizing this idea, we use a function I that maps a set of concepts to the set of all possible objects for these concepts. In particular, I(M) denotes the set of all objects in all possible instances of a model M and I(R) denotes the set of all possible objects in a real system. Figure 1 a) visualizes a model M with a low maturity level: A large part of I(M) is not inside I(R), i.e., I(M) contains many elements that are not representations of the real system. By adding constraints to M, a model M’ can be developed with a higher maturity level. Figure 1 b) shows that there are less elements in the set I(M’) − I(R), which means that significantly less invalid instances can be derived from M’ than from M. Thus, M’ has a higher maturity level than M.

Figure 1:

Visualization of model maturity levels.

In this chapter, we focus on increasing the maturity level of models as one important quality aspect. Thus, the aim of this chapter is to identify a number of causes for low maturity levels of models in early stages of development, show how these causes can be found in a given model, and offer solutions to refine the model and increase its maturity level. We focus on reducing the size of I(M)−I(R) and provide general guidelines for creating class models of a high maturity level and thus, a high quality.

In order to refine a given class model, it must be thoroughly analyzed by the model developer. However, not all causes for low maturity may be detected manually, which can cause serious problems in the MDE process because the generated code may cause runtime exceptions. To simplify and partly automate model analysis, we have identified recurring problems in class models that require refinement by textual constraints. The first objective of this chapter is to present these problems, show examples of how they threaten the maturity of class models, and introduce tool support for their automatic detection.

Complete Chapter List

Search this Book:
Table of Contents
Colin Atkinson
Jörg Rech, Christian Bunse
Jörg Rech, Christian Bunse
Chapter 1
Ariadi Nugroho
Many studies have been carried out to investigate what makes up good quality software. Some of the early models that define the quality of software... Sample PDF
Managing the Quality of UML Models in Practice
Chapter 2
Teade Punter, Jeroen Voeten
This chapter argues that embedded systems design faces several challenges of which late integration and the difference in development productivity... Sample PDF
Quality in Model Driven Engineering
Chapter 3
Examples and Evidence  (pages 57-77)
Sowmya Karunakaran
This chapter aims at highlighting the increased development productivity and quality that can be achieved by Model Driven Software Development... Sample PDF
Examples and Evidence
Chapter 4
Anna E. Bobkowska
Successful realization of the model-driven software development visions in practice requires high quality models. This chapter focuses on the... Sample PDF
Integrating Quality Criteria and Methods of Evaluation for Software Models
Chapter 5
Heiko Koziolek, Steffen Becker, Ralf Reussner, Jens Happe
Techniques from model-driven software development are useful to analyse the performance of a software architecture during early development stages.... Sample PDF
Evaluating Performance of Software Architecture Models with the Palladio Component Model
Chapter 6
Esther Guerra, Juan de Lara, Paloma Díaz
The goal of this work is to facilitate the task of integrating measurement and redesign tools in modelling environments for Domain Specific Visual... Sample PDF
Integrating Measures and Redesigns in the Definition of Domain Specific Visual Languages
Chapter 7
Measuring Models  (pages 147-169)
Martin Monperrus, Jean-Marc Jézéquel, Joël Champeau, Brigitte Hoeltzener
Model-Driven Engineering (MDE) is an approach to software development that uses models as primary artifacts, from which code, documentation and... Sample PDF
Measuring Models
Chapter 8
Tom Mens, Gabriele Taentzer, Dirk Müller
In this chapter, we explore the emerging research domain of model-driven software refactoring. Program refactoring is a proven technique that aims... Sample PDF
Model-Driven Software Refactoring
Chapter 9
Michael Wahler
Class models are typically specified at a high level of abstraction and subsequently refined with textual constraints to obtain higher maturity... Sample PDF
A Pattern Approach to Increasing the Maturity Level of Class Models
Chapter 10
Miroslaw Staron
Introducing Model Driven Software Development (MDSD) into industrial projects is rarely done as a “green field” development. The usual path is to... Sample PDF
Transitioning from Code-Centric to Model-Driven Industrial Projects: Empirical Studies in Industry and Academia
Chapter 11
Antonio Bucchiarone, Davide Di Ruscio, Henry Muccini, Patrizio Pelliccione
When engineering complex and distributed software and hardware systems (increasingly used in many sectors, such as manufacturing, aerospace... Sample PDF
From Requirements to Java Code: An Architecture-Centric Approach for Producing Quality Systems
Chapter 12
Silvia Abrahão, Marcela Genero, Emilio Insfran, José Ángel Carsí, Isidro Ramos, Mario Piattini
Model-Driven Architecture (MDA) is a software engineering approach that promotes the use of models and model transformations as primary development... Sample PDF
Quality-Driven Model Transformations: From Requirements to UML Class Diagrams
Chapter 13
Pankaj Kamthan
As software systems become ever more interactive, there is a need to model the services they provide to users, and use cases are one abstract way of... Sample PDF
A Framework for Understanding and Addressing the Semiotic Quality of Use Case Models
Chapter 14
Stefan Wagner, Florian Deissenboeck, Stefan Teuchert, Jean-François Girard
In model-driven software development as much as in classical code-driven development maintenance costs make up the bulk of the total life cycle... Sample PDF
Assuring Maintainability in Model-Driven Development of Embedded Systems
Chapter 15
Tibor Farkas
Premium quality and innovation are the cornerstones of the leading positions of car manufacturers and suppliers in the world market. The permanently... Sample PDF
Quality Improvement in Automotive Software Engineering Using a Model-Based Approach
Chapter 16
Claus Pahl, Boškovic Marko, Ronan Barrett, Wilhelm Hasselbring
Service engineering and service-oriented architecture as an integration and platform technology is a recent approach to software systems... Sample PDF
Quality-Aware Model-Driven Service Engineering
Chapter 17
Sven Abels, Wilhelm Hasselbring, Niels Streekmann, Mathias Uslar
This chapter introduces model-driven integration in complex information systems by giving two practical examples. It relies on the experiences the... Sample PDF
Model-Driven Integration in Complex Information Systems: Experiences from Two Scenarios
Chapter 18
Jane M.C. Oh
This chapter examines the experience of using model-based design in the context of development of critical software. The software is being developed... Sample PDF
High-Quality Software Models of the Mid-Infrared Instrument for the James Webb Space Telescope
About the Contributors