This printer-friendly page contains the following sections:
This Overview page for the Requirements Phase contains the following sections:
This assurance plan for complex electronics assumes that the system requirements have been developed, assessed, and baselined (formalized). The system requirements should have been provided to individual components of the system, and decomposed sufficiently so that the component requirements provide sufficient detail for the designers to know what they need to create.
The engineering group creates the requirements and the assurance group verifies and validates the requirements. Both sides require a thorough knowledge of the system, including the environment where the system will operate and the expected operational scenarios. The two groups need to work closely together in the process of creating and verifying the requirements. The diagram below shows the requirements process for complex electronics. The Develop Requirements page describes the engineering process to create the requirements. The Assurance Process page describes the activities to assess and verify the requirements.
A general summary of requirements engineering is provided in the Requirements Engineering page.

The following criteria should be met prior to beginning the development and assurance of requirements for complex electronics.
At the end of the requirements development phase, the following criteria should be met:
The table below describes typical activities during the Requirements Phase for both engineers and assurance personnel.
|
Requirements Phase |
|
|
Role |
Typical Activities |
|
Systems Engineer |
Decompose system requirements to sub-systems and components. They may delegate this task to electronics engineers for the complex electronics requirements. |
|
Electronics Designer |
Help the systems engineer in the process of creating requirements for complex electronics. Assess the requirements for design impacts. |
|
CE specialist (optional) |
Either helps develop the requirements for complex electronics, or assess the requirements for designability with the chosen technology. Any problems should be worked out with the systems engineer. Select tools for design, implementation, and test activities. |
|
System Safety |
Perform Preliminary Hazard Analysis to identify system hazards, and the system components that contribute to the hazard, or help prevent it from occurring. If complex electronic devices are involved, include design-related failures as well as hardware failures in the analysis. |
|
Quality Assurance |
Assess the complex electronics requirements. Verify that all requirements are testable (or otherwise verifiable). Ensure that all CE requirements trace back to system, safety, or other higher-level requirements. |
|
CE Process Assurance (new category) |
Assess the complex electronics requirements against knowledge of the technology and design process. Verify that the requirements are attainable. Assess the verification activities that will be required, and ensure that the device can be verified to the level required. Assess any tools that will be used to design, implement, and test the CE. |
The table below describes the information contained on the other pages in the Requirements section.
|
Requirements Site Map |
|
|
Overview |
This page |
|
Develop Requirements |
The process of developing requirements for complex electronics. This section includes a listing of requirements that should be considered for complex electronic devices. Because complex electronics may not have a sufficiently detailed requirements specification, assurance engineers may have to derive an appropriate set of requirements in order to complete future assurance tasks. |
|
Assurance Process |
Describes the assurance process for complex electronics requirements, with links to specific techniques. |
|
Requirements Engineering |
Requirements engineering summary, including:
|
This section is about developing the requirements for complex electronics, which is usually performed by the systems or electronics engineer. The associated assurance activities are described in the Assurance Process page. An assurance engineer, however, needs to be cognizant of the types of requirements that should be included in the specification. Assurance engineers also need to understand the overall process of requirements development for complex electronics, both to guide that development and to ensure that the resulting requirements are adequate.
Ideally, the complex electronics (FPGA, ASIC, CPLD, etc.) will have a separate requirements document. In less complicated systems, the requirements for the device may be included in a higher-level document (such as for a circuit board or electronic sub-system). In the situations where the requirements are not considered adequate (by the assurance engineer), a certain amount of additional requirement derivation will need to be performed. This is covered in the Reverse Engineering of Requirements section of the assurance process page.
This section covers:
The specific requirements for a complex electronic device will derive from the system requirements, safety analyses, system architecture, performance requirements, and the operational environment. The objectives of the requirements capture and derivation/decomposition process are:
The process of deriving requirements for complex electronics is basically the same as for any sub-system. The steps are out-lined below, with the addition of complex electronics-specific issues to consider:
Specific requirements for complex electronics are detailed in the Requirements Review checklist. This checklist can be used as an aid in creating requirements for complex electronics, or in reviewing a set of requirements for the devices.
Once the requirements are developed, or concurrent with the development process, a feasibility assessment should be performed. The goal of the assessment is to determine if the requirements can be met with the anticipated technology. A secondary goal is to define certain strategies, such as mitigation for single event upsets, which will constrain the design.
The feasibility assessment should determine if the required functionality and performance can be met by the chosen technology, for all planned and anticipated off-nominal operational scenarios. If the requirements cannot be met, then the project needs to determine if the requirements should be modified, or if another technology is more appropriate.
The feasibility assessment process includes the following steps. The information produced by the assessment process should be documented in a report.
Once the requirements for the complex electronic device are defined, they need to be reviewed by a variety of people. Each person will bring a viewpoint to the review that will identify gaps or errors in the requirements set. The requirements review can be a formal review (such as part of the Preliminary Design Review), an informal review, or the result of many individual reviews.
Details on Requirements Review can be found in the Techniques section.
As the engineers develop and derive the requirements for complex electronics, the assurance engineer(s) works alongside to assess the processes and the product (requirements). These two activity streams are opposite sides of the same coin, and result in a validated set of requirements.
Use the Tailoring chart to determine which activities or analyses are required for a particular criticality classification. Activities that are not required may still be performed, if desired. The assurance activities for complex electronic requirements include:
Every method listed above does not have to be applied to every project. The table below uses the Complex Electronics Classification to map the activities, and depth of each activity, against the classification. This table allows for easy tailoring of the assurance activities to the device complexity and criticality.
A risk analysis is performed at the Requirements phase to identify the most critical risks to a successful completion of the complex electronics. Identifying potential problems early on allows the project to apply resources in an intelligent manner. Risks can be prioritized, so that the critical risks receive the most effort in mitigating. Some risks may only be monitored unless there is a significant change in the factors that determine the risk. For unlikely, but critical, risks, a contingency plan may be developed.
From an assurance point-of-view, the risk analysis points to the critical areas of project development for monitoring. For example, if requirement volatility is a major risk, then the assurance engineer should be closely watching how changes to requirements are input, agreed to, and analyzed for impacts. The assurance engineer can proactively suggest requirements management tools that may be of help and ensure that project plans and processes address how to add, delete, or modify requirements.
Details of the risk analysis technique can be found in the Techniques section.
One of the key assurance activities for any project is expert evaluation and assessment of the requirements. Incorrect, ambiguous, and incomplete requirements have been shown to be the major cause of system failures and accidents. Getting the requirement right is not easy, but it is vital to the success of the project.
For Complex Electronics, the main goals of requirements evaluation are:
Details of requirements evaluation can be found in the Techniques section. Use the requirements checklist when evaluating the requirements.
A Requirements Review is a more formalized process that brings together individuals with various understandings of the system and the complex electronics. The goal is to have each person review the requirements against their area of knowledge. By performing a wide review, problems related to interfaces, system operations, etc. are more likely to be found.
Details of requirements review can be found in the Techniques section. Use the requirements checklist when evaluating the requirements.
Interface analysis is a static analysis technique used to demonstrate that the interfaces (inputs, outputs) between the complex electronic device and other parts of the system do not contain any errors. This analysis will be performed (updated) at multiple times throughout the life cycle, as more details are available, or when changes are made to the system.
At the requirements phase, the main goal of this analysis is to identify input or output signals that are incorrect (wrong range, wrong type), missing, or present but not connected (e.g. an output that doesn't go anywhere). Timing relationships will be looked at as the device is designed.
Details of interface analysis can be found in the Techniques section.
Traceability analysis is the process of linking requirements for a system element to other system elements (higher or lower in the hierarchy), and to the various implementations of the requirements (design, physical components, test procedures). The purpose of this analysis is to ensure that the requirements for the system element (e.g., a complex electronic device) are correct and complete, and that the final implementation of the system element meets those requirements.
Tracing comes in two basic types:
The purpose of forward tracing is to make sure all requirements are completely and correctly implemented in the complex electronics. Backward tracing ensures that additional functionality is not added to the system (i.e., that all system aspects are driven by the requirements). Forward tracing of requirements is the minimal implementation of Traceability Analysis. For critical systems, both types should be used.
Details of traceability analysis can be found in the Techniques section.
Modeling is an investigative technique that uses a mathematical or physical representation of a system or sub-system that accounts for all or some of its known properties. Models are often used to test the effects of changes of system components on the overall performance of the system.
Model-based development focuses on creating a complete (and possibly formal) model of the system or sub-system. Models are an abstract and high level description of the system (or system component), expressed as statements in some modeling language or as elements in a modeling tool. Unlike standard requirements documents, models can be executable (able to simulate the process flow within the system).
The standard "requirements, design, implement, unit+ integration+system test" development cycle becomes "requirements, mode, verify (test) and debug, physically implement, system test". Testing is pushed earlier in the life cycle to the modeling phase. In theory, the model-driven approach allows developers to construct, test, and analyze their designs before they start to implement them.
One advantage of model-based development is moving some of the testing activities earlier in the life cycle. If major problems are found, they can be resolved with less impact on the budget or schedule of the project. Disadvantages include a reliance on the automatically generated design (which may not be generated correctly) and the difficulty of knowing how well the model conforms to reality. Interactions between parts of the system may not be evident until the system is operational. Testing on the model should not replace thorough system testing.
Simulation is the process of executing the requirements (system) model. In a simulation, the user can provide inputs to the model and see how it reacts. Specific, planned tests can be run to show that the model meets the required behavior, or the simulation can be used in an interactive mode to explore the model reactions.
Simulations can be used to validate the requirements, by showing the customer how things will work. The customer may even be provided a computer program (the simulation) to play with and try out various scenarios. Simulations can also be used to understand system or component behavior under various conditions that are not always easy to produce in the real world, such as signal noise, missing inputs, and invalid combinations of inputs.
The strength of simulations are:
The main problems with modeling and simulation are:
When the model is formally defined, it becomes “formal methods”. Formal models can be mathematically proven to hold (or not hold) a particular property. The NASA Formal Methods Guidebook states: “Formal Methods (FM) consists of a set of techniques and tools based on mathematical modeling and formal logic that are used to specify and verify requirements and designs for computer systems and software.” Formal Methods therefore has two parts – formal specification and formal verification.
System and complex electronics requirements are usually written in “human-readable” language. This can lead to ambiguity, when a statement that is clear to one person is interpreted differently by another. To avoid this ambiguity, requirements can be written in a formal, mathematical language. This formal specification is the first step in applying FM.
Formal Specification is useful in shaking out the requirements and ensuring that they are consistent and complete. By creating a Formal Specification, you may find errors such as undocumented assumptions, inadequate off-nominal or boundary case behavior, traceability and inconsistency, imprecise terminology and logic errors. Formal Specifications are also the first step in formally verifying that the CE implementation meets the requirements.
A growing trend in systems engineering is to use the Unified Modeling Language (UML) or SysML (the systems engineering extension) to describe the system. In many cases, tools can take the developed model and automatically generate the hardware description language code or other design elements.
The UML is the industry-standard language for the specification, visualization, construction, and documentation of the components of systems. UML helps to simplify the process of system design by making a model for construction with a number of different views. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
UML defines twelve types of diagrams, divided into three categories:
Criticality mapping identifies complex electronics requirements and design elements that have safety implications. The method starts with a list of system hazards, and then evaluates each system requirement or component in terms of the safety objectives derived for that component. If a system component includes complex electronics, the criticality mapping process is applied to the functions the complex electronics will perform. The end result should be either a) the complex electronics has no safety related objectives or b) a mapping of the safety objectives to particular parts (or all) of the complex electronic device.
The results and findings of the Criticality Mapping should be fed back to the System Requirements and System Safety Analyses. For all discrepancies identified, either the system requirements should be changed because they are incomplete or incorrect, or else the complex electronics requirements must be altered to match the system requirements. The Criticality Mapping identifies additional hazards that the system analysis did not include, and identifies areas where system or interface requirements were not correctly assigned to the complex electronics.
Details of criticality mapping can be found in the Techniques section.
Decision Tables (or Trees) are used to describe the required external behavior of some aspect of a system. These tables can be used to make sure that all combinations of events are accounted for in the behavior of the system. For example, if the complex electronics performs operations based on the state of several input signals, you want to make sure that all combinations of those inputs are addressed in the design.
Decision Tables are easy to produce. They are essentially X-Y tables, with the conditions that can influence the decisions on the left, followed by the set of possible decisions (actions). The possible combinations of conditions are in the columns to the right. Decision Tables make no assumptions about the order in which the conditions are evaluated. In the Techniques section, the Decision Table page provides more details and shows an example.
A Decision Tree is basically a graphical Decision Table. Decision Trees can be drawn as a modified flow chart, where each node (decision) has a yes and no branch leading to either another node or an action (decision). One advantage of Decision Trees is that they provide a sequential way to represent how the various conditions are processed. However, since complex electronics are parallel rather than serial, Decision Tables may be a better choice.
Decision Tables and Trees are a good
analysis for ensuring that all combinations of input conditions have a
corresponding action. Unexpected inputs (or combinations thereof) are quite
common in complex systems. The designer (and assuror) of complex electronics
cannot assume that the world outside the device will always behave as
specified.
The level of detail of requirements for complex electronics varies. The project may simply use higher-level requirements to define what the complex electronics must do, and document the more detailed specification within the design. In situations where the complex electronics requirements are unavailable or inadequate, the assurance engineer may need to create a requirements specification for the device, in order to support future analyses. The assurance engineer may also wish to follow this process to independently derive the requirements as a cross-check to the project activities.
Requirements reverse engineering assumes that the project is already past the requirements phase and into design (or a later phase). The assurance engineer has available the following resources:
The basic process for reverse engineering is to apply an iterative approach, using the “next level up” requirements and the complex electronics design information. Follow the derivation process in Developing Requirements, and then compare the result (complex electronics requirement) against the design. Do they match up? If not, take the design function and create a requirement the design would meet. Consider if that requirement could be a “derived” requirement from the higher-level system element. The end result of this highly manual process is a detailed set of requirements that the complex electronics design meets.
The chances are good that in performing this task you will find areas where higher-level requirements are wrong, ambiguous, or incomplete. You will also likely find some design elements that are incorrect or incomplete with respect to the system requirements. Use the project problem reporting system and/or the requirements change system to iron out the issues and ensure that the appropriate document (requirements or design) is changed.
A Fault Tree Analysis (FTA) is a top-down approach to failure analysis that starts with an undesirable event, such as a failure or mishap/accident or malfunction, and then determining all the ways that event can happen. It is a system for identifying causes of hazards, but not the hazards themselves. Fault Trees are often used to look at the hardware aspects of the system for possible failure modes. Traditionally, Fault Trees did not consider software, programmable elements, or operations as possible causes of events.
Fault Tree Analysis should include complex electronics, and consider faults and failures that are design related, as well as actual problems with the silicon chip. The task is to identify all possible events that can lead up to a failure mode. FTAs use a deductive approach to identify critical paths and provide minimal sets of states or critical paths which will lead to the top event.
Including complex electronics in an FTA is a little trickier than strictly addressing hardware failures. The complex electronics can perform multiple functions and operate in many modes or states. It performs different functions at different times.
Details of Fault Tree Analysis can be found in the Techniques section. Specific design issues and faults to consider are being investigated. Guidance for including complex electronics in Fault Trees will be added when the investigation is complete.
Failure Modes and Effects Analysis (FMEA) is a bottom-up method used to find potential system problems while the project is still in the design phase. Each component in the system is examined, and all the ways it can fail are listed. Each possible failure is traced through the system to see what effects it will have, and whether it can result in a hazardous state. The likelihood of the failure is considered, as well as the severity of the system failure.
When complex electronics are included in an FMEA, the key fault modes (ways the design and device can fail) are identified. The effects of abnormalities in the complex electronics on other components in the system, and on the system as a whole are the result of the analysis. This technique is used to uncover system failures from the perspective of the lowest level components. It is a “bottom-up” (or “forward”) analysis, propagating problems from the lowest levels, up to a failure within the broader system.
The FMEA asks “What is the effect if this component operates incorrectly? Failures for the component are postulated, and then traced through the system to see what the final result will be. Not all component failures will lead to system problems. In a good defensive design, many errors will already be managed by the error-handling part of the design.
Details of Failure Modes and Analysis can be found in the Techniques section. Specific design issues and faults to consider are being investigated. Guidance for including complex electronics in FMEAs will be added when the investigation is complete.
Requirements are very important for any project, or sub-section of a project, because they define what will be built. Many problems found during design, testing, or operation of a system are the result of incorrect, incomplete, or missing requirements. Therefore, verifying that the requirements are right is an important function of the assurance engineer.
This section provides an overview of requirements engineering for assurance engineers who are unfamiliar with the concepts. The page has the following sections:
Requirements solicitation, analysis, and management are key elements of a successful and safe development process for any system. Many costly and critical system failures can ultimately be traced back to missing, incorrect, misunderstood, or incompatible requirements.
Requirements are statements of need that define what a system will do and how well it must perform those tasks. At lower levels of the system, such as for a complex electronic device, the requirements will include specifics on what the device must do (and how well), how the device will interface to other parts of the system, and what part the device will play in overarching requirements, such as safety.
Systems are usually conceptualized as having levels of structure. The highest level defines the interface between the system and the outside world. The system itself is a black box at this level. Requirements for this level describe how the users (people or other systems) will interact with the system, and what the system will do in response to those inputs. Constraints that are imposed on the system from outside entities, including the environment the system must operate in, also influence the requirements specification.
Once the system is conceptually broken up into a set of interacting elements, the process of requirements decomposition (or derivation) begins. Some of the higher-level requirements will be implemented in whole by a particular element. Other requirements will be partitioned between several components. The process of requirements decomposition continues as the system is further sub-divided, until the lowest practical level is reached. The stopping point for requirement decomposition will vary across systems. For systems with complex electronic devices, a separate requirements document for the complex electronics is preferred. In reality, only the most critical devices have requirements separate from a higher-level assembly.
Requirements can also be classified by the role they play in the system. This classification will vary, depending on the organization or project. The following list of requirements types is commonly used in many government organizations.
Higher level requirements, either for the system or a sub-system, need to be matched to the chosen system architecture and components. Not every system-level requirement is implemented in a particular component. Also, higher-level requirements may be met by multiple components, each of which performs part of the functions.
When a system-level requirement is allocated to system components, the component requirements need to specify what that component does to support the system requirement. For example, a mobile system has a requirement to stop the system within 5 seconds of a user request. Components of the system that related to motion, such as a motor controller, braking sub-system, and speed detection sub-system, all have a part to play. Other sub-systems, such as for imaging or communications, have no requirements that relate to the system requirement.
Requirement decomposition stops at whatever level the project considers appropriate. Factors that define what level is appropriate include:
For many projects that include complex electronics, the requirements decomposition stops somewhere higher than the device level. When a requirements document exists for complex electronics, it may still be less-specific than desired. In particular, the document may be lacking in complete interface specifications, requirements imposed by technology constraints, and testability requirements.
Because the higher-level system design is taking place concurrently with the decomposition of requirements to the component level, the requirements specification for complex electronics may be a moving target. However, it is important that everyone involved have a clear understanding of what the complex electronic device will, and will not, perform, and to what levels, voltages, timing, etc. the device has to operate.
Good requirements have the following attributes:
Requirements for complex electronics come from system and sub-system requirements, safety, and the constraints imposed by the chosen architecture, the technology and tools used, the environment the device will operate in, and the process to manufacture (for an ASIC) or program (an FPGA, CPLD) a device. For many NASA systems, safety is an especially important source of requirements. Safety requirements may feed into the system requirements, and then flow down to the complex electronics, or are directly invoked at each level of requirements decomposition. The figure below shows the various sources of requirements for complex electronics.

Traceability is a link or definable relationship between two entities. Requirements are linked from their more general form (e.g., the system specification) to their more concrete form (e.g., subsystem specifications). They are also linked forward to the design and test scenarios. Traceability allows you to verify that all higher-level requirements are implemented by the appropriate lower-level component, and that each lower-level component only implements requirements that were approved by the customer or user (i.e., the component does not implement additional functionality).
The key benefits of tracing requirements include: