Projets-2015-2016-IaaS Docker-SRS

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.

Read first:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

=Introduction=

Purpose of the requirements document

 * This Software Requirements Specification (SRS) identifies the requirements for the Collaborative Iaas project.
 * This document is a guideline about the functionalities offered and the problems that the system solves.

Scope of the product
The objective of this project is to allow a user group (member) to pool their laptops or desktop in order to calculate big data of few users. To do so, the solution should work with Docker to virtualize user machines and control the use of resources of each machine.

Overview of the remainder of the document

 * The rest of the SRS examines the specifications of the Collaborative Iaas project in details. Section two of the SRS presents the general factors that affect the  Collaborative Iaas project and its requirements, such as user characteristics and project constraints. Section three outlines the detailed, specific and functional requirements, performance, system and other related requirements of the project. Supporting information about appendices is provided in Section three.

=General description=

Product perspective




Product functions

 * Client :
 * Register to the service
 * Ask for an instance precising required resources
 * Launch an instance
 * Connect to running instance
 * Stop an instance
 * Remove an instance
 * Give a mark to a provider


 * Provider :
 * Register to the service
 * Download required files
 * Launch coordinator system
 * Provide some of his resources
 * Start providing
 * Stop providing
 * See resources consumption of the instances running on his machine

User characteristics

 * The client/provider doesn't have to be familiar with programming
 * The client/provider should know unix basics
 * The client/provider should know how ssh works
 * The provider should know how to launch a script in a terminal

General constraints

 * System constraint:
 * The provider's machine must run on a unix system (Ubuntu for example)


 * Environment constraint:
 * Internet access is required to use the service

Assumptions and dependencies

 * The client/provider have an internet access

=Specific requirements, covering functional, non-functional and interface requirements=

Portability

 * For the moment, the system will be available in Linux only for provider side
 * However, if packages are available on other systems, we might release the system on other OS later.

Other requirements

 * The system must be able to run on Linux 14 or higher
 * The system must not consume too much CPU
 * The system must not consume too much Memory

=Product evolution=

=Appendices=

Specification

 * The global project's page can be found here.

Licensing Requirements
Project under GPLv3 licence : https://www.gnu.org/licenses/gpl-3.0.fr.html