|
Voice Mail System This project is the Voice Mail System(VMS) developed in C++ on a UNIX platform. It implements the factory design patterns. It contain linked list and array, two data structure to choose from at the run time. The design methodology followed here is the use of CRC cards.The Booch-method defines different models to describe this system. The logical model (problem domain) represents the class and object structure. The object diagram shows how the classes interact with each other, it captures some moments in the life of the system and helps you to describe the dynamic behavior.This course project is to get a thorough knowledge of Booch Terminology in term of transaction diagrams , interaction diagrams, class diagram ,object diagrams and various notations used in it and apply them to one of the application(Voice Mail System)..
User specification and Requirement Document
Simple voice mail stimulation 1. Reaching an extension At the outset, the mail message system awaits the input of a four-digit extension number. Some numbers belong to active extensions, others do not. We will see below how active extensions are created. If an inactive extension has been dialed, an error message is generated, and the system reverts to its initial state. If an active extension has been reached, the mailbox greeting is played. Unless changed by the owner, the greeting is You have reached extension xxxx. Please leave a message now. At this point, the caller can type in a message, by entering the message text on the keyboard. At the end of the message, an `H' should be entered on a single line to denote hanging up the telephone. Only non empty messages should be stored. Alternatively, callers can enter the `#' key to access their own mailboxes.
2. Accessing a mailbox To restrict access to the owner of the mailbox, the system prompts for a passcode. After the mailbox owner has entered the correct passcode, it is possible retrieve messages from the mailbox, or to change mailbox settings . the user options menu is displayed: You have n new messages and s saved messages. Press 1 to retrieve your messages. Press 2 to change your greeting. Press 3 to change your passcode. (The first command prompt is only shown when messages are pending.) When`1' is pressed, the system enters the message retrieval loop. If the caller selects to change the greeting, the system prompts to record a new greeting. If the caller selects to enter a new passcode, the system prompts to enter a new passcode. Passcodes must be four digits long. Invalid passcodes cause an error message. Upon completion of greeting or passcode change, the main menu is displayed again. If the user hangs up instead of entering a greeting or passcode, no change is recorded .
3. Retrieving messages The first message is displayed. Then the message options menu appears:
Press 1 to delete the current message. Press 2 to save the current message.
After the selection is processed, the next message is played. This repeats until all messages are played. Then user options menu appears again. At anytime, the caller may hang up by entering `H'. New messages are played in the order in which they were received. After all new messages are played , the saved messages are played in the order in which they were saved.
4. Adding new mailboxes
When first started, the mail system has one special mailbox, with extension 9999 and passcode 1728, belonging to the administrator and no further active extensions. The administrator mailbox works the same way as all other mailboxes, but has an additional option in the main menu : Press 4 to add a new extension. When `4' is pressed, the system prompts to enter the new four digit extension number and then prompts for a four digit passcode. The extension is activated and the main menu is played again. 5. Simulation of voice data and telephone equipment In our program, we need to simulate the three distinct input events that occur in a real telephone system: speaking, pushing a button on the telephone pad, and picking up and hanging up the telephone. We use the following convention for input: An `H' on a line by itself denotes hanging up the telephone. A sequence of keys `1' ... `9' on a line with no further characters denotes a dialed number. A `#' or `*' on a line by itself denotes pushing one of the command keys on the pad. Any other text denotes voice input.
Entering mailbox 0000 terminates the program.
6. System limits We need to set some limits on system resources. The following limits are admittedly unrealistic, but they enable us to concentrate on the object oriented features rather than memory management during the programming phase. We set a limit on 10 active mail boxes in addition to the administrator mailbox, up to 20 new and 10 saved messages per mailbox Attempts to generate more active accounts are rejected. If a mailbox with 20 new messages is called, the message You have reached extension xxxx. The mailbox is currently full. is displayed instead of the greeting, and no new message can be stored. If the saved message area is full, the mailbox owner can only discard new messages.
BRIEF DESCRIPTION OF THE FUNCTIONALITY OF VOICE M AIL SYSTEM
OPERATIONS OF THE MAIL BOX Administrator point of view
User point of view
ISSUES FOR THE CHANGE IN THE REQUIREMENT Prone to change from client point of view
Prone to change from developer point of view
CRC Cards for the Different Classes
CRC Card for the Message Class. Class name : Message Responsibilities: To store messages and output the message on the screen. Collaborations: mailbox
Superclass: none subclass :none
Methods variable
CRC Card for the Mailbox Class . Class name : Mailbox Responsibilities: Add messages ,Delete Messages ,Play Greeting, Play Messages Change Greetings ,Change Password Collaborations: Message ,Administrator ,List Superclass: none subclass :none
Methods variable private:
message list public:
CRC card for the Administrator Class . Class name : Administrator Responsibilities: Add mailboxes ,Delete Mailboxes , Change the password Collaborations: mailbox ,List ,MainSystem
Superclass: none subclass :none
Methods variable Private:
Public:
CRC card for the MainSystem Class. Class name : Mainsystem Responsibilities: Main Interface for the voice mail system Collaborations: Admin
Superclass: none subclass :none
Methods variable
Private :
Public
Class name : List Responsibilities: Add an element to the list, delete an element to the list , Return the item stored in the list Collaborations: mailbox , Administrator Superclass: none subclass :none
Methods variable
Some important issues of the Voice Mail System Design
Changes From User Point Of View : User can change the system limit easily . User has to change the variables in global.h file .
conclusion : user has to recompile all the file that to get the required effect .
Changes From The Designer Point Of View
conclusion :user has to recompile only this container class( single link list ) and relink the code to get the desired effect.
Error checking in the voice mail system
Vicky Shiv 04/21/98
|