Quantifying the Generalized Reuse Framework

advertisement
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
Download