Instant Message, Chat

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
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
 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
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
The IM tool allows the user to choose between normal messaging and secure
The IM tool can be minimized and run in the background.
The IM tool provides an audible alert when receiving new messages (configurable
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
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
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
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
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
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.
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