Requirements development is a process that consists of a set of activities that produce requirements for a product. The systems engineering standard [EIA 632] defines “requirement” as “something that governs what, how well, and under what conditions a product will achieve a given purpose.” Requirements define the functions, performance, and environment of the system under development to a level that can be built:
- Does the system do WHAT it is supposed to do? – These are Functional Requirements
- How well does the system do its functions? – These are Performance Requirements
Remember: The Requirements Development Process is a very comprehensive, iterative and recursive process
6 Steps for Requirements Development
The first overall step in the Systems Engineering Process is Requirements Analysis, which is where Requirements Development fits in. No matter which model is used, the six basic steps to developing needs don’t change much. All models take a similar method, but they show them in different ways. Here is a list of the six (6) most important steps in developing requirements.
Step 1: Gather & Develop Requirements
The first step is to gather, analyze, and develop requirements from the Concept of Operations (CONOPS), stakeholder needs, objectives, and other external requirements. Once requirements are documented, they are prioritized, de-conflicted, and validated with the stakeholders.
Step 2: Write and Document Requirements
The second step focuses on writing down the functional and performance requirements into the appropriate requirements documents: Initial Capabilities Document (ICD), Capability Development Document (CDD), Capability Production Document (CPD), and System Requirements Document (SRD). Requirements must be documented in order to establish a requirements baseline to start building a system and manage any changes. Requirements can be developed using the Capability Development Tracking and Manager (CDTM) tool for DoD programs.
Step 3: Check Completeness
The third step is to check that a complete set of requirements have been developed and documented that defines all system functions that are needed to satisfy the stakeholder needs with their associated performance, environmental, and other non-functional requirements. Requirement Tracing is a big tool in this step.
Step 4: Analyze, Refine, and Decompose Requirements
Requirements Analysis is the first major step in the Systems Engineering Process. This step examines each requirement to see if it meets the characteristics of a good requirement. Each requirement is then decomposed into a more refined set of requirements that are allocated to sub-systems and documented in the Weapons System Specification (WSS). Newly derived requirements are expected to emerge from this process, which continues until all requirements are defined and analyzed.
Step 5: Verify and Validate Requirements
In step five each requirement must be verified and validated to ensure that these are the correct requirements. This ensures that the requirements meet the overall objective of the system and all stakeholder needs.
Step 6: Manage Requirements
In step six the requirements have been accepted and a baseline is established by the stakeholders. Any changes to the requirements are controlled using a Configuration Management process.
AcqNotes Tutorials
Example of Utilizing the 6 Steps for Requirements Development
Here’s how the six steps for developing needs can be used in a software development project:
- Step 1: Gather and Develop Requirements: In this step, the project team figures out who all the important people are, like end users, managers, and system admins. They do interviews, surveys, and classes to determine what needs to be done. In a web application project, for example, stakeholders might say that the app needs to be easy to use, have safe logins, and update data in real-time.
- Step 2: Write and Document Requirements: The project team analyzes the collected needs to find similarities, differences, and dependencies. They put the standards in order based on their importance and how they affect the project goals. For example, if time-to-market is very important, the team may give more weight to core function requirements than to extra features.
- Step 3: Check Completeness: In this step, the team sets the project’s limits and clarifies what is and isn’t part of the plan. They set clear limits so that partners’ expectations can be managed and scope creep doesn’t happen. For example, the team may leave out some advanced features from the first release because they lack time or resources.
- Step 4: Analyze, Refine, and Decompose Requirements: The project team turns the requirements that were asked for into clear and thorough specifications. They use tools like user stories, use cases, and functional/non-functional requirements papers. For example, they might write a user story for a feature that integrates social media, describing what the user does, how the system responds, and the acceptance criteria.
- Step 5: Validate and Verify Requirements: In this step, the team checks the requirements to ensure they match the stakeholders’ wants and expectations. They use reviews, meetings, and prototypes to find out what people think and make any necessary changes. For instance, they might do a usability testing session to ensure the user interface standards are met.
- Step 6: Manage Requirements: During the lifecycle of a project, needs may change and grow. The team sets up a change management method to record and evaluate requested changes, determine how they will affect the project, and make decisions based on that information. They let partners know about changes and update the requirement specifications to match.
By following these six steps for developing requirements, the project team makes sure that gathering, analyzing, and handling requirements is done systematically. This helps them develop a software solution that meets the wants of stakeholders, fits with the project’s goals, and meets quality standards.
Systems Engineering Process Next Step
Next System Engineering Step: Functional Analysis and Allocation
Functional Analysis and Allocation is a top-down process of translating system-level requirements that were developed into detailed functional and performance design criteria. The result of the process is a defined architecture with allocated system requirements that are traceable to each system function.
AcqLinks and References:
- Defense Acquisition Guidebook (DAG) – Chapter 4
- Requirements Development Checklist
- DAU Systems Engineering Fundamentals Guide
- Space and Missile Systems Center (SMC) Systems Engineering Primer & Handbook
- NASA Systems Engineering Handbook (large 9M file)
- EIA-632 “Processes for Engineering a System” – 7 Jan 99
- White Paper: Writing a Requirements Document “For Multimedia and Software Projects” by Rachel S. Smith
- White Paper: Requirements Development, Verification, and Validation Famous Failures by Bahill & Henderson
Updated: 3/14/2024
Rank: G1