Page 167 -
P. 167
8 - PROJECT QUALITY MANAGEMENT
For some domains and kinds of software, model-driven development (MDD) can be used to improve software
quality by automatically generating code skeletons from specifications expressed in suitable notations. This reduces
the amount of error-prone coding. Model-driven development involves generating substantial parts of software
from “models” written in languages such as unified modeling language (UML) and/or domain-specific languages.
Configuration management (CM) also plays a significant role in controlling quality during software development.
CM provides routine and consistent checks to ensure the integrity, correctness, and completeness of each software
build, often based on execution of prepared scripts. Enforced configuration control avoids the problems that arise
when more than one developer works on the same module of code at the same time. Several tools working
together usually automate configuration management. Control of different versions of each source file document,
script, and the “configurations” (i.e., sets of these items that belong together) is accomplished using configuration
management tools. These tools can also manage the different ways that components are put together to create
different end products in a software product line or software product family.
CM tools can also be used to track the defects and other issues related to the software, plus the resolution
of these issues. Some CM tools are available as free open-source products and some are commercial products.
IEEE Standard 828 – Configuration Management in Systems and Software Engineering [33] provides guidance on
all aspects of configuration control for systems and software.
SQC can also be used to identify record, analyze, and treat software defects. Software defects may be classified
for severity (i.e., the impact on the user), urgency (i.e., the importance to users, often designated as “priority”), root
cause of the defect, or location of the defect in the software code. In addition, defect find/fix data provides a
statistical basis for assessing the level of stability or instability of a software system at a point in time.
8.3.2.1 Seven Basic Quality Tools
See Section 8.3.2.1 of the PMBOK Guide.
®
SQC uses most of the quality tools described in Section 8.3.2.1 of the PMBOK Guide; in particular, control
®
charts, run charts, Pareto charts, and histograms. These charts help the software manager to visualize data and
discern patterns and causes. In particular, they can be applied to the analysis of defect patterns in software, thus
providing the basis to identify areas for preventative improvements.
Run charts and control charts are two of the most commonly used tools for quality control of software projects
and products. A run chart is a control chart without upper and lower control limits; it is often used to track defects
over time. The numbers of defects found each week (or day) is plotted along a time axis. A run chart shows trends,
such as declining numbers of defects found as the product gains stability. A control chart is a run chart with upper
and lower control limits that can be specified using statistical techniques or rules of thumb. An upper control
limit of 5 may be specified for the number of serious defects found during software inspections. Exceeding the
control limit on two successive inspections could trigger an investigation to determine corrective action to improve
quality control processes. A lower control limit of 2 might be specified. Finding fewer than 2 serious defects during
two successive inspections would trigger an investigation to determine whether the inspection process needs
158 ©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition
®