Project Documentation (Group B3)
From SoftwarePractice.org
Contents |
Project Description
The Embedded Web Server for Media Control has been selected by Team B3 on account of its interesting and challenging appearance. Just how interesting and challenging (a.k.a. convoluted and difficult) it actually was has been experienced (recommendation: Don't require the JMF as part of the assessment guidelines next time!).
The project will be undertaken using the Miniature Unified Process methodology.
The final phase of the project was completed on 6 November, 2006 - two minutes before submission.
Inception
Key System Elements
A Remote Media Server that, when running, will allow a user to remotely control the playback of sound media files on the server's host using a standard Web Browser (such as Mozilla Firefox).
Stakeholders
- End-Users, typically those who for some reason desire remote media control via embedded web server.
- Network Administrators, who may view the running of potentially insecure network code on a host connected to their network to be a Bad Thing (hazardous to their workload).
- Program Developers (us).
- Maintenance Programmers (who have a vested interest in us doing it right the first time).
Risks
- Underdeveloped idea resulting from a development scope that's too narrow.
- Bloated and undeliverable project resulting from a development scope that's too wide.
- Loss of marks, money and time if project fails.
Elaboration
Requirements
- Accessible with nothing more than a web browser (IE, Firefox, Opera, Netscape - but not Mosaic).
- Features:
- Volume control
- Track sorting
- Compatibility with most common audio codecs (MID, WAV, MP3, WAV, AAC) as provided by the JMF.
- Compatibility with most common meta-tags (ID3 etc)
- Playlists
- Playlist manipulation
- Playlist save/restore
- Playlist/track repeat
- Playlist shuffle
- File Browsing
- User-Friendly
Usage Scenarios
- Starting the Server for the first time - Bob (a 22-year old salesman who is comfortable with technology) has just installed the program on his media computer. He starts the program file and watches as a window pops up with the server's address and instructions on how to connect. He follows these and is greeted by the program's user interface. He goes straight to browsing his music.
- Shutting down the server - Jenny (a 30-year old solicitor) wants the program to stop, but isn't sure how to do it. Acting on a hunch, she brings up the window that appeared when she started the server and sees a button marked QUIT. She clicks it, and is relieved to see the window disappear. When she refreshes the program's web page, it no longer exists.
- Single Track - Jill wants to play a music track that's stored on the media computer that's all the way on the other side of the room, but would rather not get up. She opens that computer's remote control in her laptop's web browser, finds the track she wants and clicks Play. All the way across the room, music begins to play.
- Creating a Playlist - Bob wants to queue several songs to play one after the other. He finds the songs he wants and queues them into a playlist.
- Saving a Playlist - Jenny has just finished compiling a mood playlist. However, she's not really in the mood for it right now so she decides to save it for later. She calls it 'Moodful' and saves it, ready for the next time she's in that mood.
- Restoring a Playlist - Jim's dinner party requires background music, and he'd saved a playlist called 'Dinner Party Muzak' earlier that day. Just as the first guests arrive, he loads it and tells it to begin playing. It does, and Jim's happy that he doesn't have to worry about it for the rest of the evening (it's a long playlist).
- Manipulating a Playlist - Jill wants to remove one track from her current playlist and move another to a different position. She selects the track she wants to remove and clicks 'remove' - it disappears. Selecting another, she clicks the buttons marked with up/down arrows to place it at first position.
Use Cases
See Project Documentation (Group B3) - Use Cases.
Use Case Diagrams
See Project Documentation (Group B3) - Use Case Diagrams
Class Diagrams
See Project Documentation (Group B3) - Class Diagrams
Sequence Diagrams
See Project Documentation (Group B3) - Sequence Diagrams
Construction
Test Cases
See Project Documentation (Group B3) - Test Cases
Carthage
Carthage is a very complex link between an multi-level object array acting as a relational database and special tags within a HTML template. This system allows for a programmer to develop and interact with an HTML interface with minimal effort.
For more information: See Project Documentation (Group B3) - Template
Transition
Deployment Diagram
This diagram shows the final top-level system architecture. Diagram has been left simple to convey essential functionality.
Instructor Comments
See the Talk page.
The work is still a little sketchy and areas incomplete. Focus on the end deliverables and by a process of iteration make them more complete as you go. Time is slipping by so get stuck into it and avoid the last minute panic !

