CS 477 Lecture Notes

Week Six, Thursday: Informal Specification

First Team Presentations

Each team will have 5 minutes to present the project status. Two minutes will be provided to answer questions from the audience, leaving a one minute "guard band" between presentations.

Your first team presentation should utilize overhead projector slides (transparencies) and should cover:

This is a lot of material to cover in five minutes, but you can do it if you practice with your team to hone your presentation. Don't waste time but get to the essential information. At four minutes you will be given a one-minute warning, and at five minutes you will be cut off.

You must turn in a paper copy of your slide presentation and a paper copy of your requirements document (if you are using a conventional approach) or a revised OCD (if you are using MBASE).

Agenda:

  1. 3:40 PM: Team A.

  2. 3:48 PM: Team B.

  3. 3:56 PM: Team C.

  4. 4:04 PM: Team D.

  5. 4:12 PM: Team E.

  6. 4:20 PM: Team F.

  7. 4:28 PM: Team G.

  8. 4:36 PM: Team H.

Specification Phase Overview

The specification is the next step (after requirements) in the refinement of the project conceptualization. The specification should reflect the requirements, but be less ambiguous and more complete. An informal specification document is written from the developer's point of view, where the requirements document is written from the customer's point of view. As a contract, the specification document should also have a greater degree of formality.

Specification Example

This is an example of an informal specification. Suppose you are a software engineer working for Rick's Universal Robots company. Further suppose that RUR wants to introduce a new domestic robot, the Robo-Butler. And suppose that the mechanical design of the robot has been fairly well established and that it is up to you to produce the software for the robot.

The target customer group for Robo-Butler is a typical upper-middle-class house-holder with two Infinitis in his driveway and fifty thousand dollars burning a hole in his pocket. He wants a household robot to impress his friends with.

You decide to hold some sensing sessions with typical members of the target customer group in order to establish requirements. Here are the results of the sensing sessions:

Requirements

Specification

A number has been assigned to each general and specific requirement identified above. The list of specifications is structured accordingly.
2.1 Butler Functionality
The primary functionality of butler behavior will require a speech recognition module, a vision module with face recognition, a voice module with speech synthesis, and appropriate locomotion and manipulation modules.
2.1.1 Guest Recognition
The vision system shall utilize an appropriate face recognition technology and shall allow the customer to easily load images of his friends for training. The recognition shall be 98 percent accurate under typical operating conditions under typical exterior or interior lighting, day or night (except in the case of guests arriving for a Halloween party).
2.1.2 Guest Greeting
The Robo-Butler, upon recognizing a guest or group of guests who are all on the invitation or general access list, shall open the door for them and politely greet each by name with an appropriate welcome (such as "How very pleasant to see you again, Ms. Calvin, won't you please come in?).
2.1.3 Guest Posession Assistance
As the guests enter the house, the Robo-Butler shall assist the guests with their coats, hats, and other posessions which they wish the Robo-Butler to store for them. Robo-Butler shall extend his hand, palm up, to each guest in turn and say "May I take your coat (and hat)?" as appropriate. If a guest should say, for example "Yes, please, and will you also take my cane?" then the Robo-Butler should accomodate the request and say "Yes, certainly."

The robot should place the collected guest posessions in the hall closet in an appropriate manner, planning the best process for doing so (there are a lot of implicit specifications in this one, and they need to be further broken out).

2.1.4 Guest Escort
The Robo-Butler should say "please come with me" or other expression as appropriate and lead the way to the host (customer-owner). If there should be some event, such as a guest saying "just a minute while I adjust my hair in the hall mirror," for example, the robot should wait appropriately and then continue escorting the guest(s).
2.1.5 Drink Fetching
Robo-Butler should not offer drinks to the guests, but should respond to requests such as "will you please bring me a glass of white wine?" This requires knowledge of various drinks and how to assemble them, and how to carry them without spilling. A tray will be be used to carry drinks as appropriate. The robot should also respond appropriately to requests by the host for drinks for his guests.
2.1.6 Glass and Plate Bussing
The Robo-Butler, when not answering the door or performing drink fetching duties, should look around and be on the alert for empty glasses not being held by guests and empty or abandoned-looking plates not being used by guests. When these items are identified, Robo-Butler should take them to the kitchen, using a tray as necessary, and put them on empty counter space in an efficient way.
2.1.7 Ashtray Emptying
When not otherwise occupied, Robo-Butler shall keep an eye out for ashtrays more than one third full (of cigarette butts), and shall empty them into an appropriate fire-proof receptical.
2.2 Safety
All behavior modules shall be proven correct to preclude unexpected behavior. The Robo-Butler shall be incapable of exerting more than 40 pounds force within two feet of a human, and shall be incabable of moving any component at a greater speed than two feet per second within two feet of a human.
2.2.1 Benign Behavior
The Robo-Butler shall have a distinctly "robotic" motion so as not to startle humans with potential false recognition, yet the robot shall have a butler-like demeanor so as to immediately convey his benign function.
2.3 Security
The Robot-Butler shall preclude the entrance of uninvited guests.
2.3.1 Unrecognized Person
Upon the non-recognition of a person at the door, the robot shall not unlock or open the door, but shall immediately summon or go to the customer-owner.
2.4 Extensibility
The software shall allow for the "easy" extensibility as defined below:
2.4.1 Dishwashing
Future dishwashing capability shall be allowed for. The vision and manipulation modules shall be replaceable, or otherwise upgradable or adaptable.
2.4.2 Vacuuming
Future vacuum cleaning capability shall be allowed for. The vision and manipulation modules shall be replaceable, or otherwise upgradable or adaptable.


This page established February 19, 1998; last updated January 17, 2000.