Software Requirements Flashcards
Requirements Engineering
Establishes:
- The services that the customer requires from the system
- The constraints under which the system operates and is developed.
What is a requirement?
A requirement can range from a high-level abstract statement of a service/constraint to a detailed functional specification.
Dual function of requirements
- May be the basis for a bid for a contract
- May be the basis for the contract itself
User Requirements
Statements in natural language for the user to understand the services and the constraints.
System Requirements
Sets out descriptions for the system services, which is wrote as a contract between client and contractor.
Software Specification
Serve as a basis for a design or implementation (for developers).
Functional Requirements
Says what the system does (provides statements of services).
Non-functional Requirements
Constraints on the services or functions offered in the system.
Domain Requirements
Reflects the domain’s impact on the software (if it is including large amounts of data for example, the domain would be under the data protection act.)
Complete/Consistent
Requirements should be
Complete -> includes all descriptions of all facilities.
Consistent -> no conflicts or contradictions in the descriptions.
Process Requirement
A “non-functional requirement” which states a programming language, or a CASE system, or a development method.
Product Requirements
A non-functional classification which specifies that the product must behave a certain way.
Organisational Requirements
A non-functional classification which specifies requirements which are a consequence of organisational policies and procedures which are non-external (programming language etc)
External Requirements
A non-functional classification which specifies requirements which arise from factors which are external to the system and its development process.
Performance Requirement
A potential non-functional classification which specifies the expected performance rate of a system.
Verifiable Non-functional Requirement
A type of requirement which uses some measure that can be tested (for example, experienced controllers should be able to use all system functions after two hours of training, with the amount of errors being reduced to only 2 per day.)
Requirements Measures
A table consisting of a property, and how that property is managed/measured.
Issues with domain requirements
May be deemed unnecessary by user and therefore not tested (not stated on contract etc).
Issues with user requirements
Lack of clarity (more clarity leads to complicated documentation) and requirement confusion (functional and non-functional requirements tend to be mixed-up in same document).
Issues with non-functional requirements
Requirements have the potential to clash (username and password is easy to create, but the password must be complicated for security reasons).