A software requirement is a condition or capability needed by a user to solve a problem or achieve an objective. Another way of describing it with a specific project in mind is: a condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.
Requirements management is the process of capturing, analysing, documenting, tracing, prioritizing and agreeing on requirements for a project. During a development process, tracking change and communicating to stakeholders is the continued objective of requirements management.
Requirements Capture is the process of analysing and identifying the requirements of a system and often involves a series of facilitated meetings attended by stakeholders of the system. The stakeholders are the end users and up to the managers.
Requirement Analysis is performed on captured requirements. This process draws out common business functions and will identify the technical constraints and risks associated with the project.
Requirements Documents typically contains the software system requirements followed by their prioritisation and presentation in a suitable layout. These are precursor to the contracted requirements. Documentation can also be outlined in use cases and user stories or UML notation.
Traceability of requirements ensures that they can be associated with the originator of the requirement and monitored throughout the development lifetime. This also ensures that requirements can be challenged during the project to maintain their validity in the software system or to modify them accordingly.
Following capture, requirements are generally documented using UML Use Cases (or User Stories in Agile Methodologies) which provide one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific business goal.
Chris Oliver typically facilitates the requirements phase of the development lifecycle and also introduces clients to requirement capturing techniques and UML Modeling techniques during this process to ensure that the client gets to see the value and benefits in using a Requirement Management model.