Definitions
Applicant
An AIM user wishing to be registered on CHIMMP.
User
An authenticated user on CHIMMP
Admin
An authenticated user on CHIMMP with administrative privledges

Use Cases
AddToUserPlaylist
Add a song to user's playlist

Goal
Song gets added to user's playlist
Actors
User, CHIMMP
Initiator
User
Description
User sends message to CHIMMP to add a song to a personal playlist.
Pre-conditions
Playlist exists, song occurs in User's previous search
Post-conditions
Song is appended to end of playlist.
Options
 
Scenario
 
RemoveFromUserPlaylist
Remove a song from a specific User playlist

Goal
To remove a song from a specific User playlist
Actors
User, CHIMMP
Initiator
User
Description
User sends message to CHIMMP to remove a song from a personal playlist.
Pre-conditions
User has viewed playlist last, song exists in User playlist specified
Post-conditions
Song is removed from User's designated playlist
Options
 
Scenario
 
ListPlaylist
List the songs in a playlist

Goal
To list the songs in a specified playlist
Actors
User, CHIMMP
Initiator
User
Description
User sends message to CHIMMP requesting a listing of songs from a specific playlist. CHIMMP sends back the contents of the playlist.
Pre-conditions
Playlist exists
Post-conditions
Playlist is sent back to user, with each song enumerated
Options
 
Scenario
 
MoveSong
Move a song's position on a playlist.

Goal
To move a song's position on a playlist.
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP specifying a song to move an the number of songs forward or backwards within the list.
Pre-conditions
Song is on user's personal playlist or user submitted song to global playlist.
Post-conditions
Song is moved to the new position on the playlist, shifting other songs as appropriate.
Options
Fair queueing is used on the Global playlist to prevent users from moving all songs to the begining of the playlist. If the User is an Administrator, they are exempt from the fair queueing.
Scenario
 
NewPlaylist
Create a new user playlist

Goal
To create a new user playlist
Actors
User, CHIMMP
Initiator
User
Description
User sends message to CHIMMP to create a new personal playlist with a specified name. Playlist is created.
Pre-conditions
User does not have preexisting playlist by that name
Post-conditions
Empty playlist of given name is created
Options
 
Scenario
 
RemoveList
Remove a user playlist

Goal
To purge a user's playlist from the system
Actors
User, CHIMMP
Initiator
User
Description
User sends message to CHIMMP indicating playlist to remove. Playlist is removed.
Pre-conditions
User has a preexisting playlist by that name
Post-conditions
Playlist is purged from system
Options
 
Scenario
 
GetSongInfo
Get detailed information about a song

Goal
To display detailed information about a given song
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP requesting detailed information for a specific song. CHIMMP sends back the song information.
Pre-conditions
Song was enumerated on previous search or list operation.
Post-conditions
Song information is displayed to User.
Options
 
Scenario
 
AdjustVolume
Adjust the volume of the speakers

Goal
To adjust the volume of the speakers
Actors
User, CHIMMP
Initiator
User
Description
User specifies to CHIMMP
Pre-conditions
True
Post-conditions
Volume is adjusted
Options
A fair use algorithm is used to prevent abuse of volume adjustment
Scenario
 
TogglePlaying
Enable/disable CHIMMP's ability to play music

Goal
To allow/disallow queued songs to play
Actors
Adminsitrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting that further songs on the playlist be allowed/not allowed to play.
Pre-conditions
True
Post-conditions
Alternate playmode selected
Options
 
Scenario
 
AddUser
Add an Applicant to the list of allowed Users

Goal
To register an Applicant for the use of the CHIMMP system
Actors
Administrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting that a given AIM screenname be allowed access to the CHIMMP system as a User.
Pre-conditions
Screenname is not registered with the CHIMMP system.
Post-conditions
User is created within the CHIMMP system.
Options
 
Scenario
 
RemoveUser
Remove a User from the list of allowed Users

Goal
To purge a user from the CHIMMP system.
Actors
Administrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting that a given AIM screenname be removed from the CHIMMP system.
Pre-condition
User exists in the CHIMMP system
Post-conditions
User is removed from the CHIMMP system, along with all User playlists and active songs in the Global playlist.
Options
 
Scenario
 
ToggleUserRestriction
Enable/disable a User's ability to access the CHIMMP system.

Goal
To enable or disable access to the CHIMMP system for a given User.
Actors
Administrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting that a given User be allowed/disallowed access.
Pre-condition
User exists in the CHIMMP system
Post-conditions
User's restriction level is toggled
Options
 
Scenario
 
ToggleUserAdmin
Enable/disable Administrator privledges for a User

Goal
To enable/disable a user's adminsitrative access
Actors
Administrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting that a given User or Administrator become an Administrator or User, respectively.
Pre-condition
User/Administrator exists in the CHIMMP system
Post-conditions
User/Administrator is now an Adminstator or User, respectively.
Options
An adminstrator may not change their own access level.
Scenario
 
Search
Search for a song

Goal
To find a song
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP requesting a list of songs satisfying the given search terms. CHIMMP replies with an enumerated list of matching songs.
Pre-condition
True
Post-conditions
User is provided list of songs.
Options
 
Scenario
 
RestrictedSearch
Search for a song within the previous search results

Goal
To refine an existing search with added criteria.
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP with added criteria for searching, to refine a previous search. CHIMMP returns a list of songs matching the criteria from the previous User's search.
Pre-condition
User has previously searched for a song.
Post-conditions
User is provided a list of matching songs from the previous search.
Options
 
Scenario
 
SubmitSong
Add a song to the queue of songs which will be played. 

Goal
To allow users to put a song in the queue to play
Actors
Person, CHIMMP
Initiator
Person
Description
Person tells CHIMMP what song to add to the queue. CHIMMP adds the song.
Pre-condition
The song has been approved by an administrator.
Post-condition
Song is in the queue and will be played eventually.
Options
 
Scenario
 
ApproveSong
Approve a song for general use on CHIMMP

Goal
To enable a song for general use
Actors
Administrator, CHIMMP
Initiator
Administrator
Description
Administrator sends a message to CHIMMP requesting a song be enabled for general usage. Song is marked as allowable for users to add to playlists.
Pre-condition
Song must exist in database and be unapproved.
Post-condition
Song is added to general use list for searching and playing
Options
 
Scenario

 
Help
Obtain information on available commands

Goal
To provide Users with a list of available commands and usage
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP requesting help. CHIMMP responds friendly helpful comments.
Pre-condition
User knows how to type ``help''
Post-condition
User is potentially enlightened
Options
User may specify a command to get help on, in which case CHIMMP will respond with appropriate help.
Scenario
 
CallAdmin
Send a message to all Administrators

Goal
To send a message to all the Administrator
Actors
User, CHIMMP, Administrator
Initiator
User
Description
User sends a message to CHIMMP requesting the contents be forwarded to all the Administrators online. CHIMMP forwards the message to any Administrators currently online.
Pre-condition
True
Post-condition
Any administrators online are notified of the contents of the message
Options
If no Administrators are online at the time the time, the User is notified of the fact and no message is forwarded
Scenario
 
ChangePersonality
 

Goal
To make CHIMMP have a different personality
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP requesting that CHIMMP  change its personality to a specified 
personality. CHIMMP does this.
Pre-condition
True
Post-condition
Whenever CHIMMP speaks to this User from now on, it will use the new personality.
Options
 
Scenario

ChangeLanguage
 
Goal
To make CHIMMP understand commands in a different "language"
Actors
User, CHIMMP
Initiator
User
Description
User sends a message to CHIMMP requesting that CHIMMP  change its language to a specified
personality. CHIMMP does this. 
Pre-condition
True
Post-condition
Whenever CHIMMP receives a command from this User, it will interpret it based on this language. The same set of commands are understood, but the syntax has been changed.
Options
 
Scenario