Develop a design for the product or product component.
Product design consists of two broad phases that may overlap in execution: preliminary and detailed design. Preliminary design establishes product capabilities and the product architecture, including 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.
Architecture definition is driven from a set of architectural requirements developed during the requirements development processes. These requirements express the qualities and performance points 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 may 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 requirements to product components including hardware and software. Multiple architectures, supporting alternative solutions, may be developed and analyzed to determine the advantages and disadvantages in the context of the architectural requirements.
Operational concepts and scenarios are used to generate use cases and quality 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.
- Establishing the structural relations of partitions and rules regarding interfaces between elements within partitions, and between partitions
- Identifying major internal interfaces and all external interfaces
- Identifying product components and interfaces between them
- Defining coordination mechanisms (e.g., for software and 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 may be optimized for certain qualities or performance characteristics. Designers may 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.
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.
Typical Work Products
- Product architecture
- Product component designs
1. Establish and maintain criteria against which the design can be evaluated.
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 very 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 very 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.
- 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.
- Operator interface standards
- Test Scenarios
- Safety standards
- Design constraints (e.g., electromagnetic compatibility, signal integrity, and environmental)
- Production constraints
- Design tolerances
- Parts standards (e.g., production scrap and waste)
4. Ensure that the design adheres to allocated requirements.
Identified COTS product components must 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.