Julio Verano CS509: Object Oriented Software Engineering Marketing Magic: Collaboration Tool Suite Requirements Document: Instant Messaging Tool 1. Introduction The Internet is becoming one of the largest marketplaces for businesses around the world. With this increase in customers, and businesses alike, there becomes a need for a broader, robust, and more versatile tool set for these businesses to create web spaces to advertise, market, and sell their products and services. 1.1. Purpose of the System The purpose of the Chat/Instant Messaging Tool of the CTS (Collaboration Suite) is to facilitate communication between vendors and their clients. The Instant Messaging tool will allow clients to easily contact their vendors and discuss issues on a real time basis. 1.2. Scope of the System This is a java based web tool and should hence be accessible from any system with a web browser that supports Java and Java applets. 1.3. Objectives and Success criteria of the project The objectives of the IM Tool are to: Be able to communicate with vendors/clients registered through the CS Provide a facility to communicate in real time between vendor/clients Allow users with previous instant messaging experience to easily use the tool Allow users to compile “friend” lists to easily resume communications with frequently spoken to users Allow users to commence chat room discussions with more than two users Success Criteria of the IM Tool include: Real-Time Communication: Sending messages between users should be near instantaneous (a user receiving a message should receive it within 3 seconds from the time the sender sent the message). Chat rooms: chat room “sessions” should be able to be initiated from any user and allow access to multiple users. Easy to Use: Buttons, menus and all aspects of the IM tool’s GUI shall be intuitive and simple to users familiar with other IM products or with the aid of a built in help menu. 1.4. References CS509 Lecture 1 Power Point Slides – Diane Kramer, notes on Requirements Document Object Oriented Software Engineering: Using UML, Patterns, and Java; Second Edition – Bernd Bruegge and Allen H. Dutoit, Chapter 4: Requirements Notes and aspects to other prevalent and popular Instant Messaging Tools: AOL Instant Messaging, ICQ, Yahoo Instant Messenger 1.5. Overview The Instant Messaging tool is just one part of the Collaboration Suite but this document will specifically target the requirements of the Instant Messaging Tool in the Scope of the larger Collaboration Suite tool set as it is used in conjunction with the other tools to provide customer solutions. 2. Current System Currently any form of communication between customer and vendor will come in one or a combination of three forms (the last of which is very rarely used today): via Email, via phone, or via online Instant Messaging tools. 2.1. How are tasks Accomplished Now In order to discuss issues relevant to vendors and clients, one must communicate through the phone, through email messages or, less commonly, instant messaging tools. 2.2. What are benefits of the Current System Access to phones, and email are available to almost everyone in the world who has a pone or Internet connection and provides a definite means to communicating. On a lesser scale Instant messaging tools are usually very available to most people as well with online access and the compatible computer systems to run the applications on. 2.3. What is there room for improvement Making actual contact with the necessary individuals is hard and creating an “online” meeting place to discuss issues with more than two individuals is even more difficult. 2.4. What problems will your system solve The Instant Messaging Tool of the CS will easily users with any platform, on any Java compatible web browser who is registered through the CS, to use the Instant Messaging tool to communicate with vendors/clients on a real-time basis. Starting the tool will allow users to see whether their contacts are “online” and be able to communicate with them. 3. Proposed System 3.1. Assumptions An internet connection is required (and a broadband connection is required for real-time messaging) A java compatible web browser is installed Java VM and applets are enabled through the Java Console 3.2. Functional Requirements The IM tool allows the user to compile a list of frequently used contacts The IM tool includes a help option The IM tool requires logging in with a username and password to start The IM tool allows multiple “two-way” messaging to occur The IM tool provides an editable interface to type messages before sending The IM tool allows a user to see if his contacts are “online” before sending a message The IM tool allows the user to choose between normal messaging and secure messaging. The IM tool can be minimized and run in the background. The IM tool provides an audible alert when receiving new messages (configurable option) 3.3. Non Functional Requirements 3.3.1. User Interface and Human Features The IM tool ‘s user interface shall be familiar to users experienced with other popular instant messaging applications. The buttons and menu interfaces should be simple and intuitive with descriptive labels and actions. A built in help menu will be implemented to further aid a user with the IM tool. 3.3.2. Documentation No written Documentation shall be necessary, all relative help can be accessed through the built in help menu. 3.3.3. Hardware Consideration The IM tool will be ran and tested on slower systems as well as more newer systems to determine if efficiency degrades significantly. The only hardware consideration will include a system at or better than the minimum system tested on in order to guarantee real-time communication. This requirement shall not be extreme since the tool is Java based, and will not require substantial CPU usage to perform its tasks. 3.3.4. Performance Characteristics In order to allow real-time (or near real-time) messaging between users, messages need to be received within 3 seconds of their initial transmission from the sender. The Java applet and IM tool should not require excessive CPU usage (less than 10% on popular “current day” systems) An intermediate message transport server will be used to establish connections between users and will allow up to ~64000 concurrent connections to be made (limited by number of ports on the server and number of servers to be implemented which is TBD) Users will be allowed only one chat session at a time, but multiple two-way conversations between users, limited only by the number of available ports on their network. 3.3.5. Quality Issues Once a message is sent, there is no way to retrieve, edit or retract that message (this will ensure real-time communication). “slower” internet connections are not guaranteed to have responsive or realtime communication Users may need to ignore other users Users may need to set their status to something specific than just “online” for instance “online” but in meeting, at lunch, away from desk, etc. (then messages sent while this person has this status must be queued or sent to a message box for later retrieval) 3.3.6. Security Issues There will be simple authorization and login required for the Instant Messaging Tool (as well as for the Collaboration Suite itself which the IM tool is a part). Also since there may be sensitive information discussed between users, there will be an option that can be turned on to encrypt incoming and outgoing messages (implemented with a Public Key algorithm). 3.3.7. Resource Issues Again, since the IM tool will be java based, very little resources are required to run the tool. Messaging will not consume extreme network bandwidth when communicating or in chat sessions (less than 100kbs at any time). 3.4. System Models 3.4.1. Actors and Roles The only Actors that interact with the IM tool will be the human user. The users consist of the vendors and clients that will be registered and using the Collaboration Suite toolkit. The user will be those that send and receive messages using the IM tool. 3.4.2. Participating Objects The following objects are internal and participate in the IM tool system. Contact List: List of frequent contacts a user may compile in order to easily send messages to. GUI Buttons: Used to add and remove contacts, send and receive messages, and initiate chat sessions. GUI menus: Allows further configuration for the IM tool including but not limited to, enable security, configure display options (text color, enable audible alerts, etc), access built in help on the IM tool. Message Box: Two-way text box that allows one to send and receive messages between two users. Chat Box: A larger version of the message box that displays not only the text being typed (to send a message), as well as the text received from various users, and a list of users currently in the chat session. 3.4.3. Scenarios Scenario Name: Questions need Answering Participating Actors: Bob: user, Rob: User Flow of Events: 1. Bob wants to message Rob with a question on a new product. 2. Bob, already having Joe on his contact list, starts the IM tool and logs in. 3. Bob checks his contact list to see if Rob is “online” 4. After seeing that Rob is online, Bob hits the message GUI button from the IM tool, types his question in the message box and hits the send button. 5. Promptly thereafter Rob receives an audible alert (he configured the alert to be a “ding-dong” doorbell sound through the options menu), and receives Bob’s message and question. 6. Rob types his answer and text in the message box, hits the send GUI button and responds Bob’s question within moments. Scenario Name: Database Issues Participating Actors: Amy: user, John: User, Carol: User Flow of Events: 1. Amy, project manager, needs to discuss a important Database issue with her customer Carol, but wants to have her Database Expert, John, in the discussion as well to explain the issue better. 2. Amy checks that John and Carol are online and sends a chat session request message to both John and Carol, with the subject “Database Issue”. 3. John and Carol both accept and a chat session is started between the three users. Each on can see the other in the Chat Box’s, user list and can message one another in a virtual chat room to discuss the issues as if they were in a meeting room. 3.4.4. Use Cases SimpleMessage Participating Actors: Initiated by User1, Communicates with User2 Flow of Events: 1. User1 initiates a conversation by sending a message to User2 2. User2 receives the message from User1 and responds with his own text and continues conversation CreateChatSession Participating Actors: Initiated by User1, Communicates with User2 and User3 Flow of Events: 1. User1 initiates a chat session by sending a chat request to User2 and User3 with a specified Subject name and a subject description. 2. User2 receives the chat session request and accepts. User2 enters the virtual chat room 3. User3 receives the chat session request and accepts as well. User3 enters the virtual chat room. 4. User1, User2, and User3 type text and can communicate with one another freely. AddContact Participating Actors: User1 Flow of Events: 1. User1 has a frequent contact with a specified user name 2. User1 adds the Username to his contact list. Now User1 can easily contact the specified user and also check if he’s online and available to receive messages. 4. Glossary of Terms GUI – Graphical User Interface OS – Operating System IM – Instant Messenger Online – having network access to the World Wide Web or Internet Chat room – Internet term that describes virtual rooms to chat with multiple users CS – Collaboration Suite toolkit; the IM tool is one of the many tools included in Marketing Magic Collaboration Suite TBD – To Be Determined Kbps – Kilobits per second, or 1000 bits per second, used to measure network throughput.