Skip to content

Software Requirements

Ali Shakeri edited this page Aug 25, 2022 · 39 revisions

1 Introduction

1.1 Purpose

Software Requirements describe all the functional and non-functional requirements. It contains the software's functionality, interfaces, and performance requirements. Also, it contains quality attributes and design constraints of the software.

1.2 Scope

The scope of this document is as follows:

  • 1.2.1 This document defines all software requirements arising from the special characteristics of the project.
  • 1.2.2 Will not describe any design or implementation details. These details will be described in the design phase of the project.
  • 1.2.3 Will not impose additional constraints on the software.

1.3 Definitions

  • 1.3.1 Data: RecycleIT uses waste images in a recycling factory to classify them based on color and material.
  • 1.3.2 Label: Information about the color and material of waste assigned to output classes.
  • 1.3.3 Monitor: The process of checking system performance using real-time plots.
  • 1.3.4 Accuracy: The percentage of correctly labeled wastes out of all inputs.
  • 1.3.5 Classification Rate: Number of labeled objects in one second time interval.

2 Overall description

2.1 Product perspective

  • 2.1.1 RecycleIT-B is an independent software.
  • 2.1.2 The software must be able to interact with the camera at the beginning of the line. It should be able to process different image formats.
  • 2.1.3 The software estimates the object's position and sends it to the robot at the end of the line.

2.2 User characteristics

  • 2.2.1 The software user is a technical operator who monitors the classification process by getting general reports.

2.3 Constraints

  • 2.3.1 An Nvidia Jetson board Nano(2GB RAM) is available.

2.4 Assumptions and dependencies

  • 2.4.1 Wastes images can be intact or deformed.
  • 2.4.2 The camera takes pictures from the top view of the line.

3 Specific requirements

3.1 Functional requirements

  • 3.1.1 Data need to be labeled because supervised models need labels; a statistical metric for evaluation is needed, and for measurement, a tool checks if the data are labeled correctly.
  • 3.1.2 We need an automatic labeling tool; labeling manually is too time-consuming and expensive. Also, we need a metric. Maybe a random manual dataset check.
  • 3.1.3 Center point of each object needs to be predicted in a 2D position metric by a detection algorithm; the center points are necessary for kicking the wastes out of line.
  • 3.1.4 Data augmentation is an essential part of data handling; it helps us increase the amount of data and is needed to reduce the variance of the system (it also prevents overfitting).
  • 3.1.5 An automated analyzing system is required for recognizing items with which our model is most confused about them; also, we need other plots for the overall performance of the whole classes and each one.
  • 3.1.6 In the classifier part of the project, we need a particular monitor for detecting misclassification.
  • 3.1.7 Pre-defined deep neural architectures should be recognized, and based on the amount of data and the project's processing capacity, we can use pre-trained versions or train them from scratch.
  • 3.1.8 An anomaly detector has to detect abnormal shapes for training or inference. Sensitivity seems the most appropriate metric for this task because any mistake is made to huge disadvantages.
  • 3.1.9 For better results from model training, the image generator has to generate valid images; validity, in this case, is defined as true color space, size, and format. A unit test is required for measurement.
  • 3.1.10 An image enhancer is required in this project; this tool normalizes every image based on a histogram obtained from the whole dataset.
  • 3.1.11 An artificial stream of waste images is needed for simulating the factory environment. the frequency of the stream should have the ability to change by the user; the base frequency is 10Hz based on software specifications.
  • 3.1.12 We need a background modifier(GAN)to have the same background for all data.
  • 3.1.13 We need an image extractor to extract good pictures from anywhere (if a telegram bot does not exist).

3.2 non-Functional requirements

The developed system complies with the ISO 25010 software quality standards in terms of the following factors:

  • 3.2.1 Correctness: Output accuracy of RecycleIT should match the expectations outlined in functional requirements.
  • 3.2.2 Reliability: RecycleIT should perform without failure for a specific number of uses or times.
  • 3.2.3 Maintainability: RecycleIT should be easily modified to correct faults, improve performance or other attributes, or adapt to a changing environment.
  • 3.2.4 Scalability: RecycleIT should be able to increase or decrease the system's capacity in response to changing demands.
  • 3.2.5 Retrainability: RecycleIT should be able to re-run the process that generated the previously selected model on a new training set of data.
  • 3.2.6 Testability: RecycleIT should be able to support testing by offering relevant information or ensuring the visibility of failures.
  • 3.2.7 Portability: RecycleIT should be able to transfer as an embedded system from one environment to another.

3.3 Performance requirements

  • 3.3.1 We want at least 95% accuracy for all types of classification.
  • 3.3.2 It should also have at least 98% precision on PET type.
  • 3.3.3 It should classify objects at least with a rate of 10 Hz.