Generalized Reuse for COSYSMO - Center for Software Engineering

advertisement
Generalized Reuse Model for
COSYSMO
Workshop at 27th International Forum on COCOMO® and Systems/Software Cost Modeling
Pittsburgh, PA
17 October 2012
Agenda
• Background and brief history (of COSYSMO evolution in reuse)
– Past papers
• Generalized Reuse Model concept (DWR & DFR)
– Starts with “what’s the problem?”
• Model definition
– Categories
– equation
• Weights round-table
– Weight table
2
Background and Brief History
• Inception of COSYSMO 1.0
– Valerdi, R., The Constructive Systems Engineering Cost Model (COSYSMO), PhD
Dissertation, University of Southern California, May 2005.
• Introduced the Reuse Model Extension to COSYSMO 2.0
– Wang, G., Valerdi, R., Ankrum, A., Millar, C., and Roedler, G., “COSYSMO Reuse
Extension,” Proceedings of the 18th INCOSE International Symposium, June 2008.
– Fortune, J. Estimating Systems Engineering Reuse with the Constructive Systems Engineering
Cost Model (COSYSMO 2.0). Ph.D. Dissertation. University of Southern California.
December 2009
– Wang, G., Valerdi, R., Fortune, J., “Reuse in Systems Engineering,” IEEE System Journal,
v4, No.3, 2010.
• Marching to COSYSMO 3.0:
– Fortune, J. and Valerdi, R., “Considerations for Successful Reuse in Systems Engineering,”
AIAA Space 2008, San Diego, CA, September 2008.
– Wang, G. and Rice, J., “Considerations for a Generalized Reuse Framework for System
Development,” Proceedings of the 21st INCOSE International Symposium, June 2011.
– Fortune, J. and Valerdi, R., “A Framework for Systems Engineering Reuse,” Systems
Engineering, 16(2), 2013.
3
What’s the Problem?
• Reuse has been focusing on leveraging previous artifacts in order to save labor,
with an inherent assumption that there’s something there to reuse in the first
place
• However, product line management and investment is as important a concern to
managers, also to affordability trades
• We want to be able to assess not only the effort to leverage but also the effort to
invest
• This is a tool for design sensitivity analysis
4
Manners of Reuse
• Ad Hoc / Opportunistic Reuse
– Search & discover reusable
resources
– Adapt to current application
– “Code scavenging”
• Planned / Systematic Reuse
– Explicit processes and
standards
– Invest in reusable resources
5
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
A Development Project May Contain Both
6
Contrasting Between Two Perspectives
Development with Reuse
(DWR)
Development for Reuse
(DFR)
Role
Consumer
Producer
Purpose
Goal
Consumption of reusable
resources
 Improving product quality
 Cost savings
 Time to market
Production of reusable
resources
Investment for future benefits
Challenges


Reusability


Discovery of what to

reuse

Decisions on how to tailor 
and integrate
Plans for how to reuse
Design for reusability
Means to verify
If ad hoc, then generally
Generally high
low
If planned, then generally
high
7
Reuse Viewpoint for Development
Developm ent Activities  DevelopTarget System
 Invest for ProductLine
8
Product Line Benefits of Reuse
Total
Effort
100
% Effort
DW
R
DW
R
DW
R
DW
R
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
Definitions
Development With Reuse (DWR)
New
Implemented
Modified
Deleted
Element that is new, which requires developing from
scratch; or developed from previously defined system
concept or logical architecture; or from previously
designed physical architecture or constructed product
components but with significantly modified or extended
functionalities.
Development For Reuse (DFR)
No DFR
No development for reuse within the planned
work scope
Conceptualized
For Reuse
The reusable resource produced is a logical
architecture that must be further developed
through a series of detailed design,
implementation, verification and validation testing
activities to bring to the final deployable product.
Designed For
Reuse
The reusable resource produced is a physical
architecture that must be further developed
through a series of implementation, verification
and validation testing activities to realize the final
deployable product.
Constructed For
Reuse
The reusable resource produced is a physical
product or component that has been implemented
and independently verified through verification
tests but has not been deployed or used in an
end system.
All levels of testing except for validation
Validated For
Reuse
The reusable resource produced is a physical
product or component that has been developed
and operational validated through its use in an
end system.
Element that is developed from inherited physical
architecture or previously constructed product
components that require re-implementation or
refactoring.
Element that is developed from specializing or tailoring
(i.e., modification of interfaces) of previously constructed
or deployed product components without functional
changes or extensions to be effectively integrated into
the new system.
Element that is removed from previously developed or
deployed system baseline, which requires modification
of interfaces of the inherited system to effectively
disintegrate the element from that system without
adverse effects.
Adopted
(Integrated)
Element that is incorporated or integrated from
previously developed or deployed product components
without modification but requires complete V&V testing.
This is also known as “black-box” reuse or simple
integration.
Managed
Element that is inherited from previously developed or
validated product components without modification and
its integration is through significantly reduced V&V
testing by means of inspection or provided test services
or procedures and equipment.
10
Interfacing DWR and DFR
Reusability from DFR Produces Reusable Resources
Reused by DWR with Effort
Conceptualized for Reuse
System Concept Definition

New
Conceptualized for Reuse
Logical Architecture

New
Designed for Reuse
Physical Architecture (intended
for built to print)

Constructed Product/Component

New, if architectural modification
required
Implemented, if no modification
required
New, if architectural modification
required
Modified, if tailoring needed for
integration
Adopted, if only integration and
testing required
Constructed for Reuse



Validated for Reuse
Validated Product/Component




New, if architectural modification
required
Modified, if tailoring needed for
integration
Adopted, if only integration and
testing required
Managed, if limited testing required
11
Extended COSYSMO Form
E1
PM DWR  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 = calibration constant derived from historical project data
k = {REQ, IF, ALG, SCN}
r = {New, Implemented, Modified, 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
CEM1= composite effort multiplier
Where:
PMDFR = effort in Person Hours/Months (Nominal Schedule)
A2 = calibration constant derived from historical project data
k = {REQ, IF, ALG, SCN}
q = {Conceptualized, Designed, Built, 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
CEM2 = composite effort multiplier
Required Activities Relative To Reusable Architects
Logical Architecture
X
Operational Test
Installation
Inspection
Execute Test
Design Verificaiton
Specialize / Tailor
(Wrap)
Reimplement /
Refactor / Extend
Understand & Assess
Architecting /
Premilinary Design
Detailed Design /
Refactor
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Physical Architecture
Constructed
Product/Component
Validated
Product/Component
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
System Concept
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Logical Architecture
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Physical Architecture
Constructed
Product/Component
Validated
Product/Component
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Transition
To Use
X
Use As-Is
X
Implementation Verificaiton Test
Modify
System Concept
Select Reuse
Reusable Artifacts /
Development Activities
System Design
Integrate
Develop Test
Plan/Procedures
Technical Requirement
Management Definition
Define Requiremnets
Analyze
Requirements
Development Processes
13
Added Activities Relative To Reusable Architects
System Concept
X
X
X
Logical Architecture
X
X
X
X
Physical Architecture
Constructed
Product/Component
Deployed
Product/Component
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Operational Test
Inspection
Execute Test
Develop Test
Transition To
Use
Deployment
Verification Test
Document Reuse
Reemployment /
Refractor
Design Verification
Detailed Design /
Refractor
Define Reuse
Requirements
Reuseable Artifacts /
Development Activities
Implementatio
n
System Design
Architecting /
Preliminary Design
Technical
Requirement
Management
Definition
Analyze Reuse
Requirements
Development Processes
X
X
14
Example Scenario #1 – Incremental Development
Modification of Fielded System:
• Subcontractor provided component,
plug-n-play
• 3 existing system interfaces must be
modified to work with the newly
incorporated component
• The functional and performance changes
are captured by 34 system requirements
• Modification of five system interfaces
and one algorithm
• The subcontractor-provided subsystem
amounts to 66 system requirements and
7 system interfaces
• It also affects the operation of the end
system resulting in a modified mode of
operation
COSYSMO Systemlevel Cost Drivers:
New system requirements: 34
Managed system requirements: 66
Modified system interfaces: 5
Managed system interfaces: 7
New algorithm: 1
Adopted mode of operation: 1
Plus, Managed system requirements: the
number from previous system baseline
And, Managed system interfaces: the
number from previous system baseline
15
Example Scenario #2 – COTS Integration (DWR)
Enterprise IT System:
• Infrastructure service provider (ISP)
team to develop a new enterprise IT
system, based on integration of COTS
components
• System and applications software
provided by application service
provider (ASP)
• 15 core business functions based on
SOA
• 225 system requirements responsible
by the ISP team
• 75 of which are performance
requirements while the rest are
functional requirements
• 25 system-level interfaces
COSYSMO Systemlevel Cost Drivers:
New system requirements: 75
Adopted system requirements: 150
Adopted system interfaces: 25
Managed operation scenarios: 15
16
Example Scenario #3 – Development 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
COSYSMO Systemlevel Cost Drivers:
Validated for Reuse Requirements:
25
Validated for Reuse Interfaces: 7
Validated for Reuse Algorithms: 2
Adopted Op. Scenario: 1
17
Download