ICS52, Winter, 2007

Official Requirements Specification -- February 12, 2007
Still under development! Changes since Feb. 12 in blue.


1 Introduction

This document specifies the Official Requirements for the AutoMenu system, and should serve as the basis for a further development of the system. The AutoMenu system enables students at Bayport High School to order school lunches in advance. It also provides a variety of management tools for Belly's, the private company that serves lunch on campus.

All information was accurate at the time of writing. This document details XX discrete, atomic requirements. Each is labeled with an identifier in boldface type (e.g. A-1) for easy reference elsewhere in this document and in subsequent system development. In places where the user interface is incompletely specified, the powers that be are relying on the implementers to devise a user interface that is pleasing and easy to use and is in accordance with all listed requirements.

This document contains the following Sections:

2) User Requirements Definition - This section is designed for the non-technical reader. It describes the major features of the system and the rationale for each one.

3) System Requirements Specification - This section identifies the objects that make up the system and inter-relationships between them. It has been written so as to provide enough detail for the technical design to be produced.

4) Constraints and Non-functional Requirements - This sections contains the current constraints on the system.

5) Implementation Phases

6) Future Directions and Expected Changes - Although speculative, this section is a key way of influencing the product currently being developed so that it can better respond to situations in the future.


2 User Requirements Definition

Bayport High School has approximately 1,000 students, and every day about 750 of those students buy lunch on campus from Belly's. The AutoMenu system will greatly reduce the amount of money that changes hands every day, and will reduce waste by providing Belly's with more accurate information in advance about what meal selections the students want.

The key features of the AutoMenu system are:

The AutoMenu system is designed to operate independently of other computer information systems at Bayport High School.


3 System Requirements Specification

3.1 Overall Operation

The AutoMenu system supports the following typical cycle of events.

  1. Belly's staff enters into AutoMenu a wide variety of potential menu selections. Each menu selection includes of a name, a price, and a list of ingredients.
  2. About the middle of each month, Belly's staff selects specific menu items to offer each school day of the upcoming month.
  3. Students select a menu item for each day in the upcoming month that they want to buy lunch from Belly's.
  4. Belly's staff uses the student orders to determine the required amount of inventory.
All information entered in AutoMenu is stored on a hard disk (D-1). Information about past months is kept on disk for at least three months (D-2).

3.2 Menu Items and Monthly Menus

The AutoMenu system stores information about every menu item that Belly's serves, except for small items that are never ordered in advance, such as candy and cookies.

AutoMenu stores the following information about each menu item (M-1):

A monthly menu consists of the following, for each school day of the month (M-2):

The status of the set of menu choices for a month can be one of the following: closed, for a month that is completely passed; current, for the current month when menu choices cannot be modified; provisional, for future months when the menu is not yet visible to students; open, for the upcoming month when the menu is available for students to view and select from; locked, for the upcoming month when students can no longer modify their choices. (M-3)

AutoMenu keeps a list of ingredients that menu items are made of. For each ingredient, AutoMenu stores (M-4):

3.3 Food Inventory

An important goal of the AutoMenu system is to enable Belly's staff to purchase the correct amount of ingredients to prepare the pre-sold lunches. AutoMenu has a report called the Inventory Status Report (I-1). This report shows, for each ingredient in the list of ingredients, the amount of the ingredient that will be needed for all ordered meals in the upcoming month (or in any time period, as specified by the user). The report also compares that needed amount to the amount in stock and the amount ordered, and flags ingredients when the required amount is greater.

3.4 Calendar

AutoMenu has, for the current school year, a calendar which specifies the days of the week for each month, and which days are school days. Belly's is only open on school days. The calendar also notes the last day on which menu selections for the upcoming month can be made without a late penalty (usually the 20th). (C-1)

AutoMenu uses the computer system to find the current date. However, Automenu's current date can also be set by a Belly's staff member (C-2).

3.5 Students

Students interact with AutoMenu by ordering lunches, by paying for lunches in advance, and by picking up their lunches.

AutoMenu stores the following information about each student (S-1):

Once the menu for the upcoming month is open, a student can select neither or one of the two choices for entree and desert, for every day in the upcoming month (S-2). Choices can be changed as long as the menu is open. After the menu is locked, and before the first of the upcoming month, the student must pay for the menu choices. AutoMenu does not handle billing, but when the payment is made the student's balance due is adjusted.

When the student makes menu choice selections, the system computes and displays the total price for the month, computed as the total cost of all entree and dessert selections, times a tax of 7.5% (the tax rate may change in the future) (S-3). If a student orders more than ten entrees for a month, then the price of all entrees after the tenth one is reduced by 10% (rounded to the nearest penny) (S-4). AutoMenu also displays the average number of calories for all meals in one month that the student has ordered (S-5). When the menu is locked, the total cost is added to the student's balance due (S-6).

If a student does not pay the balance due for the upcoming month by the first of the upcoming month, then that amount becomes past due. A student with a past due balance cannot enter menu selections for the upcoming month, but the student is allowed to pick up already ordered (but not yet paid for) menu choices (S-7).

3.6 Belly's Staff

Each person on Belly's staff who interacts with AutoMenu has a unique AutoMenu ID and four digit PIN (B-1). Certain capabilities are performed by Belly's staff members and are not available to students (B-1):

3.7 Accessing AutoMenu through the Computer

AutoMenu functionality is accessed through a computer GUI. The GUI will be based on one or more standard operating system windows and dialog boxes, utilizing menus, buttons, hot keys, and other standard user interface elements (S-13). It should be organized in an intuitive and easy to use manner.

Belly's staff uses the GUI to access and perform the capabilities described in Section 3.6.

Students use the GUI to do the following:

A student can only see and modify information pertaining to his or her own AutoMenu account.

3.8 Conversion of existing data

Belly's currently has some information related to AutoMenu in a DF-2007 database. The exact format of this database has not been determined at the time of writing, but will be available shortly. The database includes information about ingredients, current inventory, and menu items(E-1).


4 Constraints and Non-functional Requirements


5 Implementation Phases

An operational system is desired before Finals Week, March, 2007.

The following options may be omitted from the first phase if required to meet the deadline:

The first phase system will run on a single computer.


6 Future Directions and Expected Changes


7 Acceptance Test Plan

Part of the Acceptance test plan will be to insure that functionality (S-4) is correctly implemented: ordering more than 10 meals in a month results in a 10% discount on subsequent meals.

To test (S-4), first ensure that the following menu items are entered into AutoMenu:

Chicken Noodle Soup	Hot, chunky soup and a biscuit	$4.50	entree
*	chicken	2.5	ounce
*	chicken-broth	10	ounce
*	noodles	3	ounce
*	carrots	2	ounce
Turkey Mush Risotto	Delectable risotto with turkey, mushrooms, and Parmigiano cheese	$4.75	entree
*	turkey	3	ounce
*	mushrooms	1	ounce
*	onion	0.5	ounce
*	rice	2	ounce
*	parmesan-cheese	1.25	ounce
BBQ Beef Sandwich	Prime beef smothered with spicy BBQ sauce, on a hearty bun	$5.15	entree
*	beef	4	ounce
*	bbq-sauce	1.5	ounce
*	bun	1	piece
There must also be a student entered named George Washington, with AutoMenuID WashinG and no orders for the upcoming month. Each column in the following table shows a different scenario of meal orders made by George Washington, with the correct resulting price:
Items ordered for the first 14 school days of the month: Chicken Noodle Soup
Chicken Noodle Soup
(no order)
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
(no order)
Chicken Noodle Soup
(no order)
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
Turkey Mush Risotto
BBQ Beef Sandwich
(no order)
Chicken Noodle Soup
(no order)
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
(no order)
Chicken Noodle Soup
(no order)
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
Chicken Noodle Soup
BBQ Beef Sandwich
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
BBQ Beef Sandwich
Chicken Noodle Soup
Turkey Mush Risotto
Turkey Mush Risotto
BBQ Beef Sandwich
Chicken Noodle Soup
Turkey Mush Risotto
BBQ Beef Sandwich
Correct total with discount if any: $51.69 $47.70 $65.30
Total of items without discount: $52.20 $47.70 $67.25
Comment: Discount on one item. 10 meals; no discount. Discount on last four meals.


8 Glossary