RICM4 2017 2018 - Dashboard/SRS: Difference between revisions

From air
Jump to navigation Jump to search
 
Line 433: Line 433:


'''Post-condition''':
'''Post-condition''':
* User is disconnected. And the data is update.
* User is disconnected. And the data are update.


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

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