Assignments | Course Home | Documentation | Linux Lab Hours | Schedule & Lecture Notes | Submit

Saint Louis University

Computer Science 290
Object-Oriented Software Design

Michael Goldwasser

Fall 2011

Dept. of Math & Computer Science

Assignment 04

System Design: Huffman Compression Learning Tools

Contents:


Overview

Topic: Huffman Compression Learning Tools
Related Reading: Ch. 2 of text
Due: Tuesday, 15 November 2011, 2:15pm

The goal of this assignment is to work in teams to do a complete an initial high-level design for a software system to support learning about huffman compression. We will use techniques similar to those used in Chapter 2 of the text to develop the Voice Mail System design.


Collaboration Policy

For this assignment, you are allowed to work in groups of three (if you are having trouble forming a group of three, please contact me as soon as possible).

Please make sure you adhere to the policies on academic integrity in this regard.


Artifacts to Submit

Please submit the following artifacts of your design. They may be formatted electronically, or submitted manually.


Requirements Analysis and Use Cases

An initial draft of the system requirements was provided as lecture notes. There are many details in specifying the user interface for the overall software. We would like for you to focus more narrowly on the following two use cases.

Load Frequency Data

  1. User makes menu selection of Load --> Frequency Data
  2. Software displays in foreground an editable TextArea, Submit and Cancel buttons
  3. User enters (or pastes) character frequency data into textbox using a format such as
    a 57
    b 17
    c 5
          
  4. User presses Submit button.
  5. Software hides the textarea and buttons and returns to the "standard" display mode, showing the complete tree, the code book, and the table of frequencies.
  6. Software activates the Tools --> Animate Huffman Algorithm menu option.

Animate Huffman Algorithm

  1. User makes menu selection of Tools --> Animate Huffman Algorithm
    (note that this option will only be active when the current context is based upon a code built from frequency data)
  2. Software devotes primary foreground area to a new component that displays an initial forest of trivial trees, one for each original character of the set, sorted from left to right in order of non-increasing frequency count.
  3. Bottom panel of display provides buttons:
    << to return to initial state of tree construction
    < to back up one previous step in tree construction
    > to animate one forward step of the construction
    >> to jump to the final tree configuration
    Close to close the animation panel and return back to the primary display state
  4. User interacts with buttons, with semantics described in previous table, until the Close button is pressed.
  5. System returns to "standard" display mode, showing the complete tree, the code book, and a table of character frequencies.

Michael Goldwasser
CSCI 290, Fall 2011
Last modified: Tuesday, 08 November 2011
Assignments | Course Home | Documentation | Linux Lab Hours | Schedule & Lecture Notes | Submit