Managing the Quality of UML Models in Practice

Managing the Quality of UML Models in Practice

Ariadi Nugroho (Leiden University, The Netherlands)
Copyright: © 2009 |Pages: 36
DOI: 10.4018/978-1-60566-006-6.ch001
OnDemand PDF Download:


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 come from Boehm (1976) and McCall (1977). Works in this field of quality models have traditionally focused on quality of the final software product. Since the 1970’s models of software have been used and this has recently attracted much attention through the popularity of model-driven software development (MDSD). However, quality of software models has rarely been considered (Lange & Chaudron, 2005). In the software development life cycle, the ability to assure software quality long before the testing phase may save a lot of money since less defects found in the testing phase will mean less effort to be allocated for rework. Currently, the importance of model quality is starting to gain attention from computer scientists. Work in this area has since focused on developing tools, metrics, and frameworks to improve the quality of models that guide implementation, particularly in the context of UML modeling which has become the de facto standard for building object oriented software. Quality of models can be considered from many different perspectives. In this chapter, we will consider the following perspectives: Firstly, is the model complete in the sense that it describes the information that developers need to know about a system? Secondly, we look at the degree in which a model of a system and an implementation correspond. This degree of correspondence indicates to what extent analyses of—or predictions based on the model are valid for the implementation. We present the main findings from case studies into quality of modeling in the software industry as well as findings from a survey amongst professional software developers. We also provide a discussion on the contemporary methods for design quality assessments.
Chapter Preview


Despite the fact that the notions of good quality software have been around since four decades ago, many software companies are still struggling to get their software product into production without numerous defects. Defects can be interpreted as deviation from specification or expectation (Fenton & Neil, 1999).

Since defects will eventually affect the operation of software as the final product, the discussion on defects cannot neglect the notion of software quality. In general terms, the notion of quality is the absence of defects. Thus, if defect means deviations from specification or expectation, we can perceive quality as a conformance to specification and requirements/expectations.

In their search of qualifying aspects in software quality, computer scientists have come up with quality models that are generally constructed by quantitative approaches. Two of the most renowned quality models came from the work of Boehm, Brown, and Lipow (1976) and McCall, Richards, and Walters (1977). Boehm’s quality model is shown in Figure 1.

Figure 1.

Boehm’s quality model (©2007 Ariadi Nugroho. Used with permission)

While quality models are generally more focused on the quality characteristics of the final software product, many efforts have been devoted to prescribe standard procedures and processes so that eventually software will have the quality attributes as have been defined in many quality models. In this regard, SEI (Software Engineering Institute) has come up with the Capability Maturity Model (CMM) that is currently becoming the de facto standard in the area of software process improvement to achieve good quality software (Runeson & Isacsson, 1998).

The CMM prescribes five evolutionary stages, i.e. Initial, Repeatable, Defined, Managed, and Optimizing, which indicate the maturity level of an organization’s software process. The CMM is particularly important to mention here because it defines software quality assurance as one of the key process areas in CMM level 2. The key components of the CMM’s quality assurance is the presence of review and audit to assess the compliance of software process and the resulted products to a defined standards and procedures from which manager can react upon.

Another quality model that deserves attention is the ISO 9126. This quality model is based on McCall’s model. Figure 2 illustrates the ISO 9126 quality model.

Figure 2.

The ISO 9126 (©2007 Ariadi Nugroho. Used with permission)

Below are the main two concepts that are important in concluding our discussion on software quality. Figure 3 visualizes how these two concepts are put into the perspective of software development:

  • 1.

    Software quality model is a set of software quality characteristics and their associations. These characteristics are generally quantifiable so that eventually a quality model can be a basis for assessing the quality of software products. Consequently, the nature of quality models is more product-oriented, i.e. in the form of final software product or transitional products of certain phases in the software development lifecycle.

  • 2.

    The effort to assure that software will have certain quality attributes have led to the emergence of the so-called Software Quality Assurance. Instead of focusing merely on the products, SQA also put emphasis on the procedures and activities to assure the quality of the final products. It defines sets of activities or procedures to monitor and control a product during its development lifecycle so that at the end it will possess the expected quality attributes.

    Figure 3.

    SQA and software quality assessment in software development (©2007 Ariadi Nugroho. Used with permission)

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