COEN 286: Software Quality Assurance and Testing -- fall, 2001

COEN 129 Project Description

Prof. John Noll

Santa Clara University

Mon Oct 8 16:07:36 2001


Important: clarifications.

1. Overview

The goal of the project is to develop a simple budget analysis program that will take as input a budget description, in the form of a list of budget categories and amounts, and and display a chart showing the budgeted amount for each category in each month.

2. Requirements

2.1 Input

Budget Items

Budget items are specified in a budget file, one item per line. Each line has the following format:

type description amount

The description is a string describing the item. The string may have spaces if it is enclosed in quotation marks. The amount is either a number or an expression. Expressions with spaces must be quoted.

The type field may be one of the following

Fixed

A fixed budget item is a one-time expense that occurs on a specific date. The type field is the date on which the expense occurs. Example:

11/13/00 car-insurance 678
5/01/01 "supplemental property tax" 560

Recurring

A recurring budget item is an expense that occurs in the same month every year. The type field is the month in which the expense occurs.

Apr "income tax" 1500
december skiing  (15*44)

Quarterly,Monthly,Weekly

As the name implies, these items occur regularly throughout the year. The type is a single letter indicating the frequency of the expense:

Q "estimated taxes" 700
M rent 1500
W coffee (7*3)

Subtotal

The keyword ``SUB'' in type field indicates a subtotal of all items since the last SUB should be calculated and displayed.

SUB taxes

Total

The keyword ``TOT'' in the type field indicates the current value of a running total of all items encountered so far should be displayed:

TOT "One time expenses"

Control Data

The program should accept the following control parameters:

Start date.

This parameter specifies when the display should begin. Budget items allocated before the Start Date should not be included in the calculations.

End date.

This parameter specifies when the display should end. Budget items allocated after the End Date should not be included in the calculations.

The Use Cases describe how the budget system is used.

2.2 Output

The budget should be displayed as a matrix. Each row displays one budget item; the columns represent months in the display range. Thus, each cell represents the amount of the budget item allocated to the corresponding month.

3. Deliverables

3.1 Milestones

  1. Use Cases (January 23 or 25)
  2. Conceptual Model (January 30 or February 1)
  3. System Sequence Diagram (February 6 or 8)
  4. Contracts (February 12 or 15)
  5. Interaction Diagrams (February 20 or 22)
  6. Design Class Specifications (February 27 or March 1)
  7. Implementation (March 13 or 15)

3.2 Format

All design documents are to be created using Rational Rose.

Implementation must be done in C++ or Java to run on a Unix (HP-UX or Solaris) platform.