COCOTS Life Cycle Estimation: Some Preliminary Observations Chris Abts Betsy Clark

advertisement
COCOTS Life Cycle Estimation:
Some Preliminary Observations
Chris Abts
Betsy Clark
USC Center for Software Engineering
Software Metrics Inc.
October 25, 2001
Copyright 2001
University of Southern California
Briefing Outline
• Background
• Maintenance Phase Modeling
– Some Observations
• Conclusions
2
COTS Definition
• “Commercial Off the Shelf” Software
– sold, leased, licensed at advertised prices
• Source Code Unavailable
• Periodic releases with feature growth and fixes
• Eventual obsolescence, end of life
3
COTS Phenomena
• You have no control over a COTS product’s
functionality or performance
• Most COTS products are not designed to
interoperate with each other
• You have no control over a COTS product’s
evolution
• COTS vendor behavior varies widely
4
COCOTS Model Status
• Development Phase Model
• Maintenance Phase Model
• Currently collecting data to calibrate Maintenance
Model
• Limited sample collected to date but…
– Interesting patterns emerging
• Supports hypothesis suggested by Chris Abts based
on workshop discussions from 1999 COCOMO
5
forum
A COTS-Based System Economic Lifespan Model:
The COTS-LIMO Model
n+x
$
No. of COTS in system
n+3 n+2
Volatility effects dominate
increased integration experience
n+1
Volatility effects just cancel
increased integration experience
n
5
4
Cost of
maintenance
Fn (synchronization,
complexity of system,
no. planned upgrades,
etc.)
 1999 University of Southern California - Chris Abts
Retire
Increased integration experience
dominates volatility effects
Time
3
2
1
Maintain
Caveat
• Observations based on interviews with
four projects
• Three of the four projects have more
than 40 COTS products
7
Observation - 1
• “We can’t neglect a COTS-based system like
we could a custom. We need a continual
stream of funding.”
• All four projects mentioned a positive
aspect of maintaining a CBS:
“It forces us to bring new technologies
to our users.”
8
Refresh: A Definition
• Periodic replacement of COTS products
to sustain an indefinite life in a previously
existing system
– Replacement may be with newer version of
the same product or with a different product
– Necessary with COTS because products
reach end-of-life (no longer vendor
supported)
9
Observation - 2
• Three of the four projects have removed COTS
components because of maintenance
complexity
– replaced with custom components
• “When you have more than one product, you
exponentially complicate maintenance. We can
get to market faster with COTS but maintenance
has to be considered. We get complex very fast
and complexity translates to cost.”
10
Observations - 3
– Projects were asked to rate their success from two
perspectives
• Acquisition
• Maintenance
– Three of the projects rated themselves as very
successful from an acquisition perspective but mixed
in terms of maintenance success
• Initial delivery was on schedule
• But high maintenance cost, high complexity
– The remaining project rated itself as very successful
from both perspectives
11
Observations - 3
• What is the difference?
– Number of COTS products
12
Observations - 4
• Need for refresh prior to IOC
– One of our projects stated that almost half of
the components (46%) had already reached
end-of-life before IOC
13
Observations - 5
• Complexities stemming from multiple COTS
products are made worse by multiple
configurations
– One project has three software configurations in the
field at any one time (prior, current, new)
– “Configuration management becomes very important
in terms of coordinating what versions of what COTS
products are in what system configurations.”
• Another project reported added complexity
from different hardware configurations
resulting from gradual hardware replacement
across sites
– Complicates testing
14
Briefing Outline
• Background
• Maintenance Phase Modeling
– Some Observations
• Conclusions
15
Conclusions
• Initial observations suggest a non-linear impact
of the sheer number of products on
maintenance complexity
• Multiple configurations makes this much worse
• Strategies for managing complexity include:
– Rigorous CM
– Distinguishing between critical and non-critical
components with focus on the former to avoid endof-life
– Minimizing multiple configurations (hardware and
software)
16
• A plea for calibration data!
– Contact Betsy Clark
Software Metrics Inc.
(703) 754-0115
Betsy@software-metrics.com
17
Contact Information
USC Center for Software Engineering
Points of Contact at USC-CSE in Los Angeles
Mr. Chris Abts (primary graduate researcher)…………...………. ……(213) 740-6470
Ms. Ladonna Pierce (CSE Office Administrator)…..……………….……(213) 740-5703
Dr. Barry W. Boehm (CSE Director)………………………………….….(213) 740-8163
USC Center for Software Engineering FAX line……..…………….……(213) 740-4927
COCOTS E-Mail………………………………………….……cots-info@sunset.usc.edu
World Wide Web page……….………..…… http://sunset.usc.edu/research/COCOTS/index.html
Additional Contact at Software Metrics, Inc. in Virginia (near D.C.)
Dr. Betsy Clark.…………….……………..……………………….……...(703) 754-0115
FAX line…………………………………………………………….………(703) 754-3446
E-Mail………………………………………………………………..Betsy@Software-Metrics.com
18
Back up Slides
19
First Pass Maintenance Phase Straw Model
CBS Maintenance Effort (for a Given Cycle Time TM)
= COCOMO Application Maintenance + COTS
Reassessment + COTS Retailoring + COTS Glue Code
Evolution + COTS Volatility Effect on Application Effort
+ COTS Replacement
CBS PMMaint Total = S(PMMaint-APP + PMRe-ASST +
Over all TM
PMRe-TAIL + PMGLUE-Evol + PMVolEff-APP + PMCOTS-R )
20
Reassessment (per Refresh Cycle)
PMRe-ASST = S [(# Releases in Cycle TM ) • PMDevASST • (Reasst Fractn)]
(over all COTS classes)
PMDevASST = Assessment Effort during development
Reasst Fractn = Reassessment Fraction ; fraction of original assessment needing to be
redone per release due to COTS changes (variable by COTS class, Release cycle)
- represents a ratio to development experience; data is used to determine a
reasonable value
21
Retailoring (per Refresh Cycle)
PMRe-TAIL = S [(# Releases in Cycle TM ) • PMDevTAIL • (Retail Fractn)]
(over all COTS classes)
PMDevTAIL = Tailoring Effort during development
Retail Fractn = Retailoring Fraction; fraction of original tailoring needing to be redone
per release due to COTS changes (variable by COTS class, Release cycle)
- represents a ratio to development experience; data is used to determine a
reasonable value
22
Glue Code Evolution (per Refresh Cycle)
PMGLUE-Evol = PMDevGLUE • [1+(SUGLUE/100 • UNFMGLUE)] • EAFM/ EAFD •
S[(# Releases in Cycle TM) • (MCFGLUE/Release)]
(over all COTS classses)
PMDevGLUE = Glue Code Effort during development
TM = No. of Months between COTS refresh efforts
MCFGLUE = Maintenance Change Factor (similar to AAF)
SUGLUE = Software Understanding (how well structured is code?)
UNFMGLUE = Unfamiliarity of Maintainers with COTS Application
EAF = Based on COCOTS Effort Multipliers
23
Effect of COTS Replacement (per Refresh Cycle)
PMCOTS -R = S (PMASST + PMTAIL + PMGLUE)
(over all COTS replaced)
PMASST/TAIL/GLUE = Assessment & Tailoring & Glue Code Effort for replacement
COTS components using the development COCOTS submodels
For subsequent refresh cycles, identify changes in COTS life cycle cost drivers as appropriate
within each submodel due to (presumably) improved COTS replacement components.
24
Download