ISYS2089 – Software Engineering Fundamentals “Project 3 - Garbage Segregation” Software Requirements Specification (SRS) Group 3 Nguyen Anh Duy (s3878141) Dao Kha Tuan (s3877347) Nguyen Luu Quoc Bao (s3877698) Nguyen Trong Minh Long (s3878694) Date: 27/07/2021 – 22/08/2021 Group3 Page 1 Table of Contents 1. 2. 3. Introduction 3 1.1. Purpose 3 1.2. Scope 3 Functional Requirements 6 2.1. Use case diagrams 6 2.2. Use cases (individual) 6 2.3. Activity Diagrams 17 References Group3 18 Page 2 1. Introduction 1.1. Purpose The undesirable rise of littering has severely caused tremendous consequences to the community, which seriously damage the ecosystem, harm the environment, and diminish human life quality. These problems are always a critical topic of discussion, not only in Vietnam but also around the globe. Since then, people have investigated various approaches to tackle the issue, include garbage separation and recycling methods. Yet, people seem to struggle in following the regulations and not strictly segregate the garbage. Regarding this issue, our team decided to assist company 3M (Mobility, Multi-stakeholder, Money for all) with their initiatives in constructing flexible and multi-functions mobile applications. The application targets three types of users: household citizens, garbage collectors and business stakeholders. Through the implementation of the application, we hope that the littering issue can be gradually resolved to reduce pollution rates, efficiently enhance the garbage segregation process, and create opportunities for businesses to deliver their goods in an environmental-friendly approach. This SRS here is to summarize how the apps flow and show the connection between household users, garbage collector and the stakeholder staff. Some of the features in the application are inspired by an app called mGreen [1], which also help users segregating the garbage. Regarding to the Software Requirement Specifications (SRS), this report will carefully address the details of this system, an overview of the app mechanics that includes some particular use cases, and the expected outcomes from a user perspective. 1.2. Scope The application is named “Garbage Segregation App” which provides three different interfaces for Household Users, Garbage Collectors, and Stakeholder Staff. Based on the type of account, the application automatically changes the user interface and available features (functions) for that type of user. This application’s mechanism can be simply summarized as sorting the wastes, checking the garbage segregation and delivers/ receive points, which can be used to exchange for goods / gifts from other companies. In terms of household users' side, this application allows these users to segregate garbage by scanning the trash to sort the waste in the appropriate bag (organic, inorganic, recyclable). Moreover, household users can view information to keep track of their account or the system such as their bonus point history, the conversion table and a list of potential gifts distributed by the companies. Furthermore, the system implements the usability of the QR code to help household users register information and inform the garbage collectors to collect their waste bags without leaving their home through a feature called request garbage collection. When household users have enough points, they can exchange gifts by choosing a goods provided by a list of companies (stakeholders) that they want based on the relevant points and send a request to receive that gift to the stakeholder staff. Besides, they can invite their friends to use the app by giving invitation codes to other household users, which also helps them earn more points. With regards to the garbage collectors, they can check garbage by examining it to a set of rules and give household user points if the requirements are met. In addition, they can response to the household users' request to track the location and confirm if they could come and collect garbage. Lastly, for the stakeholder staff, there are two main functions which are approval gifts when receiving an exchange request from household users and change information which allows the staff to directly adjust and modify data such as the conversion table or the list of Group3 Page 3 available gifts. One special circumstance for stakeholder staffs is that each company will have their own staff to represent their company, and they will establish a committee that holds a meeting monthly to ensure the integrity of the system by checking the conversion table, business rules, and discuss about the gifts that they can offer with the suggested points. If all members of the committee agree, then the stakeholder staff can append their gifts in the application. Unfortunately, due to the restricted time and technical aspects, this application will not cover the delivery system after the stakeholder staff approve the exchange request from household users. Transferring gifts will be outsourced for delivery companies instead. Moreover, for clarification, the system assists the garbage collector to check the segregated garbage by providing a set of rules to check if household users have followed it, however, most of the process are done manually by garbage collectors, so the system will not have any scanning method for the collectors to check the sorted garbage. By using this app, household users will know how to sort their garbage appropriately to help them earn points, which can be used to exchange gifts such as coupons or items. In other words, household users can get valuable items from segregating the wastes. In the long term, they can save a great amount of money and make a paramount contribution to protect the environment and cut down substantial amounts of garbage which are pernicious to the environment. The primary goal of this application is to encourage household users to segregate garbage so that they can protect the environment from pollution. In tandem with segregating garbage, household users can earn points given by the collectors, which can be used to exchange bargains. The objective of this application includes helping household user recognize the importance of garbage segregation, prevent household users’ habit of littering, and giving household users valuable gifts if they complete segregating in a long term. Our goals towards building the system are to provide clear instructions and/or a feature to help users segregate the waste appropriately, fasten the waste collecting processes and motivate users to protect the environment. In terms of business goals, this application will also raise awareness of household users about the companies, which helps stakeholders gain traction. Side Feature Description Segregate In scope Household users garbage Household users use a camera on the smart device to scan the garbage and get the result of which type those pieces of garbage in. View information Household users can view the information including view bonus point history, view list of potential gifts, and view conversion table. Exchange gifts Household users can exchange gifts such as vouchers using their accumulated points. Request garbage collection Group3 Household users can request to get their segregated garbage collected by scanning QR code. Page 4 Collectors Stakeholder Staff Out scope Invite friends Household users invite their friends to download the app. Check garbage Collectors will look at the list of processes and regulations provided Give points Collectors give the points to household users by scanning QR code if they segregated truly. Response collection request Collectors can accept, deny, or pend the household users’ request Approve gifts Staff can accept the request of exchanging gifts from household users. Staff can change information regarding the list of potential gifts and details of the conversion table. The collectors must check the garbage segregation manually by observing the Checking segregation rules provided by the app. The garbage (by system cannot immediately check the scanning) segregation by any other approaches (scanning, etc.) The app will not connect with delivery Delivery gifts company to transfer gifts. This will be processed in another process. Table 1. A brief description of what the app does. Change information 1.3. Definition, Acronyms and Abbreviations Garbage Collector: A staff member who collects the household’s garbage and has the authority to give points to the households by checking their garbage segregations. Stakeholder staff: A representative from the stakeholder company to manage the application comprising term of use, potential gifts, and rules. QR code: A QR code will be attached to the household user's garbage packs to uniquely identify a household and it is also used to send the request for collecting garbage to the system. For clarification, the QR code contains the location of the place that requested for collecting the garbage. Conversion table: This table records the regulations and set of rules when garbage collectors deliver points to household users (for instance, each waste bag can convert to how many points, each type of waste bag worth how many points – recyclable wastes might get more points than organic and inorganic wastes) Potential Gifts: These are the gifts & goods that are available for household users to exchange. The list of gifts will be updated monthly by the stakeholder staff committee as mentioned above. Group3 Page 5 Bonus point history: A table records the number of points that the household user receives after each time their garbage has been examined and collected. 2. Functional Requirements 2.1. Use case diagrams Figure 1: Use-case Diagram <Adopted from: https://lucid.app/lucidchart/invitations/accept/inv_5c5d0e14-7f9a-4fa0-b7e6-baf2e5e51d1b [2]> According to the use case diagram, there is one primary user who is household user. Household users have a function to segregate garbage by scanning waste, which is to know which type the scanned waste belongs to. This function solves the problem that household users do not know what kind of garbage is. Household users can also view information including history, conversion table, and view potential gifts. Household users may exchange gifts while viewing potential gifts. The goal of those function is to provide information for household users as they Group3 Page 6 must know what they will earn or have earned while doing segregation. Furthermore, household users request collectors to collect their garbage without leaving home. This function will help people who do not have much time to bring garbage to the required areas. They can also invite friends to earn more points. In terms of secondary household users, the stakeholder staff, who is a staff member of stakeholders’ company must have right to approve gifts, which means accepting the gift for the household users, change conversion table for adjusting the points received, and change the potential gifts when the gifts are out of stock or when the stakeholders’ company change the stock. Another secondary household user is collectors, they can give points to household users if they have segregated well by scanning QR code. This function is to give points to the household user for their exchanging. Moreover, collectors can respond to household users, which is to create an interaction between collectors and household users. 2.2. Use cases (individual) A user can be both primary and secondary. For instance, when the garbage collector approves request to collect garbage from user, they are secondary, however when checking garbage and deliver points, the action represents that the collector is actually the primary role. Therefore, we believe that we only describe users by their roles, not determine their primary or secondary user a) Household users use-case: Use Case Name Exchange gift Version Goal 1.0 Get the gift using accumulated points Actor Household users Description When a household exchange gift, the system checks if they have accumulated enough points and announces that they have successfully exchanged when successful. Pre-conditions Household must accumulate enough points Trigger Households choose the exchange option Basic course events Group3 of 1. 2. 3. 4. Households click on the view potential gifts option Households click on the expected gift Households click on the exchange button The system minus the accumulated points equal to the gift points on household account 5. The system announces household the status of the exchanging 6. Repeat from step 2 – 6 for each gift 7. End of use case Page 7 Alternative paths 1a. Return option 1. Household select return option 2. End of use case 3a. Unavailable gift 1. The system checks that the gift is out of stock. 2. System sends an error announcement to the household 3. Return to step 1 4a. Not enough points 1. System checks that the point is not enough. 2. System sends an error announcement to the household 3. Return to step 1 Post-conditions Households can receive the gifts and their account’s points are deducted an amount equals to the sum of gifts’ point values. Business rules The stakeholder staff must be able change the potential gifts in the app Author and date Nguyen Luu Quoc Bao 10th August 2021 Use case 1. Exchange gift Use Case Name Request garbage collection Version 1.0 Goal Request garbage collection. Actor Household users When household request collection, the garbage collector will response and come to the household’s house as an appointment to collect garbage Household users must have already attached the QR code to the waste bags Description Pre-conditions Trigger Basic course events Group3 Household users scan the QR code to send the request of 1. 2. 3. 4. 5. 6. 7. 8. Households scan a QR code. A request must be sent to a garbage collector A random garbage collector will response to the request The garbage collector came to the household user location The collector checks if the garbage is sorted properly The collector collects the garbage The garbage collector brings garbage to the garbage factory End of use case Page 8 Alternative paths 3a. Garbage collector reject 1. Collectors deny the request 2. Send a request to another collector 3. Move to step 3 5a. No garbage found 1. The collector cannot see the garbage 2. The collector sends notification to the household to find the garbage 3. Move to step 6 Post-conditions Households can give garbage to the collection area with support of garbage collectors. Business rules The garbage collector must commit to collect garbage as response. Author and date Nguyen Luu Quoc Bao 10th August 2021 Use case 2. Request garbage collection Use Case Name View information Version 1.0 Goal Users can view information regarding the system and their account Actor Household user Description Users can select up to 3 options: views bonus point history, conversion table and list of potential gifts Pre-conditions None Trigger Users select to view information Basic course of events Alternative paths Post-conditions Group3 1. Users click on the view information 2. System displays three options 3. Users choose to view bonus point history, conversion table or list of potential gifts. 4. System displays information based on the option. 5. End of use case 2a. Return option 1. Users select return option 2. End of use case Users can choose the collection area where they want their trash to be collected. Page 9 Business rules None Nguyen Trong Minh Long 10th August 2021 Use case 3. View information Author and Date Use Case Name Invite friends Version 1.0 Goal Invite other household users to use the app Actor Household users Description When the user feels like the app is good and wants to share with others, the user can send invitations to others to use the app. Pre-conditions Only household users can use this function, not garbage collector Trigger Users choose the invite friend's option Basic events course of 1. 2. 3. 4. User selects invite friend option System receives request from household Display code for friends to enter End of use case Alternative paths 3a. Return option 2. Users select return option 3. End of use case Post-conditions Users can invite others to download and register an account for this app. Business rules None Author and Date Nguyen Trong Minh Long 10th August 2021 Use case 4. Invite friends b) Garbage Collector use-case: Use Case Name Version Group3 Check garbage & give points 1.0 Page 10 Goal Summary Actor Precondition Triggers Basic Course of Events Alternative paths Group3 To examine if the garbage has been segregated appropriately and deliver the points to which household user the garbage belongs. The garbage collector will manually check if the garbage has been segmented into the correct type of bins and if it is correct, the collector will identify the household user of that garbage and deliver bonus points to that collector account. Household user and garbage collector There is at least one garbage in the factory for the garbage collector to examine The garbage collector wants to check if the garbage is correctly segmented and deliver bonus points for the household user of that garbage. 1. The garbage collector checks if the waste is correctly segmented (manually) 2. The application will scan the garbage to check if it is placed in the suitable bin 3. The application will display a result to check if the garbage is appropriately segregated or not 4. If the garbage was completely segregated, the collector will scan the QR code to identify the household user 5. The admin will transfer the bonus points to the user account based on the number of garbage that the household user has. 6. After the account is updated, a message is sent to the user application to inform about their new bonus points balance. 7. End of use case 2.1 The user did not segregate the waste appropriately: 1. Use case will continue from step 1 to step 3 in normal flow. 2. After recognizing that the waste is not segregated appropriately, the garbage collector will carry out step 4 to find the household user. 3. The collector will then send a notification to inform a particular user that they failed to segregate the Page 11 Post – conditions Business rules Author and Date Use Case Name Version Goal Summary Actor Precondition Triggers Basic Course of Events Alternative paths Group3 garbage and there will not be any bonus points. 4. Return to step 1 4.1 The garbage did not have the QR code: 1. The garbage collector will move to the next garbage. 2. Return to step 1 The user will receive bonus points from the garbage collector. The bonus points for each garbage are determined by garbage collector only, and users can check their balance / history to view their bonus points progress. Nguyen Anh Duy 13th August 2021 Use case 5. Check garbage and give points Response to collection request 1.0 To receive collection request from user and collect the garbage at that location The garbage collector will use the application to find a place for collecting garbage. Garbage collector and household user There must be at least 1 request from the application sent to the garbage collector The system receives requests to collect garbage from users. 1. The application sent a list of collection requests to garbage collectors. 2. A garbage collector accepts a collection request 3. If accepted, the garbage collector will go to that location and collect garbage 4. The application will update the next collection request. 5. Return to step 2. 6. End of use case. 1.1 User cancel the request: 1. User chooses the cancel option. 2. The system sends a notification to collector to cancel the request. 3. The collector cancels the request and return to step 2. Page 12 Post – conditions Business rules Author and Date 3.1 The collector rejects the request: 1. Collector will select the option to reject the collection request. 2. The collection request will be sent to the other collector. 3. Return to step 1. The garbage is collected and sent back to the factory for later verification The location for collecting garbage must be clear for garbage collector Nguyen Anh Duy 13th August 2021 Use case 6. Response to collection request c) Stakeholder Staff Use-Case: Use Case Name Version Goal Summary Actor Precondition Triggers Basic Course of Events Alternative paths Group3 Approve gifts 1.0 To approve the user’s request to exchange points for gifts. The user will send a request to exchange points for gifts through the application to the stakeholder staff so the stakeholder staff can approve the request and deliver the gifts. Stakeholder staff and household users. The user requests to exchange at least one gift The system receives the request to exchange points for gifts. 1. The application will display an announcement of the request to stakeholder staff. 2. The stakeholder staff will recognize the request. 3. The stakeholder staff will fulfill the request and send notification to users that the gifts are being delivered. 4. Use case ends when the gifts are delivered to users and the stakeholder staff close the request. 5.1 The request cannot be fulfilled: 3. Use case will continue from step 1 to step 4. 4. The stakeholder staff will send notification to users to inform that the Page 13 Post – conditions Business rules Author and Date Use Case Name Version Goal Summary Actor Precondition Triggers Basic Course of Events Alternative paths Group3 request cannot be fulfilled and cancel the request. 5. The use case will return to step 1 and continue. The user will receive the gifts from the stakeholder staff. The gifts will be offered and changed by the stakeholder staff. If the gift is out of stock or the points are not enough to exchange the gifts, the request cannot be fulfilled. Dao Kha Tuan 9 August 2021 Use case 7. Approve gifts Change information 1.0 To modify regulations relating to the conversion of points to gifts such as conversion table or potential gifts. The stakeholder staff will use the application to change the conversion table or potential gifts and the user can view these changes. Stakeholder staff and household users. The stakeholder staff must have at least one modification in the regulations relating to the conversion of points to gifts. The system receives a request to change regulations relating to the conversion of points to gifts. 1. The stakeholder staff opens the application. 2. The application will offer modification options for the stakeholder staff to choose. 3. The stakeholder staff will choose to modify whether the conversion table or the potential gifts. 4. The stakeholder staff will confirm all the changes to the application. 5. Use case will end when all the changes are applied, and user can view these changes. 4.1 Changes cannot be confirmed due to some violations in business rules: Page 14 Post – conditions Business rules Author and Date Group3 1. The stakeholder staff will make other modifications that follow the business rules. 2. The use case will return to 2 and continue. All changes about the regulations relating to the conversion of points to gifts will be applied and every user can view these changes on the application. All the modifications must always follow the business rules that are composed and approved by the stakeholders. Dao Kha Tuan 9 August 2021 Use case 8. Change information Page 15 2.3. Activity Diagrams Group3 Page 16 Figure 2: Activity Diagram Adopted from <https://lucid.app/lucidchart/6a536fe7-4268-4e33-b417-4c135344e52d/view?page=0_0# [3]> The activity diagram above illustrates the simplified action flow of the application. There is a total of 4 swim lanes: household user, system, garbage collector, and stakeholder staff. The main function from the household user side is segregate garbage, which will be divided into three waste bags (organic, inorganic, recyclable). Firstly, if the user does not know how to segment the garbage, the application provides a feature to help the user scan the waste, then the system will display the type of waste that it belongs to, to help the user segregate into the appropriate waste bag. Otherwise, they can segregate the garbage by themselves. After segregation, the user can select the request collection option, which will send a message to inform that the garbage is ready to be collected, by attaching the QR code to the waste bags and scan it to send their location and contact information to the system. Apart from the main functions, users can select to view account’s information, for instance, their bonus point history, the conversion table, or the list of potential gifts from the companies/stakeholders. Especially, when viewing the list of gifts, users can select to exchange specific gifts based on the points they are currently having, by selecting the gifts they want and choosing the option to send the request to the stakeholder staff. The last option that users can select is to get the invitation code for friends to enter when they install the application on their mobile devices. The garbage collector can be considered both primary and secondary user, with an only exception that their activities are mostly depends on the household user side, which means that the user must carried the previous actions first before coming to the garbage collector side. The first function from the garbage collector application is to response to the collection request from the user. When the system receives user request, it will transfer the information to the garbage collector, they can decide to accept or deny the request. If the collector denies, the request is sent to another collector, whereas accepting the request will let the collector come to the location and do another action: checking garbage and distributing bonus points. If there is no garbage found in that location, the collector can contact the user through the information provided, or they can select to inform the system that there is missing garbage. If the user manages to segregate the waste bags appropriately, the collector will scan the QR code to get the user account, deliver bonus points as well as update the points history according to their waste bag. Finally, they will collect the garbage and send a notification to inform the user. The last primary user is the stakeholder staff, which can modify information and mostly acts as an admin of the application. Firstly, the stakeholder staff can approve the request to exchange gifts from the user. When the request is sent to the stakeholder staff, he/she will initially check if the account has sufficient points, and the gift is not out of stock. If both conditions are satisfied, the request will be approved by the stakeholder staff, then he/she will send a notification to inform the user, update the account’s point and process the gifts so it can be delivered to the user. For some unexpected situations, if the user has not received the gift yet after a long waiting period, the user can immediately send the notification to inform stakeholder staff. Then, their offer will be reviewed and get back to the processing step. Another action that stakeholder staff can do is change information regarding the details about conversion table or the list of potential gifts. The stakeholder staff will initially send the request to get access to the system, he/she then adjust and modify their requested changes to the data, and the system will validate if it meets the Group3 Page 17 business rules (product standards/integrity/standards…). If it satisfies the condition, the changes will be implemented by the system and send a notification to inform stakeholder staff that the information has successfully changed. 3. References [1] mGreen, "Giới thiệu chung - Mgreen", Mgreen, 2021. [Online]. Available: https://mgreen.vn/gioi-thieu-chung/. [Accessed: 30- Jul- 2021] [2] Lucidchart. 2021. Use Case Diagram. [online] Available at: <https://lucid.app/lucidchart/invitations/accept/inv_5c5d0e14-7f9a-4fa0-b7e6-baf2e5e51d1b> [Accessed 12 August 2021]. [3] "Activity Diagram SEF Milestone 1: Lucidchart", Lucid.app, 2021. [Online]. Available: https://lucid.app/lucidchart/6a536fe7-4268-4e33-b417-4c135344e52d/view?page=0_0#. [Accessed: 22- Aug- 2021]. Link to Trello Platform: https://trello.com/invite/b/i7wHzhE4/62abe2817048d1d9862995c7413b4304/milestone-1-softwa re-requirement Link to OneDrive repository: https://rmiteduau-my.sharepoint.com/:f:/g/personal/s3878141_rmit_edu_vn/EndQyWiuc-lKuchgaSDV_EB6_HNbErPuVYYBj-eaibXNw?e=94q0t7 Group3 Page 18