Requirements
New Version for Fall 2014
From the point of view of the requirements development team, e.g. Robertson & Robertson:
From the point of view of the software developer, e.g. Bruegge and DuToit:

or put another way, in this excerpt from the SE Process Flow Diagram:
- Four types of scenarios:
- As-is scenarios describe the current situation.
- Visionary scenarios describe a future system.
- Evaluation scenarios describe user tasks to be used to evaluate the system.
- Training scenarios are used for tutorials and other training aids.
The following aspects of use cases are detailed during refinement:
- The elements that are manipulated by the system are detailed.
- The low-level sequence of interactions between the actor and the system are specified.
- Access rights ( to initiate scenarios ) are specified
- Missing exceptions are identified and their handling specified.
- Common functionality among use cases are factored out
Communication relationships between actors and use cases
Includes relationships between use cases
Extends relationships between use cases
Includes versus extends relationships
- Use include relationships to factor out commonly occurring normal activities that are common to multiple use-cases. Included use-cases are often capable of standing alone as use-cases, and are usually invoked from other use-cases at predictable points. Example: Printing.
- Use extend relationships to document unusual, exceptional, error, and rarely occurring use-cases. Extend use-cases generally cannot stand alone, and in general could be invoked from any point in a number of use cases. Example: Power failure.

The following table is from Robertson and Robertson
- Elephant projects are big and heavy, with a lot of inertia. They require a lot of people, a lot of time, and have to be developed slowly and carefully. Once they are completed, they are likely to be used for years and years.
- Rabbit projects are small, quick, and respond quickly to change. They are typically developed by a few people in a short time frame, and may not be kept very long once they are complete.
- Horse projects fall between elephants and rabbits.They are sure, steady, and typically take a small group of developers a little while to develop. Once they are built they are kept for a significant time period
- Business events are any sort of external stimulus that the business ( or the system ) must respond to, e.g. initiating actions in use-cases. Robertson and Robertson advocate partitioning requirements according to the business use-case from which they were derived, just for organizational purposes.


4.6.1 - Initial Problem Statement
4.6.2 - Identifying Actors and Scenarios
4.6.3 - Identifying Use Cases
4.6.4 - Refining Use Cases and Identifying Relationships4.6.5 - Identifying Nonfunctional Requirements
4.6.5 - Identifying Nonfunctional Requirements