Models of Systems Engineering Development

Why follow a Process?

An extensive body of experience collected from industry indicates that nearly two-thirds of software development projects in the U.S. fail, either through cancellation, overrunning their budgets or delivery of software that is never put into production (see Graham, Section 9.1). The reasons for these failures in descending order are as follows:

  1. Lack of user (i.e., customer and stakeholder) involvement;
  2. No clear statement of requirements;
  3. No project ownership;
  4. No clear vision and objectives;
  5. Lack of planning.

The move from functional to object- and component-level development procedures does nothing to alleviate the need for good engineering and project management practices. By letting members of the development team know what's expected of them, and when, "systems engineering development processes" enforce a reasonable level of discipline on developers.

There is, of course, a tendency for a development team to simply "wing-it" in the hope that things will work out -- if it worked once, surely it can work again! From an organization's perspective, however, development processes need to be defined in the hope of achieving more than isolated islands of success. Organizations and project stakeholders want successes to be repeatable. This provides a basis for estimation and measurement of process quality.

A good "systems engineering development processes" should impose discipline on developers without hampering productivity through deliverables that fail to contribute to the product's end purpose. Almost every systems development effort varies in its specifics, and so developers need to have limited freedom to customize their work processes.

Integration of Product and Process Development

The adjacent diagram shows the essential details (and interaction) of the technical development process and systems engineering management process, and the transformation of customer requirements into a product specification.

[system process]

Figure 1. Interaction of Technical Development and Engineering Management Proceses.

Typically, the technical development process is concerned with: problem analysis; synthesis of the product architecture; evaluation and verification of system alternatives; optimization and trade-off.

The systems management process is concerned with: synthesis and organization of planning activities. This process generates plans and direction for the product development. In turn, the technical process for engineering system development provides outcomes and decisions for consideration in the systems engineering management process. Design of the systems engineering management process needs to account for uncertainities (e.g., performance; technical difficulties... etc) in the development activities, whether the product is "one-of-a-kind" or "mass produced," and whether the product is likely to be reused in figure developments.


CLASSICAL MODELS OF SYSTEM DEVELOPMENT

Waterfall Model.

In an overly simplified view, system lifecycle development begins the gathering of requirements and domain knowledge and ends with system deployment, maintenance, and eventually, retirement.

[WATERFALL]

Figure 2. Waterfall Model of System Development

Variations on the Waterfall Model include:

Spiral Model

System Lifecycle Development at GE

Systems Engineering Managment Process

[Lifecycle at GE]

Figure 4. Systems Engineering Management Process at GE

Key Technical Process

[Lifecycle at GE]

Figure 5. Key Technical Process at GE


REUSABLE-OBJECT DEVELOPMENT MODEL

The waterfall and spiral models of development lend themselves to a functional decomposition approach to design that follow a top-down systems design. The limitations of top-down systems design include ~\cite{meyer88}:

Item 1 is perhaps the most serious shortcoming of the waterfall and spiral models. With engineering/computing applications rapidly becoming more complex, and businesses being forced to reorganize in order to remain competitive in global markets, an ability of an engineering process to adapt to change has recently become of paramount importance.

[Iterative Development of Object-Systems]

Figure 6. Interaction of Design Changes and Design Requirements

The purpose of the adjacent figure is to show how an arrangement of modules may change during iterations of the design-requirements design-requirements cycle. Examples of change include shifts from centralized to decentralized (i.e. mainframe to distributed) computing; text based to graphical/multimedia computing. Similar examples of change can be found in the way requirements are handled, and in the structure organizations take in their day-to-day work practices.

Unlike the traditional models life cycle development, object oriented life cycle development aims to provide a seamless process between different stages of the life cycle.

Building a Library of Reusable Components

A key goal of the object oriented life cycle is development of a knowledge base library containing reusable and pluggable components.

[OO Library of Components]

Figure 7. Pathway of Development in Reuse-Focused Design

The library components may be very general in nature (e.g., architectures; process plans; procedures; designs), and may impact different phases of a product's planning, design, and production. Points to note are as follows:

  1. The object oriented paradigm delays component implementation and specification until a much later stage of the development process. Because high-level procedures are no longer ``frozen'' at the high-level systems design, a system based on the object representation can remain more flexible since changes at the implementation stage may not require functional changes in the system design itself.

    And then components are developed in accordance with the principle of information hiding. For the development of individual modules/object, the tools and techniques for top-down decomposition may be very important, however. This pathway of hybrid object-oriented/structured development is shown in the adjacent figure.

  2. In the area of object-oriented software engineering, key items in proposed models include:

    Opponents say more effort will be required in the design and implementation phases than with non-OO methods and life cycle. The claimed pay-off -- and this remains to be seen -- is in maintenance savings. With maintenance consuming 70\% of software life cycle costs, this is the right place to target productivity improvements.


SYSTEMS ENGINEERING CAPABILITY MATURITY MODEL (e.g., CMM)

The SEI-Capability Maturity Model is a framework for understanding and improving the process of developing software. This model was developed at the Software Engineering Institute (SEI) at Carnegie Mellon University, under the financial sponsorship of the U.S. Department of Defense (DoD).

The maturity model provides a formal methodology for assessing an organization's capability in software engineering.

Process Categories and Key Process Areas

As already indicated in the earlier chapters, broadly speaking, the Systems Engineering Domain is composed of three activities and/or categories. They are:

  1. Organizational

    This category focuses on organizational-wide activities, and covers business level issues such as policy definition, training, technology management and support.

  2. Systems Management

    This category focuses on program management related activities, such as project planning and monitoring functions.

  3. Engineering Process

    This category focuses on technical activities of the systems engineering domain -- it is project oriented and covers specific steps found in the systems life-cycle domain.

Each process category contains a set of Key Process Areas (KPA's). The KPA's identify a group of related activities which when performed properly contribute to an organization's ability to consistently follow and improve its (software) engineering process. Process capability is the range of results expected from following the implemented process (i.e. predicts future outcomes). And finally, process performance characterizes the actual results.

Organizational Systems Management Engineering Process
Process management Planning Systems requirements
Training Tracking and oversight System design
Technology management Subcontract management System integration and test
Environment and tool support Intergroup coordination Integrated engineering analysis
  Configuration management  
  Quality management  
  Risk management  

Table 1. Process Categories and Key Process Areas

Table 1 lists the Key Process Areas by Process Category. Figure 8 shows the relationships among concepts used in this context. And Figure 9 shows the relationship between the Process Category, the Key Process Areas, and how the goals of an organization (i.e. what is to be accomplished) influence its overall capability. Each goal can be achieved in a number of ways.

[CMM Fig 2]

Figure 8. Framework of SEI Process Maturity

[CMM Fig 2]

Figure 9. Process Categories and Key Process Areas

Examples of KPA's. Here are a couple of examples of Key Process Areas and their goals:

System Planning

System planning is the identification of program requirements, classified into technical and program (process) requirements, to define the technical program that will bring the system into being.

  1. Goal 1. To define and document a technical program structure which implements the requirements necessary to provide a product which satisfies the stated needs.

  2. Goal 2. To provide for integrating the technical program elements in a top-down, life-cycle, low-risk approach in an efficient and effective manner.

Configuration Management

Configuration management includes the identification, control, accounting, and auditing of the product elements which consist of requirements, interfaces, and design representations of the product being developed to meet the stated project objectives. Configuration control is important for keeping the design characteristic in-line with the requirements base-line, for assessing the impact of change, and for correcting problems identified with the requirements.

  1. Goal 1. To provide for the planning of configuration management activities and tasks.

  2. Goal 2. To ensure configuration work products are identified, controlled, and available.

  3. Goal 3. To ensure configuration changes are controlled and evaluated consistent with the technical and program requirements.

  4. Goal 4. To communicate the compliance status and contents of the configuration work products.

Note. A complete listing of Key Process Area descriptions, their goals, and questions may be found in Volume II of the NCOSE Working Group Paper, San Jose, California, August, 1994.

Five Levels of SEI-Maturity

Figure 10 summarizes the contents of the SEI Maturity Model.

[CMM Fig. 4]

Figure 10. SEI-Capability Maturity Model

The key points for each level are as follows:

  1. Ad hoc. Activities are ad hoc and chaotic, and success depends on the capabilities of individuals.

  2. Repeatable. Repeatability introduces basic project management mechanisms, such as schedule tracking, that allow the organization to repeat past successes on new projects that are similar.

  3. Defined. Defined means that the systems/software process documents so that different projects in the organization can use the same overall process.

  4. Managed. Managed adds more details of software/systems quality.

  5. Optimized. Optimized has additional mechanisms that allows the process to be continuously improved.

Risk versus Quality Trade-Off

A key component of Figure 10 is the trade-off in risk versus quality as a function of organizational processes in place. Generally speaking, the SEI Maturity Model encourages organizations to put in place well managed, repeatable, organizational processes because evidence shows this results in reduced risk of project failure (e.g. due to late delivery/cost overruns). The stake-holders and customers benefit from increased overall quality of a project/product.

It is important to observe that "capability" belongs to the organization and not a particular project -- this is reflected in an SEI comment:

The underlying philosophy for characteristics of the five levels is to look at features of the software engineering process in terms of (a) engineering procedures, (b) process performance, and (c) engineering style.

The maturity of the engineering process is rated according to the degree of systematic approach, and of support by state-of-the-art tools and automation. The maturity of process performance is judged by the deviation of the actual process results from the planned goals of productivity and quality. The higher the maturity level, the lower the risk of project cost overruns.

Systems Engineering Maturity Model

The SEI Maturity Model is now being crafted into a Systems Engineering Maturity Model (SEMM) -- the same underlying principles and features apply (e.g five levels of maturity; reduced risk with increasing maturity level). A few minor modifications exist, of course. For example, at level 3, training has been extended to education and training. At level 5, the benefit of ``increased productivity and quality'' in the SEI model is replaced by a more general view of quality and productivity. Systems engineering at a high maturity level delivers products and services which match the needs of the customer, and does so reliably within the narrow goals of cost and time schedules.

Incentive to comply with SEI

The Department of Defense has recently stated that no defense contractor will get defense contracts unless the organization is at least at Level 3. This proclamation provides contractors with a strong incentive to understand the model and demonstrate that their company satisfies the minimal requirement. Very few organizations have so far reached levels 4 and 5 (only 2 so far).

Case Study 1

Hughes Aircraft Company is at Level 3. See paper by ....

Case Study 2

IBM Federal Systems (sold to Loral in 1994) has received a Level 5 rating (by the authors of CMM) for the Space Shuttle's flight control software. It consists of 420,000 lines of code running on 5 redundant computers. The project has been in existence for 20 years, and in that time, defect rates has decreased by two orders of magnitude. There have been 17 releases of the software. Costs has been predicted within 10 percent of budget, and they have missed only one deadline in the last 15 years.


References and Web Resources

REFERENCES

WEB RESOURCES


Developed in February 2001 by Mark Austin
Copyright © 2001-2002, Mark Austin, University of Maryland