RICM4 2017 2018 - Dashboard/SRS: Difference between revisions

From air
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 56: Line 56:
=II. General description=
=II. General description=
==1. Product perspective==
==1. Product perspective==
This dashboard will be based on the template SB-Admin Angular5 provided. And it will allow the user to use OAR though different buttons and forms.
A dashboard web application single page for the task manager and resource OAR.
The product is supposed to be an open source.

It is a web based system implementing client-server model. The UltraTeamMV System provides simple mechanism for outdoor geolocation in white & gray network areas.


==2. Product functions==
==2. Product functions==
Line 76: Line 73:
* Anonymous Users : will use the dashboard to see the resources
* Anonymous Users : will use the dashboard to see the resources


==4. General constraints==


Make the interface as simple as possible for the user.


==5. Assumptions and dependencies==
Having an Internet connection.


=III. Specific requirements=


==Requirement 1 : Log in==
'''Function''':
Authentication of the User.


'''Description''':
Authenticate the user by matching the name and password to the database. And get all the information related to the account.


'''Inputs''':
Name and Password


'''Source''':
NONE


'''Outputs''':
An error pops up, if there is a mistake, or else allows more action to the Logged user.


'''Destination''':
NONE


'''Action''':
Enter Name and Password -> Analyze to the database -> Connect to user/ Notify him of his mistake


'''Non functional requirements''':
Connection should be secured and protected.


'''Pre-condition''':
* User must be on the login page
* User must not be already connected


'''Post-condition''':
* User is connected or notified of the error


'''Side-effects''':
NONE




==Requirement 2 : See a listing of the resources==
'''Function''':
Display resources.


'''Description''':
Display the resources available and their details.


'''Inputs''':
Pressed '''Resources''' button


'''Source''':
NONE


'''Outputs''':
A page with a listing of all the resources and an 'Add Resource' button.


'''Destination''':
NONE


'''Action''':
Press "Resources"


'''Non functional requirements''':
NONE


'''Pre-condition''':
NONE


'''Post-condition''':
* User is now on the '''Resources' list''' page.


'''Side-effects''':
A sub-menu appear with 2 choices: Resources' list and Add Resources. It will allow the user to jump from page to the other more easily.
A button 'Add Resources' will also appear on the right-hand corner.




==Requirement 3 : See a listing of the jobs==
'''Function''':
Display user's submitted jobs.


'''Description''':
Display the jobs of the current user and their details.


'''Inputs''':
Pressed '''Jobs''' button


'''Source''':
NONE


'''Outputs''':
=II. General description=
A page with a listing of all the jobs and an 'Add Job' button.
==1. Product perspective==
This dashboard will be based on the template SB-Admin Angular5 provided. And it will allow the user to use OAR though different buttons and forms.


'''Destination''':
==2. Product functions==
NONE
This project will allow users to :
* Add/Remove resources (Administrators only)
* Submit/Delete/Configure jobs (Logged Users only)
* See information about resources and jobs
* Have Restricted access : login/Logout
* Evaluate the time management of the cluster
* See the usage of resource and jobs in different graphic ways


'''Action''':
==3. User characteristics==
Press "Jobs"
The users of this application are people that are already using OAR technologies, or the ones interested in it.


'''Non functional requirements''':
There is different types of users:
NONE
* Administrators :
* Logged Users :
* Anonymous Users :
A user who will use the dashboard to manage resources and tasks


'''Pre-condition''':
==4. General constraints==
* User must be logged in


'''Post-condition''':
Make the interface as simple as possible for the user.
* User is now on the '''Jobs' list''' page.


'''Side-effects''':
==5. Assumptions and dependencies==
A sub-menu appear with 2 choices: Jobs' list and Add Jobs. It will allow the user to jump from page to the other more easily.
Having an Internet connection.
A button 'Add Jobs' will also appear on the right-hand corner.


==Requirement 4 : Add a resource==
'''Function''':
Add a resource.

'''Description''':
Add a resource to the cluster.

'''Inputs''':
Pressed '''Add Resource''' button and filled out form with the required information.

'''Source''':
NONE

'''Outputs''':
Addition of a resource corresponding to the data to the cluster.

'''Destination''':
NONE

'''Action''':
Press "Add Resources" -> Fill the form with a hostname or IP address, an ID, ... -> Click on Submit

'''Non functional requirements''':
* The IP address or the hostname must be correct

'''Pre-condition''':
* User must be an Administrator.

'''Post-condition''':
* The resource is now added to the database.

'''Side-effects''':
NONE


==Requirement 5 : Add a job==
'''Function''':
Add a job.

'''Description''':
Submit a job to the cluster.

'''Inputs''':
Pressed '''Add Job''' button and filled out form with the required data.

'''Source''':
NONE

'''Outputs''':
Submission of a job corresponding to the data entered to the cluster.

'''Destination''':
NONE

'''Action''':
Press "Add Job" -> Fill the form with the number of nodes, CPUs or/and cores needed, a max duration -> Add the file -> Click on Submit

'''Non functional requirements''':
* The file must be executable
* The nodes' number must not exceed the resources available
* The CPUs' number must not exceed the resources available
* The cores' number must not exceed the resources available

'''Pre-condition''':
* User must be identified.

'''Post-condition''':
* The job is now submitted and added to the jobs' list of the user. It will be executed according to the schedule.

'''Side-effects''':
NONE


==Requirement 6 : Modify a resource==
'''Function''':
Modify a resource.

'''Description''':
Modify a resource already part of the cluster.

'''Inputs''':
Pressed '''Modify''' button and filled out form with the required data.

'''Source''':
NONE

'''Outputs''':
Modification of the resource according to the data entered.

'''Destination''':
NONE

'''Action''':
Press "Modify" next to the resource to modify -> Modify the form with a hostname or IP address, an ID, ... -> Click on Submit

'''Non functional requirements''':
* The resource must exist
* The form must by correctly filled

'''Pre-condition''':
* User must be an Administrator.

'''Post-condition''':
* The resource is now modified in the database.

'''Side-effects''':
NONE


==Requirement 7 : Modify a job==
'''Function''':
Modify a job.

'''Description''':
Modify a job already submitted to the cluster.

'''Inputs''':
Pressed '''Modify''' button and filled out form with the required data.

'''Source''':
NONE

'''Outputs''':
Modification of the job according to the data entered.

'''Destination''':
NONE

'''Action''':
Press "Modify" next to the job to modify -> Modify the form with the number of nodes, CPUs or/and cores needed, a max duration or Modify the file -> Click on Submit

'''Non functional requirements''':
* The job must exist
* The form must by correctly filled

'''Pre-condition''':
* User must be identified.

'''Post-condition''':
* The job is now modified in the database. It will be executed according to the schedule.

'''Side-effects''':
NONE


==Requirement 8 : Delete a resource==
'''Function''':
Delete a resource.

'''Description''':
Delete a resource already part of the cluster.

'''Inputs''':
Pressed '''Delete''' button.

'''Source''':
NONE

'''Outputs''':
Suppression of the resource in the cluster.

'''Destination''':
NONE

'''Action''':
Press "Delete" next to the resource to delete -> Click on Confirm

'''Non functional requirements''':
* The resource must exist
* The resource must be in a "Dead" state

'''Pre-condition''':
* User must be an Administrator.

'''Post-condition''':
* The resource is now removed from the database.

'''Side-effects''':
NONE


==Requirement 9 : Delete a job==
'''Function''':
Delete a job.

'''Description''':
Delete a job already submitted to the cluster.

'''Inputs''':
Pressed '''Delete''' button.

'''Source''':
NONE

'''Outputs''':
Suppression of the job in the database.

'''Destination''':
NONE

'''Action''':
Press "Delete" next to the job to delete -> Click on Confirm

'''Non functional requirements''':
* The job must exist

'''Pre-condition''':
* User must be identified.

'''Post-condition''':
* The job is now removed from the database.


'''Side-effects''':
=III. Specific requirements, covering functional, non-functional and interface requirements=
NONE


==1. Requirement X.Y.Z (in Structured Natural Language)==
==Requirement 10 : Log out==
'''Function''': User ressource allocation
'''Function''':
Dis-authentication of the User.


'''Description''':
'''Description''':
Remove all the information related to the user.


'''Inputs''': A token defining a user and a resource list
'''Inputs''':
Pressed '''Log out''' button.


'''Source''':
'''Source''':
NONE


'''Outputs''':
'''Outputs''': A boolean to indicate that the resource is allocated or not
Log out user.


'''Destination''':
'''Destination''':
NONE


'''Action''':
'''Action''':
Pressed '''Log out''' button.
Select a user -> select resources and dedicated values (<= available) -> validate -> notify user


'''Non functional requirements''': -
'''Non functional requirements''':


'''Pre-condition''': A user token must be created
'''Pre-condition''':
* User must be logged in


'''Post-condition''':
'''Post-condition''': The allocated resources must be locked to the user (should not appear as available for the next allocations)
* User is disconnected. And the data are update.


'''Side-effects''': -
'''Side-effects''':
NONE


=4. Product evolution=
=IV. Product evolution=


=5. Appendices=
=V. Appendices=
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
=6. Index=
* http://en.wikipedia.org/wiki/Software_requirements_specification
* http://oar.imag.fr/

Latest revision as of 11:45, 7 April 2018

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

Document History
Version Date Authors
1 0.1.0 February 5, 2018 LARNICOL Titouan
2 0.2.0 April 7, 2018 BELGUENDOUZ Sekina
3 0.2.1 April 7, 2018 BELGUENDOUZ Sekina

I. Introduction

1. Purpose of the requirements document

This Software Requirements Specification (SRS) identifies the requirements for Dashboard. It will specify our Single Page Application's (SPA) functionalities and the problems solved. This document will also detail our project's requirements.

2. Scope of the product

This project consists in updating a SPA. With Angular5 OAR-skylight, the precedent SPA, is not working anymore. Therefore to ease OAR's users and managers who have to use command line, the SPA has to be updated in Angular5.

This SPA will allow users to:

  • Add jobs, resources (if administrator)
  • See a listing of jobs, resources
  • Log in/Log out

3. Definitions, acronyms and abbreviations

  • SPA : Single Page Application is a web application accessed by a single web page. Its aim is to avoid loading the page at every user's actions. It interacts with the user dynamically rather than loading entire new pages from a server.
  • RESTful API : An Application Programming Interface is the defined interface through which interactions happen between applications that use its assets. REpresentational State Transfer API is a type of API that has several requirements :
    • Stateless
    • Client-Server oriented
    • Layered system
    • ...
  • OAR : OAR is a versatile resource and task manager for HPC clusters, and other computing infrastructures.
  • Angular5 : Angular5 is a TypeScript-based open-source front-end web application platform. This framework allow the user to develop one SPA for multiple desktop and mobile browsers.

4. References

5. Overview of the remainder of the document

II. General description

1. Product perspective

This dashboard will be based on the template SB-Admin Angular5 provided. And it will allow the user to use OAR though different buttons and forms.

2. Product functions

This project will allow users to :

  • Add/Remove resources (Administrators only)
  • Submit/Delete/Configure jobs (Logged Users only)
  • See information about resources and jobs
  • Have restricted access : login/Logout

3. User characteristics

The users of this application are people that are already using OAR technologies, or the ones interested in it.

There is different types of users:

  • Administrators : will use the dashboard to manage resources and jobs
  • Logged Users : will use the dashboard to see the resources and submit, modify their jobs
  • Anonymous Users : will use the dashboard to see the resources

4. General constraints

Make the interface as simple as possible for the user.

5. Assumptions and dependencies

Having an Internet connection.

III. Specific requirements

Requirement 1 : Log in

Function: Authentication of the User.

Description: Authenticate the user by matching the name and password to the database. And get all the information related to the account.

Inputs: Name and Password

Source: NONE

Outputs: An error pops up, if there is a mistake, or else allows more action to the Logged user.

Destination: NONE

Action: Enter Name and Password -> Analyze to the database -> Connect to user/ Notify him of his mistake

Non functional requirements: Connection should be secured and protected.

Pre-condition:

  • User must be on the login page
  • User must not be already connected

Post-condition:

  • User is connected or notified of the error

Side-effects: NONE


Requirement 2 : See a listing of the resources

Function: Display resources.

Description: Display the resources available and their details.

Inputs: Pressed Resources button

Source: NONE

Outputs: A page with a listing of all the resources and an 'Add Resource' button.

Destination: NONE

Action: Press "Resources"

Non functional requirements: NONE

Pre-condition: NONE

Post-condition:

  • User is now on the Resources' list page.

Side-effects: A sub-menu appear with 2 choices: Resources' list and Add Resources. It will allow the user to jump from page to the other more easily. A button 'Add Resources' will also appear on the right-hand corner.


Requirement 3 : See a listing of the jobs

Function: Display user's submitted jobs.

Description: Display the jobs of the current user and their details.

Inputs: Pressed Jobs button

Source: NONE

Outputs: A page with a listing of all the jobs and an 'Add Job' button.

Destination: NONE

Action: Press "Jobs"

Non functional requirements: NONE

Pre-condition:

  • User must be logged in

Post-condition:

  • User is now on the Jobs' list page.

Side-effects: A sub-menu appear with 2 choices: Jobs' list and Add Jobs. It will allow the user to jump from page to the other more easily. A button 'Add Jobs' will also appear on the right-hand corner.


Requirement 4 : Add a resource

Function: Add a resource.

Description: Add a resource to the cluster.

Inputs: Pressed Add Resource button and filled out form with the required information.

Source: NONE

Outputs: Addition of a resource corresponding to the data to the cluster.

Destination: NONE

Action: Press "Add Resources" -> Fill the form with a hostname or IP address, an ID, ... -> Click on Submit

Non functional requirements:

  • The IP address or the hostname must be correct

Pre-condition:

  • User must be an Administrator.

Post-condition:

  • The resource is now added to the database.

Side-effects: NONE


Requirement 5 : Add a job

Function: Add a job.

Description: Submit a job to the cluster.

Inputs: Pressed Add Job button and filled out form with the required data.

Source: NONE

Outputs: Submission of a job corresponding to the data entered to the cluster.

Destination: NONE

Action: Press "Add Job" -> Fill the form with the number of nodes, CPUs or/and cores needed, a max duration -> Add the file -> Click on Submit

Non functional requirements:

  • The file must be executable
  • The nodes' number must not exceed the resources available
  • The CPUs' number must not exceed the resources available
  • The cores' number must not exceed the resources available

Pre-condition:

  • User must be identified.

Post-condition:

  • The job is now submitted and added to the jobs' list of the user. It will be executed according to the schedule.

Side-effects: NONE


Requirement 6 : Modify a resource

Function: Modify a resource.

Description: Modify a resource already part of the cluster.

Inputs: Pressed Modify button and filled out form with the required data.

Source: NONE

Outputs: Modification of the resource according to the data entered.

Destination: NONE

Action: Press "Modify" next to the resource to modify -> Modify the form with a hostname or IP address, an ID, ... -> Click on Submit

Non functional requirements:

  • The resource must exist
  • The form must by correctly filled

Pre-condition:

  • User must be an Administrator.

Post-condition:

  • The resource is now modified in the database.

Side-effects: NONE


Requirement 7 : Modify a job

Function: Modify a job.

Description: Modify a job already submitted to the cluster.

Inputs: Pressed Modify button and filled out form with the required data.

Source: NONE

Outputs: Modification of the job according to the data entered.

Destination: NONE

Action: Press "Modify" next to the job to modify -> Modify the form with the number of nodes, CPUs or/and cores needed, a max duration or Modify the file -> Click on Submit

Non functional requirements:

  • The job must exist
  • The form must by correctly filled

Pre-condition:

  • User must be identified.

Post-condition:

  • The job is now modified in the database. It will be executed according to the schedule.

Side-effects: NONE


Requirement 8 : Delete a resource

Function: Delete a resource.

Description: Delete a resource already part of the cluster.

Inputs: Pressed Delete button.

Source: NONE

Outputs: Suppression of the resource in the cluster.

Destination: NONE

Action: Press "Delete" next to the resource to delete -> Click on Confirm

Non functional requirements:

  • The resource must exist
  • The resource must be in a "Dead" state

Pre-condition:

  • User must be an Administrator.

Post-condition:

  • The resource is now removed from the database.

Side-effects: NONE


Requirement 9 : Delete a job

Function: Delete a job.

Description: Delete a job already submitted to the cluster.

Inputs: Pressed Delete button.

Source: NONE

Outputs: Suppression of the job in the database.

Destination: NONE

Action: Press "Delete" next to the job to delete -> Click on Confirm

Non functional requirements:

  • The job must exist

Pre-condition:

  • User must be identified.

Post-condition:

  • The job is now removed from the database.

Side-effects: NONE

Requirement 10 : Log out

Function: Dis-authentication of the User.

Description: Remove all the information related to the user.

Inputs: Pressed Log out button.

Source: NONE

Outputs: Log out user.

Destination: NONE

Action: Pressed Log out button.

Non functional requirements:

Pre-condition:

  • User must be logged in

Post-condition:

  • User is disconnected. And the data are update.

Side-effects: NONE

IV. Product evolution

V. Appendices