SlideShare a Scribd company logo
1 of 27
Download to read offline
Size Measurement and Estimation
An approach to convert collected effort data into
something that can meaningfully be used for
estimation and comparison purposes
GRafPTechnologies
© 2014, GRafP Technologies Inc.
GRafPTechnologies
Introduction
This document was prepared because
assessments have shown that by and
large, organizations misunderstand what
is meant by size and how size information
is used in process engineering
Size becomes critical when an
organization wishes to implement
quantitative control
2
GRafPTechnologies
Exploiting effort data
How can effort data be exploited to define
a unit that reflects the size of what is
being produced?
Once this unit is known, it can be refined
with the collection of additional data, and
used to derive ratios that will facilitate
estimation, monitoring and control of
future work
3
GRafPTechnologies
Example
Assume development of an application
comprised of 4 features made up of
various components
Components categorized as follows
Data processing (DP)
Internal transactions (IT)
External transactions (ET)
Reports or read-only screens (ROS)
Refreshable screens (RS)
4
GRafPTechnologies
Example (Cont’d)
Following parameters initially defined
based on experience
Component type
Estimated # of
work-hours
DP 10
IT 8
ET 11
ROS 5
RS 16
Value Complexity
0.5 Simple
1.0 Medium
1.5 Complex
5
GRafPTechnologies
Example (Cont’d)
Initially, the size of DP, IT, ET, ROS and RS
are defined in terms of effort, on the basis
of experience
For instance, a nominal Data Processing
component requires 10 w-h to develop,
whereas a simple Data Processing component
requires 5 w-h
A table is defined that takes into account
complexity, which then becomes a
representation of the size of a component
By multiplying the nominal effort by the
complexity factor, it is possible to obtain
the effort required to develop a given
component
6
GRafPTechnologies
Example (Cont’d)
Feature 1
3 DP (2 Simple; 1 Complex)
5 IT (1 Simple; 3 Medium; 1 Complex)
Feature 2
1 DP (Medium)
3 IT (1 Simple; 2 Complex)
2 ROS (1 Simple; 1 Complex)
1 RS (Medium)
7
GRafPTechnologies
Example (Cont’d)
Feature 3
2 IT (1 Simple; 1 Medium)
3 ET (2 Simple; 1 Complex)
3 RS (2 Simple; 1 Complex)
Feature 4
5 DP (2 Simple; 2 Medium; 1 Complex)
2 ET (2 Medium)
3 ROS (2 Medium; 1 Complex)
1 RS (Medium)
8
GRafPTechnologies
Size and Effort Estimation
Application size expressed as a function
of Component Types = # of Components
of a given Type x Complexity
Component
Type
Simple
(0.5)
Medium
(1.0)
Complex
(1.5)
Total
Size
Effort
(w-h)
Total Effort
(w-h)
DP 4 3 2 8 10 80
IT 3 4 3 10 8 80
ET 2 2 1 4.5 11 49.5
ROS 1 2 2 5.5 5 27.5
RS 2 2 1 4.5 16 72
9
GRafPTechnologies
Size and Effort Estimation (Cont’d)
The number 8 under Total size is obtained
by multiplying 4*0.5, 3*1.0 and 2*1.5, and
adding the three values
In this case, it does not make much sense
to add the total size for each component
type to get the total system size
The effort for each component type has not
been normalized (this effort depends on the
type), and adding total sizes for component
types is like adding apples and oranges
However, that effort can be added to
obtain total system effort, which amounts
to 309 w-h
10
GRafPTechnologies
Improving Size Estimation
Limitations of this approach
No standard component unit size
Number of defects per feature and effort per
feature cannot easily be compared
• Depend on component type (e.g. DP, IT)
11
GRafPTechnologies
Improving Size Estimation (Cont’d)
Define a standard component size
Arbitrarily define Component Unit size (CU)
Define Effort Ratio (ER) as 10 work-hours/CU
• Work-hours averaged over Component Types
Component type Weight
DP 1
IT 0.8
ET 1.1
ROS 0.5
RS 1.6
As data is
collected,
weights can
be refined
with time
12
GRafPTechnologies
Improving Size Estimation (Cont’d)
Size in CU = Σtypes (# of Components of a
given Type x Complexity x Weight)
Effort = Size (CU) x ER (w-h/CU)
Feature
DP
W1=1
S-M-C
IT
W2=.8
S-M-C
ET
W3=1.1
S-M-C
ROS
W4=.5
S-M-C
RS
W5=1.6
S-M-C
Size
(CUs)
Est.
Effort
(w-h)
1 2-0-1 1-3-1 0-0-0 0-0-0 0-0-0 6.5 65
2 0-1-0 1-0-2 0-0-0 1-0-1 0-1-0 6.4 64
3 0-0-0 1-1-0 2-0-1 0-0-0 2-0-1 7.95 79.5
4 2-2-1 0-0-0 0-2-0 0-2-1 0-1-0 10.05 100.5
13
GRafPTechnologies
Improving Size Estimation (Cont’d)
The size of Feature 1 is equal to 2*0.5 *1+
1*1.5*1 (for Data Processing components) +
1*0.5*0.8 + 3*1.0*0.8 + 1*1.5*0.8 (for Internal
Transactions components) = 6.5 CUs
Total system development effort adds up to 309
w-h, the same value obtained previously
In this case, because the effort has been
normalized by defining it for each CU,
adding the size of each feature translates
into total application size
Total application size amounts to 30.9 CUs,
whereas in the previous case, total application
size was 32.5, but 32.5 what?
14
GRafPTechnologies
Conceptualization
From one dimension,
namely effort, along
which measurements
were collected…
Two additional
dimensions are being
added, namely weight
and complexity, which
even though still based
on effort, will allow
deriving size as actual
data is collected to
calibrate the values
arbitrarily assigned to
these dimensions
Effort
Weight
Effort per
unit size
SizeX
Complexity
15
GRafPTechnologies
Comparing with Actuals
With data collected for 3 or more features, we
can solve for Complexity factors Simple (S),
Medium (M), and Complex (C)
W2 = 0.8W1
W3 = 1.1W1
W4 = 0.5W1
W5 = 1.6W1
4 Equations of the following type
With N varying from 1 to 4, Effort Ratio = 10
[W1*(S*DPS+M*DPM+C*DPC) + .8W1*(S*ITS+M*ITM+C*ITC) +
1.1W1*(S*ETS+M*ETM+C*ETC) + .5W1*(S*ROSS+M*ROSM+C*ROSC) +
1.6W1*(S*RSS+M*RSM+C*RSC)]*10 = Actual Effort for Feature N
16
GRafPTechnologies
Comparing with Actuals (Cont’d)
Initially, Simple (S), Medium (M) and
Complex (C) were defined from experience
and intuitively from the amount of effort
invested in the development of these
components
The next step is to collect actuals in order to
determine what the real values of Simple (S),
Medium (M) and Complex (C) are
There are three unknowns: S, M and C
At least three equations are needed in
order to find solution for each, but more
equations are desirable to remove random
fluctuations
17
GRafPTechnologies
Comparing with Actuals (Cont’d)
This table shows 4 data sets that have
been collected resulting in 4 equations to
solve 3 unknowns
Feature
DP
W1=1
S-M-C
IT
W2=.8
S-M-C
ET
W3=1.1
S-M-C
ROS
W4=.5
S-M-C
RS
W5=1.6
S-M-C
Size
(CUs)
Actual
Effort
(w-h)
1 2-0-1 1-3-1 0-0-0 0-0-0 0-0-0 6.5 60
2 0-1-0 1-0-2 0-0-0 1-0-1 0-1-0 6.4 70
3 0-0-0 1-1-0 2-0-1 0-0-0 2-0-1 7.95 85
4 2-2-1 0-0-0 0-2-0 0-2-1 0-1-0 10.05 112
18
GRafPTechnologies
Determine Complexity Factors from
Actuals
Solve for all 4 Features
1. [W1*(2S+C) + W2*(S+3M+C)]*10 = 60
2. [W1*(M) + W2*(S+2C) + W4*(S+C) + W5*(M)]*10 = 70
3. [W2*(S+M) + W3*(2S+C) + W5*(2S+C)]*10 = 85
4. [W1*(2S+2M+C) + W3*(2M) + W4*(2M+C) + W5*(M)]*10 = 112
Solution (linear approximation)
Value Complexity
0.54 Simple
1.18 Medium
1.32 Complex
19
GRafPTechnologies
Determine Complexity Factors from
Actuals (Cont’d)
The value 10 shown for equation 1 is the
effort ratio defined for a CU
The value of 60 is the actual effort that has
been obtained from time recorded by
developers working on feature 1
The obvious solution is to calculate the
average for each of the three values
obtained for S, M, and C
Based on these calculations, S is not 0.5
as previously estimated but 0.54; likewise,
M and C are 1.18 and 1.32, respectively,
not 1 and 1.5
20
GRafPTechnologies
Determine Complexity Factors from
Actuals (Cont’d)
These calculations will typically be
performed by the personnel having the
responsibility of analyzing data
Development personnel will provide raw data
Doing this exercise with collected data
provides insight on its reliability
If, after resolving these equations, it is found
for example that Medium has a value larger
than Complex, then it can be concluded that
collected data was unreliable, and something
has to be done to remedy the situation
21
GRafPTechnologies
Linear Approximation
• Solve for x and y
– 2 unknowns, 3 equations
ax + by = K, where a, b, and K are constants
cx + dy = L, where c, d, and L are constants
ex + fy = M, where e, f, and M are constants
• Can also be expressed as
a b x K a c e a b x a c e K
c d = L c d = L
e f y M b d f e f y b d f M
• Which reduces to
x (a2 + c2 + e2) + y (ab + cd + ef) = aK + cL + eM
x (ab + cd + ef) + y (b2 + d2 + f2) = bK + dL + fM
22
GRafPTechnologies
Linear Approximation (Cont’d)
Solving 3 unknowns with four equations
can easily be done manually
However, if data for 50 features had been
collected, this would result in having to find
solutions for three unknowns with 50
equations, a tedious task at best
The preceding slide shows how to use
matrix algebra to solve for 2 unknowns
(namely x and y) with three equations
It can be generalized for any number of
equations and solved with the help of Excel
23
GRafPTechnologies
Linear Approximation (Cont’d)
The left-hand side of the second bullet is
just a matrix representation of the three
equations shown in bullet 1
In the right-hand side of bullet 2, each side
of the equation has been multiplied by the
transpose of the leftmost matrix
The transpose of a matrix consists of
interchanging rows and columns, which is a
standard Excel function
The third bullet is the result of the matrix
operation, which is easily solved for x and y
24
GRafPTechnologies
Determine Weight Factors from
Actuals
Then, with data collected for 5 or more
features, we can solve for weight factors W1,
W2, W3, W4, and W5
Using values previously calculated for Complexity
Factors S, M, and C, and Effort Ratio = 10
L equations of the following type
With L varying from 1 to a value > 5
[W1*(S*DPS+M*DPM+C*DPC) +
W2*(S*ITS+M*ITM+C*ITC) +
W3*(S*ETS+M*ETM+C*ETC) +
W4*(S*ROSS+M*ROSM+C*ROSC) +
W5*(S*RSS+M*RSM+C*RSC)]*Effort Ratio = Actual Effort for
Feature L
25
GRafPTechnologies
Determine Effort Ratio from Actuals
Finally, with data collected for 1 or more
feature, we can solve for Effort Ratio
Using values previously calculated for
Complexity Factors S, M and C, and for Weight
Factors W1, W2, W3, W4, and W5
P equations of the following type
With P being a value > 1
[W1*(S*DPS+M*DPM+C*DPC) +
W2*(S*ITS+M*ITM+C*ITC) +
W3*(S*ETS+M*ETM+C*ETC) +
W4*(S*ROSS+M*ROSM+C*ROSC) +
W5*(S*RSS+M*RSM+C*RSC)]*Effort Ratio = Actual Effort for
Feature P
26
GRafPTechnologies
Recalibration
It is recommended to periodically
recalibrate with new data the parameters
used for deriving size
To reflect, among other things, the
improvement in know-how as applications are
being developed
Benchmarking is accomplished by
measuring size for a sample of projects
using one of the “standard” measurement
units, and converting it into CUs
Agile methods provide an opportunity to
derive a unit size quickly as a result of
frequent deliveries
27

More Related Content

What's hot

Optimization for Deep Learning
Optimization for Deep LearningOptimization for Deep Learning
Optimization for Deep LearningSebastian Ruder
 
Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...eSAT Journals
 
Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...eSAT Publishing House
 
Divide&Conquer & Dynamic Programming
Divide&Conquer & Dynamic ProgrammingDivide&Conquer & Dynamic Programming
Divide&Conquer & Dynamic ProgrammingGuillaume Guérard
 
Lecture 8 dynamic programming
Lecture 8 dynamic programmingLecture 8 dynamic programming
Lecture 8 dynamic programmingOye Tu
 
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...SSA KPI
 
unit-4-dynamic programming
unit-4-dynamic programmingunit-4-dynamic programming
unit-4-dynamic programminghodcsencet
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquerKrish_ver2
 
Comparitive Analysis of Algorithm strategies
Comparitive Analysis of Algorithm strategiesComparitive Analysis of Algorithm strategies
Comparitive Analysis of Algorithm strategiesTalha Shaikh
 
daa-unit-3-greedy method
daa-unit-3-greedy methoddaa-unit-3-greedy method
daa-unit-3-greedy methodhodcsencet
 

What's hot (20)

Unit 5
Unit 5Unit 5
Unit 5
 
Optimization for Deep Learning
Optimization for Deep LearningOptimization for Deep Learning
Optimization for Deep Learning
 
Dynamic pgmming
Dynamic pgmmingDynamic pgmming
Dynamic pgmming
 
algorithm Unit 2
algorithm Unit 2 algorithm Unit 2
algorithm Unit 2
 
Daa unit 2
Daa unit 2Daa unit 2
Daa unit 2
 
Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...
 
Greedy Algorithms
Greedy AlgorithmsGreedy Algorithms
Greedy Algorithms
 
Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...Fpga implementation of optimal step size nlms algorithm and its performance a...
Fpga implementation of optimal step size nlms algorithm and its performance a...
 
Divide&Conquer & Dynamic Programming
Divide&Conquer & Dynamic ProgrammingDivide&Conquer & Dynamic Programming
Divide&Conquer & Dynamic Programming
 
Unit 7 dynamic programming
Unit 7   dynamic programmingUnit 7   dynamic programming
Unit 7 dynamic programming
 
Daa unit 2
Daa unit 2Daa unit 2
Daa unit 2
 
Lecture 8 dynamic programming
Lecture 8 dynamic programmingLecture 8 dynamic programming
Lecture 8 dynamic programming
 
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...
Efficient Solution of Two-Stage Stochastic Linear Programs Using Interior Poi...
 
unit-4-dynamic programming
unit-4-dynamic programmingunit-4-dynamic programming
unit-4-dynamic programming
 
DP
DPDP
DP
 
Divide and Conquer
Divide and ConquerDivide and Conquer
Divide and Conquer
 
Dynamicpgmming
DynamicpgmmingDynamicpgmming
Dynamicpgmming
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquer
 
Comparitive Analysis of Algorithm strategies
Comparitive Analysis of Algorithm strategiesComparitive Analysis of Algorithm strategies
Comparitive Analysis of Algorithm strategies
 
daa-unit-3-greedy method
daa-unit-3-greedy methoddaa-unit-3-greedy method
daa-unit-3-greedy method
 

Viewers also liked

Real-time Analytics in Big data
Real-time Analytics in Big dataReal-time Analytics in Big data
Real-time Analytics in Big dataPratiksha Manan
 
Architecting the Future of Big Data and Search
Architecting the Future of Big Data and SearchArchitecting the Future of Big Data and Search
Architecting the Future of Big Data and SearchHortonworks
 
What happen after crawling big data?
What happen after crawling big data?What happen after crawling big data?
What happen after crawling big data?jcarpioc
 
CHRTD Creating a Branded Culture
CHRTD Creating a Branded CultureCHRTD Creating a Branded Culture
CHRTD Creating a Branded CultureRich Jones
 
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Usama Fayyad
 
From Big Data to Actionable Insight: What's Needed on the Back End
From Big Data to Actionable Insight: What's Needed on the Back EndFrom Big Data to Actionable Insight: What's Needed on the Back End
From Big Data to Actionable Insight: What's Needed on the Back EndZach Gardner
 
Practical Elasticsearch - real world use cases
Practical Elasticsearch - real world use casesPractical Elasticsearch - real world use cases
Practical Elasticsearch - real world use casesItamar
 
Big data, data science & fast data
Big data, data science & fast dataBig data, data science & fast data
Big data, data science & fast dataKunal Joshi
 
Big Data and Fast Data – Big and Fast Combined, is it Possible?
Big Data and Fast Data – Big and Fast Combined, is it Possible?Big Data and Fast Data – Big and Fast Combined, is it Possible?
Big Data and Fast Data – Big and Fast Combined, is it Possible?Guido Schmutz
 
Elasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easyElasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easyItamar
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Amazon Web Services
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignMichael Noll
 

Viewers also liked (18)

Hurix case study
Hurix case study Hurix case study
Hurix case study
 
Real-time Analytics in Big data
Real-time Analytics in Big dataReal-time Analytics in Big data
Real-time Analytics in Big data
 
Architecting the Future of Big Data and Search
Architecting the Future of Big Data and SearchArchitecting the Future of Big Data and Search
Architecting the Future of Big Data and Search
 
What happen after crawling big data?
What happen after crawling big data?What happen after crawling big data?
What happen after crawling big data?
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 
CHRTD Creating a Branded Culture
CHRTD Creating a Branded CultureCHRTD Creating a Branded Culture
CHRTD Creating a Branded Culture
 
Architecting for Big Data with AWS
Architecting for Big Data with AWSArchitecting for Big Data with AWS
Architecting for Big Data with AWS
 
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
 
Healthcare fraud detection
Healthcare fraud detectionHealthcare fraud detection
Healthcare fraud detection
 
From Big Data to Actionable Insight: What's Needed on the Back End
From Big Data to Actionable Insight: What's Needed on the Back EndFrom Big Data to Actionable Insight: What's Needed on the Back End
From Big Data to Actionable Insight: What's Needed on the Back End
 
Practical Elasticsearch - real world use cases
Practical Elasticsearch - real world use casesPractical Elasticsearch - real world use cases
Practical Elasticsearch - real world use cases
 
Big data, data science & fast data
Big data, data science & fast dataBig data, data science & fast data
Big data, data science & fast data
 
Big Data and Fast Data – Big and Fast Combined, is it Possible?
Big Data and Fast Data – Big and Fast Combined, is it Possible?Big Data and Fast Data – Big and Fast Combined, is it Possible?
Big Data and Fast Data – Big and Fast Combined, is it Possible?
 
Elasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easyElasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easy
 
CIM Digital Summit 2016 - CIM: Maria Heckel's Presentation
CIM Digital Summit 2016 - CIM: Maria Heckel's PresentationCIM Digital Summit 2016 - CIM: Maria Heckel's Presentation
CIM Digital Summit 2016 - CIM: Maria Heckel's Presentation
 
CIM Digital Summit 2016 - Aquila Insight: Chris Dobson's Presentation
CIM Digital Summit 2016 - Aquila Insight: Chris Dobson's PresentationCIM Digital Summit 2016 - Aquila Insight: Chris Dobson's Presentation
CIM Digital Summit 2016 - Aquila Insight: Chris Dobson's Presentation
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 

Similar to Size Measurement and Estimation

Principal Components Analysis, Calculation and Visualization
Principal Components Analysis, Calculation and VisualizationPrincipal Components Analysis, Calculation and Visualization
Principal Components Analysis, Calculation and VisualizationMarjan Sterjev
 
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...IJRESJOURNAL
 
DAA-Unit1.pptx
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptxNishaS88
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm AnalysisMary Margarat
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to AlgorithmsVenkatesh Iyer
 
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...TechVision8
 
Mm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithmsMm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithmsEellekwameowusu
 
Introduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxIntroduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxPJS KUMAR
 
SupportVectorRegression
SupportVectorRegressionSupportVectorRegression
SupportVectorRegressionDaniel K
 
Exploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectExploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectSurya Chandra
 

Similar to Size Measurement and Estimation (20)

Big Oh.ppt
Big Oh.pptBig Oh.ppt
Big Oh.ppt
 
3 analysis.gtm
3 analysis.gtm3 analysis.gtm
3 analysis.gtm
 
Principal Components Analysis, Calculation and Visualization
Principal Components Analysis, Calculation and VisualizationPrincipal Components Analysis, Calculation and Visualization
Principal Components Analysis, Calculation and Visualization
 
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...
An Improved Adaptive Multi-Objective Particle Swarm Optimization for Disassem...
 
Chapter two
Chapter twoChapter two
Chapter two
 
DAA-Unit1.pptx
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptx
 
R Language Introduction
R Language IntroductionR Language Introduction
R Language Introduction
 
Genetic Algorithms
Genetic AlgorithmsGenetic Algorithms
Genetic Algorithms
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
 
Project2
Project2Project2
Project2
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
 
chapter 1
chapter 1chapter 1
chapter 1
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
 
Mm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithmsMm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithms
 
Fcm1
Fcm1Fcm1
Fcm1
 
Fcm1
Fcm1Fcm1
Fcm1
 
Introduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxIntroduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptx
 
SupportVectorRegression
SupportVectorRegressionSupportVectorRegression
SupportVectorRegression
 
Exploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectExploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems Project
 

Recently uploaded

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 

Recently uploaded (20)

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 

Size Measurement and Estimation

  • 1. Size Measurement and Estimation An approach to convert collected effort data into something that can meaningfully be used for estimation and comparison purposes GRafPTechnologies © 2014, GRafP Technologies Inc.
  • 2. GRafPTechnologies Introduction This document was prepared because assessments have shown that by and large, organizations misunderstand what is meant by size and how size information is used in process engineering Size becomes critical when an organization wishes to implement quantitative control 2
  • 3. GRafPTechnologies Exploiting effort data How can effort data be exploited to define a unit that reflects the size of what is being produced? Once this unit is known, it can be refined with the collection of additional data, and used to derive ratios that will facilitate estimation, monitoring and control of future work 3
  • 4. GRafPTechnologies Example Assume development of an application comprised of 4 features made up of various components Components categorized as follows Data processing (DP) Internal transactions (IT) External transactions (ET) Reports or read-only screens (ROS) Refreshable screens (RS) 4
  • 5. GRafPTechnologies Example (Cont’d) Following parameters initially defined based on experience Component type Estimated # of work-hours DP 10 IT 8 ET 11 ROS 5 RS 16 Value Complexity 0.5 Simple 1.0 Medium 1.5 Complex 5
  • 6. GRafPTechnologies Example (Cont’d) Initially, the size of DP, IT, ET, ROS and RS are defined in terms of effort, on the basis of experience For instance, a nominal Data Processing component requires 10 w-h to develop, whereas a simple Data Processing component requires 5 w-h A table is defined that takes into account complexity, which then becomes a representation of the size of a component By multiplying the nominal effort by the complexity factor, it is possible to obtain the effort required to develop a given component 6
  • 7. GRafPTechnologies Example (Cont’d) Feature 1 3 DP (2 Simple; 1 Complex) 5 IT (1 Simple; 3 Medium; 1 Complex) Feature 2 1 DP (Medium) 3 IT (1 Simple; 2 Complex) 2 ROS (1 Simple; 1 Complex) 1 RS (Medium) 7
  • 8. GRafPTechnologies Example (Cont’d) Feature 3 2 IT (1 Simple; 1 Medium) 3 ET (2 Simple; 1 Complex) 3 RS (2 Simple; 1 Complex) Feature 4 5 DP (2 Simple; 2 Medium; 1 Complex) 2 ET (2 Medium) 3 ROS (2 Medium; 1 Complex) 1 RS (Medium) 8
  • 9. GRafPTechnologies Size and Effort Estimation Application size expressed as a function of Component Types = # of Components of a given Type x Complexity Component Type Simple (0.5) Medium (1.0) Complex (1.5) Total Size Effort (w-h) Total Effort (w-h) DP 4 3 2 8 10 80 IT 3 4 3 10 8 80 ET 2 2 1 4.5 11 49.5 ROS 1 2 2 5.5 5 27.5 RS 2 2 1 4.5 16 72 9
  • 10. GRafPTechnologies Size and Effort Estimation (Cont’d) The number 8 under Total size is obtained by multiplying 4*0.5, 3*1.0 and 2*1.5, and adding the three values In this case, it does not make much sense to add the total size for each component type to get the total system size The effort for each component type has not been normalized (this effort depends on the type), and adding total sizes for component types is like adding apples and oranges However, that effort can be added to obtain total system effort, which amounts to 309 w-h 10
  • 11. GRafPTechnologies Improving Size Estimation Limitations of this approach No standard component unit size Number of defects per feature and effort per feature cannot easily be compared • Depend on component type (e.g. DP, IT) 11
  • 12. GRafPTechnologies Improving Size Estimation (Cont’d) Define a standard component size Arbitrarily define Component Unit size (CU) Define Effort Ratio (ER) as 10 work-hours/CU • Work-hours averaged over Component Types Component type Weight DP 1 IT 0.8 ET 1.1 ROS 0.5 RS 1.6 As data is collected, weights can be refined with time 12
  • 13. GRafPTechnologies Improving Size Estimation (Cont’d) Size in CU = Σtypes (# of Components of a given Type x Complexity x Weight) Effort = Size (CU) x ER (w-h/CU) Feature DP W1=1 S-M-C IT W2=.8 S-M-C ET W3=1.1 S-M-C ROS W4=.5 S-M-C RS W5=1.6 S-M-C Size (CUs) Est. Effort (w-h) 1 2-0-1 1-3-1 0-0-0 0-0-0 0-0-0 6.5 65 2 0-1-0 1-0-2 0-0-0 1-0-1 0-1-0 6.4 64 3 0-0-0 1-1-0 2-0-1 0-0-0 2-0-1 7.95 79.5 4 2-2-1 0-0-0 0-2-0 0-2-1 0-1-0 10.05 100.5 13
  • 14. GRafPTechnologies Improving Size Estimation (Cont’d) The size of Feature 1 is equal to 2*0.5 *1+ 1*1.5*1 (for Data Processing components) + 1*0.5*0.8 + 3*1.0*0.8 + 1*1.5*0.8 (for Internal Transactions components) = 6.5 CUs Total system development effort adds up to 309 w-h, the same value obtained previously In this case, because the effort has been normalized by defining it for each CU, adding the size of each feature translates into total application size Total application size amounts to 30.9 CUs, whereas in the previous case, total application size was 32.5, but 32.5 what? 14
  • 15. GRafPTechnologies Conceptualization From one dimension, namely effort, along which measurements were collected… Two additional dimensions are being added, namely weight and complexity, which even though still based on effort, will allow deriving size as actual data is collected to calibrate the values arbitrarily assigned to these dimensions Effort Weight Effort per unit size SizeX Complexity 15
  • 16. GRafPTechnologies Comparing with Actuals With data collected for 3 or more features, we can solve for Complexity factors Simple (S), Medium (M), and Complex (C) W2 = 0.8W1 W3 = 1.1W1 W4 = 0.5W1 W5 = 1.6W1 4 Equations of the following type With N varying from 1 to 4, Effort Ratio = 10 [W1*(S*DPS+M*DPM+C*DPC) + .8W1*(S*ITS+M*ITM+C*ITC) + 1.1W1*(S*ETS+M*ETM+C*ETC) + .5W1*(S*ROSS+M*ROSM+C*ROSC) + 1.6W1*(S*RSS+M*RSM+C*RSC)]*10 = Actual Effort for Feature N 16
  • 17. GRafPTechnologies Comparing with Actuals (Cont’d) Initially, Simple (S), Medium (M) and Complex (C) were defined from experience and intuitively from the amount of effort invested in the development of these components The next step is to collect actuals in order to determine what the real values of Simple (S), Medium (M) and Complex (C) are There are three unknowns: S, M and C At least three equations are needed in order to find solution for each, but more equations are desirable to remove random fluctuations 17
  • 18. GRafPTechnologies Comparing with Actuals (Cont’d) This table shows 4 data sets that have been collected resulting in 4 equations to solve 3 unknowns Feature DP W1=1 S-M-C IT W2=.8 S-M-C ET W3=1.1 S-M-C ROS W4=.5 S-M-C RS W5=1.6 S-M-C Size (CUs) Actual Effort (w-h) 1 2-0-1 1-3-1 0-0-0 0-0-0 0-0-0 6.5 60 2 0-1-0 1-0-2 0-0-0 1-0-1 0-1-0 6.4 70 3 0-0-0 1-1-0 2-0-1 0-0-0 2-0-1 7.95 85 4 2-2-1 0-0-0 0-2-0 0-2-1 0-1-0 10.05 112 18
  • 19. GRafPTechnologies Determine Complexity Factors from Actuals Solve for all 4 Features 1. [W1*(2S+C) + W2*(S+3M+C)]*10 = 60 2. [W1*(M) + W2*(S+2C) + W4*(S+C) + W5*(M)]*10 = 70 3. [W2*(S+M) + W3*(2S+C) + W5*(2S+C)]*10 = 85 4. [W1*(2S+2M+C) + W3*(2M) + W4*(2M+C) + W5*(M)]*10 = 112 Solution (linear approximation) Value Complexity 0.54 Simple 1.18 Medium 1.32 Complex 19
  • 20. GRafPTechnologies Determine Complexity Factors from Actuals (Cont’d) The value 10 shown for equation 1 is the effort ratio defined for a CU The value of 60 is the actual effort that has been obtained from time recorded by developers working on feature 1 The obvious solution is to calculate the average for each of the three values obtained for S, M, and C Based on these calculations, S is not 0.5 as previously estimated but 0.54; likewise, M and C are 1.18 and 1.32, respectively, not 1 and 1.5 20
  • 21. GRafPTechnologies Determine Complexity Factors from Actuals (Cont’d) These calculations will typically be performed by the personnel having the responsibility of analyzing data Development personnel will provide raw data Doing this exercise with collected data provides insight on its reliability If, after resolving these equations, it is found for example that Medium has a value larger than Complex, then it can be concluded that collected data was unreliable, and something has to be done to remedy the situation 21
  • 22. GRafPTechnologies Linear Approximation • Solve for x and y – 2 unknowns, 3 equations ax + by = K, where a, b, and K are constants cx + dy = L, where c, d, and L are constants ex + fy = M, where e, f, and M are constants • Can also be expressed as a b x K a c e a b x a c e K c d = L c d = L e f y M b d f e f y b d f M • Which reduces to x (a2 + c2 + e2) + y (ab + cd + ef) = aK + cL + eM x (ab + cd + ef) + y (b2 + d2 + f2) = bK + dL + fM 22
  • 23. GRafPTechnologies Linear Approximation (Cont’d) Solving 3 unknowns with four equations can easily be done manually However, if data for 50 features had been collected, this would result in having to find solutions for three unknowns with 50 equations, a tedious task at best The preceding slide shows how to use matrix algebra to solve for 2 unknowns (namely x and y) with three equations It can be generalized for any number of equations and solved with the help of Excel 23
  • 24. GRafPTechnologies Linear Approximation (Cont’d) The left-hand side of the second bullet is just a matrix representation of the three equations shown in bullet 1 In the right-hand side of bullet 2, each side of the equation has been multiplied by the transpose of the leftmost matrix The transpose of a matrix consists of interchanging rows and columns, which is a standard Excel function The third bullet is the result of the matrix operation, which is easily solved for x and y 24
  • 25. GRafPTechnologies Determine Weight Factors from Actuals Then, with data collected for 5 or more features, we can solve for weight factors W1, W2, W3, W4, and W5 Using values previously calculated for Complexity Factors S, M, and C, and Effort Ratio = 10 L equations of the following type With L varying from 1 to a value > 5 [W1*(S*DPS+M*DPM+C*DPC) + W2*(S*ITS+M*ITM+C*ITC) + W3*(S*ETS+M*ETM+C*ETC) + W4*(S*ROSS+M*ROSM+C*ROSC) + W5*(S*RSS+M*RSM+C*RSC)]*Effort Ratio = Actual Effort for Feature L 25
  • 26. GRafPTechnologies Determine Effort Ratio from Actuals Finally, with data collected for 1 or more feature, we can solve for Effort Ratio Using values previously calculated for Complexity Factors S, M and C, and for Weight Factors W1, W2, W3, W4, and W5 P equations of the following type With P being a value > 1 [W1*(S*DPS+M*DPM+C*DPC) + W2*(S*ITS+M*ITM+C*ITC) + W3*(S*ETS+M*ETM+C*ETC) + W4*(S*ROSS+M*ROSM+C*ROSC) + W5*(S*RSS+M*RSM+C*RSC)]*Effort Ratio = Actual Effort for Feature P 26
  • 27. GRafPTechnologies Recalibration It is recommended to periodically recalibrate with new data the parameters used for deriving size To reflect, among other things, the improvement in know-how as applications are being developed Benchmarking is accomplished by measuring size for a sample of projects using one of the “standard” measurement units, and converting it into CUs Agile methods provide an opportunity to derive a unit size quickly as a result of frequent deliveries 27