3.1. Overview
Systems Developmental Dependency Analysis (SDDA) is a methodology that includes a parametric model of the interactions between interdependent systems or technologies, where the dependencies occur in the developmental domain, meaning that the development of a system or a technology is at least partially dependent on the development of one or more other systems or technologies. Like in PERT/CPM, these developmental dependencies imply a temporal dependency during development. However, the dependencies in traditional models are
absolute, meaning that the development of a predecessor (or execution of a task) must be fully completed before the following can begin. The development scheduling of System of Systems cannot always be modeled to a level of granularity that would result in this kind of
absolute dependency and require a more complex model that can account for partial and possibly varying dependencies, which also take into consideration the performance and decisions associated with independent stakeholders. The SDDA model is based on previous work by Garvey and Pinto [
61,
62] on Functional Dependency Network Analysis (FDNA), a parametric model of the dependencies between system capabilities, which uses two parameters called the Strength of Dependency (SOD) and Criticality of Dependency (COD). SDDA adapts these concepts to identify two parameters characterized by an intuitive meaning associated with developmental dependencies. The use of such parameters facilitates the modeling process. SDDA is the counterpart—in the developmental domain—of a methodology proposed by Guariniello and DeLaurentis for the analysis of dependencies in the operational domain, Systems Operational Dependency Analysis (SODA, [
63]).
The raw outcome of SDDA modeling and analysis is a quantitative assessment of the expected beginning and completion time of activities (i.e., development of systems, technologies, or SoS capabilities) in a project. This assessment accounts for the combined effect of multiple developmental dependencies and for possible delays in the development of predecessors in two different ways: in accordance with the partial independence of stakeholders in a System of Systems, delays in the development of a predecessor are not simply added to the beginning time of a successor, but also impact the lead time in a way that models the reduced trust in and reliability of the stakeholder in charge of the predecessor. Therefore, the lead time, i.e., the amount of time in which a system can begin to be developed before a predecessor is fully developed, is calculated based both on the properties of the dependencies and on the expected and current performance of other stakeholders. The completion time of the development of each individual system or technology is then calculated based on the lead time and on the expected time of development of the individual system or technology. The SDDA methodology allows for deterministic or stochastic analysis based on the same SDDA model. In deterministic analysis, a certain amount of delay is assigned to each system, and SDDA evaluates the resulting schedule. In stochastic analysis, the amount of delay in each system follows a Probability Density Function, resulting in a stochastic beginning and completion time of each system or technology. The most direct outcomes of this analysis identify the most critical systems, technologies, and dependencies with respect to the overall development time, the delay absorption, and the delay propagation. This provides an important decision support tool for system managers and SoS architect(s). In addition, the availability of a quantitative and objective assessment of the development schedule and the risk associated with developmental decisions can help alleviate the challenges posed by stakeholder independence and potential biases. The SDDA model was developed in a way that can accommodate various types of procedures. For example, the results from the baseline analysis can be used to compare different architectures in terms of their development time, risk, and ability to absorb delays; different decisions by stakeholders regarding the priority to be given to the development of specific systems or capabilities can also be included. A few years ago, the methodology became part of a graduate-level collegiate course in System of Systems Modeling and analysis, which contributed to the development presented in this work. Part of the description of the formulation of the SDDA methodology is based on the textbook associated with the course [
64].
3.2. Developmental Dependencies
SDDA uses a network representation of developmental dependencies, where nodes represent systems or technologies (or a mix of the two). The links, like in PERT networks, represent the developmental dependencies between systems (
Figure 2). System
j is developmentally dependent on system
i if the development of system
j needs some input (information, or other types of developmental dependencies) related to the development of system
i. As mentioned above, differently from PERT, the dependencies are not
absolute and account for the partial independence of development of each system, a feature that is especially important in the SoS context. In current practice, this partial independence is often modeled with a fixed lead time, usually evaluated solely based on expert judgment. SDDA instead provides a simple but more realistic model of the outcome of these partial dependencies. Each system or technology
i in an SDDA network is associated with three pieces of input data.
The first two inputs (
Figure 2) are the minimum independent development time
, and the maximum independent development time
. These are, similarly to PERT’s optimistic time and pessimistic time, the minimum and the maximum expected time to complete the development of system
i, not taking the dependencies into account. The inputs are analogous to the optimistic and pessimistic time in PERT. However, since SDDA also accounts for dependencies, the combination of a large lead time (optimistic expectations) and delays in the predecessors might result in an actual completion time that is longer than the maximum independent development time, consequently potentially wasting resources. Once again, this feature reflects the impact that the various stakeholders may have on each other, and SDDA provides means to identify potentially critical situations and to support decision-making that provides a trade-off between the advantages of early development and risk of delays and resource mismanagement.
The third input associated with a system is the variable used to run the baseline SDDA analysis: this variable represents the timeliness of system development, or punctuality
. Punctuality, normalized between 0 and 100, is an assessment of the magnitude of development time with respect to the minimum development time. High punctuality corresponds to a short time (
, meaning that the system is being developed in the minimum independent time) and vice versa (
, meaning that the system is being developed in the maximum independent time). While the relation between punctuality and the time taken to develop a system is not required to be linear, in this work we used a simple linear correlation between punctuality and independent development time. When performing deterministic analysis, single numbers are assigned to the punctuality of each system, while for stochastic analysis, a Probability Density Function (PDF) is associated with each punctuality variable. When punctuality is not known
a priori; for example, when estimating the punctuality of an independent stakeholder or the development of a technology in the near or far future, SDDA can be used to compare the outcome of different assumptions and different probability distributions of punctuality. Many existing studies and methodologies provide the initial and expected values of punctuality in specific fields, based, for example, on Technology Readiness Levels (TRL) [
65,
66] or Maturity Models [
67].
Each developmental dependency, i.e., each link in an SDDA network, is associated with two parameters: Strength of Dependency (SOD) and Criticality of Dependency (COD). The small number of SDDA model parameters and their intuitive meaning, described below, make them suitable to be assessed by knowledgeable designers and managers. For larger problems, sets of predefined parameters can be identified that model typical system-to-system developmental dependencies (for example,
strong but unreliable dependency). At the same time, these parameters overcome PERT/CPM’s inability to manage partial dependencies and dynamic lead time.
Figure 3 shows the relation between the completion time of a predecessor system
i (function of its punctuality
) and beginning time of a successor system
j. In general, the parameters of a SDDA model can have three different sources:
Expert judgment and evaluation: A survey conducted with various Program Managers indicated that, in most complex and large-scale projects, lead times and scheduling with overlapping activities are established by Subject Matter Experts (SME). For the SDDA model, a similar approach can be used. The use of SDDA, though, has the advantage that the SMEs do not have to directly evaluate the amount of overlap or the lead times based on various considerations regarding the stakeholders, but must only assess the strength of the one-to-one developmental dependencies based on the definitions provided below.
Assessment based on historical data. This approach can be used to assess both the amount of information transfer that is necessary between two activities (and therefore the time overlap that can be assigned) and to evaluate the impact of stakeholder behavior and preferences.
Evaluation based on existing models. This approach makes use of studies such as the framework used to overlap product development activities proposed by Krishnan, Eppinger, and Whitney [
55], based on the required exchange of information for parallel development. Other methods are also available in the literature that can be used to quantify developmental dependencies [
68,
69]. Virtual developmental dependencies can also be added to model stakeholder decisions; for example, the choice to develop a specific system or technology ahead of some other system or technology, even when an actual developmental dependency does not exist. Other models that describe the effect of stakeholder bias and the implementation of policies can be used to quantify the SOD and COD.
It must be noted that, for projects with a high number of tasks, the upfront modeling effort can become considerable, regardless of the option chosen to assess the modeling parameters. While this shapes some of the future research directions, it is fundamental that an appropriate amount of care is exercised when balancing and trading off the amount of modeling effort and the amount of information and decision support that the model can provide. In particular, we suggest the following potential strategies (which are beyond the scope of this publication) to overcome the curse of dimensionality in the setup phase of the SDDA methodology:
Establish and utilize databases of typical one-to-one development dependencies, especially when modeling multiple projects in the same field. This approach is also naturally suitable for use with Machine Learning techniques to extract information about developmental dependencies in past projects.
Use methodologies to cluster the tasks and organize them hierarchically, adding complexity only where more detail is necessary, as suggested by Simon [
70] in the analysis of Nearly Decomposable Systems (NDS).
When data are non-existent, begin by using standard forms of low, medium, and high levels of interdependency parameters, and perform a sensitivity analysis to identify first-order criticalities in the development network.
3.2.1. Strength of Dependency
The Strength of Dependency (SOD), indicated as
, ranges between 0 and 1 and evaluates the fraction of development time of system
j that is dependent on inputs by a predecessor system
i. As indicated in
Figure 3, partial dependencies allow for a system to begin its development before the development of its predecessor is complete. If the input system
i has punctuality
equal to 100, it is completed in its shortest development time. In this case, the amount of lead time of the successor
j is calculated as the product of its own minimum development time and a factor equal to 1 minus the Strength of Dependency between
i and
j. This represents the assumption that, as the predecessor
i progresses through its development, system
j can simultaneously complete the portion of its development that does not rely on input from the predecessor. The value of the SOD parameter balances the risk of initiating development early against the advantage of mitigating delays through this lead time. If the predecessor experiences delays in development, this will impact the beginning time of the successor system in two ways. Firstly, the delay is directly added to the beginning time of the successor. Secondly, the lead time determined by SDDA will decrease in proportion to the reduction in the punctuality of the predecessor, reflecting its reduced reliability, or that of the associated stakeholder. Once the punctuality drops below a critical threshold, the lead time is reduced to zero and the dependency becomes
absolute, analogous to a PERT dependency. SOD is used not only to model the actual amount of information that a following activity needs from preceding activities, but also to model dynamics between the stakeholder, stakeholder biases, and preferences.
3.2.2. Criticality of Dependency
The Criticality of Dependency (COD), indicated as , ranges between 0 and 100 and indicates the normalized level of punctuality of the predecessor i, below which the successor j is not allowed any lead time. As mentioned before, the choice of appropriate modeling parameters of the partial dependencies is very important: in the SDDA model (as well as in projects where equivalent decisions are taken by experts), the decision to have a lead time must be taken while the predecessor is still under development and thus entails uncertainty and risk. From this point of view, the choice of Criticality of Dependency models the amount of risk that a manager is willing to take on each dependency, and therefore directly addresses the trust that stakeholders put into one another. Independently of the Strength of Dependency, a high value of Criticality means that even a small delay in the development of the predecessor will highly decrease the amount of lead time or wipe it out completely. When the COD is 100, all dependencies are absolute and the model becomes equivalent to PERT.
3.3. Formulation of the SDDA Model
Based on the parameters described in the previous section and associated with each developmental dependency, on the minimum and maximum independent development time associated with each system, and on the punctuality variables, as well as being associated with each system, the raw output of the model contains two sets of information. These are the beginning time of the development of each system i, , and the completion time of the development of each system i, .
For a root node (that is, a node without any predecessor, which can therefore be developed without delays)
i, the beginning time is defined as 0:
The completion time of a root node depends only (and linearly) on its punctuality, and is calculated as follows:
If a system
j has at least one predecessor, SDDA first computes the time required for its development
, based only on its punctuality, without accounting for the dependencies:
SDDA then calculates the beginning time of the development of j based on each of its dependencies from an input systems i. We indicate these values to be . If j depends only on one system i, this is the actual beginning time of the development of the successor system j.
If
, system
i has accumulated, or is expected to accumulate, a critical amount of delay (threshold shown in
Figure 3). In this case, the beginning time of system
j, solely based on its dependency on one system
i, becomes equal to the time of completion of the predecessor system
i:
Otherwise, the beginning of the development time of system
j solely based on its dependency on one system
i is computed as a function of the SOD and COD, and of the punctuality of system
i:
In Equation (
5), the term on the right, which is subtracted from the completion time of system
i, is the lead time of system
j.
In this formulation of SDDA, which is the baseline SDDA, the actual beginning time
of a system
j that is subject to more than one dependency on predecessor systems is calculated as the average of the beginning development times due to each dependency. This formulation prevents a single input system from critically impacting the beginning time.
where
n is the number of systems on which
j is developmentally dependent.
At this point, analogous to the calculation of the beginning times of the development based on each of the multiple dependencies, SDDA calculates the completion times of the development of
j based on each dependency from a system
i. We denote these values as
and they are calculated as follows:
where
is the sum of the beginning time and development time, which is the completion time that system
j would have without accounting for the presence of multiple dependencies. However, using only this term to calculate the completion time might result in cases where a system or capability
j has an earlier completion time than some system or capability
i on which
j is dependent. To avoid this violation, we introduce the second term in Equation (
7). This term uses the SOD parameter to ensure that the completion time of each system reflects the presence of developmental dependencies: the term
accounts for this dependency by ensuring that the completion of the development of system
j cannot occur before the completion of system
i in addition to an amount proportional to the amount of required input from
i.
The actual completion time of system
j is calculated as the maximum of the completion times given by each dependency (to avoid any violation of the constraints imposed by developmental dependencies):
where
n is the number of systems on which
j is developmentally dependent.
Baseline SDDA analysis calculates the beginning and completion times for each system, thus producing a comprehensive schedule for the development of the SoS. This illustrates how partial development dependencies impact the overall development.
3.5. Deterministic Analysis
To execute this type of analysis, SDDA evaluates a single instance of the developmental dependencies. Given a single value for the punctuality of each system and based on SOD, COD, and on the minimum and maximum independent development times, the SDDA model computes the resulting deterministic beginning and completion times for the development of each system.
This kind of analysis is useful to quantify the impact of delays in a specific system on the overall development of the complex system or SoS. By varying the value of the punctuality of a system, the user can use SDDA to perform an analysis of the whole developmental network’s sensitivity to delays in the chosen system. This is executed by assigning appropriate values to the punctuality of the system under consideration and assessing their effect on the development schedule by analyzing the corresponding beginning and completion times, which are listed in tables or shown in graphic format. Other deterministic studies can be run by adding delays in multiple systems in order to evaluate the effect of several combined delays. Using deterministic analysis, SDDA can identify which systems and technologies are the most critical under specified conditions, i.e. which nodes most strongly impact the schedule with their delays. The user can compare different architectures and different choices for the prioritization of systems and technologies (including decisions imposed by stakeholders) based on their performance in terms of development schedule and response to delays. It is important to note that, when running this kind of analysis, the results also depend on the specific output of interest: for example, a project manager might be interested in intermediate deadlines (for example, the completion time of the development of specific systems or technologies), or in assessing the minimum time required to begin the development of certain systems, or in measuring delay absorption in the case of the low reliability of one or more systems.
Figure 4 shows a Gantt chart [
71] for the simple network from
Figure 2, comparing results from SDDA, the conservative formulation SDDAmax, and traditional PERT when all nodes have a punctuality
equal to 100.
The matrices
A (whose element
corresponds to the strength of dependency
) and
B (whose element
corresponds to the criticality of dependency
) are as follows:
The arrays of minimum and maximum independent development times (whose element
i corresponds, respectively, to
and
) are, in weeks:
Figure 4 shows that, in PERT analysis, the third system (Node3), which is dependent on the first two (Node1 and Node2), must wait until its two predecessors are fully developed. SDDA and SDDAmax exhibit a lead time for the development of Node3. Due to the high strength and criticality of the dependency of node3 on Node2, this lead time is small. We can also notice how SDDAmax is more conservative than the basic SDDA model; therefore, the lead time is even smaller. SDDA and SDDAmax models result in the same completion time for the whole network (which is shorter than that of PERT, thanks to the partial dependencies). However, the earlier beginning time for the development of Node3 allows for better delay absorption if Node1 and Node2 exhibit delays.
3.6. Stochastic Analysis
Differently from CPM, SDDA models the partial developmental dependencies between systems, which allows for the partial absorption of delays even on the critical path. A more accurate, holistic understanding of the impact of dependencies on the development of a whole project in the presence of uncertainty, can be achieved by running a stochastic SDDA analysis. In this kind of analysis, a PDF, rather than a single value, is assigned to the punctuality of each system, and the corresponding output is a PDF for the beginning and completion times of each system, which accounts for the dependencies and the network topology. The expected value of the beginning and completion times can be used as an initial guideline for decisions, while the variance in these distributions provides insight into the reliability of the expected development times, which is tied to the risks associated with the schedule. The outputs of stochastic analysis can also be used to identify architectural patterns and features related to the whole architecture. For example, the user can utilize the expected distribution of punctuality to calculate the probability that deadlines will be met and then compare alternative architectures and their critical systems, and identify the dependencies and decisions that cause the observed criticality. Due to the low computational cost of SDDA (
Table 1), Monte Carlo simulation is the best choice for performing this type of analysis, rather than calculating analytical expressions for the mixture of probability distributions. To evaluate these distributions, we generate instances of punctuality based on the given input distributions and compute the beginning and completion times with SDDA.
To simplify the implementation of a case study, in this paper, we use the following model of uncertainty:
Similarly to SDDA deterministic analysis, the user is required to input the expected punctuality of each system.
The input level of punctuality will be the mode of a symmetric Beta PDF. The initial input level is chosen as the mode of the PDF, rather than the mean or median, because the algorithm might need to cut off the tails of the distribution to respect the range of feasible punctuality.
There are three available levels of uncertainty (low, medium, or high), and the user must select one level for each system in the SoS. The Beta PDF is multiplied by a spreading factor, which models different levels of uncertainty. High uncertainty means that the assumption made on the expected punctuality is less reliable. This lower reliability results in a higher variance in the PDF in the model.
SDDA analysis can also be run while the SoS is already being developed. The user can input the time (on the development schedule) at which to run the SDDA model and compute the expected developmental performance. As this time becomes closer to the completion time of a system, the uncertainty regarding the punctuality of this systems will decrease (that is, the variance in the punctuality PDF will be lower). When the selected time of the SDDA analysis is equal to or greater than the completion time of a system, the uncertainty regarding the punctuality of this system becomes zero.
If the PDF that results from the user’s choice of punctuality, the reliability factor, and the modified variance due to the chosen time of analysis falls partially outside the allowed range of punctuality, the function is cut to fit within the range (punctuality ranging between 0 and 100) and normalized to an area of 1.
Figure 5 shows some simple results of a stochastic SDDA analysis of the development schedule, executed on 10,000 samples. The Beta PDF of the punctuality of each system was chosen based on the model described above and used to generate the stochastic samples of punctuality. Then, these samples were used to calculate the beginning and completion times of each system according to the SDDA model. The same stochastic approach was also applied to the conservative SDDAmax and to the PERT analysis. The model parameters used for this sample problem are the same that were used in the deterministic problem of
Figure 4. Regarding the variables, the punctuality of systems 1 and 3 is 100; the punctuality of system 2 is 60. System 1 has a medium level of uncertainty, system 2 has high level of uncertainty, and system 3 has low level of uncertainty.
Some of the results provide a simple validation of the method: for example, the uncertainty at the beginning and completion times is the largest at time 0, decreases at 8 weeks, and disappears at 20 weeks on the two systems that are already fully developed. Furthermore, according to the user inputs, system 2 exhibits higher uncertainty (larger spread of completion time) than system 1. The results from the original SDDA model show that early completion of development is allowed, but the Gantt chart also shows that at time 8 there is some residual risk due to uncertainty. This type of SDDA methodology results can be used to support informed decisions on the most appropriate beginning time for the development of each system based on the observed results and on the amount of accepted risk. For example, the expected value of the PDF of the beginning time can be used as the initially scheduled value. The resulting probability density functions can also be used to compute the probability that systems of interest will be fully developed by the given deadlines. The plot also shows how the more conservative SDDAmax results in a longer development time, due its lower capability of absorbing delays.
In the sample problem shown in
Figure 5, the expected punctuality does not change over time. Of course, both these values and the levels of uncertainty can vary over time. The SDDA stochastic analysis can be repeated multiple times during the development of the SoS when further decisions are required. In this case, the initial results can be used to identify possible times at which it would be valuable to perform the analysis again, using updated information on the variables.