Requirements Analysis Document - SD-Group-11/ml-frontend GitHub Wiki

Purpose, Audience and Scope

Machine learning models have become increasingly popular for performing automatic classification. However, researchers and developers have to constantly code the training procedure of common networks which can be tedious. It is our mission to streamline this process by providing an interactive frontend application with which researchers, developers and anyone with an interest in data science can train and save a variety of models on their data in a simple process maximizing developer efficiency!

Overview

Since Artificial Intelligence and Machine Learning jobs have increased by almost 75% in the last 4 years alone, researchers often code the training procedures of common networks. Here is where we come in! With our web-based application, here are a few of the high level functionalities users will have at their disposal:

  • Select from a variety of machine learning models to train from your data
  • Load a dataset of the user’s choice in order to train the model
  • Save the trained model
  • Load previously trained models
  • Adjust hyperparameters of the model
  • Visualise model performance with graphical plots

High Level Functional and Non-Functional requirements

Functional requirements

Functional requirements define the basic system behaviour. Essentially, they are what the system does or must not do, and can be thought of in terms of how the system responds to inputs. Functional requirements for our application include:

User requirements

Users will have the ability to:

  • Register a new account
  • Login to their existing account if they provide authenticated login details
  • Select from a variety of machine learning models to train from their data
  • Load a dataset of the user’s choice in order to train the model
  • Save the trained model
  • Load previously trained and saved models
  • Adjust hyperparameters of their model
  • Visualise model performance with graphical plots

System requirements

Since the application is web-based it will be able to used on most web browsers

Non-Functional requirements

Non-functional requirements are product properties and focus on user expectations and do not affect the basic functionality of the system. Non-Functional requirements for the Machine Learning Front-End application include:

Performance

  • User must be able to switch between pages on the site promptly with the speed of their internet connection being the only bottleneck
  • Models should have a fast enough response time in order to still provide a good user experience

Reliability/Availability

  • The server hosting the application should run without end(except for system maintenance) in order to make the application available at all times of the day, accommodating for all users across the world.

Usability

  • All buttons should be clearly visible in order to make functionality apparent.
  • Color scheme will be simple yet contrasting in order to not overwhelm the user but instead provide a visually appealing experience.

Security

  • Only users with authenticated login credentials can sign in.
  • User passwords must be encrypted

Scalability:

  • The application should be scalable in order to support many users
  • It must be able to support many users training their models simultaneously