Practical Implementation of COSYSMO Reuse Extension ©2006 BAE Systems.

advertisement
Practical Implementation of COSYSMO
Reuse Extension
Gan Wang, Aaron Ankrum, Cort Millar, Alex Shernoff, Ricardo Valerdi
©2006 BAE Systems.
Agenda
•
•
•
•
Background
Industry Definition
BAE Systems Implementation
Lessons Learned and Recommendations
What Is the Problem?
• Everything has a legacy
• In particular, most of the systems we build and programs we execute are
based on legacy systems, architecture, and experience
– Rarely are we building something completely new from the “clean slate”.
• Academic COSYSMO assumes all size drivers (Req, Int, Alg, Scn) are
new, which is inadequate in estimating the systems we build today
• Therefore, we must consider the impact of reuse on systems engineering
size
• We anticipate this will improve the model’s accuracy since reuse plays a
significant role in today’s systems
COSYSMO at BAE Systems
• BAE Systems E&IS OG has developed an internal systems estimating
tool based on COSYSMO
– Collected 55 past program data points across lines of business and major
sites
– Developed platform-specific calibrations
• Problem encountered: Academic COSYSMO could not provide the
correlation and convergence required to create meaningful calibrations
– One of the big issues was driver reuse
• We worked with key stakeholders and developed the industry definition
of COSYSMO Reuse
• We developed an internal implementation/instantiation of the reuse
extension
Industry Definition
Reuse Categories
1. New: Items that are completely new.
2. Adopted: Items that are incorporated unmodified.
3. Modified: Items that are reused but are tailored.
4. Deleted: Items that are removed from a system.
Driver Counting Framework
Difficult
# System Requirements
# System Interfaces
Nominal
# System Algorithms
# Operational Scenarios
Easy
New
Adopted
Modified
Deleted
Application of Reuse at BAE Systems
Implementation Strategy
• Be consistent with industry definition
– By further instantiating and refining the verbiage so as to avoid any potential
conflicts and inconsistencies
• Provide a clear and consistent operational guideline for driver counting
and classification
– By defining unambiguous verbiage of the reuse definition
• Establish clear boundaries between categories to ensure easy
separation and consistency
– Steps rather than ramps
– Delineated by common concepts
Approach
• Define two (orthogonal) dimensions of classification framework to enable
finer grain estimation of the size drivers:
– Reuse by Process: SE activities
– Level of Difficulty by Relative Effort: easy, nominal, difficult
Reuse Categories at BAE Systems
1. New: Items that are completely new
2. Managed: Items that are incorporated and require no added SE effort
other than technical management
3. Adopted: Items that are incorporated unmodified but require
verification and validation
4. Modified: Items that are incorporated but require tailoring or interface
changes, and verification and validation
5. Deleted: Items that are removed from a legacy system, which require
design analysis, tailoring or interface changes, and verification and
validation
Notes:
• New items are generally unprecedented
• Those items that are inherited but require architecture or implementation
changes should be counted as New
Added Categories “Managed”
• We found, in particular, significant number of requirements require
“technical management” level of effort only
– They are still part of the system deliverables
– They are still to be “sold off” to customers
– They are not free
• Applied for
– Proven elements from previous iterations/spirals
– Subcontract/teammate provided turn-key components
Extended COSYSMO Relationship
E
PM NS
 

 A     wr ( we,k  e ,k  wn ,k  n ,k  wd ,k  d ,k )   CEM

 k  r
Where:
PMNS = effort in Person Hours/Months (Nominal Schedule)
A = calibration constant derived from historical project data
k = {REQ, IF, ALG, SCN}
r = {New, Managed, Adopted, Modified, Deleted}
wr = weight for defined levels of size driver reuse
wx = weight for “easy”, “nominal”, or “difficult” size driver
Фx = quantity of “k” size driver
E = represents diseconomy of scale
CEM = composite effort multiplier
Driver Classification Guideline
• Separate the two dimensions:
 Apply reuse in terms of Process (activity)
 Apply levels of difficulty in term of Relative Effort
Order of Classification
New
Easy
Nominal
Difficult
Managed
Adopted
Modified
First Pass
Second Pass
Deleted
Define Reuse Weights Based on Activities
Data Before Reuse Application
Same Data After Reuse Application
Excellent Correlation Achieved for Similar Programs
PRED(30)
PRED(25)
PRED(20)
Application Lessons Learned
• Modified category, in particular, covers a wide range
• The intent of the modified category is to capture those elements that
involve tailoring changes only, with no changes to the internal
architecture
• If you modify everything, you should classify it as New
• Consistency is the key
– Between data points
– Between calibration data and new estimate
• What do we do for consistency?
– Asked for a sample nominal requirement
– Compare the productivity metric with peer programs
– Graphical aids are helpful, e.g.,
Recommendations
• Reuse weights are meant to be defined ones only. Once they are
defined, you should stick with it and apply to all programs
– If you have to change them, apply to all program data
• Recommendation: industry should have a recommended value range
for all reuse categories
– To better communicate BOEs
Contact
Gan Wang
gan.wang@baesystems.com
703-668-4259
Download