Requirements Elicitation

References:

  1. Bernd Bruegge and Allen H. Dutoit, "Object-Oriented Software Engineering", Third Edition, Chapter 4

4.1 - Introduction: Usability Examples

Examples of cases where systems failed because of lack of communicaitons between different groups working on the project:

4.2 - An Overview of Requirements Elicitation and Analysis

Requirements elicitaiton and analysis involves first collecting as many potential requirements as possible, then refining them to form a complete, concise and consistent set of high-quality functional and non-functional requirements, and then analyzing them to start forming a preliminary model of the system to be developed. Functional requirements are often modeled wih the aid of use-cases and scenarios, while the analysis step starts to identify some of the candidate objects / classes that will be needed in the system.

4.3 - Requirements Elicitation Concepts

4.3.1 - Functional Requirements

Functional requirement describe the things that the system must DO. They can often be derived from "stories" about how the system will be used, which may be in the form of scenarios, use-cases, or just a simple description of operations such as that shown here:

4.3.2 - Nonfunctional Requirements

Nonfunctional requirements are other properties or characteristics that the system must have, other than its basic functionality. Because non-functional requirements are generally more difficult to identify, checklists of some kind are often used to make sure that developers consider all possibilities and do not leave out anything important. For example:

4.3.3 - Completeness, Consistency, Clarity, and Correctness

4.3.4 - Realism, Verifiability, and Traceability

4.3.5 - Greenfield Engineering, Reengineering, and Interface Engineering

4.4 - Requirements Elicitation activities

4.4.1 - Identifying Actors

4.4.2 - Identifying Scenarios

4.4.3 - Identifying Use Cases

4.4.4 - Refining Use Cases

The following aspects of use cases are detailed during refinement:

4.4.5 - Identifying Relationships among Actors and Use Cases

Communication relationships between actors and use cases

Extend relationships between use cases

Include relationships between use cases

Extend versus include relationships

4.4.6 - Identifying Initial Analysis Objects

4.4.7 - Identifying Nonfunctional Requirements

4.5 - Managing Requirements Elicitation

4.5.1 - Negotiating Specifications with Clients: Joint Application Design

4.5.2 - Maintaining Traceability

4.5.3 - Documenting Requirements Elicitation

4.6 - ARENA Case Study

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

4.6.6 Lessons Learned

Supplemental Material

The following material is excerpted from "Mastering the Requirements Process", 2nd edition, by Robertson and Robertson. It is a required textbook when I teach CS 442, Software Engineering II.

See also the Software Engineering Projcet Report Template developed for CS 440 at UIC, part II