An

to Design Metrics Research

 


Software design metrics research has been ongoing at Ball State University since 1989. This work has been funded by the Software Engineering Research Center (SERC) at Purdue University, the National Science Foundation, Northrop Grumman Corporation, Motorola Corporation, Telcordia Technologies (formerly Bell Communications Research), Computer Sciences Corporation, GTE Data Services, Magnavox Electronics Systems Division, Harris Corporation, and Ball State University.

The underlying premise to our work is that software developers should be able to infer more about the software they are developing during the design process. Thus, by computing metrics at various times during the development of design, managers and software developers can determine the better design when alternative choices exist, as well as identify stress points that may lead to difficulty during coding and maintenance.

In the SERC Design Metrics project, our approach to analyzing design information has been to develop metrics available during architectural and detailed design that help software developers identify error-prone modules in a software design. We employ an external design metric, De, and an internal design metric, Di, to identify "outlying" modules in a system, and then ask what percent of the detected errors in the system are contained in these outliers. On study data consisting of university-based projects and large-scale industrial software, over a seven year period, our design metrics consistently outperformed classical, well-known metrics as predictors of error-prone modules. Our composite metric D(G), which is a linear combination of De and Di, also proved to be an effective predictor of error proneness.

Theoretically speaking, software engineers understand that an appropriate amount of modularity is a necessary component in a quality design of a system. Too few modules can lead to monolithic units of code which are hard to maintain and enhance. Such modules have a low level of cohesion and high Di metric values. Too many modules can lead to excessive communication overhead and extensive coupling between modules. These modules would typically have high De values. A good design possesses an appropriate level of modularity, as reflected in a balance between average De and Di values. This design balance is measured by our design metric that we call design balance, DB. As De and Di become ``balanced'', the designers achieve a spread of complexity between the internal functionality of the modules, as given by Di, and the external coupling between modules, as given by De.

Our Design Metrics project led to our Time-Slice Transformations on Architectural DEsIgn Metrics (TSTADEIM) research effort. After an entire "blueprint" for large-scale software is complete, much effort needs to be expended to make changes in the design. What was needed was a series of time-slice snapshots of design, as given by the calculation of metrics at various times during architectural design, to review the evolving project. In the TSTADEIM project, we obtained insights into how De values change as a system matures. We also focused on the integration of architectural design construction and the measurement of this process by a sequence of De calculations to gain a better understanding of design dynamics in software development.

In the project entitled Using Design Metrics Feedback During Software Development, we are applying our metrics to industrial software to determine if our metrics, when actually used during the design process to affect the design, lead to an improved software development process or product. This project provides developers with an analysis and evaluation of the design metrics applied to ongoing projects. We have the rare opportunity to apply the metrics, as they are theoretically intended to guide the design process, to SERC industrial projects as well as to university projects.

In the project entitled MERLIN: A MEtRics model for Legacy software rejuvenatIoN, we are determining an appropriate set of code metrics that can be used, along with our design metrics, to categorize modules for software rejuvenation initiatives. This research extends our previous work in design metrics analysis by taking a proven design metrics technology and adapting that technology to address a different focus area of software development.

The goal of our current projects, Metrics Directed Verification of SDL Designs, is to apply our proven design metrics technology to identify stress point in SDL (Specification and Description Language) designs, and assess the utility and effectiveness of our design metrics on such designs.

We are also extending our design metrics technology to object-oriented methodologies. We began this work by mapping the architectural design features of object-oriented designs to our design metrics primitives. We are now analyzing the testing and error data from selected object-oriented projects to determine the effectiveness of the metrics in identifying error-prone modules.


[ Home ] - [ BSU CS Homepage ] - [ BSU Homepage ]


For more information contact:
wmz@cs.bsu.edu
Last modified 3/2001 by Dolores M. Zage.

© Copyright, 2001, Design Metrics Research Team, Ball State University, All Rights Reserved.