240 likes | 254 Views
Dot Net FM. Software and Object Design. Chris Zamanillo Ana Rodriguez Allen Lee Peter Singh Allen Vega Robert Lyn. Problem Statement. Problems with sharing music Large disk space requirements Slow downloads Complicated software Our solution Small amount of disk space
E N D
DotNetFM Software and Object Design Chris Zamanillo Ana Rodriguez Allen Lee Peter Singh Allen Vega Robert Lyn
Problem Statement • 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 • Winamp • Windows Media Player • SHOUTcast • iTunes
Winamp & Windows Media Player • Several audio & video formats • Streaming Internet radio • Playlists • Customizable interface through skins • Winamp • No sharing without plug-ins • Media Player • has Jukebox functionality
SHOUTcast • Listener needs to play streaming mp3 • Host uses Winamp with SHOUTcast plug-in • Music transmitted to server which broadcasts to listeners • Access to server can be expensive! • http://www.hosting4less.com • 100 listeners at 128Kbps is $250/month
iTunes • Jukebox • Automatically manages music library • Playlists • Internet radio • No favorite stations • Shares library • available only on LAN
Proposed Software Architecture • All in one design • Cleaner interface • Playlists • Station lists • Customizable skins • Simple to switch between client - server • Sharing not dependent on plug-ins • Ease of use!
Subsystem Decomposition • Playback • List • Error • I/O • Configuration
Global Software Control • User interface classes do not have direct access to entity classes • Entity classes do not communicate directly with any other classes • Control classes do not communicate directly with interface classes • GUI classes subscribe events
Design Goals • Modifiability • Ease of use • Efficiency • Low response time • Low-cost and Reuse of Components
Design Patterns • Singleton • Error, Controllers, Preferences • Bridge • SoundData, Visualizations • Façade • Controllers • Observer • SkinController
Hardware/Software Mapping • nBass Class Library • .Net Windows Forms • Extensible Mark-up Language (XML)
Access Control and Security • No user authentication • Security handled by nBass • Access Matrix
Persistent Data Management • Identifying persistent data objects • StationList • PlayList • Preferences • Log • MusicInfo • Station • XMLFile • Selecting a storage strategy • XML
Boundary Conditions • Configuration use cases • Start-up and Shutdown use cases • Exception use cases
Object Design Trade-offs • Buy vs. Build • Memory space vs. Response time
Subsystem Services (1/2) • List services • Manages play lists and station lists. • Error services • 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) • Configuration services • 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.