28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems Gan Wang 22 October 2013 Outline • Problem and motivations • Generalized Reuse Framework – Design With Reuse – Design For Reuse • Quantifying the Reuse Framework in COSYSMO • Calibrating the model • Conclusion and future work 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 2 Contrastable Manners of Reuse • Ad Hoc / Opportunistic Reuse – Search & discover reusable resources – Adapt to current application – Deal with problems – E.g., “Code scavenging” • Planned / Systematic Reuse – Strategy, portfolio and roadmap – Explicit processes and standards – Investment in reusable resources 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 3 Problem & Motivations • Traditional focus on leveraging previous artifacts – An inherent assumption that there’s something there to reuse in the first place • However, product line decision makers must consider: – Cost of leveraging (not free!) – Investing in reuse – Product line decisions • Ability to assess efforts not only to leverage but also to invest • The goal is an industry-wide agreed model for – Design sensitivity analysis – Product line investment decisions 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 4 Two Fundamental Reuse Processes Development For Reuse (DFR) • Producer’s View • Production of reusable resources Development With Reuse (DWR) • Consumer’s View • Consumption of reusable resources Key is How to Plan and Balance Both in a Development Project 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 5 CONOPS – Reuse in a Project Total Project Effort = DWR Effort + DFR Effort Total Effort 100 % Effort DWR DWR DWR DWR DFR DFR DFR 0 1 2 3 DFR 4 # of Articles in the Product Line Investments in Development for Reuse (DFR) are leveraged to reduce Product Line Cost 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 6 Reuse Framework - Definitions • DWR Categories: • DFR Categories: – New – No DFR – Modified (Implemented) – Conceptualized For Reuse – Adapted – Designed For Reuse – Deleted – Constructed For Reuse – Adopted (Integrated) – Validated For Reuse – Managed Activity-based Model 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems Note: the weights shown are notional 7 Interfacing DWR and DFR Reusability from DFR Produces Conceptualized for Reuse Designed for Reuse Constructed for Reuse Reusable Resources Reused by DWR with Effort System Concept Definition / Logical (Functional) Architecture Physical Architecture (intended for built to print) New New, if architectural modification required Implemented, if no modification required Constructed Product/Component Validated for Reuse Validated Product/Component 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems Modified, if architectural modification required Adapted, if tailoring needed for integration Adopted, if only integration and testing required Modified, if architectural modification required Adapted, if tailoring needed for integration Adopted, if only integration and testing required Managed, if limited testing required 8 Quantifying Reuse Framework – Towards COSYSMO 3.0 E1 PM DW R DFR A1 wr ( we,k e,k wn ,k n ,k wd ,k d ,k ) CEM1 k r E2 A2 wq ( we,k e,k wn ,k n ,k wd ,k d ,k ) CEM 2 k q Where: PMDWR = effort in Person Hours/Months (Nominal Schedule) A1 = DWR constant derived from historical project data k = {REQ, IF, ALG, SCN} r = {New, Modified, Adapted, Deleted, Adopted, Managed} wr = weight for defined levels of size driver reuse wx = weight for “easy”, “nominal”, or “difficult” size driver Фx = quantity of “k” size driver E1 = represents diseconomy of scale in DWR CEM1= composite effort multiplier for DWR Where: PMDFR = effort in Person Hours/Months (Nominal Schedule) A2 = DFR constant derived from historical project data k = {REQ, IF, ALG, SCN} q = {Conceptualized, Designed, Constructed, Validated} wr = weight for defined levels of size driver reuse wx = weight for “easy”, “nominal”, or “difficult” size driver Фx = quantity of “k” size driver E2 = represents diseconomy of scale in DFR CEM2 = composite effort multiplier for DFR 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 9 Example Scenario #1 – Modification of Fielded System Modification of Fielded System: • There are 20 heritage requirements that were previously Designed for Reuse and are satisfied through the existing physical architecture • The customer has decided to delete 10 requirements and levy 5 requirements that have not been previously analyzed • The deletion of the requirements results in the modification of 3 of the 5 heritage interfaces • There are no changes to the 3 heritage algorithms. 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems COSYSMO Systemlevel Cost Drivers: New system requirements:5 Modified system requirements: 20 Deleted system requirements: 10 New system interfaces: 3 Modified system interfaces: 2 Adopted algorithms: 3 10 Example Scenario #2 – Refactoring For Reuse Standard API Development: • Generalize existing functionalities and services into reusable libraries with standardized APIs during the development of the current system, encapsulating • 25 system requirements • 7 system interfaces • 2 system critical algorithms • And can potentially impact one operational sequence 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems COSYSMO Systemlevel Cost Drivers: Constructed for Reuse Requirements: 25 Constructed for Reuse Interfaces: 7 Constructed for Reuse Algorithms: 2 Adopted Op. Scenario: 1 11 Determining the Coefficients E1 PM DW R DFR A1 wr ( we,k e,k wn ,k n ,k wd ,k d ,k ) CEM1 k r E2 A2 wq ( we,k e,k wn ,k n ,k wd ,k d ,k ) CEM 2 k q The Delphi Process 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 12 PLEASE COME TO THE DELPHI WORKSHOP Thursday Afternoon, 24 October Your Participation Requested 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 13 Conclusion • Generalized Reuse Framework with two complementary processes – DFR and DWR • Proposed a cost estimating relationship for COSYSMO 3.0 • The goal is an industry-wide agreed model for – Design trades and sensitivity analysis – Product line investment decisions 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 14 Questions and Comments Gan Wang BAE Systems gan.wang@baesystems.com 28th International Forum on COCOMO® and Systems/Software Cost Modeling in conjunction with the Practical Software and Systems 15