-
Notifications
You must be signed in to change notification settings - Fork 6
Software Requirements
Ali Shakeri edited this page Aug 25, 2022
·
39 revisions
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.
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.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.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.1 The software user is a technical operator who monitors the classification process by getting general reports.
- 2.3.1 An Nvidia Jetson board Nano(2GB RAM) is available.
- 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.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).
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.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.