Requirements definition is the most crucial part of the project. Incorrect, inaccurate, or
excessive definition of requirements must necessarily result in schedule delays, wasted
resources, or customer dissatisfaction.
The requirements analysis should begin with business or organizational requirements and translate those into project requirements. If meeting stated requirements will be unreasonably costly, or take too long, the project requirements may have to be negotiated down, downscoped or down-sized, in discussions with customers or sponsors.
Any discussion of requirements analysis methods will quickly become specific to the type of project effort. Many industry areas have specific, proven techniques for obtaining thorough and accurate definition of requirements. Sometimes it is useful to write a draft users manual as a way to define requirements. While the methods may differ, the principles remain the same across all types and sizes of projects. The requirements analysis should cover the whole scope of the project. It must be comprehensive and thorough. It must consider the views and needs of all the project stakeholders.
The completed requirements analysis should be reviewed and approved by the customer or project sponsor before work continues.
The capture of user requirements is the process of gathering information about user needs.
User requirements should be realistic requirements are:
➔ Clear
➔ verifiable
➔ complete
➔ accurate
➔ feasible
Clarity and verifiability help ensure that delivered systems will meet user requirements.The specification of user requirements is the process of organising information about user needs and expressing them in a document.
A requirement is a ‘condition or capability needed by a user to solve a problem or achieve an objective’.This definition leads to two principal categories of requirements: ‘capability requirements’ and ‘constraint requirements’.
Capability requirements describe the process to be supported by software. Simply stated, they describe ‘what’ the users want to do.
The capacity attribute states ‘how much’ of a capability is needed at any moment in time.
Each capability requirement should be attached with a quantitative measure of the capacity required. For example the:
➔ number of users to be supported
➔ number of terminals to be supported
Constraint requirements place restrictions on how the user requirements are to be met. The user may place constraints on the software related to interfaces, quality, resources and timescales.
Users may constrain how communication is done with other systems, what hardware is to be used, what software it has to be compatible with, and how it must interact with human operators. These are all interface constraints.
A communications interface requirement may specify the networks and network protocols to be used.
A hardware interface requirement specifies all or part of the computer hardware the software is to execute on.
A software interface requirement specifies whether the software is to be compatible with other software (e.g other applications, compilers, operating systems, programming languages and database management systems).