INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
4.6 INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
The majority of software developers still do not measure, and sadly, most have little desire to begin. As we noted earlier in this chapter, the problem is cultural. Attempt- ing to collect measures where none had been collected in the past often precipitates resistance. "Why do we need to do this?" asks a harried project manager. "I don't see the point," complains an overworked practitioner.
In this section, we consider some arguments for software metrics and present an approach for instituting a metrics collection program within a software engineering In this section, we consider some arguments for software metrics and present an approach for instituting a metrics collection program within a software engineering
Some of the things we describe here will sound quite easy. Realistically, though, establish- ing a successful company-wide software metrics program is hard work. When we say that you must wait at least three years before broad organizational trends are available, you get some idea of the scope of such an effort.
The caveat suggested by the authors is well worth heeding, but the benefits of mea- surement are so compelling that the hard work is worth it.
4.6.1 Arguments for Software Metrics
Why is it so important to measure the process of software engineering and the prod- uct (software) that it produces? The answer is relatively obvious. If we do not mea- sure, there no real way of determining whether we are improving. And if we are not improving, we are lost.
By requesting and evaluating productivity and quality measures, senior manage- ment can establish meaningful goals for improvement of the software engineering process. In Chapter 1 we noted that software is a strategic business issue for many companies. If the process through which it is developed can be improved, a direct
“We manage things impact on the bottom line can result. But to establish goals for improvement, the cur- ‘by the numbers’ in
rent status of software development must be understood. Hence, measurement is many aspects of our
lives. . . . These used to establish a process baseline from which improvements can be assessed. numbers give us
The day-to-day rigors of software project work leave little time for strategic think- insight and help
ing. Software project managers are concerned with more mundane (but equally impor- steer our actions.”
tant) issues: developing meaningful project estimates, producing higher-quality
Michael Mah Larry Putnam systems, getting product out the door on time. By using measurement to establish a
project baseline, each of these issues becomes more manageable. We have already noted that the baseline serves as a basis for estimation. Additionally, the collection of quality metrics enables an organization to "tune" its software process to remove the "vital few" causes of defects that have the greatest impact on software develop- ment. 9
At the project and technical levels (in the trenches), software metrics provide imme- diate benefit. As the software design is completed, most developers would be anx- ious to obtain answers to the questions such as
• Which user requirements are most likely to change? • Which components in this system are most error prone? • How much testing should be planned for each component? • How many errors (of specific types) can I expect when testing commences?
9 These ideas have been formalized into an approach called statistical software quality assurance and are discussed in detail in Chapter 8.
Answers to these questions can be determined if metrics have been collected and used as a technical guide. In later chapters, we examine how this is done.
4.6.2 Establishing a Baseline
By establishing a metrics baseline, benefits can be obtained at the process, project, and product (technical) levels. Yet the information that is collected need not be fun- damentally different. The same metrics can serve many masters. The metrics base- line consists of data collected from past software development projects and can be as simple as the table presented in Figure 4.4 or as complex as a comprehensive data- base containing dozens of project measures and the metrics derived from them.
? To be an effective aid in process improvement and/or cost and effort estimation,
What critical
information
baseline data must have the following attributes: (1) data must be reasonably accu-
can metrics
rate—"guestimates" about past projects are to be avoided; (2) data should be col-
provide for a
lected for as many projects as possible; (3) measures must be consistent, for example,
developer?
a line of code must be interpreted consistently across all projects for which data are collected; (4) applications should be similar to work that is to be estimated—it makes little sense to use a baseline for batch information systems work to estimate a real- time, embedded application.
4.6.3 Metrics Collection, Computation, and Evaluation
The process for establishing a baseline is illustrated in Figure 4.7. Ideally, data needed to establish a baseline has been collected in an ongoing manner. Sadly, this is rarely the case. Therefore, data collection requires a historical investigation of past projects
Baseline metrics data to reconstruct required data. Once measures have been collected (unquestionably should be collected
the most difficult step), metrics computation is possible. Depending on the breadth from a large,
representative of measures collected, metrics can span a broad range of LOC or FP metrics as well sampling of past
as other quality- and project-oriented metrics. Finally, metrics must be evaluated and software projects.
applied during estimation, technical work, project control, and process improvement. Metrics evaluation focuses on the underlying reasons for the results obtained and produces a set of indicators that guide the project or process.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more