|
Task-Based DSM Simulation
Note: For a fuller explanation of the DSM-Simulation, see:
Browning, T. and Eppinger, S., "Modeling Impacts of Process Architecture on Cost and Schedule Risk in Product Development", IEEE Transactions on Engineering Management, 49(4): 428-442, 2002.
DSM-Sim (DSM Simulation) Synopsis
We can use a DSM-based model of a process to quantify a process configuration's expected cost and duration and their variances. Cost, duration (or schedule), and variances in both are largely a function of the number of iterations required in the process execution and the scope or impact of those iterations. Since iterations may or may not occur (depending on a variety of variables), this model treats iterations stochastically, with a probability of occurrence depending on the particular package of information triggering rework.
This model characterizes the design process as being composed of activities that depend on each other for information. Changes in that information cause rework. Thus, rework in one activity can cause a chain reaction through supposedly finished and in-progress activities. Activity rework is a function of the probability of a change in inputs (data package volatility and activity sensitivity) and the impact of a change in inputs (activity sensitivity). The model also assumes that independent activities can work concurrently.
As input, the DSM-Sim requires a DSM model and some additional data. For each activity, three cost and duration estimates are required: an optimistic or best case value (BCV), a most likely value (MLV), and a pessimistic or worst case value (WCV).
Each activity also has an associated improvement curve, which represents learning, set up times, etc. The improvement curve is given by a percentage, the percentage of the original duration required to regenerate the outputs. (e.g., it takes 30% of the original duration to repeat the activity second and successive times.) Table 1 provides example activity data. In addition, for each activity interface, the model requires an assessment of the probability of a typical change in the data causing rework for an activity and the impact of that rework should it occur. Impact values are percentages of an activity to rework. Example probabilities and impacts are shown in the DSMs in Table 2.
| Activities |
Durations (days) |
Costs ($k) |
|
| ID# |
Name |
BCV |
MLV |
WCV |
BCV |
MLV |
WCV |
LC |
| A4 |
Prepare UAV Preliminary DR&O |
1.9 |
2 |
3 |
8.6 |
9 |
13.5 |
35% |
| A511 |
Create UAV Preliminary Design Configuration |
4.75 |
5 |
8.75 |
5.3 |
5.63 |
9.84 |
20% |
| A512 |
Prepare & Distribute Surfaced Models & Int. Arngmt. Drawings |
2.66 |
2.8 |
4.2 |
3 |
3.15 |
4.73 |
60% |
| A531 |
Perform Aerodynamics Analyses & Evaluation |
9 |
10 |
12.5 |
6.8 |
7.5 |
9.38 |
33% |
| A521 |
Create Initial Structural Geometry |
14.3 |
15 |
26.3 |
128 |
135 |
236 |
40% |
| A522 |
Prepare Structural Geometry & Notes for FEM |
9 |
10 |
11 |
10 |
11.3 |
12.4 |
100% |
| A5341 |
Develop Structural Design Conditions |
7.2 |
8 |
10 |
11 |
12 |
15 |
35% |
| A532 |
Perform Weights & Inertias Analyses |
4.75 |
5 |
8.75 |
8.9 |
9.38 |
16.4 |
100% |
| A533 |
Perform S&C Analyses & Evaluation |
18 |
20 |
22 |
20 |
22.5 |
24.8 |
25% |
| A5342 |
Develop Balanced Freebody Diagrams & External Applied Loads |
9.5 |
10 |
17.5 |
21 |
22.5 |
39.4 |
50% |
| A5343 |
Establish Internal Load Distributions |
14.3 |
15 |
26.3 |
21 |
22.5 |
39.4 |
75% |
| A5344 |
Evaluate Structural Strength, Stiffness, & Life |
13.5 |
15 |
18.8 |
41 |
45 |
56.3 |
30% |
| A54 |
Preliminary Manufacturing Planning & Analyses |
30 |
32.5 |
36 |
214 |
232 |
257 |
28% |
| A6 |
Prepare UAV Proposal |
4.5 |
5 |
6.25 |
20 |
22.5 |
28.1 |
70% |
Table 1: Activity Data for Model Input
| |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
| A4 |
Prepare UAV Preliminary DR&O |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A511 |
Create UAV Preliminary Design Configuration |
2 |
.4 |
|
|
|
|
|
|
|
.2 |
|
|
|
|
|
| A512 |
Prepare & Distribute Surfaced Models & Int. Arngmt. Drawings |
3 |
|
.5 |
|
.4 |
|
|
|
|
|
|
|
|
|
|
| A531 |
Perform Aerodynamics Analyses & Evaluation |
4 |
.3 |
|
.5 |
|
|
|
|
|
|
|
|
|
|
|
| A521 |
Create Initial Structural Geometry |
5 |
.4 |
|
.5 |
|
|
.1 |
|
.1 |
|
|
|
.3 |
.1 |
|
| A522 |
Prepare Structural Geometry & Notes for FEM |
6 |
.1 |
|
|
|
.4 |
|
|
|
|
|
|
|
|
|
| A5341 |
Develop Structural Design Conditions |
7 |
.4 |
|
|
|
|
.4 |
|
|
|
|
|
|
|
|
| A532 |
Perform Weights & Inertias Analyses |
8 |
|
|
|
|
|
.5 |
|
|
|
|
|
.5 |
|
|
| A533 |
Perform S&C Analyses & Evaluation |
9 |
.4 |
|
.5 |
.5 |
|
|
|
.5 |
|
|
|
|
|
|
| A5342 |
Develop Balanced Freebody Diagrams & Ext. Applied Loads |
10 |
|
|
|
.1 |
|
.5 |
.2 |
.1 |
|
|
.4 |
|
|
|
| A5343 |
Establish Internal Load Distributions |
11 |
|
|
|
|
|
.5 |
.5 |
.5 |
|
.5 |
|
|
|
|
| A5344 |
Evaluate Structural Strength, Stiffness, & Life |
12 |
.4 |
|
|
|
|
.4 |
.5 |
|
|
.5 |
.4 |
|
|
|
| A54 |
Preliminary Manufacturing Planning & Analyses |
13 |
.5 |
|
|
|
.5 |
|
|
|
|
|
|
.4 |
|
|
| A6 |
Prepare UAV Proposal |
14 |
.3 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
.4 |
|
| |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
| A4 |
Prepare UAV Preliminary DR&O |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| A511 |
Create UAV Preliminary Design Configuration |
2 |
.5 |
|
|
|
|
|
|
|
.1 |
|
|
|
|
|
| A512 |
Prepare & Distribute Surfaced Models & Int. Arngmt. Drawings |
3 |
|
.3 |
|
.5 |
|
|
|
|
|
|
|
|
|
|
| A521 |
Create Initial Structural Geometry |
4 |
.4 |
|
.8 |
|
|
|
|
|
|
|
|
|
|
|
| A522 |
Prepare Structural Geometry & Notes for FEM |
5 |
.1 |
|
.1 |
|
|
.1 |
|
|
|
|
|
.3 |
.1 |
|
| A531 |
Perform Aerodynamics Analyses & Evaluation |
6 |
.1 |
|
|
|
.3 |
|
|
|
|
|
|
|
|
|
| A532 |
Perform Weights & Inertias Analyses |
7 |
.5 |
|
|
|
|
.8 |
|
|
|
|
|
|
|
|
| A533 |
Perform S&C Analyses & Evaluation |
8 |
|
|
|
|
|
.5 |
|
|
|
|
|
.5 |
|
|
| A5341 |
Develop Structural Design Conditions |
9 |
.3 |
|
.3 |
.3 |
|
|
|
.3 |
|
|
|
|
|
|
| A5342 |
Develop Balanced Freebody Diagrams & Ext. Applied Loads |
10 |
|
|
|
.1 |
|
.5 |
.4 |
.3 |
|
|
.3 |
|
|
|
| A5343 |
Establish Internal Load Distributions |
11 |
|
|
|
|
|
.5 |
.5 |
.3 |
|
.3 |
|
|
|
|
| A5344 |
Evaluate Structural Strength, Stiffness, & Life |
12 |
.5 |
|
|
|
|
.3 |
.5 |
|
|
.5 |
.5 |
|
|
|
| A54 |
Preliminary Manufacturing Planning & Analyses |
13 |
.9 |
|
|
|
.9 |
|
|
|
|
|
|
.3 |
|
|
| A6 |
Prepare UAV Proposal |
14 |
.5 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
.8 |
|
Table2: DSM Dimensions One (Top) and Two, Showing Rework Probabilities and Rework Impacts, Respectively
Activity cost and duration are random variables, represented by a distribution of possible values. The BCV, MLV, and WCV are used to form a rough, triangular PDF, denoted as TriPDF(BCV,MLV,WCV) for �smaller is better� (SIB) measures such as cost and duration. For each run, the model randomly samples a single value for each activity�s cost and duration from that activity�s TriPDFs.
The model also uses three other vectors, each with a length equal to the number of activities. First, a sequencing vector specifies the order of the activities in the DSM -- i.e., the process configuration. In Table 2, for instance, the sequence is simply 1, 2, �, 14. Changing the sequencing vector allows for the exploration of alternative process configurations. Second, a work vector, W, keeps track of the amount of work remaining to be done on each activity. Usually, each entry in this vector is set to 100% to begin each simulation run. Third, a 'work now' vector of Boolean entries indicates if an activity is to do work at a given time during the simulation execution. This vector is discussed below.
The simulation uses a simple,
time advancing approach. Each run consists of a series of equal time steps,
∆t, the size of which is smaller than the duration of the shortest
activity. (E.g., if activities have durations ranging from five to 50 weeks, a
reasonable ∆t could be 0.5 weeks, as activity durations are rounded off
to an integer number of time steps. Smaller time steps provide greater model
resolution at the expense of greater simulation execution time.)
During each time step, the
model checks for the most upstream activity requiring work and any activities
that can be executed concurrently. Activities do not begin work until their
needed inputs are available from completed, upstream activities.
(Dependencies on upstream activities are shown in the lower triangular portion
of the DSM.) Work is done on available activities during the time step, and
their work remaining is reduced by the fraction of their duration represented by
the time step. The cumulative process cost is increased based on the cost of
this work. Whenever an activity finishes, the model checks for potential
iterations (rework for upstream activities) and second-order rework resulting
from iterations using the probabilities in the DSM. If rework occurs, its
amount�a percentage of the activity given in the DSM and modified by improvement
curve effects�is added to the W vector. When all activities are
complete, all W vector entries equal zero. The model converts the number
of time steps required into appropriate units and outputs this as the process
duration or schedule, S, for the run. Cumulative process cost is output
as C. Each run of the simulation
yields a cost and schedule outcome for a process in a given configuration. The
simulation continues to do batches of 25 runs until the means and variances of
the C and S outcome distributions stabilize to within 1%. The
user can adjust the 1% stability threshold and the run batch size between
stability checks. The simulation is implemented
in a spreadsheet. Table 3 presents the important variables used in the model,
and Table 4 provides an overview of the algorithm.
| r |
number of runs in the simulation |
| n |
number of activities in the process |
| C |
Cumulative process cost for a given run |
| S |
Cumulative process duration for a given run |
| ∆t |
time step size in simulation |
| tx |
the current time step |
| ActSn |
activity duration vector: a vector of length n containing a duration value for each activity, sampled from each activity�s PDF of possible duration outcomes |
| ActCn |
activity cost vector: a vector of length n containing a cost value for each activity, sampled from each activity's PDF of possible cost outcomes |
| Wn |
work vector: a vector of length n with a [0,1] entry for each activity, indicating work to be done on that activity; initially set to all '1's to indicate 100% of the work remains for each activity |
| Winitn |
initial values for the W vector for each run |
| WNn |
'work now' vector: a vector of lengthn with a Boolean entry for each activity, indicating the need to work on the activity during the current time step |
| LCn |
'learning curve' vector: a vector of length n with a percentage entry for each activity, indicating the percentage of the original activity duration required for second and successive executions of the activity |
| DSMnnk |
DSM (off-diagonal of n x n matrix with third dimension k):
dimension k = 1: rework probability [0,1]
for superdiagonal entries where i < j, the probability of activity j causing rework for activity i; for subdiagonal entries where i > j, the probability of activity j causing second-order rework for interim activity i after an iteration of activity j
dimension k = 2: rework impact [0,1]
the added work (in terms of the impact on the work vector, W) should iteration or second-order rework occur |
Table 3: Model Variables
|
1) Set W vector to Winit values. |
2) Sample activity costs and durations from their distributions. |
3) Convert duration to time steps, rounding off (minimum duration is one time step). |
|
4) Each time step: |
Set all WN = FALSE. |
Find first activity, i, that has unfinished work -- i.e., where W(i) > 0. Set WN(i) = TRUE. |
Loop through subsequent activities to identify concurrent work for the current time step. If next activity has unfinished work and is not dependent on an unfinished, upstream activity, then set its WN entry to TRUE. Otherwise, the complete band has been found (stop checking activities). |
Loop through all activities: |
If activity doing work this time step -- i.e., if WN(i) = TRUE -- then: |
Subtract appropriate fraction of the work from W(i) for each working activity. |
If W(i) < 0.01 then W(i) = 0 to prevent rounding errors from prolonging activity duration. |
Add appropriate fraction of each working activity's cost to cumulative cost, C. |
If activity doing work this time step and just finished -- i.e., if WN(i) = TRUE and W(i) = 0 -- then: |
Look through column in DSM immediately above newly finished activity for potential iterations. Evaluate each possibility versus a random number; if required, then: |
Add appropriate rework (given in DSM dimension two, and adjusted for learning curve benefits) to W vector entry for affected, upstream activity. But if W vector entry is now greater than one (because activity was not finished), reduce it to 0.9 to keep work from expanding beyond original scope and to represent some learning. |
Look through column in DSM immediately below upstream activity for potential second-order rework. Evaluate each possibility versus a random number; if required, then: |
Add appropriate rework (given in DSM dimension two, and adjusted for learning curve benefits) to W vector entry for affected, interim activity. But if W vector entry is now greater than one (because activity was not finished), reduce it to 0.9 if rework or 1 if never worked before. |
If any activity has more work to do, then increment time step and repeat; otherwise, finish run. |
|
5) Convert number of time steps back into time units to determine S. |
6) Save C and S with run number. |
Table4: Algorithm for Each Run of Model
The DSM-Sim utilizes some simplifying assumptions and makes some work policy choices. These choices can be altered by modifying the simulation algorithm. The algorithm currently assumes that the most upstream activity requiring work will begin first.
Additional activities can work concurrently with this activity if they do not depend on it (or an interim activity). With this approach, the workflow is determined by the process configuration, thereby allowing the comparison of alternative configurations. Note that this policy has the effect of causing an activity to stop and wait if an activity upon which it depends begins rework. Furthermore, the algorithm currently assumes that activities only produce outputs upon completion, and that rework cannot increase the original scope of an activity (i.e., no W vector entry can exceed 100%).
Using the example data given above and running the simulation provides some example outputs. Figure 1 shows the pattern of activity execution in a Gantt chart format for a single run. Figure 2 shows probability mass functions (PMFs) and cumulative distribution functions (CDFs) for a large set of cost and schedule outcomes (r = 475, ∆t = 2). The mean cost outcome, E[C], is $647k with a standard deviation, sC, of $45k. The median cost outcome is $640k.
As we expect, this distribution is skewed right (skewness = 1.15). The mean duration, E[S], is 141 days with a standard deviation, sS, of 8 days. Median duration is 140 days, even though the schedule distribution is skewed right (skewness = 0.95).

Figure1: Example Gantt Chart of Activity Work Over Process Duration


Figure 2: Cost and Schedule PMFs and CDFs Output from Model
|