User Requirements

Before we actually start to build a system right, we need to ensure that we actually build the right system. This is part of systems development is called requirements engineering.

Learning Goals

The learning goals specific for this week are the following:

  • Understand how critical requirements are for the development process.
  • Go through a design thinking workshop to elaborate requirements.
  • Write a Vision and Scope document.
  • Appreciate the value of thinking in terms of use cases.
  • Creating use case overview diagrams and use case tables.
  • Sorting use cases according to their level of detail.

Preparation

Read carefully through the following book chapters from the compendium:

Optionally, read through the following chapter from the compendium: (You will need to create such a document as part of the semester project, but can also take a look at it then.)

Use Case Levels

You should read through the following material before the team activity, but you don't have to remember it for the RAT.

Not all use cases are at the same level. Alistair Cockburn proposes in his book Writing Effective Use Cases to sort them according to the levels inspired by a horizon, as shown in the table below.

Summary Goals Cloud
  • Involve multiple user goals.
  • Execute over hours, days, or weeks.
  • Even large systems only have about five use cases at this level.
  • Provide context for the sea-level use cases.
  • Example: Offer Student Loans
Kite
  • Most of the points from above, but with a bit more details.
  • Example: Check Student Loan Credibility
User Goals Sea-level
  • Greatest interest.
  • Example: Register Student Information
Subfunctions Fish
  • Relate to sea-level use cases.
  • Example: Check Submitted Formular
Clam
  • Clams are so low-level that you should not even write them down as separate use cases, but integrate them into another, higher-level use case.
  • Example: Enter Student Name

This hierarchy distinguished use cases at three levels:

Good Use Cases at Sea-Level

A good use case specification requires good use cases especially at the sea-level. Now you may also appreciate the analogy with the sky, the sea-level and the water. The ones in the sky are a bit fluffy and abstract, but provide the necessary goals. The ones under water are necessary, but you can get lost in them. And the ones you should focus on are at the sea-level. Good guidelines for use cases at the sea-level are the following:

What should you do when use cases are too high-level:

If use cases are too low-level:

Optional Preparation

Have a look at the following videos that show how to create deployment diagrams.