Requirements Formulation

Feature Lists

Vision Statements

For larger projects you may not even be able to start with concrete features; at least start with a vision statement: On your projects you get to write a vision statement and a feature/requirements list.

Use-cases

Definition A use-case is a scenario describing a series of events involving actors which describes one functionality the system should have.

Example use cases: ATM Machine

Here are some very simple use cases to give you the idea of the structure.

Login
Primary Actor: customer
Secondary Actor: bank
Goal: customer gets access to different account options
Main Path

  1. insert card
  2. card id read; prompt and accept PIN input from user
  3. if correct, display list of choices deposit/withdraw/..


Withdrawl
Primary Actor: customer
Secondary Actor: bank
Goal: get money from machine
Main Path

  1. user presses withdrawl choice
  2. prompt for checking/savings withdrawl and user indicates
  3. money entered
  4. transaction processed and authorized, money is dispensed, card and receipt returned.

Alternate Path

Finding the right use cases

The Format for Writing Use Cases

Many formats are good. We are going to use the format followed by the book, in particular the way they are defined on p. 562.

Examples of use-cases

Chapters 2-4 and 10 of HFOOA&D are filled with examples of use-cases and their refinement.

We will work through a larger example in class.

UML and Use-Cases

(We don't discuss the diagram syntax in these notes, see the Course UML Notes and references therein)

Use-case diagrams

UML supports a use-case diagram What use-case diagrams give you The HFOOA&D book likes use-case diagrams.

Activity Diagrams for Individual Use Cases

We will draw an activity diagram for a use case in class.

Here is one example from a 2006 OOSE project for a multiplayer Tetris game on cellphones:

Initial Architecture Modeling aka The Big Break-Up

See the HFOOA&D book pp. 310-... and 501-...

Domain Analysis and Domain Modeling

(This topic is not in the HFOOA&D book)

Domain Modeling

Domain use cases

A domain use-case is a use-case which concerns a process happening in the "real world" which Domain use cases are, like domain modeling in general, used to better understand the application domain.

UML and domain modeling

We will develop a UML class diagram for a restaurant and a UML activity diagram for the process of taking an order in class

Requirements Capture for the Course Projects

We will cover what you will be doing for Iteration 1 of your projects.