POLITEHNICA University of Bucharest, Romania
Computer Science Department
Voicenger
System Requirements Specification
Final version: 25th
April 2010
Prepared by: Supervisor:
Andreica Cristian Egner Alexandru
Goge Oana-Alina
Petre Vlad-Stefan
Serbanescu Vlad-Nicolae
Voicenger - System Requirements Specification
I
Table of Contents 1 Introduction ........................................................................................................................... 1
1.1 Document Purpose ................................................................................................................................ 1 1.2 Definition of Terms ............................................................................................................................... 1 1.3 Overview ............................................................................................................................................... 2
2 Product Description .............................................................................................................. 3 2.1 The Problem .......................................................................................................................................... 3
2.1.1 The Current Situation .................................................................................................................... 3 2.1.2 User Manifestation ........................................................................................................................ 3
2.2 The Solution .......................................................................................................................................... 4 2.2.1 General Description ....................................................................................................................... 4 2.2.2 Benefits .......................................................................................................................................... 4 2.2.3 Features ......................................................................................................................................... 4 2.2.4 Target ............................................................................................................................................. 4
2.3 Technical Constraints ............................................................................................................................ 5 2.3.1 Major Constraints .......................................................................................................................... 5 2.3.2 Performance Requirements............................................................................................................ 5 2.3.3 Design & Implementation Constraints .......................................................................................... 5 2.3.4 Hardware Constraints .................................................................................................................... 5
3 Functional Requirements ..................................................................................................... 6 3.1 User Profiles .......................................................................................................................................... 6 3.2 System Boundary .................................................................................................................................. 7 3.3 Use Cases Description ........................................................................................................................... 7
3.3.1 Register .......................................................................................................................................... 7 3.3.2 Log In ............................................................................................................................................ 7 3.3.3 Log Out .......................................................................................................................................... 8 3.3.4 Add a Friend .................................................................................................................................. 8 3.3.5 Delete a Friend .............................................................................................................................. 8 3.3.6 Ignore a Friend .............................................................................................................................. 8 3.3.7 Edit Profile..................................................................................................................................... 8 3.3.8 One-on-One Chat ........................................................................................................................... 8 3.3.9 Call a Friend .................................................................................................................................. 8 3.3.10 Initiate a Conference Chat ......................................................................................................... 9 3.3.11 Invite another User in Conference ............................................................................................. 9 3.3.12 Set a Discussion Topic .............................................................................................................. 9 3.3.13 Create a Poll inside a Conference .............................................................................................. 9 3.3.14 Send a File ................................................................................................................................. 9 3.3.15 Add a Textual Image ................................................................................................................. 9 3.3.16 Tagging while in Conference .................................................................................................... 9 3.3.17 Update Facebook Status .......................................................................................................... 10 3.3.18 Update Twitter Status .............................................................................................................. 10
4 System Architecture ........................................................................................................... 11 4.1 Components ......................................................................................................................................... 11
4.1.1 The Server Component ................................................................................................................ 11 4.1.2 The Client Component ................................................................................................................ 11
5 Non-Functional Requirements ........................................................................................... 13 5.1 Client Application Requirements ........................................................................................................ 13 5.2 Server Application Requirements........................................................................................................ 13 5.3 Performance Requirements ................................................................................................................. 13 5.4 Availability and Reliability Requirements .......................................................................................... 13
6 Testing Considerations ...................................................................................................... 14
Voicenger - System Requirements Specification
Page 1 of 14
1 Introduction
1.1 Document Purpose
This document has been created in order to evaluate and quantify the benefits, features and constraints of an
informational system. The software product allows for improved and organized communication inside
groups, such that planning, brainstorming and taking decisions gets done much faster than the actual
implementations.
In order to allow consistency between the vision of the product and the actual implementation, this document
must be used as a guideline by the development team.
1.2 Definition of Terms
Voicenger - the actual product name;
Peer-to-Peer - software architecture without a central authority that manages all the communication between
modules;
Instant Messaging (IM) - form of real-time direct text-based communication between two or more people
using personal computers or other devices, along with shared software clients (the user's text is conveyed
over a network, such as the Internet; more advanced instant messaging software clients also allow enhanced
modes of communication, such as live voice or video calling);
Twitter - social networking and micro blogging service that enables its users to send and read messages
known as tweets (tweets are text-based posts of up to 140 characters displayed on the author's profile page
and delivered to the author's subscribers who are known as followers);
Facebook - social networking website that allows people to communicate with their friends and exchange
information;
Internet Service Provider (ISP) - a company that offers its customers access to the Internet;
MySQL - open-source Database Management System which is available for both Linux and Windows;
Emoticon - graphical representation, either in the form of an image or made up of ASCII characters, of a
particular emotion of the writer;
drag-and-drop - feature of a graphical user interface whereby the user can drag a visual item across the
screen and drop it in another location;
user profile - collection of personal data associated to a specific user. A profile refers therefore to the
explicit digital representation of a person's identity.
Voicenger - System Requirements Specification
Page 2 of 14
1.3 Overview
Chapters 1 and 2 contain a description of the document, its contents, and the purpose of its creation. Chapter
3 describes the functional requirements of the system. First, the actors and system boundaries are identified,
then the use cases and functional requirements are described.
Chapter 4 presents the general architecture of the system, with a hardware configuration that can meet the
system requirements.
Chapter 5 presents the main non-functional requirements of the system, such as: user interface, usability,
performance, reliability, maintainability and security.
Chapter 6 contains some testing guidelines and other special considerations.
Voicenger - System Requirements Specification
Page 3 of 14
2 Product Description
2.1 The Problem
2.1.1 The Current Situation
The real-life behavior of people that occurs when friends want to take action together is defined in three
simple steps: Idea, Planning and Action.
It all starts with an idea that someone from the group wants to share with others. We inform our friends, call
them, send them emails, leave them offline messages; whatever it takes to communicate that idea with them.
We use Instant Messengers (like Yahoo Messenger, Digsby, Pidgin, etc) or Social Networks (Facebook,
Twitter, MySpace, etc).
Then the planning starts. They start communicating with each other, brainstorm, have online meetings, and
spend time online and offline in order to get to a conclusion. You'll find them using Yahoo Messenger or
Adobe Connect now. They want to take action. And they do!
Action is the part when the idea must be implemented. It doesn't really matter what it is, a cup of coffee in
the Mall, a present for one of them, a movie, or it could be a holiday spent at the sea. It all happens the
same. Finally, when we have decided on how to implement it, we have to do the whole informing process
again.
There is no single structured solution for sharing ideas, communicate on planning, deliver results and inform
on decisions between friends. Not with the existent solutions.
2.1.2 User Manifestation
The effects of the problem defined in the earlier chapter drives users into spending way more time
communicating than taking action. Planning involves thinking on different topics at the same time, and
managing how to implement the idea needs to be done in a structured way, that helps users on taking
decisions faster.
Let's take, for instance, a couple of friends that want to go out on a Saturday night, and they chat on Yahoo
Messenger, having a conference where everybody proposes a bar. They sit and lose time from 10 minutes to
a full hour discussion, either disagreeing about the current options, either losing focus by introducing
different topics of discussion.
A text-conference where people talk at the same time on different subjects, respond to each other's thoughts,
without having constant effect on the final result, is a bad tool in the century of speed.
We are obsessed with speed; we want to get things done faster than ever, easier than ever.
Voicenger - System Requirements Specification
Page 4 of 14
2.2 The Solution
2.2.1 General Description
This product is a software application, identified by the name of Voicenger, which solves the problem of
taking decisions inside groups of friends. All the actual solutions are based on communication tools that
allow a group of friends to chat and brainstorm on their ideas, but not on the actual decision process.
Voicenger wants to offer a structured mean of communication, where the conference is topic-based, focused
on planning and delivering results to the whole decision process.
The functionality of Voicenger is split into several components and features, all designed to ensure an
accurate, structured and efficient application for discussing and sharing ideas and plans in an organized and
easy to use environment.
This application combines the features of websites used for socializing and entertainment with the benefits of
a chat and voice application. This will increase efficiency in a chat environment. It will provide features
based on intuition that will help users to logically structure the discussion when engaged in a conference
window, to easily debate on a subject and quickly take decisions.
2.2.2 Benefits
In addition to voice and text chatting, the benefits of Voicenger include:
Twitter/Facebook integration, thus helping on spreading news faster;
polling and tagging on a conference, thus helping on taking decisions quicker;
textual imaging & file sending for easier sharing;
friends suggestions for quickly growing the friends list with people who the user might know.
2.2.3 Features
Some of the key features of Voicenger are:
improved sound quality in voice calls;
increased speed of file and image transfers ;
an intuitive and easy to use interface;
logic and simple filtering of conversations ;
combining the advantages of chat applications and the features of websites for social and business
facilities.
2.2.4 Target
The product is to be targeted to the consumer users who are online every day, communicate with each-other using social-tools, real-time communication applications, but they lack a simple, structured framework for managing intentions, plans and decisions between friends.
Voicenger - System Requirements Specification
Page 5 of 14
2.3 Technical Constraints
2.3.1 Major Constraints
Although the software is intended for home users, everyone can use it freely. On a technical side note, in order to function properly (thus communicate), the software has to be provided with unrestricted Internet access (so users can interact with each other, and interact with their Twitter/Facebook accounts).
2.3.2 Performance Requirements
The server must:
maintain a secure and consistent database of critical user information such as username and
password;
keep an updated list of the contacts for every user, that is subject to frequent change and editing.
The client must:
establish and keep a fast and peer to peer connection;
ensure high quality sound for audio conversations;
log all conferences in separate files and directories depending on the conversations and the options
selected by the user;
make constant and fast updates of Twitter and Facebook activities of the user.
2.3.3 Design & Implementation Constraints
The server must:
be implemented using the Java programming language;
be independent of the operating system in runs on;
Have an efficient algorithm based on user information, profile and contact list for offering accurate
and safe suggestions of new friends for a certain user;
Implement a simple and logic algorithm for filtering out discussion topics based on a tagging system.
The client must:
be implemented in the Java programming language;
be independent of the operating system in runs on;
establish and keep a fast and peer to peer connection independent of the network or Internet Service
Provider;
ensure high quality sound for audio conversations;
log all conferences in separate files and directories according to the operating system in runs on and
depending on the conversations and the options selected by the user;
make constant and fast updates of Twitter and Facebook activities of the user.
2.3.4 Hardware Constraints
Both the server and the client must be running on a computer that has access to the internet.
Voicenger - System Requirements Specification
Page 6 of 14
3 Functional Requirements
3.1 User Profiles
There is only one user profile: the normal user; or simply: the user.
The user may perform the following actions:
register;
login;
logout;
add a friend;
delete a friend;
ignore a friend;
fill in its profile;
initiate a one-on-one chat with another user;
initiate a conference chat;
invite another user in a current conference chat;
call another user for voice chatting;
set the discussion topic;
create a poll inside a conference;
send a file;
add a textual image;
use tagging feature while in a conference;
update Facebook status;
update Twitter status.
Voicenger - System Requirements Specification
Page 7 of 14
3.2 System Boundary
3.3 Use Cases Description
3.3.1 Register
In order to use the application, all users must have an account. When the user starts the application, there are
two options available: register and login. By clicking on the register button, the application will ask the user
to fill in some details like username, password, real name and other information regarding the profile. Once
the account is created, the user can login in the network.
3.3.2 Log In
The login function can be used only if the user has previously created an account. Unless logging in, the user
will not be able to use any other feature of the application. Users can login by submitting a valid username
and password. During the log in process, the application retrieves user data (e.g. friends list, ignore list,
Voicenger - System Requirements Specification
Page 8 of 14
profile details, etc). After a successful log in, the application grants access to all features and operations
available.
3.3.3 Log Out
The log out function may be initiated only manually, by the currently logged in user.
3.3.4 Add a Friend
A logged in user can add a new friend to his friends list. This is achieved by simply clicking on the Add a
friend button from the menu, filling in the username of the friend, and clicking on finish.
Note that if the username of the friend doesn’t exist, the application will alert the user.
3.3.5 Delete a Friend
A logged in user can delete a friend from his friends list. This is achieved by right-clicking on a friend in the
friends list, and then selecting Delete.
3.3.6 Ignore a Friend
A logged in user can delete a friend from his friends list. This is achieved by right-clicking on a friend in the
friends list, and the selecting Ignore.
3.3.7 Edit Profile
A logged in user can edit his profile by choosing Edit Profile from the menu. After this, a window with the
required fields (e.g. first name, last name, city, etc) and the current filled in information will appear.
Whenever the user is ready, he must click on Update Profile button so that the information filled in is sent to
the server thus updating the profile.
3.3.8 One-on-One Chat
A logged in user can initiate a one-on-one chat with another user by right-clicking the friends name and then
choosing the Start Chat option. After this, a new window will appear where the user can chat with his friend.
3.3.9 Call a Friend
A logged in user can call another friend, for voice chatting, by right-clicking the friends name and then
choosing the Start Voice Call option. After this, a new window will appear where the user can voice chat
with his friend as well as text chat.
Note that the Start Voice Call option is available from the text chatting window too.
Voicenger - System Requirements Specification
Page 9 of 14
3.3.10 Initiate a Conference Chat
A logged in user can initiate a conference chat by selecting the Start Conference option from the menu. A
new window will appear. Here, the user must select friends from his friends list in order to invite them to the
conference. After selecting the friends, the user must click on the Invite button. The current window will
close, and a new conference chat window will appear where all the invited users who accepted the invitation
can chat with each other.
3.3.11 Invite another User in Conference
Any user currently engaged in a conference chat can invite other user to join the discussion. This is done by
clicking on Invite More Friends from the menu inside the chat window, selecting the desired friends from the
friends list to be invited, and clicking on Invite button. The invited friends will join the conference only if
they accept the invitation.
3.3.12 Set a Discussion Topic
Whether a user is engaged in a one-on-one chat or a conference chat, he can set or change the current
discussion topic. This is done by clicking on the Discussion Topic button in the upper area of the chat
window, and filling in the desired one.
3.3.13 Create a Poll inside a Conference
Any user engaged in a conference can create a poll where all the users currently involved in the conference
can vote. The creator of the poll will fill in the options of it and will specify whether a user can choose only
one option (radio boxes) or several ones (checkboxes). The poll will appear in the right area of the
conference chat window.
This feature aims helping users to take quick decisions based on everybody’s opinion.
3.3.14 Send a File
Any user engaged in a one-on-one chat can send a file to the other user. This is done by selecting the Send
File option in the menu of the chat window. Assuming that user A and user B are currently involved in a chat
session, whenever user A wants to send a file to user B, user B can either accept or refuse the file. If user B
will accept the file, then he will have to choose a folder where to save it.
3.3.15 Add a Textual Image
Any user engaged in a conference chat or in a one-on-one chat can add a textual image in the chat window.
The image will appear in-line with text. In order to achieve this, the user must select Add Textual Image from
the menu in the upper area of the chat window.
3.3.16 Tagging while in Conference
Any user engaged in a conference may use the tagging feature. Tags are words that are preceded by a ‘#’
sign (e.g. #weather, #cinema, #homework, etc). Whenever a user adds the ‘#’ in front of a word, it will
automatically become a tag. In text area, tags are colored differently than normal text (e.g. blue).
Voicenger - System Requirements Specification
Page 10 of 14
All used tags in the current conference will appear as clickable items in a list in the left area of the
conference window. Whenever a new tag is created, it will be automatically added to this list. Note that the
first tag in the list will always be a #ALL tag.
The usage is pretty simple: if a user clicks on a tag, in the text area will remain only comments that are
tagged with the clicked tag. In order to redisplay all comments, the user must click on #ALL tag.
The tagging feature works locally, so the actions of a user to its text area do not affect the others.
3.3.17 Update Facebook Status
A logged in user can update his Facebook status from Voicenger. This is done by clicking on the Update My
Facebook Status button in the main menu.
3.3.18 Update Twitter Status
A logged in user can update his Twitter status from Voicenger. This is done by clicking on the Update My
Twitter Status button in the main menu.
Voicenger - System Requirements Specification
Page 11 of 14
4 System Architecture
4.1 Components
The two main components of the system are the client and server applications.
4.1.1 The Server Component
The server component will provide the following functionalities:
a MySQL database containing information of all the registered users;
maintaining track of all the contacts for every user;
providing suggestions for new friends based on user information and contact lists;
text conferences with tagging options for filtering different discussion topics;
frequent updates on user status and profile.
4.1.2 The Client Component
The client component will have the following capabilities:
establishing a peer to peer connection via a three way handshake protocol;
all the main features of a chat application through a peer to peer connection:
o voice chat
o file transfer
o textual imaging
o photo sharing
update of Twitter status;
update of Facebook status;
keeping a message archive according to user preferences;
drag-and-drop feature for file transfer and photo sharing;
a variety of emoticons.
The system needs to store data regarding the users (friends list, profiles, etc). We propose one database
accessible directly only by the server application. The database will be installed on the same machine as the
server application.
Whenever a client application needs access to data from the database, it will ask the server application to
retrieve it. The server will interrogate the database and will only retrieve to the client, information that is
specific to the logged user in the client application.
Whenever a user updates his profile or a new user is registered, the client application will ask the server to
update the database.
Voicenger - System Requirements Specification
Page 12 of 14
Voicenger - System Requirements Specification
Page 13 of 14
5 Non-Functional Requirements
5.1 Client Application Requirements
The recommended minimum system requirements for the client application are:
1 GHz x86 processor;
512 MB of system memory (RAM);
100 MB of free disk space;
Graphics card and monitor capable of 1024x768 resolution;
Sound card;
Microphone;
Speakers;
Internet connection with minimum 1Mbps bandwidth;
Windows XP SP2 / Vista / 7.
5.2 Server Application Requirements
The recommended minimum system requirements for the server application are: 2 GHz x86 processor;
1 GB of system memory (RAM);
10 GB of free disk space;
Internet connection with minimum 10Mbps bandwidth.
5.3 Performance Requirements
The system must be very responsive. Since this is a Peer to Peer system, the maximum number of supported clients in parallel is quite high. There is no possibility of concurrence issues with the database management system, since it is only administrated by the server application. Current specifications are both scalable in terms of client number and performance, without negative effects on system performance. Server storage and performance should be adequate in case the number of clients grows.
5.4 Availability and Reliability Requirements
Downtime allowance for the server is limited under 0.05% per month.
It is strongly recommended that the database is regularly backed up.
Voicenger - System Requirements Specification
Page 14 of 14
6 Testing Considerations
Testing should be done taking into account different possible usage scenarios; both correct and incorrect
usage should be tested.
Database structure should be thoroughly tested before populating it.
Extra testing should be taken into account for unlikely usage, such as many concurrent changes on a single
database (several users updating their profiles), changes on tables of friends list and ignore list, etc. It should
be measured that the performance remains constant at full load.