cost/schedule/process modeling via system dynamicscsse.usc.edu/csse/event/1999/cocomo/3_madachy...
TRANSCRIPT
Cost/Schedule/Process Modeling via System Dynamics
Ray Madachy
Litton Guidance and Control Systems
USC Center for Software Engineering
14th International Forum on COCOMO and Software Cost Modeling
Octo'ber 26, 1999
Outline
Introduction to Process Modeling and System Dynamics Brooks's Law Demo,nstration
Model Structures and System Behaviors
Overview of Past Applications
Earned Value Dem~~vlstration
Rapid Application Development (RAD) Modeling and Process Concurrence Rayleigh Curve and Dynamic COCOMO Demonstration
Terminology Svstem: a grouping of' parts that operate together for a common purpose; a subset of reality that is a focus of analysis
open, closed Software Process: a set of activities, methods, practices and transformations used by people to develop software.
Model: an abstract representation of reality.
static, dynamic; co~ntinuous, discrete
Simulation: the numerical evaluation of a mathematical model.
Svstem dvnami cs: a si mulation methodology for modeling continuous systems. Quantities are expressed as levels,, rates and information links representing feedback loops.
-!!e!!
U w r r * l o f S o h m C.lihmia ~ 3 l ~ m *
1 ~1 s I E 1 Center for Software Engineering R Ccxuol - qf'f 'W14
A Software Process Time
LC0 LCA IOC
Stagem
ictivities & tepresentative h o u n t s
A Process Activities
Requlrern ents Capture
Analysis 6. Desian --,,
Irn plementalion Te *-. . -. . . - - - ..-. .... . .. . .- ..
Supporting Activities Management Environment . . . . . - . Dep'oymenl .-..-..--.-...-..
v Iterations 4
-EE!
Uliv.ohy or m m C . G f r n i . Guffi~nc.3 I CI s I E I Center tor Software Engineering R CYlfrol Sy,.cm -
Software Process Models Used to quantitatively evaluate the software process. Demonstrate effects of prccess strategies on cost, schedule and quality throughout lifecycle. Enable tradeoff analyses and process optimization. Can experiment with changed processes via simulation before committing project resources. Provide interactive training for software managers; "process flight simulation". Encapsulate our understanding of development processes (and support organizational learning). Benchmark process improvement when model parameters are calibrated to organizationa~l data. Process modeling techniques can be used to evaluate other existing descriptive theories/models. 5
- force clarifications, reveal discrepancies, unify fields
System Dynamics Approach Involves following concepts [Richardson 9 11 - defining problems dynamically, in terms of graphs over time
- striving for an endogeno~us, behavioral view of the significant dynamics of a system
- thinking of all real systems concepts as continuous quantities interconnected in information feedback loops and circular causality
- identifying independent levels in the system and their inflow and outflow rates
- formulating a model capable of reproducing the dynamic problem of concern by itself
- deriving understandings and applicable policy insights from the resulting model
- implementing changes r~esulting from model-based understandings and insights.
Dynamic behavior is a consequence of system ,
Systems Thinking A way to realize the structure of a system that leads to it's behavior
Systems thinking involves: - thinking in circles and considering interdependencies
closed-loop causality vs. straight-line thinking - seeing the system as a cause rather than effect
internal vs. external orientation - thinking dynamically rather &.an statically
- operational vs. correlational orientation
Improvement through orgamzational learning takes place via shared mental models The power of models increase as they become more explicit and commonly understood by people - a context for interpreting and acting on data
System dynamics is a metho~dology to implement systems thinking and leverage learning efforts
7
Applicability to Software Processes Since software development is a dynamic and complex process with many factors, systsem dynamics is well-suited to analysis of software process improvement strategies - global system perspective - accounts for process feedback effects - can model inherent tradeoffs between schedule, cost and quality - accounts for critical path flows to analyze schedule as opposed to
traditional cost reduction analyses - enables low cost process experimentation
-!B!!?!!
G u l G m R Cmtrd sy;:m$.
Characterization Matrix and Examples
Long-ism Long-Lcrm pr0bCl qsuE*im ~dlllon
p r o j d h d c w l bumm
p r o j d I__
The Continuous View
Individual events are not tracked Entities are treated as aggregate quantities that flow through a system
-. can be described through differential equations
Discrete approaches usually lack feedback, internal dynamics
System Dynamics Notation System represented by x '(t) = f(x, p) .
x: vector of levels (state variables), p: set of parameters
sink rate\ ) information link
auxiliary variable level 1 level 2
Example system: - & auxiliary
-!E!E
U n i v r r r d S o r h m C.lifmia GIJC?JK*. I C I s I E I Center for Software Engineering 6 CMKA s)s~l~, -
Modeling Process Overview
Iterative, cyclic policy implementation
u\
system understandings
\ policy analysis
Y
problem definition
/ simulation
\ model conceptualization
model f~rmul~ation 12
-- U r i v w of S o l h m Glifmi.
cuc.inca
1 C( s ( E ( Center for Sortware Engineering 8 Cmrd S p : m c -
Modeling Stages and Concerns problem definition context; symptoms
' reference behavior modes
model conceptualization -\ model purpose
y l system boundary \
model formulation FJ feedback structure
model representation
simulation
------- model behavior
evaluation --- reference behavior modes
13
Modeling Tools DYNAMO - Fortran-like programming language - modeler writes difference equations
IT= and Stella - visual programming, levels of ahrtraction
- some utilities for discrete components
Powersim - graphical interface - web-enabled simulations
Vensim - comprehensive package with graphical interface
- statistical estimation and model calibration facilities
Extend - iconic environment supports continuous, discrete-event and mixed mode simulation
- extensible with source code accer:s 14
Others
Outline
Introduction to Process Modeling and System Dynamics
Brooks's Law Demonstration
Model Structures and System Behaviors
Overview of Past Applications
Earned Value Demonstration Rapid Application Development (RAD) Modeling and Process Concurrence
Rayleigh Curve and Lvnamic COCOMO Demonstration
Brooks's Law Modeling Example "Adding manpower to a late software project makes it later" [Brooks 751. We will test the law using a simple model based on the fol lowing assumptions: - new personnel require training by experienced
personnel to come: up to speed
- more people on a .project entail more communication overhead
- experienced personnel are more productive then new personnel, on average.
Model Output for Varying Additions 1:l lWam d u d ~ p m a n t flC 2: r d h m dwdopnenl r.t. I.: sdkvr 4ole:~yr.rd ,fie
..................................I ........... .. .............- -...--.
'unction pointslday .... ....... ............
..................................................................................... 1
OD* 0 DO 76.W
Days 215 DO
Sensitivity of Software Development Rate to Varying Personnel Allocation Pulses
(1: no extra hiring, 2: add 5 people on 100th day, 3: add 10 people on 100th day) 18
Outline
Introduction to Process Modeling and System Dynamics
Brooks 's Law Demonstration
-b Model Structures and System Behaviors Overview of Past Applications Earned Value Demonstration Rapid Application Development (RAD) Modeling and Process Concurrence Rayleigh Curve and Lpnamic COCOMO Demonstration
Model Structure and Behavior Description of levels, flows, feedback loops Model building blocks Basic flow processes and infrastructures Summary of general system behaviors
Model Components Level - An accumulation over time, also called stock or state variable. A storage
device for material, energy, information. - Snavshot test: stop time and freeze flows in actual system. Level
variables are those that still exist and have meaning in snapshot; the accumulations can be measured.
- Software process level instances: Work artifacts (requirements, tasks, lines of code, documentation pages)
Defect levels Personnel levels Effort expenditure Revenue Schedule date Others
Model Components (continued) Rates - flows; the "actions" in a system that often represent policies
- inseparable from levels - effect the changes in levels
Sources and sinks - represent infinite supplies or repositories
- their presence indicates that the real-world accumulations occur outside boundary of the system being modeled
Auxiliaries - converters of input to output
- they elaborate detail of r;tock and flow structure
- often represent "score-keeping" variables
Connectors 22
- information linkages
Feedback Loops
A feedback loop is a closed path connecting an action decision that affects a level, then information on the level being returned to the decision making point to act on.
level
w decision
Software Product Transformations
tasks required tasks designed tasks coded tasks tested
Q
rqts generation rate design rate coding rate testing rate
Cycle time per phase = start time of first flowed entity - completion time of last flowed entity
Cycle time per task = transit time through relevant phase(s)
Error Co-flows tasks designed
I design errors
design error 3 ge eration rate \
design error density
Error Detection and Rework error:; undetected errors
error generation rate I error escape rate
error d tection rate A detected errors
re , k ork rate
reworked errors
Personnel Pool
newly hired workforce experienced workforce
hiring rate workforce assimilation rate quit rate
Learnmg Curve tasks cornpleted
devel m nt rate
productiv~
manpower rate learning
Software Production Structure
Combines task development and personnel chains. Production constrained by productivity and applied personnel resources. completed software
1 productivity
- hiring rate attrition rate
Cost/Schedule/Quality Tradeoffs Inherent in system dynamics models that represent defects as levels, and include the associated varialble effort and cycle time for rework and testing as a function of those levels
errors undetected errors
error generation rate error escape rate I error detection rate
rework effo per error
detected errors P
cum bwork effort
&--..-.. _e*a rework manpower rate ,,
reworked errors
-k!!!!m
uw*ri(y of w m ~ . l i f m i m G u i G m C( S I E ( Center for Software Engineering R anfd
S p : m
General System Behaviors
Behaviors are representative of many known types of systems. Knowing how systems respond to given inputs is valuable intuition for the modeler Can be used during model assessment - use test inputs to stimulate the system
behavioral modes
Svstem Order
I The order of a system refers to the number
I of levels contained.
I A single level system cannot oscillate, but a
I system with at least two levels can oscillate because one part of the system can be in disequilibrium.
Example System Behaviors
Delays Goal-seeking Negative Feedback - First-order Negative Feedback
- Second-order Negative Feedback
Positive Feedback Growth or Decline S-curves
Delays
Time delays are ubiquitous in processes They are important structural components of feedback systems. Example: hiring delays in s80ftware development. - the average hiring delay represents the time that a personnel
requisition remains open before a new hire comes on board
-- u*-otsol*lm Cam* Gilb5inoo I CI S I E I Center for Software Engineering R Crnrrol - sys:m<
Third Order Delay A series of 1st order delays
-A Graphs show water levels over time in each tank
Delay Summary
Delay order
Infinite (pipeline)
Pulse input - input
Step input - oaput
Negative Feedback Negative feedback exhibits goal seeking behavior, or sometimes instability May represent hiring increase towards a staffing goal. The change is more rapid at first and slows down as the discrepancy between desired and perceived decreases. Also a good trend for n
rate = (goal - present leve1)ltime constan
9nalvtically: ,eve1 = Goal + (Level,, - Goal)e -VtC ;I ,,
idual defect levels. D s r d t "a I
................... ............
.., ...................... ............. .............. i
.... ,"". . " . .
! I
lrn 4m 7.m lorn lam
gasp qnl(mrw - 1 4 rn -. OI It, I-
I I ' I
Orders of Negative Feedback
First-order Negative Feedback
Second-order Negative Feedback - Oscillating behavior may start out with exponential growth and level out. It could
represent the early sales growth of a software product that stagnates due to satisfied market demand, competition or declining product quality.
-!!!!E!
uwws~y of ~ollhm ~ . h l a m Gulb.inco I c ~ S IE ) Center for Software Englneerlng R CmM - sys:om<
Positive Feedback Positive feedback produces a growth process Exponential growth may represent sales growth (up to a point), Internet traffic, defect fixing costs over time rate = present level*constant
halvticallv: I
:xponential growth: Level=Levebeat , I 7 m 10 m
:xponential decay: ~ e v e l = ~ e v e b e " ~ ~ ~ sa BE .wn I (-1 bnn, 112 111 Yln om , , We
39
-!!%I!!
U*rrw of a m C. l fa ia Gui~i(i~wx?
I C) S IE 1 Center for Software Engineering 3 Camd 3,%ma -
S-curve: graphic display of a quantity like progress or cumulative effort plotted against time that exhibits an s-shaped curve. It is flatter at the beginning and end, and steeper in the middle. It is produced on a project that starts slowly, accelerates and then tails off as work tapers off
S-curves are also observed in the ROI curve of technology adoption, either time-based return or in production functions that relate ROI to investment.
-- UrkrrRyof Sahm C . T f m i . G u i d m ~ I c ( S I E ( Center for Software Engineering R CYUKI - sydm<
Outline
Introduction to Proces's Modeling and System Dynamics Brooks 's Law Demonstration
Model Structures and System Behaviors Overview of Past Applications Earned Value Demonstration
Rapid Application Development (RAD) Modeling and Process Concurrence Rayleigh Curve and Dynamic COCOMO Demonstration
Brief History
Jay Forrestelr publishes Industrial Dynamics
1984 I Tarek Abdel-Hamid completes Ph.D. 1 dissertation at MIT
late -- 1980's NASA JPL and a few others begin research
implementations, including the effects of Drocess im~rovement initiatives
-!!!!!z
urivrri(y of somm cal i fmm Guld&no, 1 C ) s ( E ) Center for Software Engineering R Cmtrol S~B?-F -
Model Implementations Industry/govemment: AT&T, Bellcore, Draper Labs, Fedex, Hughes, Litton, Mitre, NASA, Siemens, others
Academic: ASU, Imp'erial College, Stanford, MIT, Naval Postgraduate School, USC, others
Tool vendors/worksh(~: Bartz Associates, Dynarnica, Rubin Systems
Many other companies are evaluating system dynamics for process improvement
Several academic rese:arch projects in proposal stage or dissertations being written
Process Evaluation Investigating the dynamic effects of inspections [Madachy 941, [Tvedt 951 Incremental development [Tvedt 951 Unit testing phase [Collafello et al. 961
Requirements phase (several) Investigating software reuse from a macro- inventory perspective [Abdel-Hamid 93 a]
Software outsourcing [Collafello et al. 991 Process model tradeoffs 44
Process Evaluation (continued) Organizational CMM-based process improvement (Burke 96) Other process improvement investments
staffing policies work environment investments computer aided tool investments
staff training investments metrics, reuse, risk management and others
Global software process feedback, stability and product evolution [Lehman 981 45
Flight Simulators Personnel training
graduate software project management (ASU)
vendor tools (Rubin et al.)
Navigating new skies process maturity initiatives
Stimulate dialogues for shared mental models Virtual reality for court cases
-!mr
U n k m k y a f S r n m C a r h i . G u c : ~ I C I s I E I Center for Software Engineering L Cmtrol - Syoiem
Other A.pplications Integration with cost estimation models
improving on static assumptions [Madachy 951, p u b i n et al. 951
calibrations between madachy 951 deriving static paramete:rs with dynamic experiments [Madachy 95)
Knowledge-based assistance/expert systems * heuristic project risk anailysis and input checking [Madachy 941 * input evaluation and change recommendation [Lin et al. 921
* QA expert simulator
Examining heuristics * Brookes's Law several:^
cost estimation correcticm processes [Abdel-Hamid 931
others 47
-- Unkrrty of S r l h m Calfomla ib~K%l~*. I C I S ) E I Center for Software Engineering 3 C x d d - 3,w41W
Sample Insights Inspection policy tradeoff analysis - diminishing returns from inspections as a function of error generation rates [Madachy 941 QA policy tradeoff analysis - finding the optimal QA effort [Abdel-:Hamid/Madnick 9 11 Rework staffing allocation [Tvedt 951 Organizational process improvement transition requires temporary productivity setbacks [Rubin, Johnson, Yourdon 951 Maximize your pro-SPI people (Burke 96)
48
Umhnty of M r n Ulfrmh Guc:X!OY I CI S I E I Center for software Engineering & Cmrrol ge:m< -
Sample Insights (continued) Leverage of experienced staff (several) Internal workings of Brookes's Law - training and communication losses Schedule compression not a static decision [Abdel-Hamid 901 Anchor-dragging in project control [Abdel-Hamid 931 Competing feedback loops in software reuse factory [Abdel-Hmid 93b]
Many others 49
Example Product Chains
I' Tvedt 95
Example :Defect Chains
a=-- * r o r m m m --& m m .
Abdel-Hamidmadnick 9 1
Example Personnel Chains
personnel pool - Madachy 94
hiring and penonnel allocatbn attrttbn rate
~ n k ~ o f ~ m ~ s ( i m h Guffi.inco I C [ S I E [ Center for Software Engineering C C Y W sy::m< -
Abdel-Hamid Model Subsystems
Management T-Ff available
A -Ee!
Ve&a$ of5otdIm Q&i :&.~Nz I C I S I E [ Center for software Engineering S CMxd - >,=:ma
Abdel-Hamid Model Behavior
Underestimation factor = .67
QA Policy Tradeoff Analysis
0 10 20 3 0 40 50
Q A effort % o f total Q A effort % o f total
Note non-standard QA definition
-L!!e!
U w m d Samm Cdfani Euaww
I CI s I E I Center for Software Engineering R CxW - 3p:mln
Abdel-Hamid Model Critique Advantages
The model includes a good deal of important dynamic effects. It does well to illustrate some methods of poor sofhvare management (this can also 'be a downfall if certain policies are emuladed, or the model becomes prescriptive instead of descriptive).
It uses the very realistic notion that management perceptions, rather lhan true conditions, dictate actions.
Delays in action are also important realistic considerations that the model covers well.
The inclusion of important personnel attributes like motivation, exhaustion and schedule pressure effects.
The model is strong in terms of planning and control structures.
Downfalls The model contains too many elements for managers to understand and use, and requires initialization of many parameters and functions.
The software production model is too simplistic for many purposes. Design and code are aggregated together.
The model may be wrongly used or overly relied on to perpetuate poor management practices, such as not being able to status progress early on. The definition of QA is non-standard. The activities modeled as QA would be considered p a ~ I of standard development activities in most installations, and performed by the same people who develop the software.
The control function uses a misleadin16
-- Uwms?fofSoJlm C.Nrmb &icjm
I CI S I E I Center for Sortware Enginewing 8. C m s,?::m% -
Introduction to Madachy Inspection Model
Research problem addressed - What are the dynamic effects to the process of performing inspections?
Model used to evaluate process quantitatively - demonstrates effects of inspection practices on cost, schedule and quality
throughout lifecycle - can experiment with changed processes before committing project
resources - benchmark process improvement - support project planning and management
Model parameters calibrated to Litton data - error generation rates, inspection effort, efficiency, COCOMO constant,
others
Model validated against industrial data 57
- System Diagram
System Diagram (continued)
Effects of Ins~ections
- 1: with inspections, 2: without inspections
Qualitatively matches generalized effort curves from Michael Fagan (Advances in sofware inspections. IEEE Transactions on Software Engineering, July 1986), 60
which were used in problem definition.
Sample Project Progress Trends From wadachy 941
Inspection Policy Tradeoff Analysis Varying error generation rates shows diminishing returns from inspections [Madachy 941:
Error Multiplication Effects
Design Error Multiplication
Derivation of Phase Specific Cost Driver - -.-..-.---...-.-. .............. -. ............. ...............................................................................
~ C O M O Rating for Simulation Parameters ................................................................................................... i design ins~ection ~ract ice I code ins~ection ~ract ice I Use of lns~ections
0 I 0 l Nominal
.5 .5 High .--------.- .. ..............-- . 7 1 Very High j
R q l l and Delalled Code and IniepnUon Produd Dedpn UnH T e a and Ted Dedpn
Phase
Risk Analysis A deterministic point estimate from a simulation run is only one of many actual possibilities Simulation models are ideal for exploring
risk test the impact of input parameters
test the impact of different policies
Monte-Carlo analysis takes random samples from an input probability distribution
65
Monte-Carlo Example Results of varying inspection efficiency:
Effort Bin (Persondays)
66
-!!BE!
urivrdyo1SammC.Unnia G u i ' i m ( C( S ( E ( Center for Soflware Engineering R CY-W
sys:rm< - Contributions of Madachy
Inspection Model Demonstrated dynamic effects of performing inspections.
New knowledge regarding interrelated factors of inspection effectiveness.
Demonstrated complementary features of static and dynamic mode1,s.
Techniques being adopted in industry.
CS599 Software Process Modeling Student Term Projects
Dynamics of architecture development process in MBASE inception and elaboration phases Application of RAD techniques to pre-IPO internet companies COTS glue-code development and integration dynamics Reuse and language-level effects in software development CMM-based process improvement strategies
68
Outline
Introduction to Process Modeling and System Dynamics Brooks 's Law Demonstration
Model Structures and System Behaviors
Overview of Past Applications
Earned Value Demon,stration Rapid Application Development (RAD) Modeling and Process Concurrence
Rayleigh Curve and Dynamic COCOMO Demonstration
U ~ + C L ~ of SMmm Cdhh G$JII~SXZ
1 CI S 1 E Center for Software Engineering 5 cz6;ol r;,r:uwi -
Earned Value
Earned value is a method for measuring project performance. It compares the amount of work that was planned with what was actually accomplished to determine if cost and schedule performance is as planned. Cost performance index (CPI) is the ratio of budgeted costs to actual costs (BCWPIACWP) Schedule performance index (SPI) is the ratio of work performed to work scheduled (BCWPA3CWS) 70
me??!! uwmty of samm ~ d r o m i i G f f i x m 1 CIS I E I Center for Software Engineering R cmrd Sy::m~ -
Earned Value Model
-!E!!!.!
Urivmty of amhm C.Iromim :~~JKZIK.X?
1 CI s I E I Center for Software Engineering 5 Cx$d S,%fAlv, -
Outline
Introduction to Process Modeling and System Dynamics
Brooks 's Law Demonstration
Model Structures and System Behaviors
Overview of Past Applications
Earned Value Demonstration
Rapid Application Development (RAD) Modeling and Process Concurrence
Rayleigh Curve and Lvnamic COCOMO Demonstration
A -&!!eE
U*rr$otsDlmm Cdfmia Guffimx I C I s I E I Center for software Engineering L C m d sy::ah< - Context for RAD Parameter Hypothesis Testing
Develop a model that isolates the effects of the factor of interest (e.g. RVI-IL, BPRS)
Eliminate other confounding effects besides chosen parameter Model the underlying mechanics for the chosen parameter Instrument cost and schedule in the model
Run planned experiments that vary the parameter of interest over the desired range Independently derive effort and schedule multipliers fi-om the trials 73
Umon Urn-dy 01 % l m m C.hhu .>CJO?IKP
I C I s I E I Center for Software Engineering 5 CTW S.,swra
TD Modeling Examde: Process Reengineering and Streamlining
Run this model at different settings for number of approvals per task and time taken per approval
Derive schedule mu1t:ipliers from experiments 74
Process Concurrence
Process concurrence refers to interdependency constraints between tasks, both within and between phases.
Describes how much work becomes available for completion based on previous work accomplished. Bottlenecks on the availability of work Concurrence relations can be sequential, parallel, partially concurrent, or other
75 dependent relationships.
Trying to Accelerate Software Production software tasks
u4d personnel
restricted channel flow
(partially adapted from Putnam 80)
- -- Umm&ydSa#tm Cahh ~ l l c o I C( s 1 E ( Center for Software Englnccrlng R Cmm - 9,-:m<
Limited Parallelism of Software Activities
There are always sequential constraints independent of phase: - analysis and specification
- figure out what you're supposed to do - development o f something (architecture, design, code, test plan, etc.) - assessment
- verify/validate/review/debug - possible rework recycle of previous activities
These can't be done totally in parallel with more applied people - Different people can perform the different activities with limited
parallelism, but downstream activities will always have to follow some OF
I I software tasks , / software tasks
Funnel View of Limited Parallellism
Mythical Man-Month Sequential constraints imply tasks cannot be partitioned. -- Applying more people has no effect on
schedule
Men and months are interchangeable o when tasks can be partitioned with no communication among them.
Internal Process Concurrence
Internal process concurrence relationship shows how much work can be done based on the percent of work already done. The relationships represent the degree of sequentiality or concurrence of the tasks aggregated within a phase.
me.!! UluL- of Slhm CaLifani. Guid.jm ( C( s ( E ( Center for Software Englneering CmW rj,::m<
L i n e a r and Non-linear Internal Process Concurrence
less parallel integrat~on
region of parallel work
initial work on important segment: other segments ha\ to Walt unt~l these are done
Percent o f Tasks Completed and Released P.re.nI o r Tasks CompI.t.d and Rd.as.4
A lockstep relationship. The overarching segments of software 81 .
must be completed before other parts can beg~n
Internal Concl rence Examples
Percent of Tasks Completed and Released Percent of Tasks Conpleted and Released
Complex system development where Simple conversion task where tasks tasks are dependent due to required can be partitioned with no communication inter-task communication. 82
External Process Concurrence
External process concurrence relationships describe constraints on amount of work that can be done in a downstream phase based on the percent of work released by an upstream phase. See examples on following slides - More concurrent processes have curves near the
upper left axes, and less concurrent processes have curves near the lower and right axes.
83
-!EF
univcrq of m m ~ a ~ f r m i G~m;su;r I CI s ( E I Center for Software Engineering 5 CxR;ol - ~,%WIY,
External Process Concurrence
I
Typical non-linear external process concurrence relationship
No Inter-phase Relationship
0 25 50 75 100
Percent of Upst ream T a s k s Released
N o dependencies between the phases.
The downstream phase can progress independently of the upstream phase.
The entire downstream work is available to be completed with none of the upstream work re1 eased.
85
Relationship
0 25 50 75 1W
Percent of Upstream Tasks Released
None of the downstream phase can occur until the upstream phase is totally complete. Like a theoretical waterfall development process where no phase can start until the previous phase is completed and verified. Same as a finish-stop relationship in a critical path network.
me!!!! U&ni(y of S o h m C.lifania G u c : ~ I CI S I E I Center for Software Engineering R Cmt6
S y s i m - Parallel Inter-phase Relationship
0 25 50 7 5 100
Percent o f Upstream Tasks Rckased
The two phases can be implemented completely in parallel.
The downstream phase can be completed as soon as the upstream phase is started.
-!E!E!
U k n V o f S o h m Califania Ol~aolxx? I CIS I E I Center for Software Engineering R Cad:d - s>5:w1n
Delayed St:art Inter-phase Relationship
The downstream phase must wait until a major portion of the upstream phase is completed, then it can be completed in its entirety.
Like a start-start relationship in a critical path network.
Percent o f Upstream Tasks Released
-B!E
utivwsityof s o l h m ~.li(omi Guc.mm ( c ( S ( E ( Center for Sortware Engineerlng R Cnnrd - sy;,.r:om<
Lockstev Inter-~hase Relationship
The downstream phase can progress at the same speed as the upstream phase; thus they are in lockstep with each other.
Like stovepipe components stacked on top of each other, similar to building the stories of a skyscraper. This relationship is not available in PERTICPM methods.
0 25 50 75 100
Persent o f Upstream Tasks Released
-LC, -Be!
urw.n* of s o l h m Cdfmi. Gim;%x.x? I C( s ( E ( Center for Sortware Ensheering ?j Cad~d
U e l a v with Partiallv ~ o n c u r r e n r Inter-phase Relationship
The downstream phase has to wait until a certain percentage of upstream tasks have been released, and then can proceed at varying degrees of concurrence per the graph.
Representative of much s o h a r e development work.
This relationship is not available in PERTICPM.
0 25 50 75 100
Percent of Upstream Tasks Released
Roles Have Different Mental Models
Percenl of
Design Tasks
Avadable to
Initially Complete
0.00 10 Percent of Product Definilion Tasks
Released
Differing perceptions upstream and downstream (Ford-Sterrnan 97)
Four Estimates of Extcrunl Process Concurrence Krlstiunship between the PrtHLuct nefinition and De5,ign Phases
-E!!!!!
UW- of S ~ W " c r r h m CIII(:?~& 1 C( S ( E ( Center for Software Engineering 5 Cx$d - 3,?Wlr3
RAD Awareness Hypothesis: to optimize ~~chedule on a complex project with partial inter-phase concurrency, the optimal systems engineering staffing is front-loaded vs. constant level-of-effort - downstream development is constrained by the specifications available
Case 1: not RAD aware Case 2: RAD aware
SE staff t--
A Ulllon VrrLmm* of Sorlhm C.lfrm,. &I&m 1 C I S I E 1 Center for Software Engineering C Cmrd
sy'j'm
' E x t e r n a l Concurrence Model Diagram
specified tasks Oleveloped tasks /--
- - --
I \ concurrence constraint nag percent of s jecs available to d4velop
development personnel productivity
n Os*eloPsdlaskS~ = ds*BIODSddlaPk60 9 + (OB*BIOpmBnIIr~lB~~ 01 INIT devel0PeO.lssk8= 0 Eq uat on DOCUMENT W n a l ha% beendWlOOea. INFLOWS: b aevslopmsnl~rste = ~f(conrvmnce.consbs~nt~IIag = O) lhan
asvelopmemgersonnerpmaumw el61 0 DOCUMENI: n m e n are lasemat tan be amloped (I.e.nm conswared ayexlernal process to~w~rence) , mendMlopmentrale=penonnePpmducMhr.
0 spscmsd.bsem :: sps~rnna~bshso - aq - (spsriMcnlan_na - dBIBIDpmBII(.rale) -dl INIT tpsrmed-tasks= 0
m a , o rra1,coa,ooi1 (1.1 oo, WCUMENT m l s m m a l conturrence Rlalionshlp destrlber the pertedortasksU?al are nalhble lo be devrbped ar a runcllon ofmetasks specllealo dale 94
Out 1 ine
Introduction to Process Modeling and System Dynamics
Brooks 's Law Demonstration
Model Structures and System Behaviors
Overview of Past Applications
Earned Value Demonstration Rapid Application Development (RAD) Modeling and Process Concurrence
Rayleigh Curve and Dynamic COCOMO Demonstration
Rayleigh Manpower Distribution
Rayleigh curve is a popular model of personnel loading
Assumptions: - Only a small number of people are needed at the beginning of a project to
carry out planning and specification. As the project progresses and more detailed work is required, the number of staff builds up to a peak. After implementation and unit testing is complete, the number of staff required starts to fall until the product is delivered.
- The number of people working on a project is approximately proportional to the number of problems ready for solution at that time
Rayleigh Formula
A Rayleigh curve describes the rate of change of manpower effort per the following first order differential equation:
-- dC(t) - p(t)[K - C( t ) ] dt
where C(r) is the cumulative effort at time t, K is the total effort, and p(r) is a learning function. The learning function is linear and can be represented by
p( t ) = 2at
where a is a positive number.. The manpower rate of change represents the number of people involved in development at any time (staffing profile). The a parameter is an important determinant of the peak personnel loading called the manpower buildup parameter.
97
Rayleigh Model cumulative effort P 1
1
leaming fun
estimated total manpower buildup parameter
b w 2 a L i i o
Interactive Rayleigh Model Demo
Vary manpower buildup parameter
References Abdel-Hamid T, Investigating the cost/schedule tradeoff in software development, IEEE Software, January 1990 Abdel-Hamid T, Madnick S, Sofhuare Project Dynamics, Englewood Cliffs, NJ, Rentice-Hall, 1991 Abdel-Hamid T. Adapting, correcting. and perfecting software estimates: a maintenance metaphor, IEEE Computer, March 1993 Abdel-Hamid T, Modeling the dynamics of software reuse: an integrating system dynamics perspective, Resented at the Sixth Annual Workshop on Software Reuse, Owego, NY, November i 9 9 j Burke S, Radical Improvements Require Radical Actions: Simulating a High-Maturity Organuation, Sofhvare Engineering Institute, CMUISEI-96-TR-024, June 1997 Brooks F, The MythicalMan-Month, Readin& MA, Addison-Wesley, 197 Ford D. S t m a n J, Dynamic Modeling of Product Development Rocesses. MIT Sloan School of Management, D-4672, January 1997 Collofello J, Roehling S, System Dynamics Modeling Applied to Software Outsourcing Decision Support, Roceedings of RoSim Workshop '99, Portland, OR, June 1999 Forrester MI. Industrial Dynamics. Cambridge. MA: MIT Press, 1961 Kin C, Abdel-Hamid T, Sherif J, Software-engineering process simulation model. TDA Progress Report 42-108, Jet Propulsion Laboratories, February 1992 Madachy R, A software project dynamics model for process cost, schedule and risk assessA%t, PhB. dkrtat i&, ~ c ~ ; r & e n t of industrial andsystems Engineering, USC, December 1994
References (cont .) Madachy R, System Dynamics and COCOMO; Complementary Modeling Paradigms, Proceedings of the Tenth International Forum on COCOMO and Software Cost Modeling, SEl, Pitfsburgh, PA, 1995
Madachy R, System Dynamics Modeling of an Inspection-Based Process, Proceedings of the Eighteenth International Conference on Software Engineering, IEEE Computer Society Press, Berlii Germany, March 1996 Putnam L, Tutorial: Sofhvare Cost Estrmating and Life-Cycle Control: Getting the Software Numbers, IEEE Computer Society Press, New York, NY, 1980
Richardson GP, Pugh A, Introduction to System Dynamics Modeling wrth DYNAMO, MIT Press, Cambridge, MA, 1981
Rubin H, Johnson M, Yourdon E, Software process flight simulation: dynamic modeling tools and metrics, Information Systems Management, Summer 1995 Tvedt J, Collofello J, Evaluating the efectiveness of process improvements on software development cycle timevia system dynamics modeling, University of Arizona, 1995
USC-CSE Web Sites http://sunset.usc.edu/research-group/ray/spd - portions of forthcoming book: Madachy R, Boehm B, Sofhvare Prwess Dynamics, IEEE
Computer Society Press, Washington, D.C., 2000
http://sunset.usc.edu/classes/cs599-99 101
- USC-CSE Software Process Modeling Course (include other system dynamics links)