Mathematical Formulation and Validation of the Impact of Requirements Volatility on Systems Engineering Effort

advertisement
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Mathematical Formulation and
Validation of the Impact of
Requirements Volatility on
Systems Engineering Effort
November 2nd, 2011
Mauricio E. Peña
Dr. Ricardo Valerdi
1
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Outline
• Motivation and introduction
• Implications to COSYSMO
• Research methods
• Observations from exploratory research
• Proposed model of the impact of requirements
volatility on Systems Engineering effort
• Preliminary model validation
• Conclusions and next steps
2
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Importance of Understanding
Requirements Volatility
• Requirements volatility has been identified by numerous
research studies as a risk factor and cost-driver of systems
engineering projects1
• Requirements changes are costly, particularly in the later
stages of the lifecycle process because the change may require
rework of the design, verification and deployment plans2
• The Government Accountability Office (GAO) concluded in a
2004 report on the DoD’s acquisition of software-intensive
weapons systems that missing, vague, or changing
requirements are a major cause of project failure3
System developers often lack effective methods and tools
to account for and manage requirements volatility
Source: 1- Boehm (1991), 2- Kotonya and Sommerville (1995), 3- GAO-04-393
3
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Requirements Volatility is Expected
• Changes to requirements are a part of our
increasingly complex systems & dynamic business
environment
– Stakeholders needs evolve rapidly
– The customer may not be able to fully specify the system
requirements up front
– New requirements may emerge as knowledge of the system
evolves
– Requirements often change during the early phases of the
project as a result of trades and negotiations
Requirements volatility must be anticipated and managed
Sources: Kotonya and Sommerville (1995); Reifer (2000)
4
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Requirements Volatility Definitions
• Requirements volatility is typically defined as the
change in requirements (added, deleted, and
modified) over a given time interval
• Also known as:
• Requirements creep: An increase in scope and
number of system requirements
• Requirements churn: Instability in the requirements
set – requirements are modified or re-worked without
necessarily resulting in an increase in the total
number of requirements
Source: MIL-STD-498 (1994)
5
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
CSSE Parametric Cost Models
• The Constructive Systems Engineering Cost Model
(COSYSMO) was developed by the USC Center for
Software and Systems Engineering (CSSE) in
collaboration with INCOSE and Industry affiliates
• COSYSMO is the first generally-available parametric
cost model designed to estimate Systems
Engineering effort
• Built on experience from COCOMO 1981, COCOMO II
• During the development of COSYSMO, volatility was
identified as a relevant adjustment factor to the
model’s size drivers
Source: 7th Annual Practical Software and Systems Measurement Conference. COSYSMO Workshop, Boehm
6
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
COSYSMO 2.0 Operational Concept
Proposed
Volatility Factor
Source: Fortune (2009)
7
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Life Cycle Phase Definition
• Conceptualize phase focuses on identifying stakeholder needs,
exploring different solution concepts, and proposing candidate
solutions.
• The Development phase involves refining the system
requirements, creating a solution description, and building a
system.
• The Operational Test & Evaluation Phase involves
verifying/validating the system and performing the appropriate
inspections before it is delivered to the user
• The Transition to Operation Phase involves the transition to
utilization of the system to satisfy the users’ needs.
Source: Valerdi (2008); ISO/IEC 15288 (2002)
8
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Research Methods
USC
University of Southern California
C S E
Center for Software Engineering
Analyze Existing
literature
Perform
Behavioral Analysis
1
Literature
Review & 6
Workshops
completed to
date
2
In Progress
Identify Relative
Significance
3
A-PRIORI MODEL
+
SAMPLING DATA
=
A-POSTERIORI MODEL
Perform ExpertJudgement, Delphi
Assessment
4
Gather Project Data
5
Determine Bayesian
A-Posteriori Update
6
Gather more data;
refine model
7
USC-CSE Annual Research Review – 3/17/03
Source: Boehm et al (2000)
8
9
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Observations from the Literature and
Exploratory Research
1. Requirements volatility is caused by an identifiable
set of project and organizational factors.
2. The level of requirements volatility is a function of
the system life cycle phase.
3. Requirements volatility leads to an increase in
project size and cost
4. The cost and effort impact of a requirements
change increases the later the change occurs in the
system life cycle
5. The impact of requirements volatility varies
depending on the type of change: added, deleted, or
modified
10
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Systems Engineering Effort Penalty Due to Volatility
Life Cycle Effort Penalty due to Volatility
(n = 27)
11.0
10.0
9.0
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Conceptualize
Development
Operational Test
& Evaluation
Transition to
Operation
Data collected from two workshops: 25th Annual USC CSSE COCOMO and the 2011 USC-CSSE Annual Research Review
11
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Estimated Life Cycle Effort Penalty per
Change Category (n = 9)
Estimated SE Effort Penalty due to Volatility
10.5
added
deleted
9.0
modified
7.5
6.0
4.5
3.0
1.5
0.0
-1.5
Conceptualize
Development
Operational Test
& Evaluation
Transition to
Operation
Results from a two-round Delphi Survey held at the 2011 Practical Software and Systems Measurement Conference
12
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Mathematical Formulation of
Requirements Volatility ( 1 of 2)
  REVL

Req  1  
 wv    R0 

  100
Where,
R0 = Baseline number of requirements
Req = Equivalent number of requirements
wv = Requirements Volatility weighting factor
• The effective increase in the number of requirements would
result in an associated increase in systems engineering effort
Sources: Boehm, B., et al (2000)
13
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Mathematical Formulation of
Requirements Volatility ( 2 of 2)
wv   wa ,l a ,l  wd ,l d ,l  wm,l m,l 
l
Where
wv = Requirements volatility weighting factor
wx,l = Weighting factor for added, deleted, or
modified requirements
Θx,l = % of total requirements changes that were
added, deleted or modified
l = lifecycle phases
Pena (2010)
14
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Preliminary Model Validation
•
Data were collected from nine projects from a space
systems application domain
– Number of requirements, interfaces, algorithms operational
scenarios (estimated systems engineering size)
– Added, modified, and deleted requirements over time
•
The cost estimation accuracy of COSYSMO was
compared to the accuracy of the model with the
requirements volatility size driver adjustment factor
•
The models were tested using the coefficient of
determination (R2) and predictive accuracy levels
•
The relationship between requirements volatility
and systems engineering size was also examined
15
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Actual Systems Engineering Effort
(Person Months)
Baseline Coefficient of Determination
(n = 9)
R2 = 0.78
Estimated Systems Engineering Size (Eqv. Requirements)
* Due to proprietary reasons only the analysis of the model accuracy is shown, not the data itself
16
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Actual Systems Engineering Effort
(Person Months)
Coefficient of Determination with
Volatility Factor (n = 9)
R2 = 0.85
Estimated Systems Engineering Size (Eqv. Requirements)
17
PRED (l ) 
k
n
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Prediction Accuracy Level
The prediction accuracy at a particular level (l) is defined as
PRED (l ) 
k
n
Where,
n = set of projects
k = number of projects in the set whose Magnitude of Relative
Error is ≤ l
Prediction Accuracy (l)
Estimates with COSYSMO
Estimate with REVL
PRED(20)
11%
33%
PRED(30)
44%
56%
Source: Conte, Dunsmore, and Shen (1986)
18
University of Southern California
26th Annual COCOMO Forum
Center for Systems and Software Engineering
Requirements Volatility (%)
Relationship Between Requirements
Volatility and Sys. Engr. Size
R2 = 0.29
Estimated Systems Engineering Size (Eqv. Requirements)
19
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Requirements Volatility Factor
Relationship Between the Volatility
Adjustment Factor and Sys. Engr. Size
R2 = 0.34
Estimated Systems Engineering Size (Eqv. Requirements)
20
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
Conclusions – Next Steps
• Observations from the literature and workshops were used to
develop a mathematical framework for quantifying the impact of
requirements volatility on systems engineering effort
• A preliminary validation of the model was performed by
comparing its prediction accuracy against COSYSMO
• The preliminary results indicate an improvement in systems
engineering effort prediction accuracy when a requirements
volatility factor is added to the model
• The correlation between the requirements volatility factor and
the estimated systems engineering size was examined – the
results were not conclusive
• Additional project data will be collected to complete the model
validation
21
University of Southern California
Center for Systems and Software Engineering
26th Annual COCOMO Forum
References
• B. Blanchard and W. Fabrycky, Systems engineering & analysis, Prentice Hall, New York, NY, 1998.
• B. Boehm, Software risk management: Principles and practices, IEEE Software 1 (1991), 32-41.
• B. Boehm, C. Abts, A.W. Brown, S. Chulani, B. Clark, E., Horowitz, R. Madachy, D.J. Reifer, and B. Steece, Software Cost Estimation with COCOMO II, Prentice Hall, New York,
NY, 2000
• S. Conte, H. Dunsmore, and V. Shen. Software Engineering Metrics and Models. Benjamin/Cummings Publishing Company, 1986.
• Department of Defense, “Instruction 5000.02. Operation of the Defense Acquisition System,” 2008.
• S. Ferreira, J. Collofello, D. Shunk and G. Mackulak, Understanding the Effects of Requirements Volatility in Software Engineering by Using Analytical Modeling and Software
Process Simulation, Journal of Systems and Software 82 (2009) 1568-1577.
• General Accounting Office, "Stronger management practices are needed to improve DoD’s software-intensive weapon acquisitions (GAO-04-393)," 2004.
• D. Houston, "A software project simulation model for risk management," Ph.D. Dissertation, Arizona State University, 2000.
• ISO/IEC, "ISO/IEC 15288:2002 (e) systems engineering - system life cycle processes," 2002.
• C. Jones, Assessment and Control of Software Risks, Prentice Hall, Inc. Englewood Cliffs, New Jersey, 1994.
• C. Jones, Strategies for managing requirements creep, IEEE Computer, Vol 20 (1996), pp. 92-94
• G. Kotonya and I. Sommerville, Requirements engineering: Processes and techniques, John Wiley & Sons, New York, NY, 1998.
• G.P. Kulk, and C. Verhoef, Quantifying Requirements Volatility Effects, Science of Computer Programming, 72, 136-175, 2008.
• Y. Malaiya, and J. Denton, Requirements Volatility and Defect Density, Proceedings of the International Symposium on Software Reliability Engineering, 1999
• MIL-STD-498, "Software development and documentation," 1994.
• S. Nidumolu, Standardization, Requirements Uncertainty and Software Project Performance, Information and Management. Vol 31 (No. 3) (1996), pp 135-150
• M. Pena, Characterizing the Impacts of Requirements Volatiliy, Proceedings of the 25th Annual COCOMO Forum, 2010
• D. Pfahl, and K. Lebsanft, Using Simulation to Analyze the Impact of Software Requirements Volatility on Project Performance, Information and Software Technology, Vol 42 (No.
14) (2000), pp 1001-1008.
• D. Reifer, Requirements management: The search for nirvana, IEEE Software 17(3) (2000), 45-47
• D. Rhodes, R. Valerdi and G. Roedler, Systems engineering leading indicators for assessing program and technical effectiveness, Systems Engineering 12(1) (2009), 21-35.
• R. Valerdi, The Constructive Systems Engineering Cost Model (COSYSMO): Quantifying the Costs of Systems Engineering Effort in Complex Systems, Saarbrücken, Germany,
VDM Verlag, 2008.
• D. Zowghi and N. Nurmuliani, A study of the impact of requirements volatility on software project performance, Proceedings of the Ninth Asia-Pacific Software Engineering
Conference, 2002.
22
Download