Software Requirements
User Requirements
These are statements in natural language plus diagrams of services the system provides and its operational constraints.
This is written for customers.
System Requirements
A structured document setting out detailed descriptions of system services.
This can be used as a written contract between client and contractor.
Software Specification
A detailed software description which can serve as a basis for a design or implementation.
This is written for the developers.
Example
User requirement
- We need to be able to spell check documents
System requirement
- The system needs to be able to spell check documents and provide auto-correct facilities. Their will be support for the following languages, English, French and German will have plug in support for other languages.
Software specification
CheckResult
spellCheck(String word, Dictionary dictionary)
- Word is defined in UNICODE formatted string
- The Dictionary structure is defined in S.1.2
- The
CheckResult
is defined in S.1.3 and contains a flag if the word has been found or not, plus a Vector object containing a list of possible other word suggestions depending if the word has been found or not spellCheck
will ideally use Hashing tables to improve code efficiency- ……
Types of Requirements
Functional requirements - Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.
Non-functional requirements - Constraints of the services or functions offered by the system such as timing constraints and standards to be used:
These are usually defined on the system as a whole.
Domain Requirements - Come from the application domain of the system and reflect characteristics of that domain.
Product Requirements - Specify how the product must behave.
Organisational Requirements - A consequence of organisational policies and procedures.
External Requirements - Arise from factors external to the system such as legislation and interoperability requirements.
Completeness & Consistency
Requirements should be both complete and consistent:
- Complete - Should include descriptions of all facilities required.
- Consistent - There should be no conflicts in the descriptions of the system facilities.
Goals vs Requirements
A goal is a general intention of the user such as ease of use.
Goals are helpful to developers as they convey the intentions of the system users.
Requirement Measures
Verifiable non-functional requirements are a pass/fail test for a particular goal.
Example
Property | Measure |
---|---|
Speeed | Processed transactions/second, User/event response time; screen refresh time. |