CS 486 - Senior Capstone Design

Use Case Guidelines and Samples

Use Cases

Use Cases, also called "user scenarios" or "user stories", can provide a useful way of documenting the designers conceptions of what users will do with a planned software application and how it will get done, i.e., what the users does to accomplish some task, and how the application will respond.

Use Cases are organized around the tasks that end-users want to accomplish with the application. To help the user achieve a specific goal, the software presents a series of tasks and screens to be completed; the use case for a particular user goal describes:

A series of Use Cases is created, one for each principal goal that users have in utilizing the software. This approach helps to ensure that:

Example: Development of a script editor.

In Spring2002, the Enscrypt team was tasked with developing a script editor for automated production facility machinery. The use case below is one of a set of about 20 Enscrypt developed to describe the functional behavior of their system. I have taken the liberty of editing and improving their version slightly to better illustrate what is needed.

Use Case 9: Delete A SSL Function From A Synchronous SSL Script

Scenario: Joe has been using the Enscrypt system to edit his code, and has just decided that he would like to delete a SSL function from a synchronous SSL Script.
Actors: Joe, Automation Specialist. Joe has moderate command of the SSL language and basic experience using ENSCRYPT tools.
User Steps and system responses:

  1. Joe selects a function from the Available Function list box of a currently open Synchronous SSL Script in the Synchronous Script Creator window in Figure 7.
    Explanation: Joe will click on the function name in order to select it. The function name will be highlighted in the list box.
  2. Joe clicks on the Remove button.
    Explanation: The selected function will be removed from the List of Used Functions and also from the file. Joe will be able to see the updated Synchronous SSL Script in the SSL Script File text box.
  3. When Joe has finished deleting the function, he clicks on the Save button located in the bottom right hand corner of the window.
    Explanation: A Save window will appear, prompting Joe to enter in a name of the file.
  4. Joe enters a valid name and clicks on the OK button within the Save window.
    Explanation: The program will capture the data in the Synchronous Script File text box and save it to the specified file name, which Joe created. The save window will disappear and control will transfer back to the Synchronous Script Creator.
  5. To Exit, Joe clicks on the Close button in the bottom right hand corner.
    Explanation: A check will be performed to make sure that the data inside the Synchronous Script File text box has been saved. The file has been saved, so the current window disappears and control returns back to the opening screen.
  6. Joe clicks on the X button in the ENSCRYPT- Intel Script Editor window.
    Explanation: The program will completely shut down.

System Behavior: The main architectural components in play here are the User Interface Generator (UIG) module and the Scripting Manager (SM). The UIG handles display including the workspace, buttons and menus. To create the function list box contents, the UIG talks to the SM, which knows about all defined functions and parameters.

The example above comprises one complete Use Case. As you can see, if gives a very good "feel" for how the system behaves, i.e., how all the discrete functionality you listed out in earlier sections of the functional specification actually fits into the everyday life of the end-users. This makes Use Cases an excellent tool for exposing shortcomings in the spec, and potential misunderstandings about systems function. Which is good, because the functional specification is the last chance to get this straight between you and the client --- after this, any changes will require negotiating a change order. While not too stressful in the Capstone world, this can be quite arduous in the real world where it often involves deciding how the change affects the cost of the final product, i.e., how much more/less the client is going to pay you for it. Not fun.