TCS 2411 Software Engineering
Download
Report
Transcript TCS 2411 Software Engineering
Software Metrics
“How do we measure the software?”
TCS2411 Software Engineering
1
Lecture Objectives
To understand the importance of
measurement in software engineering
To describe and compare the different
metrics that can be used for measuring
software
To understand the important factors that
affect the measurement of software
TCS2411 Software Engineering
2
Engineering Method
Scientific
Precision
Accuracy
Repeatable
Controllable
Quality
TCS2411 Software Engineering
3
Why Do We Measure?
To indicate the quality of the product
To assess the productivity of the people
who produce the product
To assess the benefits derived from new
software engineering methods and tools
To form a baseline for estimation
To help justify requests for new tools or
additional training
TCS2411 Software Engineering
4
Definitions
Measure - quantitative indication of the extent,
amount, dimension, capacity, or size of some
attribute of a product or process.
Measurement - the act of determining a
measure
Metric - a quantitative measure of the degree to
which a system, component, or process
possesses a given attribute (IEEE)
TCS2411 Software Engineering
5
What Can Be Measured?
Direct measures
Lines of codes (LOC), speed, cost, memory size,
errors, ...
Indirect measures
Quality, functionality, complexity, reliability, efficiency,
maintainability, …
Example: length of a pipe is a direct measure.
the quality of the pipes can only be measured
indirectly by finding the ratio of the accepted pipes to
the rejected.
TCS2411 Software Engineering
6
Size-Oriented Metrics
Based on the “size” of the software produced.
Project data measured, including cost and effort,
pages, defects…etc.
Mainly uses the LOC as the normalization value.
Advantages: easily counted, large body of
literature and data based on LOC
Disadvantages: language dependent,
programmer dependent.
Useful for projects with similar environment.
Therefore, size-oriented metrics are not
universally accepted as the best way to measure
the software process.
TCS2411 Software Engineering
7
Example of Project
Measurements
project
effort
(personmonth)
cost
($)
aaa-01
24
168,000
12.1
365
29
3
ccc-03
62
440,000
27.2
1224
86
5
TCS2411 Software Engineering
kLOC Doc. errors people
(pgs)
8
Example of SizeOriented Metrics
= Size / Effort
= kLOC / person-month
Quality
= Errors / Size
= Errors / kLOC
Cost
= $ / kLOC
Documentation= pages / kLOC
Other metrics can also be developed like:
errors/KLOC, page/KLOC...etc.
Or errors/person-month, LOC/person-month,
cost/page.
Productivity
TCS2411 Software Engineering
9
Function-Oriented
Metrics
Based on “functionality” delivered by the
software as the normalization value.
Functionality is measured indirectly
Function points (FP) measure- derived
using an empirical relationship based on
countable (direct) measures of software’s
information domain and assessments of
software complexity
TCS2411 Software Engineering
10
Software information
domain values
Number of user inputs: user inputs.
Number of user outputs: reports, screens, error
messages, etc.
Number of user inquiries: an on-line input that
generates an immediate on-line output
response.
Number of files: each logical (logical grouping of
data) master file is counted.
Number of external interfaces: all machine
readable interfaces (e.g. data files on some
storage media) that are used to transmit
TCS2411
Software Engineering
11
information
to another system are counted.
Steps In Calculating FP
1.
2.
3.
4.
Count the information domain values.
Assess the complexity of the values.
Calculate the raw FP (see next table).
Rate the complexity factors to produce the
complexity adjustment value (CAV)
CAV = Fi i = 1 to 14
5. Calculate the adjusted FP as follows:
FP = raw FP x [0.65 + 0.01 x CAV]
TCS2411 Software Engineering
12
Function Point (FP) Metrics
Weighting Factor
Parameter Count Simple Average Complex
Inputs
x 3
4
6
=
Outputs
x 4
5
7
=
Inquiries
x 3
4
6
=
Files
x 7
10
15
=
Interfaces
x 5
7
10
=
Count-total (raw FP)
TCS2411 Software Engineering
13
Rate Complexity
Factors
For each complexity adjustment factor
(F), give a rating on a scale of 0 to 5
0
1
2
3
4
5
-
No influence
Incidental
Moderate
Average
Significant
Essential
TCS2411 Software Engineering
14
Complexity Adjustment
Factors ( F )
i
1. Does the system require reliable backup
and recovery?
2. Are data communications required?
3. Are there distributed processing functions?
4. Is performance critical?
5. Will the system run in an existing, heavily
utilized operational environment?
TCS2411 Software Engineering
15
Complexity Adjustment
Factors (Continued)
6. Does the system require on-line data entry?
7. Does the on-line data entry require the input
transaction to be built over multiple screens
or operations?
8. Are the master files updated on-line?
9. Are the inputs, outputs, files, or inquiries
complex?
TCS2411 Software Engineering
16
Complexity Adjustment
Factors (Continued)
10. Is the internal processing complex?
11. Is the code designed to be reusable?
12. Are conversion and installation included in
the design?
13. Is the system designed for multiple
installations in different organizations?
14. Is the application designed to facilitate
change and ease of use by the user?
TCS2411 Software Engineering
17
Complexity Adjustment
Value
The rating for all the factors, F1 to F14, are
summed to produce the complexity
adjustment value (CAV)
CAV is then used in the calculation of the
function point (FP) of the software
TCS2411 Software Engineering
18
Example of FunctionOriented Metrics
Productivity = Functionality / Effort
= FP / person-month
Quality
= Errors / Functionality
= Errors / FP
Cost
= $ / FP
Documentation = pages / FP
TCS2411 Software Engineering
19
FP Characteristics
Advantages: language independent,
based on data known early in project,
good for estimation
Disadvantages: calculation complexity,
subjective assessments, FP has no
physical meaning (just a number)
TCS2411 Software Engineering
20
Extended Function Point
Metrics
Feature points
applied to systems and engineering software.
includes assessment for complex algorithms.
3D Function points
applied to real-time systems and engineered
products (by Boeing)
integrates data dimension (normal FP) with
functional and control dimensions
TCS2411 Software Engineering
21
Reconciling Metrics
Approaches
A number of studies attempted to relate
FP and LOC measures.
Relationship depends on programming
language and quality of design
Example: one LOC of Ada provides
approximately 1.4 times as much
“functionality” (on average) of one LOC of
Fortran
TCS2411 Software Engineering
22
Comparison of LOC/FP
Programming Language
Assembly Language
C
Cobol
Fortran
Pascal
Ada
Object-oriented language
Fourth-generation language
Code generators
TCS2411 Software Engineering
LOC/FP (average)
320
128
105
105
90
70
30
20
15
23
References
“Software Engineering: A Practitioner’s
Approach” 5th Ed. by Roger S. Pressman,
Mc-Graw-Hill, 2001
“Software Engineering” by Ian Sommerville,
Addison-Wesley, 2001
TCS2411 Software Engineering
24