Component Based Software Estimation

advertisement
Rahmat Bagas Santoso
Diogo Satoru Aihara
Vojtech Zbranek
Motivation
• No one build software from the scratch.
• Component based software development is a
prominent contemporary software
development.
• Supported by many well-known frameworks
and standards (Microsoft COM/DCOM,
Enterprise JavaBean, Web service, etc).
• No (widely used) estimation technique for
CBSD.
Problem
• Different decomposition
Warehouse Application
Form
Stock
WH
App.
Specific
Report
Supply
Sales & Order
Communication
User
Managemnt
Log
• Transferable component estimation
Project A
Comp. A1
Comp. A1
Estimation
COTS Comp. C1
Comp. A2
Comp. A2
Estimation
Project B
Comp. A2
Comp. A2
Estimation’ (
Comp. B1
Comp. B1 Usage? Upgrade?
Estimation Known Facts?)
COTS Comp. C1
COTS Comp
C1 Estimation
Approaches (1)
Problem
Size/Function
Points
Estimation
T. Wijayasiriwardhane
and R. Lai Approach 2008 (*)
Size /
Function
Points
Effort
Estimation
(COCOMO)
R. K. Smith, A. Parrish,
and J. Hale Approach
- 1998 (**)
(*) T. Wijayasiriwardhane and R. Lai: “A Method for Measuring the Size of a
Component-Based System Specification”
(**) R. K. Smith, A. Parrish, and J. Hale: “Cost Estimation for Component Based
Estimation”
Effort
Approaches (2)
Author
Title
Year Type
T. Ellis
Context
COTS Integration in Software Solutions 1995
- A Cost Model
C. Abts
Extending the COCOMO II Software: 2004
COCOTS
Model
(Integrated
in
COCOMO II Book)
P. Naunchan & Adjustable Cost Estimation Model for 2007
D. Sutivong
COTS-Based Development
John Kammelar A
Sizing
Approach
for
OO- 2000
environments
Cost
COTS
Cost
COTS
Cost
COTS
Size
J. Verner &G. A Software Size Model
Tate
Size
OO Based ->
Component
Based
4GL - problem
dependent
1992
Size Estimation for CBSD
Component Point
• FP-like approach
• Usage of CBS Specification
– Written in UML
• Integration of two techniques
– Class Point (FP for Object Oriented systems)
– Component Complexity measurement
Component Point
Estimation Process
UML
Analyse CBSS UML
and
Classify Components
List of
Components
Classification
of
Components
Evaluate Component
Complexity and Get
Unadjusted
Component Points
Evaluate Interface
and Interaction
Complexity of
Components
Interface Complexity
Interaction Complexity
Unadjusted
Component
Points
Find the Value
Adjustment Factor
and Calculate the
Final Component
Points
Final
Component
Points
Interface Complexity
• Two types
– Internal Logical Files
– External Input Files
• Parameters
– Number of Operations
– Number of Parameters
NP
NO
<20
20-50
>50
1
Low
Low
Average
2-5
Low
Average
High
>5
Average
High
High
Type
Low
Average
High
ILF
x7
x10
x15
ELF
x5
x7
x10
Interaction Complexity
•
For each operation,
multiply:
– Interaction Frequency
– Complexity Measure
•
Interaction Complexity
= sum for all
operations
IF=
#Interactions(operation)
#Interactions(interface)
CM(D,L) = L + S(CM(Di,L+1))
Component Complexity
1. Find the component
complexity
2. Count the Component
Points
IFCI =
ITCI =
Interface Complexity
# of Interfaces
Interaction Complexity
# of Interactions
IFCI
ITCI
<5
5-8
>8
<2
Low
Low
Average
x12
2-3
Low
Average
High
X11.5
>3
Average
High
High
Type
Low
Average
High
DC
x3
x6
x10
UC
x4
x7
SC
X4.5
x7
Adjust Component Points
1. Find the Value
Adjustment Factor
2. Adjust the Component
Points
VAF = 0.65 + (0.01*Degree of Influence)
CP = Unadjusted CP * VAF
Degree of Influence
No Influence
0
Strong Influence
5
General System Characteristics
Data and online communication
Distributed processing
System / component performance
Development rigidity
User friendliness
System complexity
Installability
Operability
Maintanability
Multi-site use
System / component reliability
System / component portability
Component immaturity
Lack of component vendor support
Effort Estimation for CBSD (1) :
COCOMO Model
• Basic COCOMO Model by Boehm
• General effort model:
E = a (EDSI)h x (EAF)
 Legend:




E – Effort [man-moths]
a,h – Constant given by developing mode
EAF – Effort adjustment factor (15 cost factors)
EDSI – Estimate of Delivered Source Instruction
12
Effort Estimation for CBSD (2):
COCOMO Model
• Example:
Effort given from basic COCOMO for program with 8500 LOC:
E = a (EDSI)h x (EAF) =
= 3.2 (8.5)1.05 x 1 = 30 MM
• Boehm also adopted the Intermediate
COCOMO Model to apportion cost of
individual components
13
Effort Estimation for CBSD (3):
Intermediate COCOMO Model Example
• Intermediate COCOMO:
– Inputs:
• LOC = 8500
• EbasicCOCOMO =MMNOM= 30MM
 CMMNOM - nominal component
man-month
Component
EDSI
% of total
Comp#1
Comp#2
Comp#2
2000 23,4%
3000 35,3%
3500 41,2%
CMMNOM
?
?
?
14
Effort Estimation for CBSD (3):
Intermediate COCOMO Model Example
• Intermediate COCOMO:
– Count:
– Inputs:
• LOC = 8500
• MMNOM= 30MM
• EDSI/MMNOM=8500/30=283
• CMMNOM=EDSIcomp/(EDSI/MM)NOM
(from basic COCOMO)
 CMMNOM - nominal component
man-month
Component
EDSI
% of total
Comp#1
Comp#2
Comp#2
2000 23,4%
3000 35,3%
3500 41,2%
CMMNOM
7,06
10,60
12,36
15
Effort Estimation for CBSD (4):
Intermediate COCOMO Model Example
• After CMMNOM Effort Adjust Factor (EAF) is
calculated for each component individually
• The EAF is applied to CCMNOM for each
component!!!
 Consider variance among the cost factors for
various component!
New adjusted MM estimate for each component
CMMADJ:
CMMADJ = (CMMNOM)(EAF)
16
Effort Estimation for CBSD (5):
Intermediate COCOMO Model Example
CMMADJ = (CMMNOM)(EAF)
Component
EDSI
% of total
Comp#1
Comp#2
Comp#2
2000 23,4%
3000 35,3%
3500 41,2%
CMMNOM EAF
CMMADJ
7,06
10,60
12,36
6.28
11.98
12.98
0.89
1.13
1.05
17
Effort Estimation for CBSD (6):
• Even this improvements over monolithic
approach fails to capture relevant
parameters in CBSD
• Inspection CBSD found out wealth of new
parameters not directly captured in
COCOMO adaptation
18
Effort Estimation for CBSD (7): An
Augmented COCOMO Model
• Work with
– Within-project experience
– Team size
• Model formula:
HOURS = α + β1(COCOMO) + β2(PREV) + β3(PROG)
–
–
–
–
HOURS – number of hours devoted for component
COCOMO – result of intermediate COCOMO
PREV – number of comp. previously worked on (Within-project experience)
PROG – size of component development team
19
Effort Estimation for CBSD (8): Current
studies identifying parameters
• For effort estimation is captured by a three
dimensional view of the development process
– x axis captures the component under development
– y axis represents time
– z axis the programmers on the project
20
Effort Estimation for CBSD (9): Current
studies identifying parameters
• Research for metrics by passing planes through the three
dimensional model
• “contextual planes” - By passing a plane through the
model that is perpendicular to an axis, we capture the
“context” related to two other axis
21
Effort Estimation for CBSD (10):
Current studies identifying parameters
• This view of CBSD allows an effort estimation model to
examine metrics and effort factors at a fine-grained level
of detailed that is not captured by traditional effort
estimation models
22
Effort Estimation for CBSD (11):
Current studies identifying parameters
• Using this concept of components, time units
and programmers, we can derive a suite of
metrics that characterizes the effect of
scheduling on CBSD. We have developed
formal definitions of these metrics.
23
Effort Estimation for CBSD (12):
Identifying parameters
• Intensity - The ratio of the quantity of actual time spent on a component
to the number of time units scheduled for the component.
• Concurrency - The degree to which multiple programmers are working
simultaneously on a single component.
• Fragmentation - The degree to which a single programmer is working
simultaneously on multiple components.
• Component Project Experience - The number of components that have
been completed as part of the project prior to work beginning on a
particular component.
• Programmer Project Experience - The number of components that have
been previously completed by the programmers assigned to a particular
component.
• Team Size - The number of programmers assigned to a particular
component.
24
Conclusions
• Although CBSD is widely used, but no eminent
size/cost estimation method available yet.
• Some proposals to do estimation CBSD are already
published but most of them still in research.
Furthermore they need industry validation.
• Most estimation proposal on CBSD is in analogy with
how other disciplines do the extension of the
traditional estimation.
• More interesting result may come in the future with
the support of validation.
Thank You
• Questions & Answers
Download