Assignments |
Course Home |
Documentation |
Linux Lab Hours |
Schedule & Lecture Notes |
Submit
|
Computer Science 290
Object-Oriented Software Design
Fall 2011 |
|
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.
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.
-
A UML diagram that provides a summary of the relationships
among classes (akin to Figure 16 on page 71 of Ch. 2).
-
For each identified class, give an overview describing:
-
The high-level responsibilities of the class
-
Other classes upon which this class will depend/collaborate
(in essence, give a slightly more organized summary of what
might have been on the CRC code for each class)
-
Provide a sequence diagram for the two use-cases outlined in the
following section, making sure to be clear about the interface
between objects of different classes.
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
-
User makes menu selection of Load --> Frequency Data
-
Software displays in foreground an editable TextArea, Submit and Cancel buttons
-
User enters (or pastes) character frequency data into textbox using a format
such as
a 57
b 17
c 5
-
User presses Submit button.
-
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.
-
Software activates the
Tools --> Animate Huffman Algorithm menu option.
Animate Huffman Algorithm
-
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)
-
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.
-
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
|
-
User interacts with buttons, with semantics described in
previous table, until the Close button is
pressed.
-
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