Difference between revisions of "System Life Cycle Process Drivers and Choices"

From SEBoK
Jump to navigation Jump to search
Line 101: Line 101:
 
|}
 
|}
 
</center>
 
</center>
<nowiki>*Example enablers: Technology maturity; external-system capabilities; needed resources; other</nowiki>
+
<nowiki>*Example enablers: Technology maturity; external-system capabilities; needed resources; New opportunities</nowiki>
  
  
Line 112: Line 112:
 
The evolutionary opportunistic process defers the next increment until its new capabilities are available and mature enough to be added. It is best used when the increment does not need to wait for operational feedback, but it may need to wait for next-increment enablers such as technology maturity, external system capabilities, needed resources, or new value-adding opportunities. A good example would be the need to wait for agent-based satellite anomaly trend analysis and mission-adaptation software to become predictably stable before incorporating it into a scheduled increment.
 
The evolutionary opportunistic process defers the next increment until its new capabilities are available and mature enough to be added. It is best used when the increment does not need to wait for operational feedback, but it may need to wait for next-increment enablers such as technology maturity, external system capabilities, needed resources, or new value-adding opportunities. A good example would be the need to wait for agent-based satellite anomaly trend analysis and mission-adaptation software to become predictably stable before incorporating it into a scheduled increment.
 
   
 
   
The evolutionary concurrent process, as realized in the incremental commitment spiral model (Pew and Mavor 2007; Boehm and Lane 2007) and shown in Figure 2, has a continuing team of systems engineers handling the change traffic and rebaselining the plans and specifications for the next increment, while keeping a development team stabilized for on-time, high-assurance delivery of the current increment, and employing a concurrent verification and validation (V&V) team to perform continuous defect detection to enable even higher assurance levels. A good example would be the satellite’s ground-based mission control and data handling software’s next-increment rebaselining to adapt to new COTS releases and continuing user requests for data processing upgrades.  
+
The evolutionary concurrent process, as realized in the incremental commitment spiral model (Pew and Mavor 2007; Boehm and Lane 2007) and shown in Figure 2, has a continuing team of systems engineers handling the change traffic and rebaselining the plans and specifications for the next increment, while keeping a development team stabilized for on-time, high-assurance delivery of the current increment, and employing a concurrent [[Verification (glossary)|verification]] and [[Validation (glossary)|validation]] (V&V) team to perform continuous defect detection to enable even higher assurance levels. A good example would be the satellite’s ground-based mission control and data handling software’s next-increment rebaselining to adapt to new COTS releases and continuing user requests for data processing upgrades.  
  
 
The satellite example shows that for the complex systems of the future, different parts of the system and its software may evolve in different ways, again indicating that there will be no one-size-fits-all process for software evolution. However, the decision table 2 can be quite helpful in determining which processes are the best fits for evolving each part of the system, and the three-team model in Figure 2 provides a way for projects to develop the challenging software-intensive systems of the future that will need both adaptability to rapid change and high levels of assurance.
 
The satellite example shows that for the complex systems of the future, different parts of the system and its software may evolve in different ways, again indicating that there will be no one-size-fits-all process for software evolution. However, the decision table 2 can be quite helpful in determining which processes are the best fits for evolving each part of the system, and the three-team model in Figure 2 provides a way for projects to develop the challenging software-intensive systems of the future that will need both adaptability to rapid change and high levels of assurance.

Revision as of 05:44, 13 August 2012

System requirements can be predetermined, or they can be changing, depending on the scope and nature of the development of a given system. These considerations lead to different life cycle model selections.

Fixed-Requirements and Evolutionary Development Processes

Besides the traditional prespecified, sequential, single-step development process, there are several models of incremental and evolutionary development. Much as one would like there to be, there is no one-size-fits-all system evolution approach that is best for all situations. For rapid-fielding situations, an easiest-first, “get something working quickly and productize it later” approach is best. But for enduring systems, an easiest-first approach is likely to produce an unscalable system whose architecture is incompatible with achieving high levels of performance, safety, or security. In general, system evolution now requires much higher sustained levels of systems engineering effort, earlier and continuous integration and test, proactive approaches to address sources of system change, greater levels of concurrent engineering, and achievement reviews based on evidence of feasibility versus evidence of plans, activity, and system descriptions.

Incremental and evolutionary development methods have been in use since the 1960s (and perhaps earlier). They allow a project to provide an initial capability followed by successive deliveries to reach the desired system of interest (SoI). This is valuable in such situations as when:

  • rapid exploration and implementation of part of the system is desired;
  • the requirements are unclear from the beginning, or are rapidly changing;
  • funding is constrained;
  • the customer wishes to hold the SoI open to the possibility of inserting new technology when it becomes mature; and/or
  • experimentation is required to develop successive versions.

In iterative development, each cycle of the iteration subsumes the software of the previous iteration and adds new capabilities to the evolving product to create an expanded version of the software. Iterative development processes provide the following advantages:

  • continuous integration, verification, and validation of the evolving product;
  • frequent demonstrations of progress;
  • early detection of defects;
  • early warning of process problems; and
  • systematic incorporation of the inevitable rework that occurs in software development.

Primary Models of Incremental and Evolutionary Development

The primary models of incremental and evolutionary development focus on different competitive and technical challenges. The time phasing of each model is shown in Figure 1 below in terms of the increment (1, 2, 3, …) content with respect to the Definition (Df), Development (Dv), and Production, Support, and Utilization (PSU) stages in Figure 1 from the preceding section (Life Cycle Models: A Generic System Life Cycle Model).

Figure 1 - Primary Models of Incremental and Evolutionary Development (Boehm 2012) (created for SEBoK)




The Figure 1 notations of Df1..N and Dv1..N indicate that their initial stages produce specifications not just for the first increment, but for the full set of increments. These are assumed to remain stable for the Prespecified Sequential model, but are expected to involve changes for the Evolutionary Concurrent model. The latter’s notation of Dv1 and Df2R in the same time frame; PSU1, Dv2 and Df3R in the same time frame; etc. indicates that the plans and specifications for the next increment are being rebaselined by a systems engineering team concurrently with the development of the current increment and the PSU of the previous increment. This offloads the work of handling the change traffic from the development team and significantly improves its chances of finishing the current increment on budget and schedule.

Table 1 summarizes each of the primary models of single-step, incremental and evolutionary development in terms of examples, strengths, and weaknesses, followed by explanatory notes.

Table 1 - Models of Incremental and Evolutionary Development (Boehm and Lane 2010) Reprinted with permission of the Systems Engineering Research Center (SERC)





The Prespecified Single-Step and Prespecified Sequential models are not evolutionary. Prespecified Sequential just splits up the development in order to field an early Initial Operational Capability, followed by several Pre-Planned Product Improvements (P3Is). An alternate version splits up the work but does not field the intermediate increments. When requirements are well understood and stable, the Prespecified models enable a strong, predictable process. When requirements are emergent and/or rapidly changing, they often require expensive rework if they lead to undoing architectural commitments.

With the Evolutionary Sequential model the system rapidly develops an initial operational capability and is upgraded based on operational experience. Pure agile software development fits this model: If something is wrong, it will be fixed in 30 days in the next release. Rapid fielding also fits this model for larger or hardware-software systems. Its major strength is to enable quick-response capabilities in the field. For pure agile, the model can fall prey to an easiest-first set of architectural commitments which break when, for example, system developers try to scale up the workload by a factor of 10, or to add security as a new feature in a later increment. For rapid fielding, using this model may prove expensive when the quick mashups require extensive rework to fix incompatibilities or to accommodate off-nominal usage scenarios, but the rapid results may be worth it.

"Evolutionary Opportunistic" covers the special case of deferring the next increment until a sufficiently attractive opportunity arises, until the desired new technology is mature enough to be added, or until other enablers such as scarce components or key personnel become available. It is also appropriate for synchronizing upgrades of multiple Commercial-Off-the-Shelf (COTS) products. It may be expensive to keep the SE and development teams together while waiting for the enablers, but again it may be worth it.

"Evolutionary Concurrent" has a team of systems engineers concurrently handling the change traffic and rebaselining the plans and specifications for the next increment, in order to keep the current increment development stabilized. An example and discussion are provided in Table 2.

Incremental and Evolutionary Development Decision Table

The decision table in Table 2 provides criteria for deciding which of the four primary classes of incremental and evolutionary development to use, plus the choice of single-step development.

Table 2. Incremental and Evolutionary Development Decision Table (Boehm and Lane 2010). Reprinted with permission of the Systems Engineering Research Center (SERC).
Type Stable, pre-specifiable requirements? OK to wait for full system to be developed? Need to wait for next-increment priorities? Need to wait for next-increment enablers*?
Prespecified Single-Pass Yes Yes
Prespecified Multipass Yes No
Evolutionary Sequential No No Yes
Evolutionary Opportunistic No No No Yes
Evolutionary Concurrent No No No No

*Example enablers: Technology maturity; external-system capabilities; needed resources; New opportunities


The single-step-to-full-capability process exemplified by the traditional waterfall or sequential Vee model is appropriate if the product’s requirements are prespecifiable and have a low probability of significant change; and if there is no value or chance to deliver a partial product capability. A good example would be the hardware for an earth resources monitoring satellite that would be infeasible to modify after it goes into orbit.

The pre-specified multistep process splits up the development in order to field an early initial operational capability and several pre-planned product improvements (P3Is). It is best if the product’s full capabilities can be specified in advance, and have a low probability of significant change; and if waiting for the full system to be developed incurs a loss of important and deliverable incremental mission capabilities. A good example would be a well-understood and well-prioritized sequence of software upgrades for the on-board earth resources monitoring satellite.

The evolutionary sequential process develops an initial operational capability and upgrades it based on operational experience, as exemplified by agile methods. It is best when there is a need to get operational feedback on an initial capability before defining and developing the next increment’s content. A good example would be the software upgrades suggested by experiences with the satellite’s payload, such as what kind of multispectral data collection and analysis capabilities are best for what kind of agriculture under what weather conditions.

The evolutionary opportunistic process defers the next increment until its new capabilities are available and mature enough to be added. It is best used when the increment does not need to wait for operational feedback, but it may need to wait for next-increment enablers such as technology maturity, external system capabilities, needed resources, or new value-adding opportunities. A good example would be the need to wait for agent-based satellite anomaly trend analysis and mission-adaptation software to become predictably stable before incorporating it into a scheduled increment.

The evolutionary concurrent process, as realized in the incremental commitment spiral model (Pew and Mavor 2007; Boehm and Lane 2007) and shown in Figure 2, has a continuing team of systems engineers handling the change traffic and rebaselining the plans and specifications for the next increment, while keeping a development team stabilized for on-time, high-assurance delivery of the current increment, and employing a concurrent verification and validation (V&V) team to perform continuous defect detection to enable even higher assurance levels. A good example would be the satellite’s ground-based mission control and data handling software’s next-increment rebaselining to adapt to new COTS releases and continuing user requests for data processing upgrades.

The satellite example shows that for the complex systems of the future, different parts of the system and its software may evolve in different ways, again indicating that there will be no one-size-fits-all process for software evolution. However, the decision table 2 can be quite helpful in determining which processes are the best fits for evolving each part of the system, and the three-team model in Figure 2 provides a way for projects to develop the challenging software-intensive systems of the future that will need both adaptability to rapid change and high levels of assurance.

Figure 2. Evolutionary-Concurrent Rapid Change Handling and High Assurance (Pew and Mavor 2007, Figure 2-6). Reprinted with permission from the National Academy of Sciences, Courtesy of National Academies Press, Washington, D.C..

References

Works Cited

Boehm, B. 2006. “Some Future Trends and Implications for Systems and Software Engineering Processes.” Systems Engineering. 9(1): 1-19.

Boehm, B. and J. Lane. 2007. “Using the Incremental Commitment Model to Integrate System Acquisition, Systems Engineering, and Software Engineering.” CrossTalk. October 2007: 4-9.

Boehm, B. and J. Lane. 2010. DoD Systems Engineering and Management Implications for Evolutionary Acquisition of Major Defense Systems. SERC RT-5 report, March 2010. USC-CSSE-2010-500.

Cusumano, M. and D. Yoffee. 1998. Competing on Internet Time: Lessons from Netscape and Its Battle with Microsoft. New York, NY, USA: Free Press.

Pew, R. and A. Mavor (eds.). 2007. Human-System Integration in the System Development Process: A New Look. Washington DC, USA: The National Academies Press.

Primary References

Pew, R., and A. Mavor (eds.). 2007. Human-System Integration in the System Development Process: A New Look. Washington, DC, USA: The National Academies Press.

Additional References

Boehm, B. 2006. “Some Future Trends and Implications for Systems and Software Engineering Processes.” Systems Engineering 9(1): 1-19.

Boehm, B. and J. Lane. 2007. “Using the Incremental Commitment Model to Integrate System Acquisition, Systems Engineering, and Software Engineering.” CrossTalk. October 2007: p. 4-9.

Boehm, B. and J. Lane. DoD Systems Engineering and Management Implications for Evolutionary Acquisition of Major Defense Systems. SERC RT-5 report, March 2010. USC-CSSE-2010-500.

Cusumano, M. and D. Yoffee. 1998. Competing on Internet Time: Lessons from Netscape and Its Battle with Microsoft. New York, NY, USA: Free Press.


< Previous Article | Parent Article | Next Article >

Comments from SEBok 0.5 Wiki

No comments were logged for this article in the SEBoK 0.5 wiki. Because of this, it is especially important for reviewers to provide feedback on this article. Please see the discussion prompts below.


SEBoK v. 1.9.1 released 30 September 2018

SEBoK Discussion

Please provide your comments and feedback on the SEBoK below. You will need to log in to DISQUS using an existing account (e.g. Yahoo, Google, Facebook, Twitter, etc.) or create a DISQUS account. Simply type your comment in the text field below and DISQUS will guide you through the login or registration steps. Feedback will be archived and used for future updates to the SEBoK. If you provided a comment that is no longer listed, that comment has been adjudicated. You can view adjudication for comments submitted prior to SEBoK v. 1.0 at SEBoK Review and Adjudication. Later comments are addressed and changes are summarized in the Letter from the Editor and Acknowledgements and Release History.

If you would like to provide edits on this article, recommend new content, or make comments on the SEBoK as a whole, please see the SEBoK Sandbox.

blog comments powered by Disqus