Abstract
Assessing and Improving the Quality of Modeling
A Series of Empirical Studies about the UML
This thesis addresses the assessment and improvement of the quality of modeling
in software engineering. In particular, we focus on the Unified Modeling Language
(UML), which is the de facto standard in industrial practice. The language is used
for a wide variety of purposes, such as specification, maintenance, comprehension,
communication, test case generation, and code generation. The UML has some
inherent characteristics, that cause risks to the quality of UML modeling. The
characteristics of interest in this thesis are its lack of a formal semantics, its multidiagram
architecture, and its large complexity. These characteristics can lead to
quality problems with respect to correctness, comprehensibility, consistency, nonredundancy,
completeness, or unambiguity. In this thesis we assess the quality of
modeling in practice, and we provide and evaluate techniques to improve the quality
of modeling. We conducted three large-scale experiments with 365 participants
in total. Additionally a series of industrial case studies was conducted.
To define the notion of quality that is used throughout this thesis, we present a
framework that is based on existing work. The framework decomposes quality of
models into the following quality notions: system, semantic, syntactic, pragmatic,
social, and communicative quality, and correspondence between the model and
the implementation. We use these notions throughout the thesis to denote which
aspect of quality is addressed in each of the presented studies. Additionally, we
propose a quality model for UML modeling. The purpose of the quality model
is to support developers in selecting metrics and rules to analyze the quality of a
model with respect to a particular purpose of modeling.
We report on a series of industrial case studies. We conducted the case studies
to assess the quality of UML models in practice. The results of the case studies
reveal the frequency of occurrence of defect types in modeling. This knowledge
can be used to focus quality assurance techniques on common quality problems.
Through the case studies we discovered defects in UML models. We conducted
an experiment to study the effects of several of the discovered defect types. The
results of the experiment show that defects often remain undetected by developers.
Furthermore, defects cause a variety of different interpretations of the model
amongst developers and, hence, lead to misinterpretations and miscommunication.
An additional result of the experiment is a classification of defect types with respect
to their likelihood of non-detection and misinterpretation. This objective
classification can be used to prioritize defects, such that removal effort is assigned
to the most severe defects first.
As a preventive quality assurance technique we propose modeling conventions,
similar to coding conventions for programming. Based on a literature review we
provide a classification of modeling conventions. We report on an exploratory experiment
that studied the effectiveness of modeling conventions with respect to
defect prevention and the extra effort entailed by modeling conventions. The results
show a slight improvement with respect to defect occurrences, however, these
results are not statistically significant. The results showing an increase in development
effort are significant. Based on the experiment we provide recommendations
to improve the benefit obtained by using modeling conventions. The recommendations
include improved adherence to the modeling conventions, training and
experience, and developer motivation.
Finally, we propose task-oriented views for UML. Task-oriented views are visualizations
of UML models that support developers by providing the information
that is necessary for a particular task, such as maintenance, comprehension, or
quality analysis. We argue that the existing UML diagram types and existing
UML tools do not provide the required information effectively. For example, it
is tedious to find the relations between model elements in different diagrams and
to relate data such as metrics, bug data, or evolution data to model elements.
We discuss a framework that we used as a basis for creating task-oriented views.
The proposed views are: MetaView, ContextView, MetricView, UML-City-View,
Quality Tree View, and Evolution View. We conducted an experiment to validate
the views with respect to comprehension tasks. The results are very promising
and show that the correctness of comprehension is improved by 4.5% and that the
effort for comprehension is reduced by 20%. The proposed task-oriented views are
implemented in the tool MetricView Evolution.
Original language | English |
---|---|
Qualification | Doctor of Philosophy |
Awarding Institution |
|
Supervisors/Advisors |
|
Award date | 24 Oct 2007 |
Place of Publication | Eindhoven |
Publisher | |
Print ISBNs | 978-90-386-1107-5 |
DOIs | |
Publication status | Published - 2007 |