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 Transferable component estimation Warehouse Application Stock Supply Sales & Order Form WH App. Specific Report Communication User Managemnt Log Project AProject B Comp. A1 Comp. A1 Estimation Comp. A2 Comp. A2 Estimation Comp. A2 Comp. A2 Estimation’ ( Usage? Upgrade? Known Facts?) Comp. B1 Comp. B1 Estimation COTS Comp. C1 COTS Comp C1 Estimation COTS Comp. C1
Approaches (1) (*) 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” Problem Size/Function Points Estimation Size / Function Points Effort Estimation (COCOMO) Effort T. Wijayasiriwardhane and R. Lai Approach (*) R. K. Smith, A. Parrish, and J. Hale Approach (**)
Approaches (2) AuthorTitleYearTypeContext T. EllisCOTS Integration in Software Solutions - A Cost Model 1995CostCOTS C. AbtsExtending the COCOMO II Software: COCOTS Model (Integrated in COCOMO II Book) 2004CostCOTS P. Naunchan & D. Sutivong Adjustable Cost Estimation Model for COTS-Based Development 2007CostCOTS John KammelarA Sizing Approach for OO- environments 2000SizeOO Based -> Component Based J. Verner &G. Tate A Software Size Model1992Size4GL - problem dependent
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
Interface Complexity Two types – Internal Logical Files – External Input Files Parameters – Number of Operations – Number of Parameters NO NP < >50 1Low Average 2-5LowAverageHigh >5AverageHigh TypeLowAverageHigh ILFx7x10x15 ELFx5x7x10
Interaction Complexity For each operation, multiply: – Interaction Frequency – Complexity Measure Interaction Complexity = sum for all operations
Component Complexity 1.Find the component complexity 2.Count the Component Points ITCI IFCI <55-8>8 <2Low Average 2-3LowAverageHigh >3AverageHigh TypeLowAverageHigh DCx3x6x10 UCx4x7x12 SCX4.5x7X11.5
Adjust Component Points 1.Find the Value Adjustment Factor 2.Adjust the Component Points General System Characteristics Data and online communicationDistributed processing System / component performanceDevelopment rigidity User friendlinessSystem complexity InstallabilityOperability MaintanabilityMulti-site use System / component reliabilitySystem / component portability Component immaturityLack of component vendor support Degree of Influence No InfluenceStrong Influence 05
12 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
13 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
14 Effort Estimation for CBSD (3): Intermediate COCOMO Model Example Intermediate COCOMO: – Inputs: LOC = 8500 E basicCOCOMO =MM NOM = 30MM CMM NOM - nominal component man-month ComponentEDSI% of totalCMM NOM Comp# ,4%? Comp# ,3%? Comp# ,2%?
15 Effort Estimation for CBSD (3): Intermediate COCOMO Model Example Intermediate COCOMO: – Inputs: LOC = 8500 MM NOM = 30MM (from basic COCOMO) ComponentEDSI% of totalCMM NOM Comp# ,4%7,06 Comp# ,3%10,60 Comp# ,2%12,36 – Count: EDSI/MM NOM =8500/30=283 CMM NOM =EDSI comp /(EDSI/MM) NOM CMM NOM - nominal component man-month
16 Effort Estimation for CBSD (4): Intermediate COCOMO Model Example After CMM NOM Effort Adjust Factor (EAF) is calculated for each component individually The EAF is applied to CCM NOM for each component!!! Consider variance among the cost factors for various component! New adjusted MM estimate for each component CMM ADJ : CMM ADJ = (CMM NOM )(EAF)
17 Effort Estimation for CBSD (5): Intermediate COCOMO Model Example CMM ADJ = (CMM NOM )(EAF) ComponentEDSI% of totalCMM NOM EAFCMM ADJ Comp# ,4%7, Comp# ,3%10, Comp# ,2%12,
18 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
19 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
20 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
21 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
22 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
23 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.
24 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.
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.