$30
Objective:
Practice UML diagrams.
Problem Description:
The system that you have to analysis and design, using an object oriented approach, is a basic voicemail system. The voicemail system is an independent system that interfaces with an already implemented telephone system (i.e., assume that the telephone related hardware, software, and API are available ready to use). The main goal of the system is to act as a messaging service for an organization-wide telephone system. The organization may have several telephone numbers and multiple calls active at a given time.
The voicemail system gets activated after a caller’s dialed number to the telephone system goes unanswered for a given number of rings (e.g., five rings). The telephone numbers are uniquely mapped to mailbox numbers. Note that some numbers may not be assigned valid or active mailboxes (or none at all). Assume that the telephone system is responsible for functionalities such as establishing and managing the connection, managing the call (e.g., pickup, hang up), and providing information from and to the caller (e.g., the pressed phone keys, and obtain and play the actual voice message). An example of the interface to the phone system is given bellow (you may assume that all interface calls are blocking and as such the message system will wait until the interface call has completed execution and a value returned):
PhoneSystem pickup() //Initiates one end of a connection hangup() //Ends a connection
dial(char)//Allows dialing of ‘0’..’9’,’#’, ‘*’ play(message)// Paly message connection(): Boolean // True if a connection exists record(int): message //Record a message until hangup() or time limit is reached getRingCount(): int //Returns the number of rings
getDial(): char//Returns the character dialed (0 if buffer is empty else 1)
getExtension(): string //Returns the current extension
The voicemail system must support the callers to leave voicemails, and the mailbox owners to access and retrieve their voicemails. The owners can access and administer their mailbox with the following options:
Local access: from their own (local) phone devices via a hotkey on the phone device
Remote access: from other (remote) phones via dialing phone and/or extension number
Web or email access: via subscription
The caller can record a message verbally. The message is ended with a call hang up or a timeout in number of seconds. There is also an administration mailbox with extended functionality to manage the email system. This mailbox can access and manage other mailboxes (e.g., add or remove a mailbox and set a user’s password).
Tasks to do:
1. Identify the main use cases including actors. Then, provide the use case diagram
2. Describe three different scenarios that can occur (from the use case diagram).
3. Draw the UML sequence diagrams for these three scenarios
4. Provide the UML class diagram.
You can use any UML design tool (to draw the diagrams) such as ArgoUML, …
Note: the problem description contains details that will be used later (next assignement) to design different diagrams (class diagram, use cases, sequence diagram, …). Thus, it is not expected that you will use all the described details to design your use case diagrams.