Recent from talks
Nothing was collected or created yet.
Requirements management
View on WikipediaThis article needs additional citations for verification. (December 2006) |
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requirement is a capability to which a project outcome (product or service) should conform.
Overview
[edit]The purpose of requirements management is to ensure that an organization documents, verifies, and meets the needs and expectations of its customers and internal or external stakeholders.[1] Requirements management begins with the analysis and elicitation of the objectives and constraints of the organization. Requirements management further includes supporting planning for requirements, integrating requirements and the organization for working with them (attributes for requirements), as well as relationships with other information delivering against requirements, and changes for these.
The traceability thus established is used in managing requirements to report back fulfilment of company and stakeholder interests in terms of compliance, completeness, coverage, and consistency. Traceabilities also support change management as part of requirements management in understanding the impacts of changes through requirements or other related elements (e.g., functional impacts through relations to functional architecture), and facilitating introducing these changes.[2]
Requirements management involves communication between the project team members and stakeholders, and adjustment to requirements changes throughout the course of the project.[3] To prevent one class of requirements from overriding another, constant communication among members of the development team is critical. For example, in software development for internal applications, the business has such strong needs that it may ignore user requirements, or believe that in creating use cases, the user requirements are being taken care of.
Traceability
[edit]Requirements traceability is concerned with documenting the life of a requirement.[4] It should be possible to trace back to the origin of each requirement and every change made to the requirement should therefore be documented in order to achieve traceability.[5] Even the use of the requirement after the implemented features have been deployed and used should be traceable.[5]
Requirements come from different sources, like the business person ordering the product, the marketing manager and the actual user. These people all have different requirements for the product. Using requirements traceability, an implemented feature can be traced back to the person or group that wanted it during the requirements elicitation. This can, for example, be used during the development process to prioritize the requirement,[6] determining how valuable the requirement is to a specific user. It can also be used after the deployment when user studies show that a feature is not used, to see why it was required in the first place.
Requirements activities
[edit]This article needs additional citations for verification. (October 2010) |
At each stage in a development process, there are key requirements management activities and methods. To illustrate, consider a standard five-phase development process with Investigation, Feasibility, Design, Construction and Test, and Release stages.
Investigation
[edit]In Investigation, the first three classes of requirements are gathered from the users, from the business and from the development team. In each area, similar questions are asked; what are the goals, what are the constraints, what are the current tools or processes in place, and so on. Only when these requirements are well understood can functional requirements be developed.
In the common case, requirements cannot be fully defined at the beginning of the project. Some requirements will change, either because they simply weren’t extracted, or because internal or external forces at work affect the project in mid-cycle.
The deliverable from the Investigation stage is a requirements document that has been approved by all members of the team. Later, in the thick of development, this document will be critical in preventing scope creep or unnecessary changes. As the system develops, each new feature opens a world of new possibilities, so the requirements specification anchors the team to the original vision and permits a controlled discussion of scope change.[citation needed]
While many organizations still use only documents to manage requirements, others manage their requirements baselines using software tools. These tools allow requirements to be managed in a database, and usually have functions to automate traceability (e.g., by allowing electronic links to be created between parent and child requirements, or between test cases and requirements), electronic baseline creation, version control, and change management. Usually such tools contain an export function that allows a specification document to be created by exporting the requirements data into a standard document application.[citation needed]
Feasibility
[edit]In the Feasibility stage, costs of the requirements are determined. For user requirements, the current cost of work is compared to the future projected costs once the new system is in place. Questions such as these are asked: “What are data entry errors costing us now?” Or “What is the cost of scrap due to operator error with the current interface?” Actually, the need for the new tool is often recognized as these questions come to the attention of financial people in the organization.
Business costs would include, “What department has the budget for this?” “What is the expected rate of return on the new product in the marketplace?” “What’s the internal rate of return in reducing costs of training and support if we make a new, easier-to-use system?”
Technical costs are related to software development costs and hardware costs. “Do we have the right people to create the tool?” “Do we need new equipment to support expanded software roles?” This last question is an important type. The team must inquire into whether the newest automated tools will add sufficient processing power to shift some of the burden from the user to the system in order to save people time.
The question also points out a fundamental point about requirements management. A human and a tool form a system, and this realization is especially important if the tool is a computer or a new application on a computer. The human mind excels in parallel processing and interpretation of trends with insufficient data. The CPU excels in serial processing and accurate mathematical computation. The overarching goal of the requirements management effort for a software project would thus be to make sure the work being automated gets assigned to the proper processor. For instance, “Don’t make the human remember where she is in the interface. Make the interface report the human’s location in the system at all times.” Or “Don’t make the human enter the same data in two screens. Make the system store the data and fill in the second screen as needed.”
The deliverable from the Feasibility stage is the budget and schedule for the project.
Design
[edit]Assuming that costs are accurately determined and benefits to be gained are sufficiently large, the project can proceed to the Design stage. In Design, the main requirements management activity is comparing the results of the design against the requirements document to make sure that work is staying in scope.
Again, flexibility is paramount to success. Here’s a classic story of scope change in mid-stream that actually worked well. Ford auto designers in the early ‘80s were expecting gasoline prices to hit $3.18 per gallon by the end of the decade. Midway through the design of the Ford Taurus, prices had centered to around $1.50 a gallon. The design team decided they could build a larger, more comfortable, and more powerful car if the gas prices stayed low, so they redesigned the car. The Taurus launch set nationwide sales records when the new car came out, primarily because it was so roomy and comfortable to drive.
In most cases, however, departing from the original requirements to that degree does not work. So the requirements document becomes a critical tool that helps the team make decisions about design changes.[7]
Construction and test
[edit]In the construction and testing stage, the main activity of requirements management is to make sure that work and cost stay within schedule and budget, and that the emerging tool does in fact meet the requirements set. A main tool used in this stage is prototype construction and iterative testing. For a software application, the user interface can be created on paper and tested with potential users, while the framework of the software is being built. Results of these tests are recorded in a user interface design guide and handed off to the design team when they are ready to develop the interface.
An important aspect of this stage is verification. This effort verifies that the requirement has been implemented correctly. There are 4 methods of verification: analysis, inspection, testing, and demonstration. Numerical software execution results or through-put on a network test, for example, provides analytical evidence that the requirement has been met. Inspection of vendor documentation or spec sheets also verifies requirements. Testing or demonstrating the software in a lab environment also verifies the requirements: a test type of verification will occur when test equipment not normally part of the lab (or system under test) is used. Comprehensive test procedures which outline the steps, and their expected results clearly identify what is to be seen as a result of performing the step. After the step or set of steps is completed the last step's expected result will call out what has been seen and then identify what requirement or requirements have been verified (identified by number). The requirement number, title and verbiage are tied together in another location in the test document.
Requirements change management
[edit]Hardly would any software development project be completed without some changes being asked of the project. The changes can stem from changes in the environment in which the finished product is envisaged to be used, business changes, regulation changes, errors in the original definition of requirements, limitations in technology, changes in the security environment and so on. The activities of requirements change management include receiving the change requests from the stakeholders, recording the received change requests, analyzing and determining the desirability and process of implementation, implementation of the change request, quality assurance for the implementation and closing the change request. Then the data of change requests be compiled, analyzed and appropriate metrics are derived and dovetailed into the organizational knowledge repository.[8]
Release
[edit]Requirements management does not end with product release. From that point on, the data coming in about the application’s acceptability is gathered and fed into the Investigation phase of the next generation or release. Thus the process begins again.
Tooling
[edit]Acquiring a tool to support requirements management is no trivial matter and it needs to be undertaken as part of a broader process improvement initiative. It has long been a perception that a tool, once acquired and installed on a project, can address all of its requirements management-related needs. However, the purchase or development of a tool to support requirements management can be a costly decision. Organizations may get burdened with expensive support contracts, disproportionate effort can get misdirected towards learning to use the tool and configuring it to address particular needs, and inappropriate use that can lead to erroneous decisions. Organizations should follow an incremental process to make decisions about tools to support their particular needs from within the wider context of their development process and tooling.[9] The tools are presented in Requirements traceability.
See also
[edit]References
[edit]- ^ Stellman, Andrew; Greene, Jennifer (2005). Applied Software Project Management. O'Reilly Media. ISBN 978-0-596-00948-9. Archived from the original on 2015-02-09.
- ^ "Requirements management". UK Office of Government Commerce. Archived from the original on 2009-12-16. Retrieved 2009-11-10.
- ^ A Guide to the Project Management Body of Knowledge (4th ed.). Project Management Institute. 2008. ISBN 978-1-933890-51-7.
- ^ Gotel, O., Finkelstein, A. An Analysis of the Requirements Traceability Problem Archived 2023-01-08 at the Wayback Machine Proc. of First International Conference on Requirements Engineering, 1994, pages 94-101
- ^ a b Gotel, Orlena; Cleland-Huang, Jane; Hayes, Jane Huffman; Zisman, Andrea; Egyed, Alexander; Grünbacher, Paul; Dekhtyar, Alex; Antoniol, Giuliano; Maletic, Jonathan (2012-01-01). Cleland-Huang, Jane; Gotel, Orlena; Zisman, Andrea (eds.). Software and Systems Traceability. Springer London. pp. 3–22. doi:10.1007/978-1-4471-2239-5_1. ISBN 9781447122388.
- ^ Rempel, Patrick; Mäder, Patrick (2015-03-23). Fricker, Samuel A.; Schneider, Kurt (eds.). Requirements Engineering: Foundation for Software Quality. Lecture Notes in Computer Science. Springer International Publishing. pp. 81–97. doi:10.1007/978-3-319-16101-3_6. ISBN 9783319161006.
- ^ Ralph, P., and Wand, Y. A Proposal for a Formal Definition of the Design Concept. In, Lyytinen, K., Loucopoulos, P., Mylopoulos, J., and Robinson, W., (eds.), Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, pp. 103-136
- ^ Chemuturi, M. (2013). Requirements Engineering and Management for Software Development Projects. doi:10.1007/978-1-4614-5377-2. ISBN 978-1-4614-5376-5. S2CID 19818654.
- ^ Gotel, Orlena; Mäder, Patrick (2012-01-01). Cleland-Huang, Jane; Gotel, Orlena; Zisman, Andrea (eds.). Software and Systems Traceability. Springer London. pp. 43–68. doi:10.1007/978-1-4471-2239-5_3. ISBN 9781447122388.
Further reading
[edit]- CMMI Product Team (August 2006). "CMMI for Development, Version 1.2" (PDF). Technical Report CMU/SEI-2006-TR-008. Software Engineering Institute. Retrieved 2008-01-22.
{{cite journal}}: Cite journal requires|journal=(help) - Colin Hood, Simon Wiedemann, Stefan Fichtinger, Urte Pautz Requirements Management: Interface Between Requirements Development and All Other Engineering Processes Springer, Berlin 2007, ISBN 3-540-47689-X
- Requirements Management - A Practice Guide, PMI
- U.S. Department of Defense CJCSM 3265.01A (29 November 2013) JOINT COMMAND AND CONTROL (C2) REQUIREMENTS MANAGEMENT PROCESS AND PROCEDURES
External links
[edit]- U.K. Office of Government Commerce (OGC) - Requirements management (archive; OGC website ceased activity on 1 October 2011)
- CDC Unified Process Practices Guide - Requirements Management Archived 2024-06-09 at the Wayback Machine
- International Requirements Engineering Board (IREB)
- What is Requirements Management?
Requirements management
View on GrokipediaFundamentals
Definition and Principles
Requirements management is the systematic process of documenting, analyzing, tracing, prioritizing, and agreeing on requirements to establish and maintain a baseline that supports effective project delivery, particularly in software, systems, and engineering domains.[5] This discipline ensures that stakeholder needs are transformed into verifiable specifications that guide development while minimizing risks such as scope creep or misalignment. According to the INCOSE Requirements Management and Systems Engineering pamphlet, it involves gathering inputs from authorized sources—such as contracts, client specifications, and regulations—to produce managed baselines of validated, traceable, and verified requirements that deliver compliance and value.[6] At its core, requirements management adheres to key principles including iterative refinement, stakeholder involvement, verifiability, and alignment with business objectives. Iterative refinement entails establishing sequential baselines and controlling changes to progressively reduce uncertainty and risk throughout the project.[6] Stakeholder involvement requires eliciting and documenting needs from all relevant parties to achieve consensus on requirement statements and success criteria. Verifiability demands that requirements be clear, achievable, and confirmable through methods like analysis, inspection, demonstration, or testing. Alignment ensures requirements are essential, traceable to the client's mission, and compliant with constraints such as regulations. The IEEE/ISO/IEC 29148 standard defines a requirement as "a statement that translates or expresses a need and its associated constraints and conditions," emphasizing its role as a formal obligation to meet stakeholder expectations.[6][7] The scope of requirements management encompasses functional, non-functional, and business requirements, each addressing distinct aspects of system performance and objectives. Functional requirements specify what the system must do, detailing its behaviors, features, and operations in response to inputs or events.[8] Non-functional requirements outline qualities such as performance, security, usability, and reliability, defining how the system operates under various conditions.[8] Business requirements articulate high-level organizational goals and objectives that the system must support, serving as the foundation for deriving subsequent requirements.[9] Throughout the full project lifecycle—from inception and concept development, through design, implementation, verification, and operation, to eventual decommissioning—requirements management maintains these elements to ensure ongoing relevance and adaptability.[10] Traceability supports this by establishing and preserving links between requirements and related artifacts.[5]Importance and Benefits
Effective requirements management plays a critical role in mitigating key risks in project execution, such as scope creep, cost overruns, and delays, which are prevalent in software and systems development. According to a 2014 PMI study, 47% of unsuccessful projects fail to meet their goals primarily due to poor requirements management, highlighting how inadequate handling of requirements contributes significantly to overall project failure rates.[1] In low-performing organizations, this issue affects over 50% of projects, compared to just 11% in high-performing ones, underscoring the direct link between robust requirements practices and reduced failure likelihood.[1] The benefits of effective requirements management extend to enhanced stakeholder satisfaction, higher quality deliverables, and substantial cost efficiencies. By ensuring clear, prioritized requirements, organizations achieve better alignment between expectations and outcomes, leading to improved satisfaction among stakeholders who report fewer miscommunications—75% of which negatively impact requirements handling.[1] It also promotes higher quality by minimizing defects, with research indicating that structured practices can eliminate 50% to 80% of project defects early in the lifecycle.[11] Cost savings are notable, as poor requirements lead to 5.1% waste of every project dollar—equating to $51 million per $1 billion spent—while effective management in high performers reduces this to just 1%.[1] Furthermore, it supports regulatory compliance, such as with ISO 26262 for automotive functional safety, where traceability ensures all safety requirements are met and verified.[12] In terms of project success, requirements management links initial needs to measurable outcomes, facilitating adaptive planning in both agile and waterfall methodologies. It enables iterative refinement in agile environments and structured progression in waterfall, reducing overall project waste while poor requirements management is to blame for up to 78% of project failures.[13] Traceability amplifies these benefits by tracking requirements evolution, ensuring changes do not introduce unintended risks.[14]Key Concepts
Traceability
Traceability in requirements management refers to the ability to link requirements to their origins, such as stakeholder needs, and to subsequent artifacts like design elements, code, tests, and validation activities throughout the system lifecycle.[15] This process ensures that every requirement is addressed, supports verification and validation, and enables impact analysis for changes by identifying dependencies and potential effects on related elements.[16] The primary purpose is to confirm completeness and consistency, preventing gaps that could lead to defects or non-conformance with user needs, while facilitating quality assurance and regulatory compliance.[17][18] There are three main types of traceability: forward, backward, and bi-directional. Forward traceability tracks from requirements to downstream implementation, such as linking a high-level functional requirement to specific design components or test cases.[15] Backward traceability reverses this flow, connecting implementation artifacts back to originating requirements or stakeholder needs to verify alignment.[16] Bi-directional traceability combines both directions for comprehensive coverage, allowing bidirectional navigation; for example, a requirement ID might link to a test case ID, enabling quick assessment of whether a change in the test affects the original requirement.[17] These types ensure that requirements attributes, such as unique identifiers, serve as anchors for establishing links across the lifecycle. Implementation of traceability typically involves creating and maintaining a traceability matrix or graph to document relationships. A traceability matrix is a tabular tool where rows represent requirements (identified by unique IDs) and columns represent linked artifacts, such as design specifications, code modules, or test procedures, with entries indicating the connections.[15] Graphs, often visualized using tools like SysML diagrams, provide a networked view of dependencies for complex systems.[15] Specialized requirements management tools, such as electronic databases or requirement management systems, automate link creation and maintenance, supporting iterative updates through stakeholder reviews at least weekly.[16] Coverage metrics evaluate traceability effectiveness, focusing on completeness and extent of links. Key metrics include the percentage of requirements traced to tests or other artifacts, aiming for complete coverage, particularly for critical systems, to ensure full verification and minimize defects.[15] Empirical evidence shows that higher traceability completeness correlates with reduced defect rates in software, establishing its role in quality outcomes.[18] Consistency metrics verify the absence of conflicts in links, while overall coverage ensures no requirements are orphaned.[16]Requirements Attributes and Types
Requirements in requirements management are categorized into distinct types to ensure comprehensive coverage of system needs, behaviors, and constraints. Functional requirements specify the observable actions, capabilities, and behaviors that the system must perform under defined conditions, such as processing data inputs or generating outputs.[19] For instance, a functional requirement might state that "the system shall send a confirmation email upon successful user registration."[8] Non-functional requirements address quality attributes and performance characteristics, including usability, reliability, security, and maintainability, often specifying how the system should behave rather than what it does.[19] Examples include requirements for system availability exceeding 99% or page load times under three seconds during peak usage.[8] Constraints impose limitations on the system's design or implementation, such as budgetary restrictions, timelines, or compliance with standards like PCI DSS for payment processing.[8] Domain-specific requirements arise from the unique characteristics of the application domain, tailoring the system to industry norms; in automotive engineering, for example, they might mandate adherence to safety standards like ISO 26262 to prevent failures in critical operations.[8] Each requirement is associated with attributes that facilitate effective management, analysis, and evolution throughout the project lifecycle. Uniqueness ensures that each requirement is distinct and appears only once to prevent duplication and inconsistencies in interpretation.[20] Priority ranks the requirement's importance for implementation, often using methods like MoSCoW, which classifies them as Must have (essential for viability), Should have (important but not critical), Could have (desirable if time permits), or Won't have (excluded from the current scope).[21] Verifiability confirms that the requirement can be objectively tested through methods like inspection, analysis, demonstration, or testing, avoiding vague language that could lead to disputes.[19] The source attribute traces the requirement back to its origin, such as a specific stakeholder, regulation, or higher-level need, supporting validation and necessity checks.[20] Status tracks the requirement's lifecycle stage, from draft and approved to implemented, verified, or obsolete, enabling progress monitoring.[19] Requirements are structured using standardized templates to promote clarity, consistency, and completeness, adapting to the project's methodology. In traditional approaches, formal specifications employ structured natural language patterns, such as "The [system] shall [action] [object] [condition]," often organized by type in requirement management tools for traceability.[19] In agile methodologies, user stories provide a lightweight template: "As a [type of user], I want [goal] so that [reason]," emphasizing user value and fostering collaborative discussions to refine details.[22] These attributes and structures enable traceability by linking requirements to their evolution and dependencies across the project.[19]Core Processes
Elicitation and Investigation
Elicitation and investigation form the foundational phase of requirements management, where stakeholders' needs are systematically gathered and explored to ensure a comprehensive understanding of project objectives. This process involves actively engaging with individuals and groups to extract explicit requirements while probing deeper to reveal implicit or hidden needs that may not surface initially. Effective elicitation minimizes misunderstandings and sets the stage for subsequent analysis, as incomplete or overlooked requirements can lead to costly rework later in development.[23] Key techniques for elicitation include interviews, which allow one-on-one discussions to clarify individual perspectives; workshops, facilitating collaborative sessions among multiple stakeholders to foster consensus; surveys and questionnaires for broad data collection from large groups; observation, where analysts watch users in their natural environment to identify unarticulated behaviors; and prototyping, which involves creating preliminary models to elicit feedback and refine understandings iteratively. These methods are particularly valuable in the investigation phase, where follow-up questioning uncovers latent requirements, such as unspoken workflow inefficiencies or edge-case scenarios that stakeholders might overlook.[24][25] Stakeholder identification is crucial prior to elicitation, encompassing roles such as end-users who interact directly with the system, clients who define business goals, and subject matter experts who provide domain-specific insights. In diverse groups, conflicts often arise from differing priorities or interpretations, necessitating techniques like facilitated discussions or viewpoint reconciliation to align perspectives and resolve discrepancies without alienating participants.[26][27] The primary outputs of this phase are raw requirement lists capturing initial statements, use cases outlining user interactions, and preliminary models like context diagrams that visualize high-level relationships. A common challenge is incomplete information, where stakeholders provide partial or vague details due to unawareness of system implications, which can be mitigated through iterative questioning and validation loops to progressively refine and expand the gathered data.[28][23]Analysis and Feasibility
Analysis of requirements involves systematically refining the elicited needs to ensure clarity, completeness, and alignment with project goals. This process begins with categorization, where requirements are classified into types such as functional (specifying what the system must do), non-functional (addressing qualities like performance and security), product constraints, and project constraints.[29] Categorization aids in organizing the requirements for further evaluation and supports traceability throughout the development lifecycle.[29] Following categorization, conflict resolution addresses inconsistencies or competing stakeholder priorities, often through negotiation techniques that involve trade-offs or alternative solutions like developing product variants.[29] Automated tools or structured reviews can detect conflicts by analyzing consistency in requirement models.[29] Prioritization then ranks requirements based on criteria such as business value, risk, and implementation cost, using methods like pairwise comparison—where requirements are compared in pairs to establish relative importance—or the Analytical Hierarchy Process (AHP), a structured technique that decomposes prioritization into hierarchical criteria and uses eigenvector calculations for weighting.[30][31] AHP, originally developed by Saaty in 1980, is particularly effective for multi-criteria decision-making in software projects by quantifying subjective judgments through pairwise matrices.[32] Feasibility studies evaluate the practicality of prioritized requirements across multiple dimensions to determine if the project can proceed without undue risk or cost. Technical feasibility assesses whether available technologies and resources can meet the requirements, including hardware and software capabilities.[29] Economic feasibility involves cost-benefit analysis to weigh anticipated returns against investments, often using the return on investment (ROI) formula: where net profit is the difference between total benefits and total costs, providing a percentage measure of financial viability.[33] Operational feasibility examines the system's alignment with organizational processes, user needs, and support structures, ensuring usability and maintainability.[29] Schedule feasibility reviews timelines, dependencies, and resource availability to confirm delivery within constraints.[29] Risk identification during analysis focuses on early detection of ambiguities, inconsistencies, or infeasibilities that could derail the project. This includes scrutinizing requirements for unclear language or unachievable specifications, such as non-functional requirements demanding performance beyond hardware constraints—like requiring a system to process 10,000 transactions per second on legacy processors unable to support it.[29] Techniques like root cause analysis or formal verification help uncover these issues, enabling mitigation strategies before advancing to specification.[29] By addressing risks proactively, the process reduces the likelihood of costly rework later in development.[29]Specification and Design
The specification process in requirements management involves documenting analyzed stakeholder needs into clear, unambiguous statements that serve as inputs for design and implementation. This is achieved through structured approaches that minimize ambiguity and ensure verifiability, transforming informal needs into formal artifacts suitable for engineering activities.[15] Requirements are typically written in structured natural language, following patterns such as "References
- https://sebokwiki.org/wiki/Requirements_Management
- https://sebokwiki.org/wiki/Applying_a_Model-Based_Approach_to_Support_Requirements_Analysis_on_the_Thirty-Meter_Telescope
