Electronics Guide

Requirements Engineering

Requirements engineering is the systematic process of discovering, documenting, analyzing, and managing the needs and constraints that an embedded system must satisfy. As the foundation of the development lifecycle, requirements engineering establishes what the system must do, how well it must perform, and under what conditions it must operate. Poor requirements are a leading cause of project failures, budget overruns, and products that fail to meet customer expectations.

For embedded systems, requirements engineering presents unique challenges. The tight coupling between hardware and software means that requirements must address both domains and their interactions. Real-time constraints, power limitations, environmental conditions, and safety considerations add dimensions that may not exist in purely software projects. Furthermore, requirements must be specified early enough to inform hardware decisions that are difficult or impossible to change once committed to silicon or manufacturing tooling.

Types of Requirements

Embedded systems requirements span multiple categories, each addressing different aspects of system capability and constraint:

Functional Requirements

Functional requirements describe what the system must do, the behaviors it must exhibit, and the transformations it must perform on inputs to produce outputs. These requirements specify the system's capabilities in terms of features, functions, and services it provides to users and other systems.

Examples of functional requirements include processing sensor data within specified accuracy bounds, controlling actuators in response to user commands, communicating with external systems using defined protocols, and storing configuration data persistently. Functional requirements should be specific enough to be testable and should avoid implementation details that constrain design freedom unnecessarily.

Performance Requirements

Performance requirements quantify how well the system must execute its functions. These include timing requirements such as response times, latency bounds, throughput rates, and update frequencies. For real-time embedded systems, timing requirements are often as critical as functional requirements, since a correct result delivered too late may be as useless as an incorrect result.

Performance requirements also encompass capacity specifications including memory usage limits, processing bandwidth, storage requirements, and communication bandwidth. Embedded systems typically operate with constrained resources, making these requirements essential for ensuring the design fits within available hardware capabilities.

Non-Functional Requirements

Non-functional requirements address qualities and constraints beyond basic functionality and performance. These include reliability requirements specifying acceptable failure rates, mean time between failures, and availability targets. Safety requirements define how the system must behave to prevent harm to people, property, or the environment. Security requirements address protection against unauthorized access, data integrity, and resistance to attacks.

Environmental requirements specify operating conditions including temperature ranges, humidity, vibration, electromagnetic compatibility, and exposure to dust, water, or chemicals. Power requirements constrain energy consumption, which may involve average power, peak power, and energy budget for battery-powered systems. Physical requirements address size, weight, and form factor constraints.

Interface Requirements

Interface requirements define how the system interacts with external entities including users, other systems, and the physical environment. User interface requirements specify how operators interact with the system through displays, controls, indicators, and feedback mechanisms. System interface requirements define communication protocols, data formats, timing relationships, and electrical characteristics for connections to other equipment.

Sensor and actuator interface requirements specify the characteristics of connections to the physical world, including signal types, ranges, accuracy, and response characteristics. These requirements bridge the gap between the digital system and the analog physical environment it monitors and controls.

Regulatory and Compliance Requirements

Many embedded systems must comply with industry standards, government regulations, or certification requirements. These may include safety standards such as IEC 61508 for functional safety, automotive standards like ISO 26262, medical device regulations such as IEC 62304, or aviation standards like DO-178C. Compliance requirements often impose constraints on development processes, documentation, verification methods, and traceability in addition to technical requirements.

Electromagnetic compatibility regulations, environmental regulations, and product safety certifications represent additional compliance categories that can significantly influence system design. Understanding applicable regulations early in requirements engineering prevents costly redesigns when compliance issues are discovered later.

Requirements Elicitation

Requirements elicitation is the process of discovering and gathering requirements from stakeholders, existing systems, standards, and other sources. Effective elicitation requires multiple techniques to ensure comprehensive coverage of needs that may not be explicitly stated or fully understood by any single source.

Stakeholder Analysis

Identifying all stakeholders is the first step in elicitation. Stakeholders include not only end users but also operators, maintainers, manufacturing personnel, regulatory authorities, marketing teams, and others who have legitimate interests in the system. Each stakeholder group may have different requirements and priorities that must be understood and balanced.

Stakeholder analysis involves identifying who the stakeholders are, understanding their roles and responsibilities, determining their needs and expectations, and assessing their influence on project decisions. This analysis guides subsequent elicitation activities and helps prioritize potentially conflicting requirements.

Elicitation Techniques

Interviews: Direct conversations with stakeholders allow detailed exploration of needs, constraints, and priorities. Structured interviews follow predetermined questions while unstructured interviews allow topics to emerge organically. Both approaches have value depending on how well the requirements domain is understood.

Workshops: Facilitated sessions bringing together multiple stakeholders can efficiently gather diverse perspectives and resolve conflicting viewpoints. Workshops are particularly valuable for exploring system boundaries, identifying interfaces, and achieving consensus on priorities.

Observation: Watching users interact with existing systems or perform tasks that the new system will support reveals requirements that users may not articulate because they take them for granted. Observation is especially valuable for understanding operational contexts and workflows.

Document analysis: Reviewing existing documentation including specifications for predecessor systems, standards, regulations, and competitor products provides requirements that may not emerge from stakeholder discussions. Document analysis is essential for compliance-driven requirements.

Prototyping: Early prototypes, even simple mockups, help stakeholders visualize the system and identify requirements they could not express abstractly. Prototyping is particularly valuable for user interface requirements and for exploring novel concepts where stakeholders have limited prior experience.

Embedded Systems Considerations

Eliciting requirements for embedded systems requires attention to aspects that may be overlooked in purely software projects. Hardware constraints including processor capabilities, memory limitations, and power budgets must be understood early since they fundamentally shape what the system can achieve. Environmental conditions where the system will operate influence component selection, packaging, and reliability requirements.

Real-time requirements need careful elicitation since stakeholders may express timing needs imprecisely or may not fully understand their own timing constraints until confronted with specific scenarios. Safety and reliability requirements deserve particular attention since the consequences of embedded system failures can extend beyond software crashes to physical harm or damage.

Requirements Analysis

Requirements analysis transforms raw stakeholder needs into well-structured, complete, consistent, and verifiable requirements. Analysis activities identify gaps, conflicts, and ambiguities in elicited requirements and resolve them through further investigation or stakeholder negotiation.

Quality Attributes

High-quality requirements exhibit several essential attributes:

Completeness: Requirements should fully specify the needed capability without leaving gaps that implementers must fill with assumptions. Complete requirements address normal operation, error conditions, boundary cases, and startup and shutdown behaviors.

Consistency: Requirements should not conflict with each other or with applicable standards and regulations. Inconsistencies must be identified and resolved before proceeding to design, as conflicting requirements cannot be satisfied simultaneously.

Unambiguity: Requirements should have only one possible interpretation. Vague terms like fast, easy, or user-friendly should be replaced with measurable criteria. Ambiguous requirements lead to implementations that may satisfy the literal text while failing to meet actual needs.

Verifiability: Each requirement should be testable through inspection, analysis, demonstration, or test. Requirements that cannot be verified provide no basis for accepting or rejecting the implemented system. Verifiable requirements include specific, measurable criteria for compliance.

Traceability: Requirements should be traceable to their sources and to the design elements, code, and tests that implement and verify them. Traceability supports impact analysis for changes and provides evidence of completeness for certification.

Analysis Techniques

Requirements modeling: Creating models of the system from requirements helps visualize behavior and identify missing or inconsistent requirements. Use case diagrams, state machines, data flow diagrams, and sequence diagrams are common modeling techniques. For embedded systems, models may also include timing diagrams and physical interaction diagrams.

Requirements prioritization: Not all requirements have equal importance. Prioritization techniques such as MoSCoW (Must have, Should have, Could have, Won't have), numerical ranking, or pairwise comparison help focus development effort on the most critical capabilities and guide decisions when constraints force trade-offs.

Feasibility analysis: Technical feasibility analysis evaluates whether requirements can be satisfied with available technology, within schedule and budget constraints, and with acceptable risk. For embedded systems, feasibility often depends on hardware capabilities, power budgets, and real-time performance that must be analyzed before committing to implementation approaches.

Requirements Specification

Requirements specification is the process of documenting requirements in a form suitable for communication, review, approval, and use as the basis for design and verification. The specification serves as a contract between stakeholders and developers, defining what will be delivered and how compliance will be judged.

Specification Documents

Requirements specifications typically follow hierarchical structures that organize requirements by system level, subsystem, and component. Common document types include system requirements specifications covering the complete system, software requirements specifications for embedded software, and hardware requirements specifications for electronic and mechanical components.

Each requirement statement typically includes a unique identifier for traceability, the requirement text itself, rationale explaining why the requirement exists, priority or criticality classification, verification method, and source identifying where the requirement originated. Additional attributes may include status, assigned owner, and links to related requirements.

Writing Effective Requirements

Effective requirement statements follow conventions that promote clarity and testability:

Use consistent terminology defined in a project glossary. Technical terms should have precise definitions that all stakeholders understand. Avoid synonyms that could introduce confusion about whether similar terms refer to the same or different concepts.

Express requirements in active voice with clear subjects. Statements like "The system shall..." identify responsibility clearly, while passive voice can obscure who or what must satisfy the requirement.

Include quantitative criteria wherever possible. Instead of "The system shall respond quickly," specify "The system shall respond within 100 milliseconds." Quantitative requirements enable objective verification and prevent disputes about whether requirements are satisfied.

Avoid combining multiple requirements in single statements. Compound requirements are harder to trace, test, and change. Each requirement should address a single capability or constraint that can be verified independently.

Standards and Templates

Industry standards provide templates and guidance for requirements specifications. IEEE 830 provides a widely used template for software requirements specifications. ISO/IEC/IEEE 29148 offers more comprehensive guidance on requirements engineering processes and work products. Domain-specific standards such as DO-178C for aviation and ISO 26262 for automotive impose additional requirements on specification content and structure.

Using established templates and standards improves consistency, ensures completeness, and facilitates review by stakeholders familiar with standard formats. Organizations often adapt standard templates to address their specific needs while maintaining compatibility with industry practices.

Requirements Management

Requirements management encompasses the ongoing activities of maintaining, controlling, and tracking requirements throughout the project lifecycle. Requirements are rarely static; they evolve as stakeholder understanding improves, technology changes, and market conditions shift. Effective management ensures that changes are controlled, impacts are understood, and the system remains aligned with current requirements.

Change Control

Requirements changes are inevitable, but uncontrolled changes lead to scope creep, schedule delays, and products that satisfy no one. Change control processes evaluate proposed changes for necessity, impact, cost, and risk before approval. Formal change control boards review significant changes and make disposition decisions.

Impact analysis determines how proposed changes affect other requirements, design elements, code, tests, schedules, and costs. For embedded systems, changes may have cascading effects across hardware and software that must be fully understood before proceeding. Changes late in development are particularly costly when they affect hardware that has already been fabricated or tooled.

Traceability Management

Traceability establishes and maintains links between requirements and other project artifacts. Forward traceability links requirements to design elements, code modules, and test cases that implement and verify them. Backward traceability links requirements to their sources including stakeholder statements, standards, and higher-level requirements.

Traceability matrices or databases capture these relationships and support analysis activities. Coverage analysis uses traceability to identify requirements that lack corresponding design elements or tests. Impact analysis uses traceability to identify all artifacts affected by requirements changes. Compliance demonstration uses traceability to show that all requirements are implemented and verified.

Requirements Management Tools

Requirements management tools support the capture, organization, analysis, and tracking of requirements throughout the lifecycle. These tools provide structured storage for requirements with attributes and relationships, support for reviews and approvals, change control workflows, traceability management, and reporting capabilities.

Common tools range from simple spreadsheets for small projects to dedicated requirements management applications for complex systems. Tool selection depends on project complexity, team size, compliance needs, and integration requirements with other development tools. For safety-critical embedded systems, tool qualification may be required to ensure that tools do not introduce errors into requirements artifacts.

Verification and Validation

Requirements verification ensures that requirements are correctly specified, while validation ensures that the right requirements have been captured. Both activities are essential for developing systems that satisfy actual stakeholder needs.

Requirements Reviews

Formal reviews of requirements documents identify defects before they propagate to design and implementation. Reviews check requirements for quality attributes including completeness, consistency, correctness, and verifiability. Review participants should include stakeholders who provided requirements, domain experts, designers who will implement requirements, and testers who will verify them.

Structured review techniques such as inspections follow defined processes that have been shown to find defects effectively. Checklist-based reviews ensure that common issues are systematically examined. Review findings are documented and tracked to closure.

Requirements Validation

Validation confirms that specified requirements actually represent stakeholder needs. Prototyping allows stakeholders to experience proposed capabilities and provide feedback before full implementation. Simulation models demonstrate system behavior in scenarios that help stakeholders evaluate whether requirements will produce satisfactory results.

Requirements walkthroughs present requirements to stakeholders in the context of operational scenarios, helping identify gaps or misunderstandings that might not be apparent from reviewing requirements in isolation. User acceptance criteria, defined early in the project, establish the basis for final validation that the delivered system meets actual needs.

Best Practices

Successful requirements engineering for embedded systems incorporates several proven practices:

Engage stakeholders continuously: Requirements engineering is not a phase that ends when a document is approved. Continuous stakeholder engagement ensures that requirements remain aligned with evolving needs and that stakeholders understand the implications of their requirements as design progresses.

Address hardware constraints early: Unlike software-only projects where requirements can often be refined during implementation, embedded systems require early definition of requirements that drive hardware decisions. Hardware selection, custom chip development, and manufacturing tooling impose constraints that are costly or impossible to change later.

Plan for requirements evolution: Accept that requirements will change and implement processes that accommodate controlled evolution. Design for flexibility where uncertainty exists, and build margins into performance requirements to accommodate growth.

Maintain requirements-test alignment: Develop test concepts alongside requirements to ensure that requirements are verifiable and that test strategies are feasible. This concurrent development often reveals ambiguities or impracticalities in requirements early enough to address them.

Use appropriate formality: Match the rigor of requirements engineering to project needs. Safety-critical systems require formal methods and extensive documentation, while simple products may need only basic documentation. Under-engineering requirements leads to defects; over-engineering wastes resources without corresponding benefits.

Common Challenges

Requirements engineering for embedded systems faces several recurring challenges:

Incomplete stakeholder identification: Missing stakeholders often leads to missing requirements. Manufacturing, service, and regulatory stakeholders are frequently overlooked in the focus on end users and customers.

Vague performance requirements: Stakeholders often express timing, accuracy, and capacity needs imprecisely. Requirements engineers must probe for quantitative criteria that can be verified.

Premature design: Requirements that specify implementation rather than need constrain design freedom and may lock in suboptimal solutions. Focus requirements on what is needed, not how to achieve it.

Scope creep: Uncontrolled addition of requirements during development delays schedules and increases costs. Strong change control and stakeholder agreement on scope boundaries help manage this challenge.

Hardware-software boundary disputes: Decisions about which functions to implement in hardware versus software often involve trade-offs that cross organizational boundaries. Clear decision-making processes and technical criteria help resolve these disputes constructively.

Summary

Requirements engineering establishes the foundation for successful embedded systems development by systematically capturing, analyzing, documenting, and managing the needs and constraints that the system must satisfy. Effective requirements engineering reduces project risk, improves communication among stakeholders and developers, and provides the criteria against which system success is ultimately judged.

For embedded systems, requirements engineering must address the unique challenges of hardware-software integration, real-time constraints, resource limitations, and often safety-critical applications. By applying appropriate elicitation techniques, maintaining requirements quality, managing change effectively, and ensuring traceability throughout the lifecycle, engineering teams can create the solid requirements foundation that complex embedded systems demand.