SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Software metrics and estimation
McGill ECSE 428
Software Engineering Practice
Radu Negulescu
Winter 2004
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 2
About this module
Measuring software is very subjective and approximate, but necessary to
answer key questions in running a software project:
• Planning: How much time/money needed?
• Monitoring: What is the current status?
• Control: How to decide closure?
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 3
Metrics
What to measure/estimate?
Product metrics
• Size: LOC, modules, etc.
• Scope/specification: function points
• Quality: defects, defects/LOC, P1-defects, etc.
• Lifecycle statistics: requirements, fixed defects, open issues, etc.
• ...
Project metrics
• Time
• Effort: person-months
• Cost
• Test cases
• Staff size
• ...
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 4
Basis for estimation
What data can be used as basis for estimation?
• Measures of size/scope
• Baseline data (from previous projects)
• Developer commitments
• Expert judgment
• “Industry standard” parameters
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 5
Uncertainty of estimation
Cone of uncertainty
• [McConnell Fig. 8-2]
• [McConnell Table 8-1]
Sources of uncertainty
• Product related
Requirements change
Type of application (system, shrinkwrap, client-server, real-time, ...)
• Staff related
Sick days, vacation time
Turnover
Individual abilities
Analysts, developers (10:1 differences)
Debugging (20:1 differences)
Team productivity (5:1 differences)
• Process related
Tool support (or lack thereof)
Process used
• …
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 6
Estimate-convergence graph
Initial
product
definition
Approved
product
definition
Requirements
specification
Product
design
specification
Detailed
design
specification
Product
complete
1.0×
0.25×
4×
2×
0.5×
1.5×
0.67×
1.25×
0.8×
1.0×
0.6×
1.6×
1.25×
0.8×
1.15×
0.85×
1.1×
0.9×
Project Cost
(effort and size)
Project
schedule
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 7
LOC metrics
LOC = lines of code
A measure of the size of a program
• Logical LOC vs. physical LOC
Not including comments and blank lines
Split lines count as one
• Rough approximation: #statements, semicolons
Advantages
• Easy to measure
• Easy to automate
• Objective
Disadvantage
• Easy to falsify
• Encourages counter-productive coding practices
• Implementation-biased
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 8
FP metrics
A measure of the scope of the program
• External inputs (EI)
Number of screens, forms, dialogues, controls or messages through which
an end user or another program adds deletes or changes data
• External outputs (EO)
Screens, reports, graphs or messages generated for use by end users or
other programs
• External inquiries (EQ)
Direct accesses to data in database
• Internal logical files (ILF)
Major groups of end user data, could be a “file” or “database table”
• External interface files (EIF)
Files controlled by other applications which the program interacts with
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 9
Examples
[Source: David Longstreet]
EI:
EO:
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 10
Examples
EQ:
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 11
Examples
ILF
EIF
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 12
FP metrics
Complexity weights
Low Med High
EI 3 4 6
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
Influence multiplier: 0.65..1.35
• 14 factors
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 13
Counting function points
349.6Adjusted Function Point Total
1.15Influence Multiplier
304Unadjusted Function Point total
651027059External Interface Files
10015310275Logical Internal Files
32644230Inquiries
63705747Outputs
44634236Inputs
totalmultipliercountmultipliercountmultipliercountProgram Characteristic
High Complexity
Medium
ComplexityLow Complexity
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 14
Influence factors
Was the application designed for end-user
efficiency?
End-user efficiency7
What percentage of the information is
entered On-Line?
On-Line data entry6
How frequently are transactions executed
daily, weekly, monthly, etc.?
Transaction rate5
How heavily used is the current hardware
platform where the application will be
executed?
Heavily used configuration4
Did the user require response time or
throughput?
Performance3
How are distributed data and processing
functions handled?
Distributed data processing2
How many communication facilities are
there to aid in the transfer or exchange of
information with the application or system?
Data communications1
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 15
Influence factors
Was the application specifically designed,
developed, and supported to facilitate
change?
Facilitate change14
Was the application specifically designed,
developed, and supported to be installed
at multiple sites for multiple organizations?
Multiple sites13
How effective and/or automated are start-
up, back up, and recovery procedures?
Operational ease12
How difficult is conversion and
installation?
Installation ease11
Was the application developed to meet
one or many user’s needs?
Reusability10
Does the application have extensive
logical or mathematical processing?
Complex processing9
How many ILF’s are updated by On-Line
transaction?
On-Line update8
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 16
Influence score
Strong influence throughout5
Significant influence4
Average influence3
Moderate influence2
Incidental influence1
Not present, or no influence0
InfluenceScore
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 17
Influence score
INF = 0.65 + SCORE/100
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 18
FP metrics
Some advantages
• Based on specification (black-box)
• Technology independent
• Strong relationship to actual effort
• Encourages good development
Some disadvantages
• Needs extensive training
• Subjective
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 19
Jones’ “rules of thumb” estimates
Code volumes:
• Approx. 100 LOC/FP, varies widely
[Source: C. Jones “Estimating Software Costs” 1998]
• Schedule:
#calendar months = FP^0.4
• Development staffing:
#persons = FP/150 (average)
Raleigh curve
• Development effort:
#months * #persons = FP^1.4/150
McConnell
• Equation 8-1 “Software schedule equation”
#months = 3.0 * #man-months^(1/3)
• Table 8-9 “Efficient schedules”
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 20
Quality estimation
Typical tradeoff:
Adding a dimension: quality
• Early quality will actually reduce costs, time
• Late quality is traded against other parameters
product (scope)
cost (effort) schedule (time)
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 21
Quality estimation
Quality measure:
• Fault potential: # of defects introduced during development
• Defect rate: #defects in product
[Source: C. Jones “Estimating Software Costs” 1998]
• Test case volumes:
#test cases = FP^1.2
• Fault potential:
#faults = FP^1.25
• Testing fault removal: 30%/type of testing
85…99% total
• Inspection fault removal:
60..65%/inspection type
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 22
Other typical estimates
[Source: C. Jones “Estimating Software Costs” 1998]
• Maintenance staffing:
#persons = FP/750
• Post-release repair:
rate = 8 faults/PM
• Software plans and docs:
Page count = FP^1.15
• Creeping requirements:
Rate = 2%/month
0% … 5% / month, depending on method
• Costs per requirement:
$500/FP initial reqs
$1200/FP close to completion
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 23
Sample question
Consider a software project of 350 function points, assuming: the ratio of
calendar time vs. development time (development speed) is 2; testing
consists of unit, integration, and system testing; and new requirements
are added at a rate of 3% per month.
(a) Using the estimation rules of thumb discussed in class, give an
estimate for each of the following project parameters, assuming a
waterfall process.
(i) The total effort, expressed in person-months.
(ii) The total cost of the project.
(iii) The number of inspection steps required to obtain fewer than 175
defects.
(b) Re-do the estimates in part (a) assuming that the project can be
split into two nearly independent parts of 200 function points and 150
function points, respectively.
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 24
Lifecycle statistics
Life cycle of a project item
• Well represented by a state machine
• E.g. a “bug” life cycle
Simplest form: 3 states
May reach 10s of states when bug prioritization is involved
• Statistics on bugs, requirements, “issues”, tasks, etc.
Open Fixed Closed
DEV
QA
QA
QA
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 25
Estimation process
Perceived
Actual
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 26
Example procedure
What do you think of the following procedure:
[Source: Schneider,Winters - “Applying Use Cases” Addison-Wesley, 1999]
Starting point: use cases.
UUCP: unadjusted use case points
• ~ # of analysis classes: 5, 10, 15
TCF: technical complexity factor
• 0.6 + sum(0.01 * TFactor)
• TFactor sum range: 14
EF: experience factor
• 1.4 + sum(-0.03 * EFactor)
• Efactor sum range: 4.5
UCP: use case points
• UUCP * TCF * EF
PH: person-hours
• UCP * (20..28) + 120
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software metrics—Slide 27
Estimation tips
Adapted from [McConnell].
Avoid tentative estimates.
• Allow time for the estimation activity.
Use baselined data.
Use developer-based estimates.
• Estimate by walkthrough.
Estimate by categories.
Estimate at a low level of detail.
Use estimation tools.
Use several different estimation techniques.
• Change estimation practices during a project.

Más contenido relacionado

La actualidad más candente

Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
Nur Islam
 
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESSSOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
Amin Bandeali
 

La actualidad más candente (20)

Metrics
MetricsMetrics
Metrics
 
Software design metrics
Software design metricsSoftware design metrics
Software design metrics
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metrics
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Product metrics
Product metricsProduct metrics
Product metrics
 
Software engineering 13 software product metrics
Software engineering 13 software product metricsSoftware engineering 13 software product metrics
Software engineering 13 software product metrics
 
13 software metrics
13 software metrics13 software metrics
13 software metrics
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurement
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Estimation techniques and software metrics
Estimation techniques and software metricsEstimation techniques and software metrics
Estimation techniques and software metrics
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 
Software metrics by Dr. B. J. Mohite
Software metrics by Dr. B. J. MohiteSoftware metrics by Dr. B. J. Mohite
Software metrics by Dr. B. J. Mohite
 
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESSSOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
SOFTWARE MEASUREMENT ESTABLISHING A SOFTWARE MEASUREMENT PROCESS
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Chap13
Chap13Chap13
Chap13
 

Destacado

Software Metrics
Software MetricsSoftware Metrics
Software Metrics
gh0sst
 
Software metrics
Software metricsSoftware metrics
Software metrics
Ione Donosa
 
12 couplingand cohesion-student
12 couplingand cohesion-student12 couplingand cohesion-student
12 couplingand cohesion-student
randhirlpu
 
Software quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiranSoftware quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiran
Tanmi Kapoor
 
SOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODELSOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODEL
Amin Bandeali
 

Destacado (19)

Sw Software Metrics
Sw Software MetricsSw Software Metrics
Sw Software Metrics
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
A functional software measurement approach bridging the gap between problem a...
A functional software measurement approach bridging the gap between problem a...A functional software measurement approach bridging the gap between problem a...
A functional software measurement approach bridging the gap between problem a...
 
s/w metrics monitoring and control
s/w metrics monitoring and controls/w metrics monitoring and control
s/w metrics monitoring and control
 
Software quality metric
Software quality metricSoftware quality metric
Software quality metric
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
12 couplingand cohesion-student
12 couplingand cohesion-student12 couplingand cohesion-student
12 couplingand cohesion-student
 
Software quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiranSoftware quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiran
 
Understanding software metrics
Understanding software metricsUnderstanding software metrics
Understanding software metrics
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering Fundamentals
 
Software Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point AnalysisSoftware Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point Analysis
 
SOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODELSOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODEL
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
Unit II Software Testing and Quality Assurance
Unit II Software Testing and Quality AssuranceUnit II Software Testing and Quality Assurance
Unit II Software Testing and Quality Assurance
 
Software Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & AnalysisSoftware Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & Analysis
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
 
Cohesion & Coupling
Cohesion & Coupling Cohesion & Coupling
Cohesion & Coupling
 

Similar a Software Engineering Practice - Software Metrics and Estimation

Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptx
rituah
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
Alaa Hamouda
 
Introduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptIntroduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.ppt
DrPreethiD1
 

Similar a Software Engineering Practice - Software Metrics and Estimation (20)

Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptx
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
IJSRED-V2I4P8
IJSRED-V2I4P8IJSRED-V2I4P8
IJSRED-V2I4P8
 
Lec01 inroduction to software cost estimation ver1.ppt
Lec01 inroduction to software cost estimation ver1.pptLec01 inroduction to software cost estimation ver1.ppt
Lec01 inroduction to software cost estimation ver1.ppt
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Understanding and Improving Software Productivity
Understanding and Improving Software ProductivityUnderstanding and Improving Software Productivity
Understanding and Improving Software Productivity
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback system
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/W
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1
 
Introduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptIntroduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.ppt
 
Introduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptIntroduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).ppt
 
Introduction to Software Engineering ppt
Introduction to Software Engineering pptIntroduction to Software Engineering ppt
Introduction to Software Engineering ppt
 
Introduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptIntroduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).ppt
 
Introduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptIntroduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.ppt
 

Más de Radu_Negulescu

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
Radu_Negulescu
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02
Radu_Negulescu
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03
Radu_Negulescu
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03
Radu_Negulescu
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02
Radu_Negulescu
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
Radu_Negulescu
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software Testing
Radu_Negulescu
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
Radu_Negulescu
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
Radu_Negulescu
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
Radu_Negulescu
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements Analysis
Radu_Negulescu
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding Standards
Radu_Negulescu
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality Management
Radu_Negulescu
 
Software Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsSoftware Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business Basics
Radu_Negulescu
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project management
Radu_Negulescu
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration management
Radu_Negulescu
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
Radu_Negulescu
 

Más de Radu_Negulescu (17)

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software Testing
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements Analysis
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding Standards
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality Management
 
Software Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsSoftware Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business Basics
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project management
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration management
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Software Engineering Practice - Software Metrics and Estimation

  • 1. Software metrics and estimation McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2004
  • 2. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 2 About this module Measuring software is very subjective and approximate, but necessary to answer key questions in running a software project: • Planning: How much time/money needed? • Monitoring: What is the current status? • Control: How to decide closure?
  • 3. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 3 Metrics What to measure/estimate? Product metrics • Size: LOC, modules, etc. • Scope/specification: function points • Quality: defects, defects/LOC, P1-defects, etc. • Lifecycle statistics: requirements, fixed defects, open issues, etc. • ... Project metrics • Time • Effort: person-months • Cost • Test cases • Staff size • ...
  • 4. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 4 Basis for estimation What data can be used as basis for estimation? • Measures of size/scope • Baseline data (from previous projects) • Developer commitments • Expert judgment • “Industry standard” parameters
  • 5. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 5 Uncertainty of estimation Cone of uncertainty • [McConnell Fig. 8-2] • [McConnell Table 8-1] Sources of uncertainty • Product related Requirements change Type of application (system, shrinkwrap, client-server, real-time, ...) • Staff related Sick days, vacation time Turnover Individual abilities Analysts, developers (10:1 differences) Debugging (20:1 differences) Team productivity (5:1 differences) • Process related Tool support (or lack thereof) Process used • …
  • 6. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 6 Estimate-convergence graph Initial product definition Approved product definition Requirements specification Product design specification Detailed design specification Product complete 1.0× 0.25× 4× 2× 0.5× 1.5× 0.67× 1.25× 0.8× 1.0× 0.6× 1.6× 1.25× 0.8× 1.15× 0.85× 1.1× 0.9× Project Cost (effort and size) Project schedule
  • 7. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 7 LOC metrics LOC = lines of code A measure of the size of a program • Logical LOC vs. physical LOC Not including comments and blank lines Split lines count as one • Rough approximation: #statements, semicolons Advantages • Easy to measure • Easy to automate • Objective Disadvantage • Easy to falsify • Encourages counter-productive coding practices • Implementation-biased
  • 8. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 8 FP metrics A measure of the scope of the program • External inputs (EI) Number of screens, forms, dialogues, controls or messages through which an end user or another program adds deletes or changes data • External outputs (EO) Screens, reports, graphs or messages generated for use by end users or other programs • External inquiries (EQ) Direct accesses to data in database • Internal logical files (ILF) Major groups of end user data, could be a “file” or “database table” • External interface files (EIF) Files controlled by other applications which the program interacts with
  • 9. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 9 Examples [Source: David Longstreet] EI: EO:
  • 10. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 10 Examples EQ:
  • 11. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 11 Examples ILF EIF
  • 12. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 12 FP metrics Complexity weights Low Med High EI 3 4 6 EO 4 5 7 EQ 3 4 6 ILF 7 10 15 EIF 5 7 10 Influence multiplier: 0.65..1.35 • 14 factors
  • 13. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 13 Counting function points 349.6Adjusted Function Point Total 1.15Influence Multiplier 304Unadjusted Function Point total 651027059External Interface Files 10015310275Logical Internal Files 32644230Inquiries 63705747Outputs 44634236Inputs totalmultipliercountmultipliercountmultipliercountProgram Characteristic High Complexity Medium ComplexityLow Complexity
  • 14. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 14 Influence factors Was the application designed for end-user efficiency? End-user efficiency7 What percentage of the information is entered On-Line? On-Line data entry6 How frequently are transactions executed daily, weekly, monthly, etc.? Transaction rate5 How heavily used is the current hardware platform where the application will be executed? Heavily used configuration4 Did the user require response time or throughput? Performance3 How are distributed data and processing functions handled? Distributed data processing2 How many communication facilities are there to aid in the transfer or exchange of information with the application or system? Data communications1
  • 15. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 15 Influence factors Was the application specifically designed, developed, and supported to facilitate change? Facilitate change14 Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations? Multiple sites13 How effective and/or automated are start- up, back up, and recovery procedures? Operational ease12 How difficult is conversion and installation? Installation ease11 Was the application developed to meet one or many user’s needs? Reusability10 Does the application have extensive logical or mathematical processing? Complex processing9 How many ILF’s are updated by On-Line transaction? On-Line update8
  • 16. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 16 Influence score Strong influence throughout5 Significant influence4 Average influence3 Moderate influence2 Incidental influence1 Not present, or no influence0 InfluenceScore
  • 17. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 17 Influence score INF = 0.65 + SCORE/100
  • 18. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 18 FP metrics Some advantages • Based on specification (black-box) • Technology independent • Strong relationship to actual effort • Encourages good development Some disadvantages • Needs extensive training • Subjective
  • 19. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 19 Jones’ “rules of thumb” estimates Code volumes: • Approx. 100 LOC/FP, varies widely [Source: C. Jones “Estimating Software Costs” 1998] • Schedule: #calendar months = FP^0.4 • Development staffing: #persons = FP/150 (average) Raleigh curve • Development effort: #months * #persons = FP^1.4/150 McConnell • Equation 8-1 “Software schedule equation” #months = 3.0 * #man-months^(1/3) • Table 8-9 “Efficient schedules”
  • 20. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 20 Quality estimation Typical tradeoff: Adding a dimension: quality • Early quality will actually reduce costs, time • Late quality is traded against other parameters product (scope) cost (effort) schedule (time)
  • 21. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 21 Quality estimation Quality measure: • Fault potential: # of defects introduced during development • Defect rate: #defects in product [Source: C. Jones “Estimating Software Costs” 1998] • Test case volumes: #test cases = FP^1.2 • Fault potential: #faults = FP^1.25 • Testing fault removal: 30%/type of testing 85…99% total • Inspection fault removal: 60..65%/inspection type
  • 22. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 22 Other typical estimates [Source: C. Jones “Estimating Software Costs” 1998] • Maintenance staffing: #persons = FP/750 • Post-release repair: rate = 8 faults/PM • Software plans and docs: Page count = FP^1.15 • Creeping requirements: Rate = 2%/month 0% … 5% / month, depending on method • Costs per requirement: $500/FP initial reqs $1200/FP close to completion
  • 23. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 23 Sample question Consider a software project of 350 function points, assuming: the ratio of calendar time vs. development time (development speed) is 2; testing consists of unit, integration, and system testing; and new requirements are added at a rate of 3% per month. (a) Using the estimation rules of thumb discussed in class, give an estimate for each of the following project parameters, assuming a waterfall process. (i) The total effort, expressed in person-months. (ii) The total cost of the project. (iii) The number of inspection steps required to obtain fewer than 175 defects. (b) Re-do the estimates in part (a) assuming that the project can be split into two nearly independent parts of 200 function points and 150 function points, respectively.
  • 24. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 24 Lifecycle statistics Life cycle of a project item • Well represented by a state machine • E.g. a “bug” life cycle Simplest form: 3 states May reach 10s of states when bug prioritization is involved • Statistics on bugs, requirements, “issues”, tasks, etc. Open Fixed Closed DEV QA QA QA
  • 25. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 25 Estimation process Perceived Actual
  • 26. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 26 Example procedure What do you think of the following procedure: [Source: Schneider,Winters - “Applying Use Cases” Addison-Wesley, 1999] Starting point: use cases. UUCP: unadjusted use case points • ~ # of analysis classes: 5, 10, 15 TCF: technical complexity factor • 0.6 + sum(0.01 * TFactor) • TFactor sum range: 14 EF: experience factor • 1.4 + sum(-0.03 * EFactor) • Efactor sum range: 4.5 UCP: use case points • UUCP * TCF * EF PH: person-hours • UCP * (20..28) + 120
  • 27. McGill University ECSE 428 © 2004 Radu Negulescu Software Engineering Practice Software metrics—Slide 27 Estimation tips Adapted from [McConnell]. Avoid tentative estimates. • Allow time for the estimation activity. Use baselined data. Use developer-based estimates. • Estimate by walkthrough. Estimate by categories. Estimate at a low level of detail. Use estimation tools. Use several different estimation techniques. • Change estimation practices during a project.