System Design
In this chapter, we cover the phase of creating the System Design and the System-Subsystem Design Document (SSDD) for the UNEX project in ReqView.
Avy Strominger
- Role of System Design
- System Design Process Framework
- System-wide Design Decisions
- Main Challenges of System Design Phase
- System Design Process Execution
- Functional Analysis and Allocation of UNEX System
- Define Top-level UNEX Sub-systems
- Copy and Link UNEX System Requirements
- Allocate UNEX System Requirements to Sub-systems
- Analyze Transportation Cart Sub-system
- Analyze Storage Container Sub-system
- Analyze Underwater Exploration Vehicle (Robot) Sub-system
- Analyze Charger Sub-system
- Analyze Mission Station Sub-system
- Sub-system Interface Design
- Completeness and Consistency Checks
- Finalize System/Subsystem Design Document
- Create Baseline of System/Subsystem Design Document
- Publish System/Subsystem Design Document
Role of System Design
The System Design follows the System Requirements development phase, which we covered in Chapter 6: System Requirements Specification.
The fundamental objective of the System Design phase is to meet all system requirements specified in the System/Sub-system Specification (SSS). It is essential to understand, however, that various different designs can satisfy the very same requirements. These designs frequently differ in aspects such as functionality, costs (development, manufacturing, operation, and maintenance), risks, and the ability to accommodate future modifications, just to name a few. A critical aspect of the System Design, then, is to analyze multiple design possibilities, weigh their relative benefits and drawbacks, and make design selections and decisions.
To demonstrate this, let us consider the example of developing a new car. Ideally, the spec will include the car size, weight class, dynamic characteristics (like maximum speed, desired 0-100 km/h acceleration time), and maximum fuel consumption. For most requirements, the designer can now select four different engine options: a pure internal combustion engine, a hybrid engine (combining an internal combustion engine and an electric motor), a plug-in hybrid engine, or a fully electric solution. Each of these options will have different price, maintenance requirements, weight, requirements from the car chassis, etc.
In some cases, the requirements may specify the use of a particular type of engine system, like hybrid. While this can be seen as over specification, it may well be a valid requirement from a marketing standpoint. Even in this case, the system designer has multiple design choices. One option is to integrate the internal combustion engine and the electric motor in a combined system (as seen in Toyota hybrid systems, for example). Another option is to connect only the electric motor to the wheels and use the internal combustion engine solely to charge the battery, thus eliminating the need for a gearbox (for example, like the new Nissan Qashqai e-POWER system).
There is also another aspect of system development that must be addressed during the System Design phase: ambitious, hard to implement and/or excessive requirements. During the design phase, different designs that address such requirements in different ways (including, when possible, refining the requirements), should be presented and evaluated, together with the stakeholders. There are many cases when even slight changes in some requirements can lead to significant savings in development or product costs, or allow for improved reliability or reduced risks. Later, we will demonstrate that on the UNEX example project used in this tutorial.
System engineers utilize various methodologies to transform system requirements into an effective system design. A widely used methodology in the development of multi-disciplinary projects is Functional Analysis and Allocation (FAA), described in DoD Systems Engineering Fundamentals (Chapter 5), or in earlier versions of the INCOSE Systems Engineering Handbook (e.g., version 2a, Chapter 9). The NASA Systems Engineering Handbook (NASA/SP-2016-6105 Rev 2) provides a comprehensive methodology for system design in Chapter 4, particularly sections 4.3 and 4.4. There are other well-known methodologies, geared more towards software and software-intensive system development, such as Model Based Systems Engineering (MBSE), Object Process Methodology (OPM), which is adopted by ISO/PAS 19450, and Object-Oriented Design (OOD).
It is crucial to understand that no methodology can replace the role of the system engineer in exploring multiple design possibilities, analyzing their relative benefits and limitations, making design decisions, and eliminating surplus requirements.
ReqView is a process-neutral tool that supports most, if not all, of these methodologies. You can choose the methodology that best fits your project's nature, one that you are accustomed to, or one required by your customer.
In the subsequent sections, we will demonstrate how to use ReqView to develop a System Design for the UX-1 Underwater Robotic Explorer platform in the UNEX example project. Please keep in mind that while the content is inspired by the UX-1 design and some originates from its actual design, other elements (such as specific design considerations and some sub-systems) are entirely devised for the purpose of this tutorial. All original UX-1 material used will be cited in section “2.2 Other referenced documents” of the UNEXssdd document, which we will create in the next section.
System Design Process Framework
In our UNEX example project, we will follow the general flow of the FAA method. We will continue to follow the MIL-STD-498 standard that we have chosen as the documentation standard for our tutorial project. The MIL-STD-498 Data Item Description (DID) describing system design is called System/Subsystem Design Document (SSDD). Using this DID for documenting system design that uses the FAA method is very convenient and straightforward, despite the fact that the MIL-STD-498 standard is older than the FAA.
First, let us create a ReqView document to be used as a template for the SSDD. Recall that we use ReqView project MIL-STD-498-DIDs created in the Section Create Project Storing Document Templates of Chapter 4 as the project that contains the ReqView documents to be used as templates. Ensure that the Git repository containing the ReqView project MIL-STD-498-DIDs is cloned into the Local Workspace. If necessary, clone it now before proceeding. To create the SSDD-DID document that will be used as a template for the project SSDD documents, take the following steps:
- Open the MIL-STD-498-DIDs project in ReqView.
- Right-click the document BARE-TEMPLATE in the Project pane and select Duplicate Document from the context menu. In the Duplicate Document dialog, enter “SSDD-DID” as the Document ID and “MIL-STD-498 System/Subsystem Design Document DID” as the Document name.
- Import the contents of the MIL-STD-498 SSDD DID into the ReqView document SSDD-DID in a similar way as described in the Section Create Document Template for System Requirements of Chapter 4 for the SSS-DID document.
- Customize attributes of the SSDD-DID document as needed for SSDD document template.
- Commit updates in the MIL-STD-498-DIDs project to Git.
Now, create the new UNEXssdd document, using the following steps:
-
Open the UNEXsys project in ReqView. Select File→Project→Add Document from the main menu. ReqView will display the Add Document dialog.
-
Under Template, click Clone Document and select the directory MIL-STD-498-DIDs located in the Local Workspace as the Project folder. Then click the Select document dropdown box and select SSDD-DID.
-
Under Properties, enter “UNEXssdd” as the Document ID, and “UNEX System/Subsystem Design Document” as the Document name. Your screen will look like:
![Add UNEX System/Subsystem Design Document in ReqView Add UNEX System/Subsystem Design Document in ReqView]()
-
Click OK.
We can now start our design work and document it. The FAA flow usually includes the following steps:
-
Functional Analysis: Identify and define all functions the system must perform, and group them into higher level function groups.
-
Functional Allocation: Define specific physical components, sub-systems, or other elements and map the system functions to them.
-
Performance Requirements Development: Establish quantitative criteria for each function.
-
Functional Flow Definition: Determine the sequence, timing, and relationships between functions.
-
Interface Identification: Define interactions between functional elements.
Almost unnoticeably, we have actually finished the first FAA step in the Section Refine System Requirements into “Good Requirements” of Chapter 6. We created the document UNEXsss describing system requirements for all functions the system must perform and we grouped them under the appropriate sections of the UNEXsss document, creating new, functional sections where appropriate, e.g., “3.2.1 Environmental Sensors” (UNEXsss-81), or “3.2.4 Power” (UNEXsss-101). While our motivation was document readability and ease of review, this organizational work also completed the first step of functional analysis.
To finalize the System Design, we have to perform the remaining FAA steps, as well as some additional work (for example, requirements traceability into the design). Before diving into the work, let us outline the remaining FAA steps and their mapping to specific sections of the UNEXssdd document:
-
FAA steps 2 & 3: Functional Allocation and Performance Requirements Development are mapped to section “4.1 System Components” (UNEXssdd-14). This section shall:
-
Define the specific physical components, sub-systems, and other elements of the system. Create subsections hierarchy that reflects the system hierarchy where needed.
-
Explicitly state the system functions allocated to each component or sub-system, along with their relevant performance requirements or criteria.
-
Establish traceability from these allocated requirements and performance criteria back to the system requirements in the UNEXsss document.
-
Present the top-level design of each sub-system/component. The level of detail should enable a clear assessment of its design feasibility.
-
Clearly mark design decisions that serve as requirements for the next level of decomposition.
-
When multiple design options or design tradeoffs exist for a component or sub-system, present and thoroughly evaluate the alternatives, with the chosen option explicitly stated and justified.
-
-
FAA step 4: Functional Flow Definition is mapped to section “4.2 Concept of Execution” (UNEXssdd-16). This section shall:
- Detail the sequence, timing, and relationships between the system components or sub-systems.
- Create subsections hierarchy that reflects the system hierarchy where needed.
-
FAA step 5: Interface Identification is mapped to section “4.3 Interface Design” (UNEXssdd-18). This section shall:
-
Define interfaces organized into subsections according to the system and interface hierarchies.
-
Alternatively, dedicated interface documents can be created. In such cases, the top-level subsection shall provide a reference to the relevant external document.
-
A hybrid approach combining internal definitions with external references is also acceptable.
-
After completing the remaining FAA work, we shall also complete the remaining sections of the UNEXssdd: “1 Scope and General Description”, “2 Referenced Documents
