Software Measurementfor Science and Profit
Robert C. Leif andSuzanne B. Leif
Ada_Med, a Division ofNewport Instruments
Experimental scientific knowledge isoften the result of quantitative measurements. The technology originallyemployed for these measurements subsequently can be employed incommerce.
Balances => Scales
Trajectory calculations =>Accounting Software
Quantitative measures of the amount ofSoftware are needed to
a.) Measure efficiency.
--The amount of product produceddivided by the effort.
- b.) Measure contributions to aproject.
--For purposes of estimation andcompensation.
2. Software Measurement Units
2.1. Lines of Source Text (Lines)
Lines := Total_Semicolons - Comment_Semicolons;
- Inappropriate for a language with anymeans of reuse:
subroutines, generics, classes,etc.
2.2. Function Points
Function points were originallydescribed by Albrecht & now are described by the InternationalFunction Point Users Group's (IFPUG) Release 3.0 of the Function PointCounting Practices Manual, 1990.
From What Are Function Points? By CapersJones, Chairman, Software Productivity Research, Inc.
Function_Points := 4*Inputs +5*Outputs + 4*Inquiries + 10*Data_Files + 7*Interfaces;
Complexity_Adjustment : Finagler_Factor _Type;
2.3. Feature Points
Capers Jones extended Function_Pointsto:
Complexity : positive range 1..10:=3;
Feature_Points := Function_Points +Complexity*Algorithms - 3*Data_Files;
2.4. Corrected Lines of SourceText
Ada 95 and other OO languages probablyrequire a minor change to Lines of Source Text (Corrected_Lines).
Corrected_Lines := Total_Semicolons
- - Comment_Semicolons
- 0.75 *Renaming_Semicolons --contained in declarations.
-- Subtype declarations which do not include a range.
- Could this be done with a toolbased on ASIS?
2.5. Linked Lines of Source Text(Linked_Lines)
equals the total number of semicolonswhich would be actually used in the linked Executable if
a) all loop structures remained intact(no unrolling);
b) all instantiations of generics aretreated as the equivalent of the source text which would have beencreated without the use of the generic;
c) all instances of inheritedsubprograms of tagged types are treated as the equivalent of the sourcetext which would have been created without the use of the taggedtype.
- Could this be done with a tool based on ASIS?
2.6. Source Text Efficiency (Source_Efficiency) is a measure of the product produced versus the effort tocreate the software.