Software Metrics
Software Metrics
A metric is a measurement of the level at which any impute belongs to a system product or process.
Software metrics are a quantifiable or countable assessment of the attributes of a software product.
There are 4 functions related to software metrics:
Planning
Organizing
Controlling
Improving
Quantitative: Metrics must possess a quantitative nature. It means metrics can be expressed in
numerical values.
Understandable: Metric computation should be easily understood, and the method of
computing metrics should be clearly defined.
Applicability: Metrics should be applicable in the initial phases of the development of the
software.
Repeatable: When measured repeatedly, the metric values should be the same and consistent.
Economical: The computation of metrics should be economical.
Language Independent: Metrics should not depend on any programming language.
Product Metrics: Product metrics are used to evaluate the state of the product, tracing risks and
undercover prospective problem areas. The ability of the team to control quality is evaluated.
Examples include lines of code, cyclomatic complexity, code coverage, defect density, and code
maintainability index.
Process Metrics: Process metrics pay particular attention to enhancing the long-term process of
the team or organization. These metrics are used to optimize the development process and
maintenance activities of software. Examples include effort variance, schedule variance, defect
injection rate, and lead time.
Project Metrics: The project metrics describes the characteristic and execution of a
project. Examples include effort estimation accuracy, schedule deviation, cost variance, and
productivity. Usually measures-
1. Number of software developer
2. Staffing patterns over the life cycle of software
3. Cost and schedule
4. Productivity
Process Metrics
Process Metrics are the measures of the development process that create a body of software. A
common example of a process metric is the length of time that the process of software creation
tasks.
Based on the assumption that the quality of the product is a direct function of the process,
process metrics can be used to estimate, monitor, and improve the reliability and quality of
software. ISO- 9000 certification, or "Quality Management Standards", is the generic reference
for a family of standards developed by the International Standard Organization (ISO).
Often, Process Metrics are tools of management in their attempt to gain insight into the creation
of a product that is intangible. Since the software is abstract, there is no visible, traceable
artifact from software projects. Objectively tracking progress becomes extremely difficult.
Management is interested in measuring progress and productivity and being able to make
predictions concerning both.
Process metrics are often collected as part of a model of software development. Models such
as Boehm's COCOMO (Constructive Cost Model) make cost estimations for software projects.
The boat's COPMO makes predictions about the need for additional effort on large projects.
Although valuable management tools, process metrics are not directly relevant to program
understanding. They are more useful in measuring and predicting such things as resource usage
and schedule.
Basic model
Intermediate model
Detailed model
Basic model
The basic model is used for quick and rough cost calculations for the
software. It calculates the effort, time, and number of people
required to use a project's kLOC (kilo lines of code).
Effort(E)=a(kLOC)bEffort(E)=a(kLOC)b
Time(T)=c(E)dTime(T)=c(E)d
People required=ETPeople required=TE
The effort is measured in person-months and time in months. The
constants a,b,c,and da,b,c,and d vary for each model type. The
following are the constant values for the basic model:
Project Type a b c d
Organic 2.4 1.0 2.5 0.38
5
Semi-detached 3.0 1.1 2.5 0.35
2
Embedded 3.6 1.2 2.5 0.32
0
Example
Intermediate model
Project Type a b c d
Organic 3.2 1.0 2.5 0.38
5
Semi-detached 3.0 1.1 2.5 0.35
2
Embedded 2.8 1.2 2.5 0.32
0
Cost drivers
Product attributes
Personal attributes
Analyst capabilities
Software engineering capabilities
Applications experience
Virtual machine experience
Programming language experience
Personal attributes Very Low Low Nominal High Very High Extra High
ACAP 1.46 1.19 1.00 0.86 0.71 ...
AXEP 1.29 1.13 1.00 0.91 0.82 ...
PCAP 1.42 1.17 1.00 0.86 0.70 ...
VEXP 1.21 1.10 1.00 0.90 ... ...
LEXP 1.14 1.07 1.00 0.95 ... ...
Project attributes
Example
EAF=1.00∗0.90=0.9EAF=1.00∗0.90=0.9
Effort(E)=3.2(400 kLOC)1.05∗0.9=1554.37 person−monthsEffort(E)=3.2(400 kLOC)1.05∗0.
9=1554.37 person−months
Time(T)=2.5(1554.37)0.38=40.80 monthsTime(T)=2.5(1554.37)0.38=40.80 months
People required=1554.3740.80=38.09 personsPeople required=40.801554.37=38.09 pe
rsons
Detailed model
The detailed model is a combination of both the basic model and the
intermediate model. The model is decomposed into multiple
modules, and the COCOMO model is applied to them individually.
This model uses various effort multipliers for each cost driver
attribute, and the cost is calculated at each stage separately.