Difference between revisions of "ExperimentControl/SRS"

From air
Jump to navigation Jump to search
(Created page with "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-an...")
 
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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
 
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]
 
   
 
{|class="wikitable alternance"
 
{|class="wikitable alternance"
Line 20: Line 13:
 
!scope="row" |
 
!scope="row" |
 
| 0.1.0
 
| 0.1.0
| TBC
+
| 2017
  +
| Lemaire Timothée - Homberg Nicolas
| TBC
 
 
| TBC
 
| TBC
 
| TBC
 
| TBC
Line 31: Line 24:
 
=1. Introduction=
 
=1. Introduction=
 
==1.1 Purpose of the requirements document==
 
==1.1 Purpose of the requirements document==
  +
This document's aim is to explain the requirement of the execo system
 
==1.2 Scope of the product==
 
==1.2 Scope of the product==
  +
The scope of the product is to improve the library execo by adding :
  +
*a notion of session.
  +
*interaction with a REST API
  +
*support of ressources sets
  +
 
==1.3 Definitions, acronyms and abbreviations==
 
==1.3 Definitions, acronyms and abbreviations==
 
==1.4 References==
 
==1.4 References==
  +
  +
*execo's page : [http://execo.gforge.inria.fr/doc/latest-stable/ execo]
  +
  +
*expo, another tool, that already support resources sets : [https://github.com/camilo1729/expo expo]
  +
  +
*Another experiment control tool : [http://xpflow.gforge.inria.fr/ XPFlow]
  +
  +
*article on the subject : [https://hal.inria.fr/hal-01087519 A survey of general-purpose experiment management tools for distributed systems ]
  +
 
==1.5 Overview of the remainder of the document==
 
==1.5 Overview of the remainder of the document==
 
=2. General description=
 
=2. General description=
 
==2.1 Product perspective==
 
==2.1 Product perspective==
  +
  +
execo is a python library, that aim to improve the process of making experiments on distributed systems.
  +
  +
the aim of the project is to extends execo with new functions.
  +
  +
execo is distributed under GNU license.
  +
 
==2.2 Product functions==
 
==2.2 Product functions==
  +
Creating group of resources has for purpose to gather several process together.
  +
  +
The notion of session will allow the user to have an history of his previous command and this for each user .
  +
  +
The REST API will allow to communicate with distant resource with the benefices of REST architecture.
  +
 
==2.3 User characteristics==
 
==2.3 User characteristics==
  +
  +
the users of the product will remain the same as the version of execo the project is based on.
  +
  +
Those users are mainly researchers, or any person that need to create experiments on distributed system.
  +
 
==2.4 General constraints==
 
==2.4 General constraints==
  +
  +
the added functions will need to support the full field of applications of execo.
  +
 
==2.5 Assumptions and dependencies==
 
==2.5 Assumptions and dependencies==
 
=3.Specific requirements, covering functional, non-functional and interface requirements=
 
=3.Specific requirements, covering functional, non-functional and interface requirements=
Line 48: Line 77:
 
* emergent system properties and quality characteristics.
 
* emergent system properties and quality characteristics.
   
==3.1 Requirement X.Y.Z (in Structured Natural Language)==
+
==3.1 Requirement 1.1 resource grouping==
  +
'''Description''': create a resource set
'''Function''':
 
   
  +
'''Inputs''': multiple resource (process local, or distant) descriptors
'''Description''':
 
   
  +
'''Source''': the program environment
'''Inputs''':
 
   
  +
'''Outputs''': a resource set descriptor
'''Source''':
 
   
  +
'''Destination''': the program environment
'''Outputs''':
 
   
'''Destination''':
+
'''Action''':
  +
  +
* Call of the function to create the new resource set with existing resource in argument.
  +
  +
'''Non functional requirements''':
  +
  +
'''Pre-condition''':
  +
  +
'''Post-condition''':
  +
  +
'''Side-effects''':
  +
  +
==3.2 Requirement 1.2 resource set functions==
  +
  +
'''Description''': functions on a set of resource
  +
  +
'''Inputs''': a resource set
  +
  +
'''Source''': the program environment
  +
  +
'''Outputs''': function output on the resource set
  +
  +
'''Destination''': the program environment and/or an output file (or terminal)
   
 
'''Action''':
 
'''Action''':
  +
* Natural language sentences (with MUST, MAY, SHALL)
 
  +
* Call of the function on the resource set.
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 
  +
* Mathematical Notations
 
  +
'''Non functional requirements''':
* Tabular notations for several (condition --> action) tuples
 
  +
  +
'''Pre-condition''':
  +
resource set not empty.
  +
  +
'''Post-condition''':
  +
post condition on the specific function.
  +
  +
'''Side-effects''':
  +
  +
==3.3 Requirement 2 Session==
  +
'''Description''': identifying actions in different sessions define by date / user.
  +
  +
'''Inputs''': Commands on the program
  +
  +
'''Source''': User inputs
  +
  +
'''Outputs''': record of the activity
  +
  +
'''Destination''': log files
  +
  +
'''Action''':
  +
  +
* The user (Connect to)/launch the program.
  +
* The user enter commands and use the program normally.
  +
* User's activity is recorded into the log file.
  +
* User (disconnect from) / close the program.
  +
  +
'''Non functional requirements''':
  +
  +
'''Pre-condition''':
  +
the User can connect to or launch the program
  +
  +
'''Post-condition''':
  +
  +
'''Side-effects''':
  +
  +
==3.4 Requirement 3 REST API==
  +
'''Description''': Interaction through a REST API.
  +
  +
'''Inputs''': normal execo commands
  +
  +
'''Source''': user or program calls
  +
  +
'''Outputs''': normal execo effects
  +
  +
'''Destination''': distant resource
  +
  +
'''Action''':
  +
  +
* Normal existing usage of execo, with the benefices of REST architecture.
   
 
'''Non functional requirements''':
 
'''Non functional requirements''':
   
 
'''Pre-condition''':
 
'''Pre-condition''':
  +
REST architecture requirement :
  +
* stateless
  +
* client-server
  +
* ...
   
 
'''Post-condition''':
 
'''Post-condition''':

Latest revision as of 02:41, 6 February 2017

Document History
Version Date Authors Description Validator Validation Date
0.1.0 2017 Lemaire Timothée - Homberg Nicolas TBC TBC TBC


1. Introduction

1.1 Purpose of the requirements document

This document's aim is to explain the requirement of the execo system

1.2 Scope of the product

The scope of the product is to improve the library execo by adding :

  • a notion of session.
  • interaction with a REST API
  • support of ressources sets

1.3 Definitions, acronyms and abbreviations

1.4 References

  • expo, another tool, that already support resources sets : expo
  • Another experiment control tool : XPFlow

1.5 Overview of the remainder of the document

2. General description

2.1 Product perspective

execo is a python library, that aim to improve the process of making experiments on distributed systems.

the aim of the project is to extends execo with new functions.

execo is distributed under GNU license.

2.2 Product functions

Creating group of resources has for purpose to gather several process together.

The notion of session will allow the user to have an history of his previous command and this for each user .

The REST API will allow to communicate with distant resource with the benefices of REST architecture.

2.3 User characteristics

the users of the product will remain the same as the version of execo the project is based on.

Those users are mainly researchers, or any person that need to create experiments on distributed system.

2.4 General constraints

the added functions will need to support the full field of applications of execo.

2.5 Assumptions and dependencies

3.Specific requirements, covering functional, non-functional and interface requirements

  • document external interfaces,
  • describe system functionality and performance
  • specify logical database requirements,
  • design constraints,
  • emergent system properties and quality characteristics.

3.1 Requirement 1.1 resource grouping

Description: create a resource set

Inputs: multiple resource (process local, or distant) descriptors

Source: the program environment

Outputs: a resource set descriptor

Destination: the program environment

Action:

  • Call of the function to create the new resource set with existing resource in argument.

Non functional requirements:

Pre-condition:

Post-condition:

Side-effects:

3.2 Requirement 1.2 resource set functions

Description: functions on a set of resource

Inputs: a resource set

Source: the program environment

Outputs: function output on the resource set

Destination: the program environment and/or an output file (or terminal)

Action:

  • Call of the function on the resource set.

Non functional requirements:

Pre-condition: resource set not empty.

Post-condition: post condition on the specific function.

Side-effects:

3.3 Requirement 2 Session

Description: identifying actions in different sessions define by date / user.

Inputs: Commands on the program

Source: User inputs

Outputs: record of the activity

Destination: log files

Action:

  • The user (Connect to)/launch the program.
  • The user enter commands and use the program normally.
  • User's activity is recorded into the log file.
  • User (disconnect from) / close the program.

Non functional requirements:

Pre-condition: the User can connect to or launch the program

Post-condition:

Side-effects:

3.4 Requirement 3 REST API

Description: Interaction through a REST API.

Inputs: normal execo commands

Source: user or program calls

Outputs: normal execo effects

Destination: distant resource

Action:

  • Normal existing usage of execo, with the benefices of REST architecture.

Non functional requirements:

Pre-condition: REST architecture requirement :

  • stateless
  • client-server
  • ...

Post-condition:

Side-effects:

4. Product evolution

5. Appendices

6. Index