Monday, December 12, 2011

Chapter 22

Chapter 22
Software Process and Project Metrics

CHAPTER OVERVIEW AND COMMENTS

This chapter provides an introduction to the use of metrics as a mechanism for improving the software development process and managing software projects. The concepts discussed in this chapter will be difficult for the students to relate to prior to working on a large software project. It is important to expose them to the reasons for using metrics and so that they can appreciate their potential in monitoring development costs and schedules on future projects.

22.1     Metrics in the Process and Project Domains

Measurement is not used in software engineering work as often as it is in other branches of engineering. Software engineers have trouble agreeing on what to measure and have trouble evaluating the measures that are collected. The point to get across to the students is that the only rational way to improve a process is to make strategic decisions based on metrics and indicators developed from measurements of process attributes. Students also need to understand the differences between process metrics and project metrics. Process metrics are used to make strategic decisions about how to complete the common process framework activities. Project metrics are used to monitor progress during software development and to control product quality.

22.2     Software Measurement

In this section the metrics that can help in the management, tracking and control of software projects are introduced. Size-oriented metrics are derived by normalizing quality or productivity measures over the product size (typically LOC or KLOC). Students need to appreciate some weaknesses of LOC as a measure (like language dependency).  Some discussion about what to count in LOC (e.g. executable statements) and what not to count (e.g. comments) might be wise here.

Function points are presented as an example of a method of indirectly measuring functionality using other direct measures. Function points can be used to normalize software. Function point values (FP) are easier for students to compute (prior to implementation) than LOC for their projects (see Chapter 15 for details).
The table presented in Section 22.2.3 should be discussed during class. The points to make are: (1) the data are empirical, not absolute; (2) the data are based on a database of 6,000+ projects; (3) most important, the data provide an indication of which languages provide the most functionality per LOC.
The OO metrics presented in Section 22.2.4 provide a means for assessing the “size” of an OO project. If time permits, it would be worthwhile to present an example based on Lorenz and Kidd’s metrics.
Stress that metrics for Web engineering projects (Section 22.2.6) are in their infancy but they can provide an indication of overall project “size.”
If time permits, it’s worth having your students examine one or more of the tools suggested in the sidebar in this section.

22.3     Metrics for Software Quality

This discussion should be considered within the context of information presented in Chapter 15 and general quality management information presented in Chapter 26.
I believe the most important topic to emphasize here is DRE (Section 22.3.3)—a measure that provides substantial benefit at both the project and process levels.

22.4     Integrating Metrics within the Software Engineering Process

The fact that many software developers resist the use of measurement to guide their work will make it hard to convince students of its importance. However, the fact remains if developers do not measure they have no means of determining whether they are improving or not. Students need to understand that many current practitioners are still self-trained and may not be following the best development practices. Current thinking among experienced software developers is that process improvement is essential to remain competitive economically. This cannot happen without means of repeating past successes and avoiding inefficient development practices.

22.5     Metrics for Small Organizations

The important point in this section is that small projects and small organizations can also benefit economically from the intelligent use of software metrics. The key is to select metrics to compute carefully and to ensure that the data collection process is not to burdensome for the software developers.

22.6     Establishing a Software Metrics Program
This section discusses the steps needed to establish a goal-driven software metrics program. The important points are to choose your business goals and to determine what you expect to learn from the metrics program. The measures and derived indicators used will need to answer questions related to the attainment of these goals. It is also important to keep in mind that the modern view of software quality assurance includes customer satisfaction goals as well as product quality and process improvement goals.


No comments:

Post a Comment