Вы находитесь на странице: 1из 24

Software requirement specification for skype

Software Requirements
Specification
For

SKYPE
Prepared by: Sai Charan
Section:
K1429 B-43

LOVELY PROFESSIONAL UNIVERSITY

Software requirement specification for skype

CONTEXTS
1

INTRODUCTION ................................................................................................................................................ 1

1.1 DOCUMENT PURPOSE .......................................................................................................................................3


PRODUCT SCOPE ..............................................................................................................................................3
INTENDED AUDIENCE AND DOCUMENT OVERVIEW ..........................................................................................3
DEFINITIONS, ACRONYMS AND ABBREVIATIONS ...............................................................................................4
DOCUMENT CONVENTIONS ................................................................................................................................5
2

OVERALL DESCRIPTION ............................................................................................................................... 6


2.1 PRODUCT PERSPECTIVE ............................................................................................................................. 6 2.2
PRODUCT FUNCTIONALITY .......................................................................................................................... 6 2.3
USERS AND CHARACTERISTICS .................................................................................................................. 8
OPERATING ENVIRONMENT ......................................................................................................................9
DESIGN AND IMPLEMENTATION CONSTRAINTS ..........................................................................................10
2.2 USER DOCUMENTATION ............................................................................................................................. 11
ASSUMPTIONS AND DEPENDENCIES ...........................................................................................................11

SPECIFIC REQUIREMENTS ......................................................................................................................... 12


3.1 EXTERNAL INTERFACE REQUIREMENTS ...................................................................................................12
FUNCTIONAL REQUIREMENTS ................................................................................................................... 15 3.3
BEHAVIOUR REQUIREMENTS .................................................................................................................... 15

OTHER NON-FUNCTIONAL REQUIREMENTS ........................................................................................17


4.1

PERFORMANCE REQUIREMENTS .............................................................................................................. 17


SAFETY AND SECURITY REQUIREMENTS ................................................................................................. 17

Software requirement specification for skype

1.INTRODUCTION
This section gives a scope description and overview of everything included in this SRS document.
Also the purpose for this document is described and a list of abbreviations and definitions is
provided.

1.1 Document Purpose


The purpose of this document is to present a detailed description of the peer-to-peer broadcast
platform known as skype. It will explain the purpose and features of the system, the interfaces of
the system, what the system will do, and the constraints under which the system must operate. This
document is intended to be used as a reference for developing the initial version of the skype
platform for the development team.

1.2 Product Scope


Skype is a method of broadcasting video using peer-to-peer technologies. Its purpose is to allow
users to stream video easily, quickly, and free of cost. There are two distinct components that make
up the skype platform. There is a component that runs in the users web browser and another
component that functions as a server to enable connectivity between users web browsers.
Current services that provide a similar functionality include Skype and Twitch.tv. Skype uses an
external program for its peer-to-peer streaming video. Twitch.tv is a streaming website which uses
dedicated centralized servers to support its massive audience.Skype proposes to create a simpler decentralized service to use used with no additional installments and with the propose of being
multiplatform. Multiplatform will rapidly grow as support in existing browser and subversion for
mobile continue to extend their support of WebRTC.

1.3 Intended Audience and Document Overview


This document is primarily intended for the development team, our mentors at Citrix Online,
professors of CS189A and CS189B, and UCSB Capstone faculty. The SRS will discuss the details
and implementation of the project. It is recommended for those without computer science
experience to begin with section 1.4 for important acronyms and abbreviations that appear in this
document.

Software requirement specification for skype

1.4 Definitions, Acronyms and Abbreviations


Web Application

The component that runs on end-users web


browsers, composed of HTML and JavaScript
and is also the part that talks to other peers
directly

Application Server

The component that runs on the host, used to


index channels, facilitate peer connections, and
serve the web application to web browsers

Broadcaster

A peer who originates video streams to users

Channel

A method of namespacing different


broadcasters video streams. Channels are
created by a broadcaster which contains only
their own video stream. Users can join a
channel to view that broadcasters video stream,
in which they become a peer for that specific
channel.

End-user

A person who uses the p2pcast web


application, whether to broadcast or view video
streams

Forwarding/ Rebroadcasting

The process of one peer in a network


transmitting data it is receiving from another
peer in the network to at least one other peer

Google Chrome

A web browser developed by Google, the


primary target of our p2pcast web application

Software requirement specification for skype


Host

User that runs a p2pcast application server

ICE Framework

ICE is a framework used to connect peers. First


tries UDP, then TCP with HTTP, then TCP with
HTTPS, then TURN servers.

ICE Candidate

An ICE candidate is a network interface and


port of a peer that is using the ICE framework

NAT

A network protocol used in IPv4 networks that


allows multiple devices to connect to a public
network using the same public IPv4 address.

skype

A web application that allows for peer-to-peer


video broadcasting

Peer

A browser that is made available to be


connected to by other peers, can be a
broadcaster or user

Peer-to-peer

A method of communication, where most data is


transmitted between end-users instead of
centralized servers

PeerConnection

An object from the RTCPeerConnection API

Signaling

A process to exchange control messages and


coordinate communication between two peers

SRS

Software Requirements Specification

UDP

A simple transmission model with a minimum


of protocol mechanism.

Web Browser

A software application for retrieving, presenting


and traversing information resources on the
World Wide Web

Software requirement specification for skype

1.5 Document Conventions


Font: TNR 12

Software requirement specification for skype

2. OVERALL DESCRIPTION
2.1 Product Perspective
There are currently no easy or decentralized way to do video broadcasting. Existing solutions to
video broadcasting require Operating System centric programs or browser plugins. Additionally,
they require the use of significant centralized server resources. This means that offering video
broadcasting services is neither cheap nor convenient for users to decide to live stream a broadcast.
Two popular approaches to live streaming video are Skype and twitch.tv. however, Skype is a
program which a user and all viewers must install. Additionally it is not particularly suited for
broadcast, though it is peer-to-peer. The second example Twitch.tv is centralized and requires their a
third party program to stream. Both are proprietary formats and users are not in control of their own
broadcast streams.
The uses of video broadcasting for the world are limitless. For example a user could want to share
their professors lecture. Another interesting use case would be sharing a local event, such as a
concert, with multiple peers. Directly streaming to all the viewers would be impossible in these
couple of scenarios. The average user would likely not have the CPU or bandwidth resources to
support more than a few viewers. If a user wanted to support more than a few viewers then said user
would have to make use of a service to rebroadcast their stream to all their viewers. Such a service
will have restrictions: what a user is allowed to stream, how many viewers are allowed to view the
stream, and it would have associated with the service.

2.2 Product Functionality


Skype is a software program, available for both computers and mobile devices, that facilitates free
or low-cost communication between Skype users, as well as between Skype users and phones.
Skype has several major functions that help it connect people all over the world via chat, voice and
video.

Computer-to-Computer Calls

Skype's most basic function -- and one that is free to use -- is computer-to-computer calls.
After signing up for a Skype account and adding a user to your contact list, make a voice or video
call to him simply by double-clicking his name and clicking "Call" or "Call With Video." Just as
cellphone call quality varies depending on signal reception, the quality of Skype voice and video
calls varies depending on the speed and quality of your Internet connection.

Software requirement specification for skype

Chat

Another free Skype feature is text-based chat between users. Similar to instant messaging
clients such as Windows Live Messenger and AIM, it's possible to chat with users in your Skype
contacts list. After clicking the name of a user, type a message to him in the empty field at the
bottom of the window that pops up and click "Enter." In addition to chatting within Skype itself, it's
possible to chat via text with Skype contacts using a Web-based messenger such as "ILoveIM" or
"imo.im."

Computer-to-Phone Calls

Once you load credit into your "Skype Account" using a debit card, credit card or PayPal,
it's possible to make phone calls to land lines and cellphones around the world, at rates that are fixed
and generally low. To call a phone, click the "Call Phones" button at the bottom of your contact list,
then enter the number in the window that pops up, making sure to select a country from the list of
options, if you're calling internationally, before you click the "Call" button.

SMS Messages

It's also possible to send text messages to cellphones around the world with Skype. After
entering your phone number -- and country code, if necessary -- type a short message in the blank
field at the bottom of the window, as you would do if you were chatting with someone. The
difference in the "Call Phones" window is that the button next to the field says "SMS," and clicking
it sends an SMS text message to your recipient. Skype notifies you when the text message has been

Software requirement specification for skype


delivered by showing the word "delivered" above the message.

Software requirement specification for skype

2.3 Users and Characteristics


Hotkeys
Just pop open the Options menu, and click down to advanced. Click on Hotkeys then select
Enable Keyboard Shortcuts. From here, youll be able to set hotkeys of your choice for a wide
array of different functions. Granted, the only one I actually use is Push To Talk, but its still
incredibly convenient.

Screen Sharing
If youre in a call with someone (or if you simply right click one of your online contacts), youll
probably notice that one of the options available to you is Share Screen. What this basically does
is display a live-stream of your computer screen for your contact, at which point you can show them
photos, display videos, or even run presentations. Unfortunately, this feature is only available for
free if youre in a video call between two people. Any more than that, and youre going to need to
pay.

Software requirement specification for skype

Send Contacts
Another nifty characteristic of Skype is that it actually allows you to share your contacts with
another user. Rather than having to tell one of your friends to search through Skypes database when
they add one of your contacts, you can actually just right-click on their name and select the Send
Contacts option. From there, its a simple matter of ticking the box next to the name of the contact
(or contacts) you want them to add. Naturally, this is one you should exercise caution when using:
you never know which of your contacts might not want someone knowing their username.

Hidden Emoticons
Skype has a pretty extensive list of emoticons, which can be accessed by clicking the emote image
next to your message box. Thing is, this doesnt actually display all the emotes available to you..

Edit Your Messages


Usually, You can actually edit the message you just sent by pressing up on your keyboard with the
input box selected. Not only that, you can edit any message youve sent in the last several minutes
simply by right clicking and hitting edit message. Careful, though: you can only edit stuff you
sent recently. Once its been in chat for a while, its stuck there for good.

Customize Your Font


You can customize how your font looks both to yourself and to others in the Skype Menu. Pop into
Tools->Options, then click IM & SMS. From there, simply select IM Appearance, and tweak your
font to your liking.

2.4 Operating Environment


Windows Server 2012 R2 Datacenter OS with all required updates installed.
Windows Server 2012 R2 Standard OS with all required updates installed.
Windows Server 2012 Datacenter OS with all required updates installed.
Windows Server 2012 Standard OS with all required updates installed.

Software requirement specification for skype


BACK END DATABASES THAT WILL WORK WITH SKYPE
Microsoft SQL Server 2014 Enterprise (64-bit edition), and you must run with Cumulative Update
6
Microsoft SQL Server 2012 Enterprise (64-bit edition), and we recommend running with the latest
service pack.
Microsoft SQL Server 2008 R2 Enterprise (64-bit edition), and we recommend running with the
latest service pack.

Software requirement specification for skype

2.5 Design and Implementation Constraints

Calling: use free Skype-to-Skype calls, anywhere in the world.


Video: have face-to-face meetings without leaving your desk.

Software requirement specification for skype

Conferencing: conduct multi-person meetings without any difficult set-up.


Screen sharing: easily show others all or part of your screen.
Instant Messenging (IM): chat with colleagues and business contacts.
File transfer: send and receive large files easily.
Create accounts: easily set up business accounts for every employee.
Allocate Skype Credit: centrally manage balances and automatic top-up
. Assign features: allocate features, including Online Numbers, Call forwarding, Subscriptions
and Voicemail, to individual business accounts.
Monitor usage: view real-time reporting about Skype usage and costs.

2.6 User Documentation


Our application will be primarily designed with user-friendliness in mind. The application will have
a lightweight and simplistic GUI that will attempt to hide application and network complexities. In
addition a video tutorial will be made to show basic functionality of skype for incoming users.

2.7 Assumptions and Dependencies

User has stable modern internet connection


User computer has enough power to rebroadcast
Broadcaster has either an internal or external webcam
The service is used preferably on a desktop or laptop
Currently mobile support needs to catch up

Software requirement specification for skype

3.SPECIFIC REQUIREMENTS
3.1 External Interface Requirements
3.1.1 User Interfaces
The user interface will be designed with simplicity and functionality in mind. More features will be
added later such as a channel list and descriptions for each channel.

Software requirement specification for skype

Software requirement specification for skype

3.1.2 Hardware Interfaces

Hardware
component

Recommended

CPU

64-bit dual processor, hex-core, 2.26 gigahertz (GHz) or higher.


Intel Itanium processors are not supported for Skype for Business Server 2015
roles.

Memory

32 gigabytes (GB).

Disk

EITHER:
8 or more 10000 RPM hard disk drives with at least 72 GB free disk space (two

Software requirement specification for skype

of the disks using RAID 1 and 6 using RAID 10).


OR
Solid state drives (SSDs) able to provide the same free space and similar
performance to 8 10000 RPM mechanical disk drives.
Network

1 dual-port network adapter, 1 Gbps or higher (2 network adapters can be used,


but they need to be teamed with a single MAC address and a single IP address).
Dual or multi-homed configurations are not supported for Front End Servers,
Back End Servers, Standard Edition servers, and Persistent Chat Servers.
As long as they are not exposed to the operating system and are being used to
monitor and manage server hardware, you can have out of band management
systems, such as DRAC or ILO. This scenario doesn't constitute a multi-homed
server, and it is supported.

3.1.3 Software Interfaces


Internet
Information
Services (IIS)

IIS is needed on all Front End Servers, as well as all Standard Edition servers,
with the following modules selected:
Common HTTP Features
o Default Document
o HTTP Errors
o Static Content
Health and Diagnostics
o HTTP Logging
o Logging Tools
o Tracing
Performance
o Static Content Compression
o Dynamic Content Compression
Security
o Request Filtering
o Client Certificate Mapping Authentication
o Windows Authentication
Application Development
o .NET Extensibility 3.5
o .NET Extensibility 4.5
o ASP.NET 3.5
o ASP.NET 4.5
o ISAPI Extensions
o ISAPI Filters
Management Tools
o IIS Management Console

Software requirement specification for skype

IIS Management Scripts and Tools


We should also note Anonymous Access is also needed, but you get that when
you install IIS, so you dont have a place to select that on the list.
o

Windows
Media Format
Runtime

For Windows Server 2012 and Windows Server 2012 R2, youll need to install
the Media Foundation feature in Server Manager. Now, you actually can start
your Skype for Business Server 2015 installation without this one, but youll be
prompted to install it, and then reboot the server, before the Skype for Business
Server 2015 install continues. Better to do it ahead of time.

.NET
Framework
3.5

The Framework will likely be installed by default on your Windows Server


2008 R2 machine (definitely check to be sure before you upgrade), but it
actually wont be on your Windows Server 2012/Windows Server 2012 R2
servers (for new installations). To add it in, youll need access to your
installation drive or media (the place your Windows Server was installed from,
or where the install files are now). Then go ahead and install it as a feature from
Server Manager, and point to the installation media (specifically
the \sources\sxs folder) when asked for it, and continue on to install it.

3.2 Functional and Behaviour Requirements


3.2.1 Use Case View

As a broadcaster, I want to go to a website and stream my video to other viewers.


As a viewer, I want to go to a website and watch other peoples live streams.
As a user, I want a user-friendly experience.
As a user, I should know whether my web browser is supported.
As a broadcaster, I want to be able to add filters to my broadcast.
As a broadcaster, I want to be able to stream whats coming from my webcam.
As a broadcaster, I want to be able to stream whats on my screen.
As a broadcaster, I want to be able to create a Channel to stream to.
As a viewer, I want to be able to select a channel and see the stream from the channel.
As a viewer, I want to be able to disconnect from a channel, and select another channel to view
whenever I want.
As a user, I want to be able to communicate with other users in the channel in real-time.
As a broadcaster, I want to be able to stream to a lot of people without using a lot of resources.
As a broadcaster, I want to be able to stream to a few viewers who will rebroadcast my stream to
other viewers.
As a viewer, I want to be able to view channels without constraining my bandwidth as a peer.

Software requirement specification for skype

As a viewer, I want to be able to rebroadcast a stream effectively with little to no technical


knowledge.
As a broadcaster, I want the service to be able to intelligently choose which peers will be able to
rebroadcast the stream most effectively.
As a user, I want my streams to be interrupted as little as possible when a peer encounters issues.
3.2.2 Potential Use Case View

As a broadcaster, I want to be able to select multiple cameras to broadcast from simultaneously.


As a user, I want to be able to use p2pcast with the Mozilla Firefox browser.
As a user, I want to be able to register and browse through a list of channels that other users are
broadcasting on.
As a user, I would like the option of using a mobile device to view or broadcast content
As a user, I would like the option of having live chat between broadcasters or viewers
As a broadcaster, I would like the option of sharing my computer screen as a video source to
viewers while simultaneously broadcasting from a webcam.

Software requirement specification for skype

4. OTHER NON FUNCTIONAL REQUIREMENTS


4.1 Performance Requirements
1. Creating a new channel as a broadcaster should happen immediately, taking no more than 5
2.
3.
4.
5.

seconds.
Joining an existing channel should happen quickly, a live video stream shall begin within 10
seconds.
Sudden and unexpected peer disconnections should trigger a new connection to another peer and
begin streaming again within 30 seconds.
Planned peer disconnections (ex: user leaving channel page and other peer notified) shall be
handled gracefully and minimize stream disruptions and begin streaming again within 10 seconds.
Peers shall be able to handle rebroadcasting to at least 3 other peers, using recent Apple MacBook
Pros for baseline performance of this function which is mainly bottlenecked by browser
implementations of WebRTC and video decoding/transcoding.

4.2 Safety and Security Requirements

The company's security policy includes:

Usernames are unique.

Callers must present a username and password or other authentication credential.

Each caller provides the other with proof of identity and privileges whenever a session is
established. Each verifies the others proof before the session is allowed to carry messages.

Messages transmitted are encrypted from caller to caller.[dubious discuss] No intermediate node
(router) has access to the meaning of these messages. This claim has been undermined in
May 2013 by evidence that Microsoft (owner of Skype) has pinged unique URLs embedded
in a Skype conversation;[4] this could only happen if Microsoft has access to the unencrypted
form of these messages.

Passwords

Software requirement specification for skype

Its important that you choose a secure password to access your Skype account. Hackers use lists of
common passwords to access accounts (not only on Skype but across all websites), so its critical
that you use a strong, unique password.
Use a mixture of letters, numbers and characters like the characters above the numbers on

many keyboards such as %, *,$, and !. Including in your password punctuation, symbols and other
non-standard characters helps to increase the strength of your password.

Avoid names, birthdays and dictionary words, as these are easy to guess and hack.

The longer the password is, the stronger it usually is but the harder it is to recall. Choose a
password you can remember so that you dont have to write it down.
It can be difficult to create a strong password and remember it easily. Here are a few techniques to
help:
Use a sentence as your password
Passwords are limited to 50 characters, but you can use a short sentence to create a password thats
difficult to crack.
Include numbers, uppercase and lowercase letters in your passwords, so instead of
"theanswerismars" try "Th3Answer1sM4rs*"
Make the password personal to you
Your password is something that only you should know and not something that someone else could
easily find out. For example, the name of your dog or your favorite movie are things that others
might know especially since, with the advent of social networking, a lot of personal information is
available about you.
Try looking outside and describing something you see ("The River Flowing!" or "A Yellow car"),
and then apply our recommendations:

Software requirement specification for skype

"Th3Riv3rFl0wing*" or "4Y3lloWcar.$"
Use a unique password for each site
Many of us have a large number of websites and accounts that we need to remember our username
and password for, but not all sites are created equal. Whilst we at Skype care passionately about and
invest heavily in your security, not all sites do. So use a password that is unique to each website you
use to prevent any compromise of those other sites from affecting your Skype account.
It's common practice for attackers to verify stolen accounts from other websites against high-value
accounts like Skype, mail providers and social networks to see if they can get access.
Change your password regularly
Even if you have a strong password, you should change it regularly.
And if you ever suspect your password has been compromised, you should change it immediately.
If another website or service where you use the same or a similar password is compromised, change
your Skype password as soon as possible to protect your account.

Keeping Skype up-to-date


We'll let you know whenever a new, improved version of Skype becomes available. You can also
manually check for updates:
On Skype for Windows desktop go to Help > Check for Updates.
On Skype for Mac go to Skype > Check for Updates.
On mobile platforms you will get a notification about new releases in the App store.

Software requirement specification for skype

Privacy settings
Skypes privacy settings let you control who can contact you on Skype. To update your settings:
On Skype for Windows desktop click Tools > Options > Privacy.
On Skype for Mac, click Skype > Preferences > Privacy.
On Skype for Android, tap Settings > Privacy.
On Skype for iOS, tap Settings > Privacy.
On Skype for Web, click Settings > Privacy.