Voicenger - System Requirements Specification

2,101 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,101
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
93
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Voicenger - System Requirements Specification

  1. 1. POLITEHNICA University of Bucharest, Romania Computer Science Department Voicenger System Requirements Specification Final version: 25th April 2010Prepared by: Supervisor:Andreica Cristian Egner AlexandruGoge Oana-AlinaPetre Vlad-StefanSerbanescu Vlad-Nicolae
  2. 2. Voicenger - System Requirements Specification Table of Contents1 Introduction ........................................................................................................................... 1 1.1 Document Purpose ................................................................................................................................1 1.2 Definition of Terms ...............................................................................................................................1 1.3 Overview ...............................................................................................................................................22 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 .................................................................................................................... 53 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 .............................................................................................................. 104 System Architecture ........................................................................................................... 11 4.1 Components .........................................................................................................................................11 4.1.1 The Server Component ................................................................................................................ 11 4.1.2 The Client Component ................................................................................................................ 115 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 ..........................................................................................136 Testing Considerations ...................................................................................................... 14 I
  3. 3. Voicenger - System Requirements Specification1 Introduction1.1 Document PurposeThis document has been created in order to evaluate and quantify the benefits, features and constraints of aninformational system. The software product allows for improved and organized communication insidegroups, such that planning, brainstorming and taking decisions gets done much faster than the actualimplementations.In order to allow consistency between the vision of the product and the actual implementation, this documentmust be used as a guideline by the development team.1.2 Definition of TermsVoicenger - the actual product name;Peer-to-Peer - software architecture without a central authority that manages all the communication betweenmodules;Instant Messaging (IM) - form of real-time direct text-based communication between two or more peopleusing personal computers or other devices, along with shared software clients (the users text is conveyedover a network, such as the Internet; more advanced instant messaging software clients also allow enhancedmodes of communication, such as live voice or video calling);Twitter - social networking and micro blogging service that enables its users to send and read messagesknown as tweets (tweets are text-based posts of up to 140 characters displayed on the authors profile pageand delivered to the authors subscribers who are known as followers);Facebook - social networking website that allows people to communicate with their friends and exchangeinformation;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 aparticular emotion of the writer;drag-and-drop - feature of a graphical user interface whereby the user can drag a visual item across thescreen and drop it in another location;user profile - collection of personal data associated to a specific user. A profile refers therefore to theexplicit digital representation of a persons identity. Page 1 of 14
  4. 4. Voicenger - System Requirements Specification1.3 OverviewChapters 1 and 2 contain a description of the document, its contents, and the purpose of its creation. Chapter3 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 thesystem 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 2 of 14
  5. 5. Voicenger - System Requirements Specification2 Product Description2.1 The Problem2.1.1 The Current SituationThe real-life behavior of people that occurs when friends want to take action together is defined in threesimple 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, callthem, 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, andspend time online and offline in order to get to a conclusion. Youll find them using Yahoo Messenger orAdobe Connect now. They want to take action. And they do!Action is the part when the idea must be implemented. It doesnt really matter what it is, a cup of coffee inthe Mall, a present for one of them, a movie, or it could be a holiday spent at the sea. It all happens thesame. Finally, when we have decided on how to implement it, we have to do the whole informing processagain.There is no single structured solution for sharing ideas, communicate on planning, deliver results and informon decisions between friends. Not with the existent solutions.2.1.2 User ManifestationThe effects of the problem defined in the earlier chapter drives users into spending way more timecommunicating than taking action. Planning involves thinking on different topics at the same time, andmanaging how to implement the idea needs to be done in a structured way, that helps users on takingdecisions faster.Lets take, for instance, a couple of friends that want to go out on a Saturday night, and they chat on YahooMessenger, having a conference where everybody proposes a bar. They sit and lose time from 10 minutes toa full hour discussion, either disagreeing about the current options, either losing focus by introducingdifferent topics of discussion.A text-conference where people talk at the same time on different subjects, respond to each others 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 3 of 14
  6. 6. Voicenger - System Requirements Specification2.2 The Solution2.2.1 General DescriptionThis product is a software application, identified by the name of Voicenger, which solves the problem oftaking decisions inside groups of friends. All the actual solutions are based on communication tools thatallow 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, focusedon planning and delivering results to the whole decision process.The functionality of Voicenger is split into several components and features, all designed to ensure anaccurate, structured and efficient application for discussing and sharing ideas and plans in an organized andeasy to use environment.This application combines the features of websites used for socializing and entertainment with the benefits ofa chat and voice application. This will increase efficiency in a chat environment. It will provide featuresbased on intuition that will help users to logically structure the discussion when engaged in a conferencewindow, to easily debate on a subject and quickly take decisions.2.2.2 BenefitsIn 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 FeaturesSome 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 TargetThe product is to be targeted to the consumer users who are online every day, communicate witheach-other using social-tools, real-time communication applications, but they lack a simple, structuredframework for managing intentions, plans and decisions between friends. Page 4 of 14
  7. 7. Voicenger - System Requirements Specification2.3 Technical Constraints2.3.1 Major ConstraintsAlthough 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 beprovided with unrestricted Internet access (so users can interact with each other, and interact withtheir Twitter/Facebook accounts).2.3.2 Performance RequirementsThe 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 ConstraintsThe 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 ConstraintsBoth the server and the client must be running on a computer that has access to the internet. Page 5 of 14
  8. 8. Voicenger - System Requirements Specification3 Functional Requirements3.1 User ProfilesThere 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 6 of 14
  9. 9. Voicenger - System Requirements Specification3.2 System Boundary3.3 Use Cases Description3.3.1 RegisterIn order to use the application, all users must have an account. When the user starts the application, there aretwo options available: register and login. By clicking on the register button, the application will ask the userto fill in some details like username, password, real name and other information regarding the profile. Oncethe account is created, the user can login in the network.3.3.2 Log InThe login function can be used only if the user has previously created an account. Unless logging in, the userwill not be able to use any other feature of the application. Users can login by submitting a valid usernameand password. During the log in process, the application retrieves user data (e.g. friends list, ignore list, Page 7 of 14
  10. 10. Voicenger - System Requirements Specificationprofile details, etc). After a successful log in, the application grants access to all features and operationsavailable.3.3.3 Log OutThe log out function may be initiated only manually, by the currently logged in user.3.3.4 Add a FriendA logged in user can add a new friend to his friends list. This is achieved by simply clicking on the Add afriend 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 FriendA logged in user can delete a friend from his friends list. This is achieved by right-clicking on a friend in thefriends list, and then selecting Delete.3.3.6 Ignore a FriendA logged in user can delete a friend from his friends list. This is achieved by right-clicking on a friend in thefriends list, and the selecting Ignore.3.3.7 Edit ProfileA logged in user can edit his profile by choosing Edit Profile from the menu. After this, a window with therequired 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 tothe server thus updating the profile.3.3.8 One-on-One ChatA logged in user can initiate a one-on-one chat with another user by right-clicking the friends name and thenchoosing the Start Chat option. After this, a new window will appear where the user can chat with his friend.3.3.9 Call a FriendA logged in user can call another friend, for voice chatting, by right-clicking the friends name and thenchoosing the Start Voice Call option. After this, a new window will appear where the user can voice chatwith his friend as well as text chat.Note that the Start Voice Call option is available from the text chatting window too. Page 8 of 14
  11. 11. Voicenger - System Requirements Specification3.3.10 Initiate a Conference ChatA logged in user can initiate a conference chat by selecting the Start Conference option from the menu. Anew window will appear. Here, the user must select friends from his friends list in order to invite them to theconference. After selecting the friends, the user must click on the Invite button. The current window willclose, and a new conference chat window will appear where all the invited users who accepted the invitationcan chat with each other.3.3.11 Invite another User in ConferenceAny user currently engaged in a conference chat can invite other user to join the discussion. This is done byclicking on Invite More Friends from the menu inside the chat window, selecting the desired friends from thefriends list to be invited, and clicking on Invite button. The invited friends will join the conference only ifthey accept the invitation.3.3.12 Set a Discussion TopicWhether a user is engaged in a one-on-one chat or a conference chat, he can set or change the currentdiscussion topic. This is done by clicking on the Discussion Topic button in the upper area of the chatwindow, and filling in the desired one.3.3.13 Create a Poll inside a ConferenceAny user engaged in a conference can create a poll where all the users currently involved in the conferencecan vote. The creator of the poll will fill in the options of it and will specify whether a user can choose onlyone option (radio boxes) or several ones (checkboxes). The poll will appear in the right area of theconference chat window.This feature aims helping users to take quick decisions based on everybody’s opinion.3.3.14 Send a FileAny user engaged in a one-on-one chat can send a file to the other user. This is done by selecting the SendFile option in the menu of the chat window. Assuming that user A and user B are currently involved in a chatsession, whenever user A wants to send a file to user B, user B can either accept or refuse the file. If user Bwill accept the file, then he will have to choose a folder where to save it.3.3.15 Add a Textual ImageAny 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 fromthe menu in the upper area of the chat window.3.3.16 Tagging while in ConferenceAny 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 willautomatically become a tag. In text area, tags are colored differently than normal text (e.g. blue). Page 9 of 14
  12. 12. Voicenger - System Requirements SpecificationAll used tags in the current conference will appear as clickable items in a list in the left area of theconference window. Whenever a new tag is created, it will be automatically added to this list. Note that thefirst 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 aretagged 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 StatusA logged in user can update his Facebook status from Voicenger. This is done by clicking on the Update MyFacebook Status button in the main menu.3.3.18 Update Twitter StatusA logged in user can update his Twitter status from Voicenger. This is done by clicking on the Update MyTwitter Status button in the main menu. Page 10 of 14
  13. 13. Voicenger - System Requirements Specification4 System Architecture4.1 ComponentsThe two main components of the system are the client and server applications.4.1.1 The Server ComponentThe 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 ComponentThe 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 databaseaccessible directly only by the server application. The database will be installed on the same machine as theserver application.Whenever a client application needs access to data from the database, it will ask the server application toretrieve it. The server will interrogate the database and will only retrieve to the client, information that isspecific 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 toupdate the database. Page 11 of 14
  14. 14. Voicenger - System Requirements SpecificationPage 12 of 14
  15. 15. Voicenger - System Requirements Specification5 Non-Functional Requirements5.1 Client Application RequirementsThe 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 RequirementsThe 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 RequirementsThe system must be very responsive. Since this is a Peer to Peer system, the maximum number ofsupported clients in parallel is quite high.There is no possibility of concurrence issues with the database management system, since it is onlyadministrated by the server application.Current specifications are both scalable in terms of client number and performance, without negativeeffects on system performance.Server storage and performance should be adequate in case the number of clients grows.5.4 Availability and Reliability RequirementsDowntime allowance for the server is limited under 0.05% per month.It is strongly recommended that the database is regularly backed up. Page 13 of 14
  16. 16. Voicenger - System Requirements Specification6 Testing ConsiderationsTesting should be done taking into account different possible usage scenarios; both correct and incorrectusage 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 singledatabase (several users updating their profiles), changes on tables of friends list and ignore list, etc. It shouldbe measured that the performance remains constant at full load. Page 14 of 14

×