Dot Net FM Software and Object Design Chris

Dot. Net. FM Software and Object Design Chris Zamanillo Ana Rodriguez Allen Lee Peter Singh Allen Vega Robert Lyn

Problem Statement n n Problems with sharing music ¡ Large disk space requirements ¡ Slow downloads ¡ Complicated software Our solution ¡ Small amount of disk space ¡ Listen while you download ¡ Easy to use interface

Current Software Architecture n n Winamp Windows Media Player SHOUTcast i. Tunes

Winamp & Windows Media Player n n n Several audio & video formats Streaming Internet radio Playlists Customizable interface through skins Winamp ¡ n No sharing without plug-ins Media Player ¡ has Jukebox functionality

SHOUTcast n n Listener needs to play streaming mp 3 Host uses Winamp with SHOUTcast plug-in Music transmitted to server which broadcasts to listeners Access to server can be expensive! ¡ ¡ http: //www. hosting 4 less. com 100 listeners at 128 Kbps is $250/month

i. Tunes n Jukebox ¡ n n Playlists Internet radio ¡ n Automatically manages music library No favorite stations Shares library ¡ available only on LAN

Proposed Software Architecture n n All in one design Cleaner interface ¡ ¡ ¡ n n n Playlists Station lists Customizable skins Simple to switch between client - server Sharing not dependent on plug-ins Ease of use!

Subsystem Decomposition n n Playback List Error I/O Configuration

Packages

Global Software Control n User interface classes do not have direct access to entity classes n Entity classes do not communicate directly with any other classes n Control classes do not communicate directly with interface classes n GUI classes subscribe events

Design Goals n n n Modifiability Ease of use Efficiency Low response time Low-cost and Reuse of Components

Design Patterns n Singleton ¡ n Bridge ¡ n Sound. Data, Visualizations Façade ¡ n Error, Controllers, Preferences Controllers Observer ¡ Skin. Controller

Hardware/Software Mapping n n. Bass Class Library. Net Windows Forms Extensible Mark-up Language (XML)

Deployment Diagram

Component Diagram

Access Control and Security n n n No user authentication Security handled by n. Bass Access Matrix

Access Control Matrix Objects Actors Playlist Station. List Station Music. Info Custom. Skin Listener <<create>> Add. Music. Info Get. Songs Get. Lists <<create>> Get. Name <<remove>> Get. Name <<create>> Get. Filename DJ <<create>> Add. Music. Info Get. Songs Get. Lists <<create>> Set. Name <<remove>> Set. Name <<create>> Get. Filename

Persistent Data Management n Identifying persistent data objects ¡ ¡ ¡ ¡ n Station. List Play. List Preferences Log Music. Info Station XMLFile Selecting a storage strategy ¡ XML

Boundary Conditions n n n Configuration use cases Start-up and Shutdown use cases Exception use cases

Object Design Trade-offs n Buy vs. Build n Memory space vs. Response time

Subsystem Services (1/2) n List services ¡ n Error services ¡ n Manages play lists and station lists. Handles error reporting to user and to file. I/O services ¡ Allows configuration and list data to be outputted to XML files.

Subsystem Services (2/2) n Configuration services ¡ n Manages user preferences and works with the I/O subsystem to save these settings from session to session. Playback services ¡ Provides playback of local files as well as broadcasting and playback of audio streams.

Class Interfaces

Class Interfaces
- Slides: 24