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