View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Summer 2001 Project Milestones

Movie Editor Requirements

The semester project is to write a movie editor in Squeak. Users should be able to create a movie, modify it, and play it back. You can to visit Summer 2001 Media for Movies to get or share pictures, sounds, and MPEG's.

Milestone 1 should be done individually. The rest of the milestones should be done in groups of 2-4 – not 5, and not 1.

The last two milestones are intentionally not listed – if you make a flexible design which doesn't have much duplicated code, then they will be easy. If you have a rigid design or if you have a lot of duplicated code, then the final milestones will be much harder.

Each milestone is due in class on the due date. Turn in your code using the Summer 2001 Turnin Information, and, except for milestone 1, turn in things like design documentations as hard copy in class.

The final milestone should include all of the functionality from milestones 2 and onward. You will not be graded on previous requirements until the last milestone, except so far as new requirements rely on older ones to work. Probably, you should try to keep all functionality working, anyway, in order to make life easier at the end of the semester.

Milestone 1: Basic Programmatic Interface

The first milestone implements some basics in what will likely be a
core class in your final design. This milestone is the only one where
specific classes and methods are required – later, you must decide for yourself how to break down the requirements into methods. (In fact, you can totally redo these methods if you want to.)

From a workspace, "
Movie new
" should create a new
movie, which should respond to the following messages:

For example, the following code schedules three pictures in a movie
and then plays them:
| myMovie |
myMovie := Movie new.
myMovie addPictureFile: 'first.gif' at: 1@1 fromSeconds: 0 toSeconds: 10.
myMovie addPictureFile: 'second.gif' at: 1@1 fromSeconds: 10 toSeconds: 20.
myMovie addPictureFile: 'popup.gif' at: 50@50 fromSeconds: 15 toSeconds: 18.
myMovie play.

Milestone 2: Making Plans

Plan the code and the user interface through milestone 4. This
milestone is design only – there is no programming involved. Your
turnin should include:

Sample Team Templates


Clarifications on M2

  1. There are two scenarios to turn in: a user-interface scenario, and an analysis scenario.
  2. You've already seen a few analysis scenarios – when I asked people to step through the way that an alarm would get triggered the day we did AlarmClock designs, I was asking people to step through a scenario. Do the same thing for this project, except on paper. Really, you should be able to just write down a scenario you have already stepped through with CRC cards.
  3. The user interface scenario hasn't been talked about in class, but it shouldn't be hard. Just describe something a user might want to do, and then describe the sequence of activities they make along with the sequence of responses the system will make. For example:
    1. A user wants to edit a page on the coweb.
    2. The user navigates to the page they want to edit, as normal.
    3. The user hits the "edit" link.
    4. A new web page appears with a text area in the middle containing the page's text.
    5. The user modifies the text as desired.
    6. The user presses the "save" button.
    7. A new page appears with the modified text.

Milestone 3: User Interface and Progress Control

Functionally, this milestone should add the ability to pause, resume,
and rewind a movie. This milestone should also include a user
interface of your designe. The user interface should allow the
following operations:


Milestone 4: Media Types

This milestone adds several new kinds of media in addition to bitmap
images. The playback times of items may overlap!
Squeak supports all of these types directly, so your work is to make
them all function together in your movie editor. The new media types

The requirements for images extend to all of these media types. Notably:


Not-So-Secret Milestone 5: Saving to Disk has some info on this, as does (read the FAQ on automatic startup).

Along with your code, submit a sample movie file along with instructions for starting loading it on the platform of your choice.


Clarifications on M5

You do not need to use Windows media player to play your movie. You do not need to include any scripts or squeak images you need, in the movie file.

The one-file requirement simply means that your movie editor's files should work the same way MS Word's files work. If you create a Word file with several pictures to it, and you save that file, then Word will create a single .DOC file containing all of your text and pictures for that document. If you give that single .DOC file to another person who has word, then they can simply double-click on the .DOC file and it will load.

On the other hand, if the person doesn't have Word (like your instructor!), then they won't be able to "play" the .DOC file. Instead, they must first purchase and install Word. Likewise for your system. Assume the target user has already downloaded (purchased?) and installed your movie viewer. Once they have the viewer, you should then be able to send them a new movie with just one file.

Check out Double-Clickable Movies, Step by Step for some ideas.

Super-Secret Milestone 6: Reflective Components

CLARIFICATION: the fancy buttons execute when the viewer clicks on them. Note that there are two users for the movie editor: the person creating a movie, and the person viewing a movie.

  1. 30 points - analysis, includid CRC cards
  2. 25 points - design, including UML class diagram
  3. 20 points - fancy buttons
    1. 6 points - UI allows adding, modifying, and remove them
    2. 9 points - the new buttons function during playback
    3. 5 points - the new buttons can be saved and loaded
  4. 5 points - loading script for a second platform
  5. 20 points - previous requirements
    1. 10 other media types: text, pictures, MIDI, WAV, MPEG
    2. 5 load/save mechanism
    3. 3 movies items stay synchronized during playback
    4. 2 loading script for the first platform

Links to this Page