16
POLITEHNICA University of Bucharest, Romania Computer Science Department Voicenger System Requirements Specification Final version: 25 th April 2010 Prepared by: Supervisor: Andreica Cristian Egner Alexandru Goge Oana-Alina Petre Vlad-Stefan Serbanescu Vlad-Nicolae

Voicenger - System Requirements Specification

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Voicenger - System Requirements Specification

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

Page 2: Voicenger - System Requirements Specification

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

Page 3: Voicenger - System Requirements Specification

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.

Page 4: Voicenger - System Requirements Specification

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.

Page 5: Voicenger - System Requirements Specification

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.

Page 6: Voicenger - System Requirements Specification

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.

Page 7: Voicenger - System Requirements Specification

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.

Page 8: Voicenger - System Requirements Specification

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.

Page 9: Voicenger - System Requirements Specification

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,

Page 10: Voicenger - System Requirements Specification

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.

Page 11: Voicenger - System Requirements Specification

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).

Page 12: Voicenger - System Requirements Specification

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.

Page 13: Voicenger - System Requirements Specification

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.

Page 14: Voicenger - System Requirements Specification

Voicenger - System Requirements Specification

Page 12 of 14

Page 15: Voicenger - System Requirements Specification

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.

Page 16: Voicenger - System Requirements Specification

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.