| Project #2 (iTunesJr) | CMSC 132 |
| Due Dates: Design: Tuesday Feb 14, 6:00 pm Implementation: Friday Feb 17, 6:00 pm |
Object-Oriented Programming II |
| Type of Homework: Closed | Spring 2006 |
Objective
This homework will give you practice designing object-oriented software solutions using UML.
This homework cover the following topics:
In case you have not already noticed, this is Closed homework. You must read the Open/Closed policy before working on this project. The policy can be found at policy. Keep in mind that for this project you only have two release tokens in the submit server. Also this project has two deadlines: one for the UML diagram and one for the actual implementation.
Overview
For this project you will develop and implement a design for a system (we call it itunesJr) that keeps tracks of songs and podcasts. The first part of your project consists of submitting an UML class diagram representing the system design. The second part consists of implementing your design. Each part has a separate deadline.
Your project will graded as follows:
Design (UML class diagram ) - 35%
Tests - 35% (public and release tests)
Test Coverage - 15% (Based on StudentTests.java)
Style - 15%
Keep in mind that your implementation must match your design, otherwise you will lose most of the implementation points.
We encourage you to start working on this project as soon as possible, as there are a lot of details that can not be completely specified in this description. The earlier you start, the sooner you will get the feedback you need to complete this assignment.
UML Class Diagram
Submit a UML class diagram by creating a pdf document named uml.pdf. The deadline to submit this document is Tuesday Feb 14, 6:00 pm. Submit your design using the submit server (not the project submit button) by selecting the entry P2-UML Design. Keep in mind that there is no late period to submit your design. You must submit by Feb 14 otherwise you will receive no credit for your design. You do not need to use any UML tool (e.g., http://argouml.tigris.org/) to develop your UML. If you decide to use your favorite word processor or drawing application that is absolutely fine. No extra credit will be provided for using an uml design tool.
The submit server allows you to upload zip files. Please create a zip file with your uml.pdf file and upload the zip file.
Specifications
For this project you will implement a database system that keeps track of information about songs and podcasts. In addition, the system will support a set of queries dealing with those songs and podcasts. Notice that the actual audio files (also refer to as media files) are not handled by the database system. The system keeps track of the names of the audio files which can then be used by a media player to actually play the audio file. You do not need to worry about how play the audio files.
For this project you get to decide the classes and/or interfaces you want to define and use. However, there is one class you must implement. This class is called MediaManagerSystem and it implements the MediaManager interface. Through this MediaManagerSystem class, we will be able to interact with the database system. The classes and/or interfaces you will design, support the functionality specified by the MediaManager interface. Documentation for this interface can be found at MediaManager interface javadoc documentation.
The project's code distribution is available by checking out the project named p2. In the distribution you will find a package named iTunesJr which contains the public tests, and the MediaManager interface.
Defining a Song
For this project, a song is associated with the following information:
Defining a Podcast
For this project, a podcast is an entity that contains information about media files associated with a web site (url). A podcast is associated with the following information:
Assumptions
Requirements
Specific Requirements
Style Requirements
Honor Section Requirements
There is no additional requirements for the honor section.
Submission
Submit your project using the submit project option associated with Eclipse. Do not wait until the day before the project is due to check whether you can submit your project.
Academic Integrity
Please make sure you read the academic integrity section of the syllabus so you understand what is permissible in our programming projects. We want to remind you that we check your project against other students' projects and any case of academic dishonesty will be referred to the University's Office of Judicial Programs.