Download - Spmm Topic 2
-
8/3/2019 Spmm Topic 2
1/37
Software Process Management
and Metrics
Topic #2
Measurement
-
8/3/2019 Spmm Topic 2
2/37
Measurement
Motivation
No metric, no movement
You can neither predict nor
control what you cannot
measure2S. Bhatti, Software Process Management
and Metrics
-
8/3/2019 Spmm Topic 2
3/37
Measurement
What is measurement?
3S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
4/37
Measurement
Measurement is the process by which number
or symbols are assigned to attributes of
entities (objects) in the real world in such a
way as to ascribe them according to defined
rules.
4S. Bhatti, Software Process Managementand Metrics
Objects Attributes Values
Attribute 1 Value 11 Value 12 Value 13Object Attribute 2 Value 21 Value 22 Value 23
Attribute n Value n1 Value n2 Value n3
-
8/3/2019 Spmm Topic 2
5/37
Measurement
It is wrong to say we measure an object or an
attribute
For example, it is wrong to say we measure a room or that
we measure height, from a measurement point of view,although we use such language in our daily lives all the
time
Then what is the proper way to say these things?
5S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
6/37
Measurement
The height of a person is a commonly understood
attribute of a person, which can be measured. Can
intelligence of a person be measured?
Can we measure the height of a person in meters,inches or feet? Which is correct?
Can we measure the height of a person in miles
instead of feet or inches? If so why, if not why not?
It is meaningful to take the average height of a
football team. Why? Is it meaningful to take the
average of the jersey numbers of the team? Why?
6S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
7/37
Measurement
Metricsstandards (i.e., commonly accepted
scales) that define measurable attributes of
entities, their units and their scopes.
For example, prices of clothing (number of Pak Rupees)
and sizes of clothing (XL, L, M, S)
Measureis a relationship between an
attribute and a measurement scale. For example, the height of a person and inches
7S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
8/37
Measurement
Metrics Example
8S. Bhatti, Software Process Managementand Metrics
Entity Attribute
Requirement Size, Reuse, Redundancy
Specification Size, Reuse, Redundancy
Design Size, Reuse, Modularity,
Cohesion, Coupling
Code Size, Reuse, Modularity,
Cohesion, Coupling,
Complexity
Test Cases Size, Coverage
Metrics for Size
# of requirements
# of features
# of classes
# of lines of code (LOC)
# of test cases
-
8/3/2019 Spmm Topic 2
9/37
Measurement
Measurement Example: Developed Software
9S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
10/37
Measurement
Measurement Example
1. Select entities: Developed Software
2. Select attributes: Size
3. Select metric for attributes: Number of LOC
4. Specify rules (relationships) ascribed to the
attributes and entities:
Developed Software = Developed Software t=0+ (Software Development Rate) dtWhere Software Development Rate = LOC/dt
10S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
11/37
Measurement
Another Measurement Example
1. Select entities: Availability
2. Select attributes: Uptime, downtime
3. Select metric for attributes: time in seconds
4. Specify rules (relationships) ascribed to the
attributes and entities:
Availability = uptime / (uptime + downtime)
11S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
12/37
Measurement
Challenges of Measurement in Software Engineering
12S. Bhatti, Software Process Managementand Metrics
Entity attribute value units
Physical Human Height 178 cm
Non-physical Human IQ 89 IQ index
Software Engineering metrics are mostly non-physical
Availability Reliability, Maturity, Portability, flexibility And relations are hard to quantify, but not hopeless!
-
8/3/2019 Spmm Topic 2
13/37
Measurement
Challenges of Measurement in Software Engineering
13S. Bhatti, Software Process Managementand Metrics
Metrics can be misleading
Fact 1: Knowledge is power
Fact 2: Time is money
Rule/Relationship:
power = work /time
The harder you work the more power you have
As power approaches infinity, time approaches 0
Substituting power and time
Knowledge = work/money
The less you know, the more you make!
As knowledge approaches zero, money approaches infinity
-
8/3/2019 Spmm Topic 2
14/37
Measurement
What does measurement in software
engineering help us do?
14S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
15/37
Measurement
Measurement in software engineering help us understand,
control and improve:
The product
The people (control in a good way, i.e., productivity)
The technologies (for example, software configuration management)
The process
But
Measuring in software engineering is relatively new and
controversial
It is not yet clear which are the appropriate metrics for a
software project or whether people, processes, or products
can be compared using metrics
15S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
16/37
Measurement
Measurement in software engineering entails
selecting, measuring and combining many different
attributes of:
Software products Software development resources
Software development technologies
Software development processes
This includes metrics which are directly measureable, such as
lines of code (LOC), as well as items which are calculated
from measurement, such as software quality.
16S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
17/37
Measurement
Who benefits from measurement?
17S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
18/37
Measurement
Managers
What does each step of the process cost?
How productive is the staff?
How good is the code that is being developed?
Will the user be satisfied with the project?
How can we improve?
Engineers
Are the requirements testable?
Have we found all the failures
Have we met our process or product goals What can we predict about our software product in the future
Users?
18S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
19/37
Measurement
What is the scope of software metrics?
19S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
20/37
Measurement
Scope of software metrics include:
20S. Bhatti, Software Process Managementand Metrics
Process
Product
People Technology
-
8/3/2019 Spmm Topic 2
21/37
Measurement
Scope of software metrics Cost effort estimation
Productivity measures and models
Data collection
Quality model and measures Reliability models and measures
Performance evaluation and models
Structural and complexity metrics
Capability maturity assessment
Management metrics
Evaluation Methods and tools
21S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
22/37
Measurement
Scope of software metrics Cost effort estimation
Software cost estimation is the process of predicting
the amount of effort required to build a software
system Estimates for project cost and time requirements are
derived during the planning stage of the a project
Models used to estimate cost can be categorized as
either cost models (e.g., Constructive Cost ModelCOCOMO) or constraint models (e.g., Software Life
cycle Management SLIM) based on linear programming
22S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
23/37
Measurement
Scope of software metrics Productivity measures and models
Productivity = size/effort, LOC/person month
Productivity model based on decomposition to measureable
attributes:
23S. Bhatti, Software Process Managementand Metrics
Productivity
Value
Quality
Reliability Defect
Quantity
Size Functionality
Cost
Personnel
Time Money
Resources
Hardware Software
Complexity
Constraints Difficulty
-
8/3/2019 Spmm Topic 2
24/37
Measurement
Scope of software metrics Data collection
Very critical and very hard step
1. What Data should be collected?
2. How it should be collected?
3. Is collected data reproducible?
Example: software failure data collection
1. Time of failure2. Time interval between failure
3. Cumulative failure up to a given time
4. Failures experienced in a time interval
24S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
25/37
Measurement
Scope of software metrics Quality model and measures
McCalls quality factors
25S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
26/37
Measurement
Scope of software metrics Reliability models and measures
Plot the change of failure intensity () against
time Models: basic exponential model and
logarithmic Poisson model
The basic exponential model assumes finite
failures in infinite time; the logarithmic Poisson
model assumes infinite failures
26S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
27/37
Measurement
Scope of software metrics Reliability models
27S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
28/37
Measurement
Scope of software metrics Performance evaluation and models
Using externally observable performance
characteristics such as response time andcompletion rate
Efficiency of algorithms (Big O Notation)
28S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
29/37
Measurement
Scope of software metrics Structural and complexity metrics
Structural
Control flow structures
Data flow structures
Data structures
Information flow attributes
Complexity Cyclomatic complexity, that is, defining number of
independent paths in the execution of a program
29S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
30/37
Measurement
Scope of software metrics Capability maturity assessment
Software Engineering Institute (SEI) model
CMMI: Level 1 trough Level 5
ISO 9001
Model for quality assurance in design/development,
production installation and servicing
ISO 9000-3 Guidelines for application of ISO 9001 to the
development, supply and maintenance of software
30S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
31/37
Measurement
Scope of software metrics Management metrics
Metrics for project control
1. Metrics for requirements and specification
2. Metrics for the design model
3. Metrics for code
4. Metrics for testing
5. Schedule metrics
6. Resource metrics
7. Change metrics
31S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
32/37
Measurement
Scope of software metrics Evaluation Methods and tools
Benchmarking
Certification Configuration management system
Requirements management system
Defect management system
Integrated Development Environment
Development Tool Chain
32S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
33/37
Research
For Your Research. You will need to know
Process Modeling
System Dynamics The calculus underlying process dynamics
Rates and Levels
Software Process Modeling
Modeling and Simulation Tools
33S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
34/37
Research
Topic #5 will formally introduce you to Process Modeling
Topics #6 will formally introduce you to software process
modeling AND give you a complete example (based on Brooks
claim) of what is expected from you for your research project
Topics #2 (today), #3 and 4 will introduce you to some
preliminary material on:
Process Modeling
System Dynamics
The calculus underlying process dynamics
Rates and Levels Software Process Modeling
Modeling and Simulation Tools
34S. Bhatti, Software Process Managementand Metrics
-
8/3/2019 Spmm Topic 2
35/37
Software Process
35S. Bhatti, Software Process Managementand Metrics
Research
Software Process
Software Project
Jan 1, 2011 Dec 31, 2012
RequirementsResources Product
-
8/3/2019 Spmm Topic 2
36/37
Another way to look at the Software Process
36S. Bhatti, Software Process Managementand Metrics
Research
Levels Rate
-
8/3/2019 Spmm Topic 2
37/37
Yet another way to look at the Software Process
37S Bhatti Software Process Management
Research
0
0.2
0.4
0.6
0.8
1
1.2
0 5 10
FP/Day
Days
Rate: 1 FP/Day
0
2
4
6
8
10
0 2 4 6 8 10
FP
Days
Level: Developed SW
0
2
4
6
8
10
0 2 4 6 8 10
Requirement
Days
Level: Requirement
Rate SW = FP/Day
Rate SW * Day = FP
Rate Req = - Req/Day
Initial + (Rate Req * Day) = Req
Rate = Level/ time