Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.
-
Upload
virginia-stephens -
Category
Documents
-
view
213 -
download
0
Transcript of Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.
Component Based Software Estimation
Antonius HermawanIrene TalawayDavid VidalNga Nguyen
1. Definition2. Problems with traditional approach3. Solutions
o Different scale factorso Complexity sizeo Examples
4. Other techniques5. Conclusion
Outline
Component-based software engineering (CBSE) is an approach to software development that relies on software reuse. Components are independent so do not interfere with each other;
Provides int erfaceRequires interface
ComponentDefines the services
from the component’senvironment that it
uses
Defines the servicesthat are providedby the componentto other components
Component-based Software Engineering
ProblemSize/Function
Points Estimation
Size / Function
Points
Effort Estimation (COCOMO)
Effort
Estimation Process
Source: http://www.visual-paradigm.com/VPGallery/diagrams/Component.html
No of interactionsNo of interfaces
No of interactionsNo of interfacesComplexity of interfacesComplexity of interactions
Class Diagram
Component Diagram
Counting Complexity
Warehouse ApplicationStock
Supply
Sales & Order
Software cost is projected at the large grained system level
Function Point COCOMO
FormWH App.
SpecificReport
CommunicationUser
Managemnt
Log
Traditional Approach CB Approach
Process
Problems
Cost estimating problem
Efforts estimating problem
FormWH App.
SpecificReport
CommunicationUser
Managemnt
Log
Problems
GUI
1. Intensity2. Concurrency3. Fragmentation4. Team-size
Costs & Efforts Estimating
GUIPersonal
Report
SecurityUser
Managemnt
Log
GUI GUI
1. Component Project Experience2. Programmer Project Experience
A new project BRe-use
Project A
Costs & Efforts Estimating
25/12/09
Methods for estimating component size
25/12/09
LOC
# Methods
# Subclasses
# Events
Component’s
type
Linear Regression
Neural networks
#GUI elements
Lines of Code Method
25/12/09
Advantages Easy to calculate
It can be automated
Disadvantages Plattform specific
One application used
Source code not always available.
Lines of Code Method – Advantages - disadvantages
25/12/09
Component complexity
Composition Interaction
Packing density Interaction density Incoming interaction
density
Outgoing interaction
density
Average interaction density
Component Complexity Metrics
25/12/09
Component C
Incoming
Outgoing
Component D
Component A
Component B
Component Complexity Metrics - Example
25/12/09
Advantages
Focus on components assembly
Easy to calculate
Disadvantages
No practical case studies
It's not clear its potential uses
Component Complexity Metrics – Advantages - Disadvantages
25/12/09
Analysis CBSS & Classify components
Determine interface complexity Determine interaction complexity
Evaluate component complexity & Compute TUCP count
Determina VAF & Compute the final Component point count.
Component points - Steps
25/12/09
Components
User- InterfaceComponents
Service- Components
Domain- Components
Component points - Classification
25/12/09
Complexity tableWeights
Interface complexity
Component type Number of operations Number of parameters
ILF EIF
Component points - Interface Complexity
25/12/09
Interaction Frequency
Collaboration diagrams
Complexity measure
Information content.
Primitive data types User data types
Interaction Complexity
Component points - Interaction Complexity
25/12/09
# Components Weights
IFCI ITCI Complexity tables
Component complexity
Component complexity
Final CP Count
Estimate Influence of 14 GSC (General System Criteria)
Count VAF (Value Adjustment Factor)
VAF = 0.65 + (0.01 x TDI)
Count Final CPCP = TUCP x VAFTUCP CP
TDI
VAF
Estimate Influence of 14 GSC (General System
Criteria)
14 GSC:• Data and Online Communication• Distributed Processing• System/component performance• Development rigidity• User friendliness• System complexity• Installability• Operability• Maintainability• Multi-site use• System/component reliability• System/component portability• Component immaturity• Lack of component vendor support
No Influence Strong Influence
– E = effort estmation (man-months)– EDSI = Estimate of Delivered Source Instruction– a,b constants– EAF = effort adjustment factor
→ How about cost for individual components?
Intermediate COCOMO
Effort Estimation in CBSD
E = a (EDSI) b x (EAF)
Example:E = 3.2 (8.5)1.05 x 1 = 30 MM Count EDSI/MM
CMMNOM = EDSI/component EDSI/MM
CMMADJ = CMMNOM x EAF
EDSI/MM = 8500/30 = 283
CMMNOM = 2000/283 = 7.06
Effort Estimation in CBSD (2)
Component EDSI CMMNOM EAF
Component #1 2000 7.06 0.89
Component #2 3000 10.6 1.13
Component #3 3500 12.36 1.05
This improvement over monolithic approach fails to capture relevant parameters in CBSD
Metrics affecting effort in CBSD:– Intensity : actual time spent on a component
time scheduled for the component– Concurrency : many programmers are working on 1
component.– Fragmentation : 1 programmer is working on many
components.– Programmer Project Experience : components have been
completed– Component Project Experience– Team Size
Effort Estimation in CBSD (3)
Augmented COCOMO Model:
– HOURS = number of hours devoted for component– COCOMO = result of intermediate COCOMO– PREV = number of comp. previously worked on (Component-project
experience)– PROG = size of component development team (team size)– α, β1, β2, β3 are determined based on statistic
Effort Estimation in CBSD (4)
HOURS = α + β1(COCOMO) + β2(PREV) + β3(PROG)
Another Estimation Technique
Schedule determine by number of developer, individual skill level, productive work days/month, contingency
Select Estimators Algorithm
Approach Technical
Cognitive
Process Oriented View
Schedule determine by number of developer, individual skill level, productive work days/month, contingency
Select Estimators Algorithm
Object Metrics Algorithm
(Boehm survey)
Metrics for Object Oriented
MCm= w * MICm +w*m
MICm = Method Interface Complexity/sizem = Complexity/size metric for method evaluationw = Weights, which obviously depend on metric m adopted.
MICm to adjust the traditional functional metrics for: (i) to take also into account complexities due to(ii) to obtain measures even when the methodis only partially implemented or simply identified.
Counting and classify software elements
Business application
Supporting
Business application Infrastructure of
reusable components
Base metric of effort in person days
Planning
Analysis
Testing
Integration
Review
Programming
Design
Select Estimators
Project Architect
Estimator
Scope
Qualifier
Technology
Activity Profile
Effort
Schedule
Cost
Productive Workdays, Contingency
Team Size, Skill Levels
Labor Costs
SELECT Estimator – Software Development cost estimation approaches – a survey
Select Estimators
Base effort adjusted using qualifier to add and subtract
INPUT
OUTPUT Effort in person days, by activity – person in average skillSchedule determine by number of developer, individual skill level, productive work days/month, contingency
Project architect
Applications – subsystems supporting business areaClasses – business conceptUser cases – requirement from userPackages – supporting frameworkComponents – abstraction of lower levelServices – common system features
EstimatorSCOPE
Qualifier
Complexity Reuse Genericity Technology
Select Estimators
Select Estimators vs Cocomo II
Group Factor Select Estimator Cocomo II
Size Attributes Source InstructionsFunction PointsOO-related metrics
NONOYES
YESYESYES
Program Attributes Type/domainComplexityLanguageReuseRequired Reliability
YESYESYESYESNO
NOYESYESYESYES
Computer attributes Resource constraintsPlatform volatility
NONO
YESYES
Software development cost estimation approaches –A survey - Barry Boehm a, Chris Abts a and Sunita Chulani b
Select Estimators vs Cocomo IIGroup Factor Select Estimator Cocomo II
Personel Attributes Personnel CapabilityPersonnel continuityPersonnel exp
YESNONO
YESYESYES
Project Attributes Tools and techBreakageSchedule consProcess maturityTeam cohesionSecurity issuesMultisite dev
YESYESYESNOYESNONO
YESYESYESYESYESNOYES
Activities covered InceptionElaborationConstructionTransition and maintenance
YESYESYESNO
YESYESYESYES
Software development cost estimation approaches –
A survey - Barry Boehm a, Chris Abts a and Sunita Chulani b
Conclusion
Traditional estimation approach failed to capture all aspects of component-based estimation approach
Component based software can be estimated by 2 approaches:enhanced size estimation techniquemore component based related aspects as adjustment
factors
Component points is the most complete technique for size estimation from three different studies– lines of code, component complexity, component points.
Conclusion (2)
In order to capture component based related aspects, COCOMO could be adjusted in two ways: Considering effort of each component. Considering adjustment factors specific for component
based software
Select Estimators is a good estimating tool for component based that has starting point from object oriented metrics based
Cocomo II still favorite tool for doing component based estimation process with necessary adjustment.
25/12/09
[1] A. J. Albrecht and J.E. Gaffney, Software Function, Source Lines of Code and Development Effort Prediction: A Software Science Validation, IEEE Transactions on Software Engineering, vol. 9 , 1983
[2] Parag C. Pendharkar. An exploratory study of object-oriented software component size determinants and the application of regression tree forecasting models in Information & Management, Elsevier 2004.
[3] Randy K. Smith, Effort Estimation in Component Based Software Development: Identifying Parameters
[4] Randy K. Smith, Allen Parrish, Cost estimation for component based software development, ACM Southeast Regional Conference, 1998.
Literature Reviewed
25/12/09
[5] Sajjad Mahmood and Richard Lai, A complexity measure for UML component-based system specification in Software-practice and experience, Willey interscience 2006.
[6]Thareendhra Wijayasiriwardhane and Richard Lai. A method for measuring the size of a Component-based system specification in the Eighth international conference on Quality software, IEEE 2008.
[7] V. Lakshmi Narasimhan and B. Hendradjaya. Some theorical considerations for a suite of metrics for the integration of software components in Information Sciences, Elsevier 2007.
[8] Kozaczynski, W., & Booch, G. Component-based software engineering. IEEE software, 15(5), 34-36, 1998.
Literature Reviewed (2)
[9] Shimmi, A. Component Based Software Engineering. 2008
[10] Barry Boehm a, Chris Abts a and Sunita Chulan.Softwaredevelopment cost estimation approaches –A survey. Annals ofSoftware Engineering 10 (2000) 177–205,2000
[11] P. NesiT.,Querci .Effort estimation and prediction of object-orientedsystems. Journal of Systems and Software pages 89-102 Volume 42, Issue 1, 1998
Literature Reviewed (3)