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.
Refer to the Establish a Definition of Required Functionality and Quality Attributes specific practice in the Requirements Development (RD) (CMMI-DEV) process area for more information about developing architecture requirements.
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.
Refer to the Establish Operational Concepts and Scenarios specific practice of the Requirements Development (RD) (CMMI-DEV) process area for 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
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.
Refer to the Requirements Management (REQM) (CMMI-DEV) process area for more information about tracking requirements for product components.
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.
1. Establish and maintain criteria against which the design can be evaluated.
Examples of attributes, in addition to expected performance, for which design criteria can be established, include the following:
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.
Examples of techniques and methods that facilitate effective design include the following:
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
Design constraints (e.g., electromagnetic compatibility, signal integrity, and environmental)
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.