How the system should react/behave to particular inputs/situations
Non-Functional Requirements
Nota:
Constraints on the services offered by the system
Constraints on the services offered by the system
Often refer to whole system and are more critical
Steps in requirement elictation
1. Application domain understanding
Nota:
Discussing with the client what they want
2. Requirements collection and classification
Nota:
Sorting requirements into coherent groups
3. Conflict resolution
Nota:
different demands from user, system safety vs availability, data security vs accessability
5. Prioritsation
4. Requirements checking
verifiability
Nota:
Have measures been specified against which success can be judged
consistency
Nota:
Are there any inconsistencies or conflicts among requirements?
realism
Nota:
Is it feasible to rsatisfy requirements given limitations in technology & budget?
Validity
Nota:
Do all perceived requirements solve real problems?
for Completeness
Nota:
Have we captured all requirements?
Different ways to represeent requirements
Diagrams
Nota:
Formality and rigour - Strict notations in symbols have particular meaning and enforce precise descriptions
diagramming is a design excersise - better understanding of the problem
system views at different levels of abstraction - diagrams can show high-level views of a system as well as detailed views
effective representation of architecture and behaviour:
Diagrams can show both structure/composition and behaviour
View Points
Nota:
View Points provide a multi-prespective analysis of requirements from different classes of users that have a different role in the usage of a system
Use case Diagrams
Nota:
Use case diagrimes identify use cases and use cases describe detailed scenarios of operation showing main and alternative flow of events
State Machines
Nota:
State Machines can show how the state of a system or an object within changes in response to events generated by users and the enviroment. they can capture requirements as well as describe the design of a system.
pseudocode
Nota:
Pseudocode uses a combination of concepts of a programming language and free text to describe things rather than strictly defined program entitites
natural language
Nota:
Normal language, people can understand and is expressive.. but can be imprecise without long sentences & paragraphs which make documents hard to read.
Relationships are difficult to record and see in such documents.