Chapter 15
Product Metrics for Software
CHAPTER OVERVIEW AND COMMENTS
This chapter discusses the use of software measurement and metrics as a means of helping to assess the quality of software engineering work products. Most of the metrics discussed in this chapter are not difficult to compute.
15.1 Software Quality
This section defines software quality as:
Conformance to the explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed S/W.
This implies the existence of a set of standards used by the developer and customer expectations that a product will work well. Conformance to implicit requirements (e.g. ease of use and reliable performance) is what sets software engineering apart from simply writing programs that work most of the time. Several sets of software quality factors are described.
The definition serves to emphasize three important points:
15.1.1 McCall’s Quality Factors
McCall’s quality factors were proposed in the early 1970s. They are as valid today as they were in that time. It’s likely that software built to conform to these factors will exhibit high quality well into the 21st century, even if there are dramatic changes in technology.
The factors that affect S/W quality can be categorized in two broad groups:
The S/W quality factors shown above focus on three important aspects of a S/W product:
Referring to these factors, McCall and his colleagues provide the following descriptions:
Correctness: The extent to which a program satisfies its specs and fulfills the customer’s mission objectives.
Reliability: The extent to which a program can be expected to perform its intended function with required precision.
Efficiency: The amount of computing resources and code required to perform is function.
Integrity: The extent to which access to S/W or data by unauthorized persons can be controlled.
Usability: The effort required to learn, operate, prepare input for, and interpret output of a program.
Maintainability: The effort required to locate and fix errors in a program.
Flexibility: The effort required to modify an operational program.
Testability: The effort required to test a program to ensure that it performs its intended function.
Portability: The effort required to transfer the program from one hardware and/or software system environment to another.
Reusability: The extent to which a program can be reused in other applications-related to the packaging and scope f the functions that the program performs.
Interoperability: The effort required to couple one system to another.
15.1.2 9126 Quality Factors
ISO 9126 is an international standard for the evaluation of software quality.
http://en.wikipedia.org/wiki/ISO_9126
15.2 A Framework for Technical Software Metrics
General principles for selecting product measures and metrics are discussed in this section. The generic measurement process activities parallel the scientific method taught in natural science classes (formulation, collection, analysis, interpretation, feedback).
If the measurement process is too time consuming, no data will ever be collected during the development process. Metrics should be easy to compute or developers will not take the time to compute them.
The tricky part is that in addition to being easy compute, the metrics need to be perceived as being important to predicting whether product quality can be improved or not.
15.2.1 Measures, Metrics and Indicators
15.2.3 Measurement Principles
Measurement Process
S/W metrics will be useful only if they are characterized effectively and validated to that their worth is proven.
15.2.4 Goal-Oriented Software Measurement
A goal definition template can be used to define each measurement goal.
15.2.4 The Attributes of Effective S/W Metrics
15.3 Metrics for the Analysis Model
Collection and Analysis Principles
Analysis Metrics
Computing Function Points
15.4 Metrics for the Design Model
Design metrics for computer S/W, like all other S/W metrics, are not perfect. And yet, design without measurement is an unacceptable alternative.
15.4.1 Architectural Design Metrics
15.4.2 Metrics for OO Design
Whitmire [WHI97] describes nine distinct and measurable characteristics of an OO design:
Size
Complexity
Coupling
Sufficiency
Completeness
Metrics for OO Design-II
Cohesion
Primitiveness
Similarity
Volatility
15.4.3 Class-Oriented Metrics--The CK Metrics Suite
Weighted methods per class (WMC): The number of methods and their complexity are reasonable indicator of the amount of effort required to implement and test a class.
Depth of the inheritance tree (DIT): The maximum length from the node to root of the tree.
Number of children (NOC): The subclasses that are immediately subordinate to a class in the class hierarchy are termed its children.
Coupling between object classes (CBO): is the number of collaborations listed for a class on its CRC card. Keep CBO low.
Response for a class (RFC): is a set of methods that can potentially be executed in response to a message received by an object of that class. RFC is the number of methods in the response set. Keep RFC low.
Lack of cohesion in methods (LCOM): is the number of methods that access one or more of the same attributes. Keep LCOM low.
Source: https://www2.southeastern.edu/Academics/Faculty/galkadi/285/notes/Chapter15.doc
Web site to visit: https://www2.southeastern.edu/
Author of the text: indicated on the source document of the above text
If you are the author of the text above and you not agree to share your knowledge for teaching, research, scholarship (for fair use as indicated in the United States copyrigh low) please send us an e-mail and we will remove your text quickly. Fair use is a limitation and exception to the exclusive right granted by copyright law to the author of a creative work. In United States copyright law, fair use is a doctrine that permits limited use of copyrighted material without acquiring permission from the rights holders. Examples of fair use include commentary, search engines, criticism, news reporting, research, teaching, library archiving and scholarship. It provides for the legal, unlicensed citation or incorporation of copyrighted material in another author's work under a four-factor balancing test. (source: http://en.wikipedia.org/wiki/Fair_use)
The information of medicine and health contained in the site are of a general nature and purpose which is purely informative and for this reason may not replace in any case, the council of a doctor or a qualified entity legally to the profession.
The texts are the property of their respective authors and we thank them for giving us the opportunity to share for free to students, teachers and users of the Web their texts will used only for illustrative educational and scientific purposes only.
All the information in our site are given for nonprofit educational purposes