Process
Areas
(staged)

Level 2
 
REQM
 PP
 PMC
 SAM
 MA
 PPQA
 CM
Level 3
 
RD
 TS
 PI
 VER 
 VAL 
 OPF
 OPD
 OT
 IPM
 RSKM
 DAR
Level 4
 
OPP
 QPM
Level 5 
 
OPM 
 CAR

      5. Process Areas
          5.20. Technical Solution
              SG 2 Develop the Design
 SP 2.1 Design the Product or Product Component 
Process AreaTS
Level3
GoalSG 2
PracticeSP 2.1

Develop a design for the product or product component.

Product design consists of two broad phases that can overlap in execution: preliminary and detailed design. Preliminary design establishes product capabilities and the product architecture, including architectural styles and patterns, product partitions, product component identifications, system states and modes, major intercomponent interfaces, and external product interfaces. Detailed design fully defines the structure and capabilities of the product components.

Refer to the Establish a Definition of Required Functionality and Quality Attributes specific practice in the Requirements Development process area for more information about developing architectural requirements.

Architecture definition is driven from a set of architectural requirements developed during the requirements development processes. These requirements identify the quality attributes that are critical to the success of the product. The architecture defines structural elements and coordination mechanisms that either directly satisfy requirements or support the achievement of the requirements as the details of the product design are established. Architectures can include standards and design rules governing development of product components and their interfaces as well as guidance to aid product developers. Specific practices in the Select Product Component Solutions specific goal contain more information about using product architectures as a basis for alternative solutions.

Architects postulate and develop a model of the product, making judgments about allocation of functional and quality attribute requirements to product components including hardware and software. Multiple architectures, supporting alternative solutions, can be developed and analyzed to determine the advantages and disadvantages in the context of the architectural requirements.

Operational concepts and operational, sustainment, and development scenarios are used to generate use cases and quality attribute related scenarios that are used to refine the architecture. They are also used as a means to evaluate the suitability of the architecture for its intended purpose during architecture evaluations, which are conducted periodically throughout product design.

Refer to the Establish Operational Concepts and Scenarios specific practice in the Requirements Development process area for more information about developing operational concepts and scenarios used in architecture evaluation.

Examples of architecture definition tasks include the following:

· Establishing the structural relations of partitions and rules regarding interfaces between elements within partitions, and between partitions

· Selecting architectural patterns that support the functional and quality attribute requirements, and instantiating or composing those patterns to create the product architecture

· Identifying major internal interfaces and all external interfaces

· Identifying product components and interfaces between them

· Formally defining component behavior and interaction using an architecture description language

· Defining coordination mechanisms (e.g., for software, hardware)

· Establishing infrastructure capabilities and services

· Developing product component templates or classes and frameworks

· Establishing design rules and authority for making decisions

· Defining a process/thread model

· Defining physical deployment of software to hardware

· Identifying major reuse approaches and sources

 

During detailed design, the product architecture details are finalized, product components are completely defined, and interfaces are fully characterized. Product component designs can be optimized for certain quality attributes. Designers can evaluate the use of legacy or COTS products for the product components. As the design matures, the requirements assigned to lower level product components are tracked to ensure that those requirements are satisfied.

Refer to the Requirements Management process area for more information about ensuring alignment between project work and requirements.

For software engineering, detailed design is focused on software product component development. The internal structure of product components is defined, data schemas are generated, algorithms are developed, and heuristics are established to provide product component capabilities that satisfy allocated requirements.

For hardware engineering, detailed design is focused on product development of electronic, mechanical, electro-optical, and other hardware products and their components. Electrical schematics and interconnection diagrams are developed, mechanical and optical assembly models are generated, and fabrication and assembly processes are developed.

Example Work Products

1.    Product architecture

2.    Product component design

Subpractices

1.    Establish and maintain criteria against which the design can be evaluated.

Examples of quality attributes, in addition to expected product performance, for which design criteria can be established, include the following:

·       Modular

·       Clear

·       Simple

·       Maintainable

·       Verifiable

·       Portable

·       Reliable

·       Accurate

·       Secure

·       Scalable

·       Usable

 

2.    Identify, develop, or acquire the design methods appropriate for the product.

Effective design methods can embody a wide range of activities, tools, and descriptive techniques. Whether a given method is effective or not depends on the situation. Two companies may have effective design methods for products in which they specialize, but these methods may not be effective in cooperative ventures. Highly sophisticated methods are not necessarily effective in the hands of designers who have not been trained in the use of the methods.

Whether a method is effective also depends on how much assistance it provides the designer, and the cost effectiveness of that assistance. For example, a multiyear prototyping effort may not be appropriate for a simple product component but might be the right thing to do for an unprecedented, expensive, and complex product development. Rapid prototyping techniques, however, can be highly effective for many product components. Methods that use tools to ensure that a design will encompass all the necessary attributes needed to implement the product component design can be effective. For example, a design tool that “knows” the capabilities of the manufacturing processes can allow the variability of the manufacturing process to be accounted for in the design tolerances.

Examples of techniques and methods that facilitate effective design include the following:

·       Prototypes

·       Structural models

·       Object oriented design

·       Essential systems analysis

·       Entity relationship models

·       Design reuse

·       Design patterns

 

3.    Ensure that the design adheres to applicable design standards and criteria.

Examples of design standards include the following (some or all of these standards may be design criteria, particularly in circumstances where the standards have not been established):

·       Operator interface standards

·       Test scenarios

·       Safety standards

·       Design constraints (e.g., electromagnetic compatibility, signal integrity, environmental)

·       Production constraints

·       Design tolerances

·       Parts standards (e.g., production scrap, waste)

 

4.    Ensure that the design adheres to allocated requirements.

Identified COTS product components should be taken into account. For example, putting existing product components into the product architecture might modify the requirements and the requirements allocation.

5.    Document the design.




Process
Areas
(continuous)


Process
management  
 
OPF
 OPD
 OT  
 
OPP  
 OPM

Project
management
 
PP
 PMC 
 REQM 
 
SAM  
 
IPM
 RSKM
 
QPM

Engineering
 
RD 
 TS
 PI
 VER 
 VAL
Support
 
CM
 PPQA
 MA
 
DAR
 CAR