Beruflich Dokumente
Kultur Dokumente
Topic #2
Measurement
Measurement
Motivation
No metric, no movement
You can neither predict nor control what you cannot measure
S. Bhatti, Software Process Management and Metrics 2
Measurement
What is measurement?
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.
Objects Object Attributes Attribute 1 Value 11 Attribute 2 Value 21
Attribute n Value n1
Value 13 Value 23
Value n3
4
Measurement
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?
S. Bhatti, Software Process Management and Metrics 6
Measurement
Metrics standards (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)
Measurement
Metrics Example
Entity Requirement Specification Design Attribute Size, Reuse, Redundancy Size, Reuse, Redundancy Size, Reuse, Modularity, Cohesion, Coupling Metrics for Size # of requirements # of features # of classes # of lines of code (LOC) # of test cases
Code
Test Cases
Measurement
Measurement
Measurement Example
1. 2. 3. 4. Select entities: Developed Software Select attributes: Size Select metric for attributes: Number of LOC Specify rules (relationships) ascribed to the attributes and entities:
Developed Software = Developed Software t=0 + (Software Development Rate) dt Where Software Development Rate = LOC/dt
10
Measurement
11
Measurement
Challenges of Measurement in Software Engineering
Entity Physical Non-physical Human Human attribute Height IQ value 178 89 units cm IQ index
Software Engineering metrics are mostly non-physical Availability Reliability, Maturity, Portability, flexibility And relations are hard to quantify, but not hopeless!
S. Bhatti, Software Process Management and Metrics
12
Measurement
Challenges of Measurement in Software Engineering
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
S. Bhatti, Software Process Management and Metrics 13
Measurement
14
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
S. Bhatti, Software Process Management and Metrics 15
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.
S. Bhatti, Software Process Management and Metrics 16
Measurement
Who benefits from measurement?
17
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?
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
Engineers
Users?
S. Bhatti, Software Process Management and Metrics 18
Measurement
19
Measurement
Process
People
Technology
20
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
S. Bhatti, Software Process Management and Metrics 21
Measurement
Scope of software metrics
Productivity measures and models
Productivity = size/effort, LOC/person month Productivity model based on decomposition to measureable attributes:
Productivity
Value
Cost
Quality
Quantity
Personnel
Resources
Complexity
Reliability
Defect
Size
Functionality
Time
Money
Hardware
Software
Constraints
Difficulty
23
Measurement
Scope of software metrics
Quality model and measures
McCalls quality factors
25
Measurement
Measurement
27
Measurement
28
Complexity
Cyclomatic complexity, that is, defining number of independent paths in the execution of a program
S. Bhatti, Software Process Management and Metrics 29
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
S. Bhatti, Software Process Management and Metrics 30
Measurement
Research
33
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
34
Research
Software Process
Requirements Resources
Product
Software Project
35
Research
Another way to look at the Software Process
Levels Rate
36
Research
Yet another way to look at the Software Process
Level: Requirement 10 Requirement 8 FP/Day 6 4 2 0 0 2 4 Days 6 8 10 1.2 1 Rate: 1 FP/Day 10 8 FP 6 4 2 0 0 5 Days 10 0 2 4 Days 6 8 10 Level: Developed SW
0.8
0.6 0.4 0.2 0
Rate = Level/ time Rate Req = - Req/Day Initial + (Rate Req * Day) = Req
S. Bhatti, Software Process Management and Metrics