Requirements Engineering Process
What are the guidelines for natural language specifications?
- Invent a standard format and use it for all requirements - Use language in a consistent way. Use shall for mandatory requirements, and should for desirable requirements - Use text highlighting to identify key parts of the requirement - Avoid the use of computer jargon - Include an explanation of why a requirement is necessary
What are the problems with natural language specification?
- Lack of clarity: precision is difficult without making the document difficult to read - Requirements confusion: functional and non-functional requirements tend to be mixed-up - Requirements amalgamation: several different requirements may be expressed together
What is effective interviewing?
Effective interviewing is open-minded and avoids pre-conceived ideas about the requirements. The interviewer must be willing to listen to the stakeholders. They should prompt the interviewee to get discussions going using a springboard question, a requirements proposal, or by working together on a prototype.
What are the types of structured specifications?
Form-based and tabular
How are graphical notation specifications written?
Graphical models, supplemented by text annotations, are used to define the functional requirements for the system. UML use case and sequence diagrams are commonly used.
In practice, how are requirements and design used?
In practice, requirements and design are inseparable. A system architecture may be deigned to structure the requirements. The system may inter-operate with other systems that generate design requirements. The use of a specific architecture to satisfy non-functional requirements may be a domain requirement.
What should a scenario include?
- A description of the starting situation - A description of the normal flow of events - A description of what can go wrong - Information about other concurrent activities - A description of the state when the scenario finishes
How are form-based specifications written?
- Definition of the function or entity - Description of inputs and where they come from - Description of outputs and where they go to - Information about the information needed for the computation and other entities used - Description of the action to be taken - Pre and post conditions - The side effects of the function
What are some of the problems with interviewing stakeholders?
1. Application specialists may use language to describe their work that the requirements engineer finds difficult to understand 2. They're no good for finding domain requirements as requirements engineers cannot understand specific domain terminology and some domain knowledge is so familiar that people find it difficult to articulate
What is the cycle of requirements elicitation?
1. Requirements discovery 2. Requirements classification and organisation 3. Requirements prioritisation and negotiation 4. Requirements specification
What are the different ways a system requirements specification document can be written?
Natural language, structured natural language, design description languages, graphical notations, mathematic specifications
What are the two types of interviews?
Open (various issues are explored with stakeholders) and closed (based on a pre-determined list of questions).
What are the stages of requirements elicitation?
Requirements discovery, requirements classification and organisation, requirements prioritisation and negotiation, and requirements specification.
What activities are common to all processes used for requirements engineering?
Requirements elicitation, requirements analysis, requirements validation, and requirements management.
What are scenarios and user stories and why are they good?
Scenarios and user-stories are real life examples of how a system can be used, they describe how a system may be used for a specific task. Because they're based on a practical situation, stakeholders can relate to them and can comment on their situation with respect to the story.
What problems are involved in requirements elicitation?
Stakeholders don't know what they really want, stakeholders express requirements in their own terms, different stakeholders have conflicting requirements, organisational and political factors may influence the system requirements, and the fact that the requirements change during the analysis process.
Who is involved in requirements elicitation and what do they do?
Technical staff working with customers to find out about the application domain, the services the system should provide and the systems operational constraints. May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions etc. These are known as stakeholders.
What is requirements discovery?
The process of gathering information about the required and existing systems, and distilling the user and system requirements from this information. Interaction is with system stakeholders from managers to external regulators.
What is requirements specification and who is involved?
The process of writing down the user and systems requirements in a document. User requirements have to be understandable by stakeholders and end-users who do not have a technical background.
How are structured natural language specifications written?
The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement.
How are natural language specifications written?
The requirements are written using numbered sentences in natural language. Each sentence should express one requirement.
How are mathematical specifications written?
These notations are based on mathematical concepts such as finite-state machines or sets.
What are the pros and cons of mathematical specifications?
These unambiguous specifications can reduce the ambiguity in a requirements document, most customers don't understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract.
How are design description language specifications written?
This approach uses a language like a programming language but with more abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications.
What is a use-case and what do they describe?
Use-cases are a kind of scenario that are included in the UML. Use cases identify the actors in an interaction and which describe the interaction itself. A set of use cases should describe all possible interactions with the system. High-level graphical model supplemented by more detailed tabular description. UML sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.
When is a tabular specification used?
Used to supplement natural language. They're particularly useful when you have to define a number of possible alternative courses of action.