Project 1: Digital Jukebox simulation


Due dates

Phase 1: Saturday, Jan. 26th, 2008 Midnight (No Late Submissions)
Phase 2: Friday, Feb. 1st, 2008 Midnight (No Late Submissions)
Phase 3: Wednesday, Feb. 6th, Midnight

Grade breakdown

(10 pts) Phase 1 submission

(5 pts) Phase 2 checkpoint


(85 pts) Phase 3 submission

Description

You are to make a digital jukebox simulator. You are to simulate the functionality of a jukebox, but not actually get it to play any music (unless you want to do it). The goal of the player is for you to have it menu driven. Each action will change a state under the hood and you can always view what is really going on at any moment. The specifications are as listed. You will not have to make everything be time driven either. So an example run of the program would look like this:

	Welcome to Jasper AudioPlayer v.1.0
	1. View current track information
	2. Advance disc
	3. Rewind disc
	4. Advance track in current disc
	5. Rewind track in current disc
	6. List loaded discs
	7. List tracks in current disc
	8. Quit
	
	What would you like to do? 1
	
	You are currently playing:
	Eye of the Tiger, by Survivor
	Released Jan. 1st, 1982
	Disc: Eye of the Tiger, Rocky III
    Duration: --:--
    blah blah (more information that I can't make up)
	
	Welcome to Jasper AudioPlayer v.1.0
	1. View current track information
	2. Advance disc
	3. Rewind disc
	4. Advance track in current disc
	5. Rewind track in current disc
	6. List loaded discs
	7. List tracks in current disc
	8. Quit
	
	What would you like to do? 2
	
	You have now advanced to disc 2: DJ Tiesto - Magick 6

You are to pass this project through 3 phases:

  1. Design - Generate an UML describing the structure of the software and produce a specification documentation that describes the functionalities that the software will have. You are to also provide a timetable of when do you expect certain things to be done, plan it as if you are going to do it... and stick to it!
  2. Progress - You are to submit the progress you have and state whether you are ontime or not for each individual module that you have specified in your timetable.
  3. Final submission - You are to submit the final implementation and documentation. The documentation must have a user manual as well as a functionality specification (specification of the final product, not the design).

Additional thing to keep in mind is that you MUST have an appointment with me in the week of Jan. 28th before the second phase is due for design consultation. Either online or in during my office hours Wednesdays or you will not receive grade for the first phase.

Specifications

You need the following set of things (each can represent many classes):

Phase 1 Requirements

What to hand in:

UML has been discussed in class. The functional requirements documentation looks something like this:

Player Functionality:

  1. View current song
  2. Advance track
  3. ....

View current song
This will show all information about the song that is currently been played. The information will include ... blah blah blah ... The function will have no side effect other than displaying into the console the information asked.

---------OR-----------

View current song
Requirement: None
Purpose: To show the current song playing. The information shown will be ... blah blah blah
Side Effect: None

The time table will be outline style with a date next to what will be done. Please be realistic and keep in mind that this will have to be done by midnight 2/6/2008.

Phase 2 Requirements

What to hand in:

Phase 3 Requirements

What to hand in:

Everything should have been explained to here except the user manual. I expect all code to be commented along side all the other documentations. The user manual should just include: