SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metricsIndu Sharma Bhardwaj
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metricsdespicable me
 
Software engineering 13 software product metrics
Software engineering 13 software product metricsSoftware engineering 13 software product metrics
Software engineering 13 software product metricsVaibhav Khanna
 
Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurementGurpreet Saini
 
Estimation techniques and software metrics
Estimation techniques and software metricsEstimation techniques and software metrics
Estimation techniques and software metricsMae Abigail Banquil
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimationNur 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 PROCESSAmin Bandeali
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 

Mais procurados (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
 

Destaque

Software Metrics
Software MetricsSoftware Metrics
Software Metricsgh0sst
 
Software metrics
Software metricsSoftware metrics
Software metricsIone Donosa
 
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...IWSM Mensura
 
s/w metrics monitoring and control
s/w metrics monitoring and controls/w metrics monitoring and control
s/w metrics monitoring and controlPriyanka Pradhan
 
12 couplingand cohesion-student
12 couplingand cohesion-student12 couplingand cohesion-student
12 couplingand cohesion-studentrandhirlpu
 
Software quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiranSoftware quality metrics methodology _tanmi kiran
Software quality metrics methodology _tanmi kiranTanmi Kapoor
 
Understanding software metrics
Understanding software metricsUnderstanding software metrics
Understanding software metricsTushar Sharma
 
Software Engineering Fundamentals
Software Engineering FundamentalsSoftware Engineering Fundamentals
Software Engineering FundamentalsRahul Sudame
 
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 AnalysisProgrameter
 
SOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODELSOFTWARE MEASUREMENT A PROCESS MODEL
SOFTWARE MEASUREMENT A PROCESS MODELAmin Bandeali
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 
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 AssuranceVinothkumaR Ramu
 
Software Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & AnalysisSoftware Testing - Defect Metrics & Analysis
Software Testing - Defect Metrics & AnalysisOAK Systems Pvt Ltd
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and MeasurementsDavis Thomas
 
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 MetricsProgrameter
 

Destaque (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
 

Semelhante a Software Engineering Practice - Software Metrics and Estimation

Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineeringRupesh Vaishnav
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptxrituah
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
IJSRED-V2I4P8
IJSRED-V2I4P8IJSRED-V2I4P8
IJSRED-V2I4P8IJSRED
 
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.pptJuwieKaren
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICSneha Padhiar
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICSneha Padhiar
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Understanding and Improving Software Productivity
Understanding and Improving Software ProductivityUnderstanding and Improving Software Productivity
Understanding and Improving Software Productivityssuser2be5eb
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback systemAkshay Surve
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/WAkash Maheshwari
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software EngineeringAlaa Hamouda
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1Saqib Raza
 
Introduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptIntroduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptCIRMV1
 
Introduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptIntroduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptManethPathirana
 
Introduction to Software Engineering ppt
Introduction to Software Engineering pptIntroduction to Software Engineering ppt
Introduction to Software Engineering pptdhruv04814902022
 
Introduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptIntroduction-to-Software-Engineering (1).ppt
Introduction-to-Software-Engineering (1).pptAbdugafforAbduganiye
 
Introduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptIntroduction-to-Software-Engineering.ppt
Introduction-to-Software-Engineering.pptDrPreethiD1
 

Semelhante 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
 

Mais 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 AssuranceRadu_Negulescu
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02Radu_Negulescu
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Radu_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 ModelsRadu_Negulescu
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingRadu_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 AssuranceRadu_Negulescu
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignRadu_Negulescu
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisRadu_Negulescu
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsRadu_Negulescu
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementRadu_Negulescu
 
Software Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsSoftware Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsRadu_Negulescu
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project managementRadu_Negulescu
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementRadu_Negulescu
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesRadu_Negulescu
 

Mais 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

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 AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

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.