Professional Documents
Culture Documents
Contents
Part A: Project Scope and Requirements 5
Section 1: Problem Statement 5
1.1.a. Problem & Need 5
1.1.b. List of Capabilities and Benefits 6
1.2 Identify the stakeholders and their roles 6
1.3 Identify the sub-systems of your application (What are its functional components) 7
1.4 Who are the intended users of the SRS documentation? 7
Section 2: General Overview Modelling 8
2.1 Context Flow Diagram (CFD) 8
Section 3: Requirements - Functional and Non-Functional 9
3.1 Non- functional Requirements 9
3.2 Goal Use Cases and Functional Requirements 10
3.2.1 User Access and Identification Subsystem 10
3.2.1.1 Functional Requirements and Goal Use Cases 10
3.2.1.2 Use Case Diagram 11
3.2.1.3 User Stories 11
3.2.2 Tracking Subsystem 12
3.2.2.1 Functional Requirements and Goal Use Cases 12
3.2.2.2 Use Case Diagram 13
3.2.2.3 User Stories 13
3.2.3 Recommendation Subsystem 14
3.2.3.1 Functional Requirements and Goal Use Cases 14
3.2.3.2 Use Case Diagram 15
3.2.3.3 User Stories 15
Section 4: Domain Class Diagram 16
4.1 List of classes 16
4.2 Diagram 17
Section 5: ERD 18
Section 6: Systems Sequence Diagrams 19
6.1 Tracking Subsystem 19
6.2 Recommendation Subsystem 20
2
Software Requirements Specification for Fridge Management System
3
Software Requirements Specification for Fridge Management System
4
Software Requirements Specification for Fridge Management System
For those who want to lead a healthy lifestyle, planning meals takes time, effort, and can often become
monotonous. If an individual finds out they are missing the ingredients needed to prepare a healthy dish, they may
instead opt to purchase take-out or order online; this is more likely to occur if they have a very busy schedule.
Individuals can be allergic to specific foods as well, and ignoring the ingredients a product is made of can lead to
hazardous situations. Oftentimes, individuals want variety, but it can be difficult to buy something they want that
is still healthy. This can also lead to a collapse in willpower and, consequently, failure of the diet plan; guilt and
regret ensuing.
The lack of knowledge on expiry dates often leads to food wastage. The City of Toronto estimated that the average
household threw away approximately $1,100 worth of food per year1. Households waste over 100 kilograms of
food annually1. If we combine this cost estimate with the extra cost of purchasing take-out or ordering online, it
can be a painful number to acknowledge for any household that is budget-conscious.
The frequency of this problem will vary between households, but anywhere between daily to bi-weekly. Most often,
anyone with a busy schedule is a potential victim of this problem.
1
City of Toronto. (2021, August 23). Food waste. City of Toronto. Retrieved September 14, 2021, from
https://www.toronto.ca/services-payments/recycling-organics-garbage/long-term-waste-
strategy/waste-reduction/food-waste/.
5
Software Requirements Specification for Fridge Management System
Capabilities Benefits
1. Store food quantity, quality, and information. 1. Users know what they need when they go
2. Inform users of upcoming expirations. grocery shopping.
3. Can connect to 3rd party API for food and 2. Users won’t waste food because they will be
recipe information. notified when food is expiring.
4. Provide ingredient suggestions if not enough 3. Users can plan in advance what to cook.
is available for a recipe. 4. Users can choose not to plan in advance and use
the suggestions of the software product.
5. Users can check the ingredients of a product to
avoid foods they are allergic to.
Internal External
6
Software Requirements Specification for Fridge Management System
1.3 Identify the sub-systems of your application (What are its functional components)
1. User Access and Identification Subsystem.
2. API Management Subsystem.
3. Tracking Subsystem.
4. Recommendation Subsystem.
7
Software Requirements Specification for Fridge Management System
8
Software Requirements Specification for Fridge Management System
9
Software Requirements Specification for Fridge Management System
FR02 Change password Household Individual, Allow a registered user to change the
Software Maintenance password.
Technician
FR03 Logout of the system Household Individual, Allow the user to log out of the system at any
Software Maintenance time.
Technician
FR04 Create/update/delete Household Individual Allow the user to register in the system.
profile Allow a registered user to view and update
personal information such as location, recipe
preferences, etc. Allow users to remove
profiles from the system.
FR06 Save payment information Household Individual Allow users to save payment information
that will be used to order ingredients online
using a third-party payment system.
10
Software Requirements Specification for Fridge Management System
Acceptance Criteria:
User Story: As a user, I want to be able to change my password if I need to reset my account.
Acceptance Criteria:
11
Software Requirements Specification for Fridge Management System
User Story: As a user, I want to be able to change information on my profile when I choose.
Acceptance Criteria:
1. User must be logged in to change the profile for that particular user.
2. Notification window appears confirming successful profile change.
FR10 Notify users of expiring Household Send notification to the user when food
food Individual has been in the fridge for too long.
12
Software Requirements Specification for Fridge Management System
User Story: As a user, I want to have my groceries automatically added to the fridge inventory.
Acceptance Criteria:
User Story: As a user, I want to view the information of all food items currently stored in the fridge.
Acceptance Criteria:
13
Software Requirements Specification for Fridge Management System
User Story: As a user, I want to be notified when the expiration date for food is near.
Acceptance Criteria:
14
Software Requirements Specification for Fridge Management System
User Story: As a user, I want to get recommendations of recipes without going grocery shopping.
Acceptance Criteria:
User Story: As a user, I want to get recommendations of recipes and I’m willing to go grocery shopping.
Acceptance Criteria:
15
Software Requirements Specification for Fridge Management System
16
Software Requirements Specification for Fridge Management System
4.2 Diagram
17
Software Requirements Specification for Fridge Management System
Section 5: ERD
18
Software Requirements Specification for Fridge Management System
19
Software Requirements Specification for Fridge Management System
20
Software Requirements Specification for Fridge Management System
Section 8: Technologies
App Development: React Native for iOS and Android.
Database: Firebase.
21
Software Requirements Specification for Fridge Management System
22
Software Requirements Specification for Fridge Management System
23
Software Requirements Specification for Fridge Management System
2.2 Architectural Context diagram (ACD) derived from Context Flow Diagram (CFD)
2.2.1 Context Flow Diagram (From SRS: 2.1)
24
Software Requirements Specification for Fridge Management System
25
Software Requirements Specification for Fridge Management System
Section 3: Modularization
3.1 Partition the analysis model
3.1.1 User Access and Identification Subsystem
1. Login interface
2. Account
3. User
4. Technician
26
Software Requirements Specification for Fridge Management System
27
Software Requirements Specification for Fridge Management System
28
Software Requirements Specification for Fridge Management System
29
Software Requirements Specification for Fridge Management System
30
Software Requirements Specification for Fridge Management System
31
Software Requirements Specification for Fridge Management System
3.3.2 Tracking Subsystem (Automatic food update use case NOT included)
32
Software Requirements Specification for Fridge Management System
33
Software Requirements Specification for Fridge Management System
34
Software Requirements Specification for Fridge Management System
35
Software Requirements Specification for Fridge Management System
36
Software Requirements Specification for Fridge Management System
37
Software Requirements Specification for Fridge Management System
38
Software Requirements Specification for Fridge Management System
39
Software Requirements Specification for Fridge Management System
40
Software Requirements Specification for Fridge Management System
41
Software Requirements Specification for Fridge Management System
4.2 Objects: Recommendation Class (use cases: Recipe Recommendation) - From SRS
42
Software Requirements Specification for Fridge Management System
43
Software Requirements Specification for Fridge Management System
44
Software Requirements Specification for Fridge Management System
45
Software Requirements Specification for Fridge Management System
Example:
Benefits and consequences: There is no need to worry about more than one
account being logged in at the same time because it
won’t be possible with the singleton design pattern.
When a technician needs access to a particular
system, all users of that system will have to be logged
out.
46
Software Requirements Specification for Fridge Management System
Problem: The APIs will differ between grocery stores and may
not always be compatible with the ThirdPartyAPI class
Example:
Benefits and consequences: Adapter creates a single class that is responsible for
joining functionalities of independent classes. The
adapter changes the interface of the existing object so
it's less transparent to the application.
47
Software Requirements Specification for Fridge Management System
Example:
Benefits and consequences: The facade design pattern will simplify the interface
for the user while interacting appropriately with the
complex subsystem.
48
Software Requirements Specification for Fridge Management System
Data/Content Adapter
Architecture Singleton
3.2 User Access and Identification Subsystem Final DCD with Singleton Pattern
49
Software Requirements Specification for Fridge Management System
50
Software Requirements Specification for Fridge Management System
51
Software Requirements Specification for Fridge Management System
● Make Interface Consistent. The reappearance of the menu icons and the colours are the same from
screen to screen.
● Place User in Control. The user knows where he/she is and what he/she is doing (Breadcrumbs); technical
internals are hidden from the casual user; the design is created for direct interaction with screen objects.
● Reduce User’s Memory Load. Information is disclosed in a progressive fashion. The layout of the
interface has visual clues.
Problem: The user needs to go back to the start location of the application
Solution: Create a link to the starting point with the text ‘Home’ and home image. The link should always be in
the same location on all screens.
Problem: The user needs to know their location in order to possibly browse back. (Put user in control)
Solution: Labels are shown in the hierarchical path that leads to the current screen. Each label is a link to a
section. The label of the current screen is at the end of the breadcrumb and is not linked. Each label is separated
with a special character >. Are not used on the welcome page.
Problem: The user needs to indicate preferences for how the application should behave.
Solution: Provide a place for users to customize their specifications. Keep configurable options well-organized,
predictable, and manageable in number.
Problem: The user needs to view data that is not easily displayed on a single page.
Solution: New data is automatically retrieved as the user has scrolled to the bottom of the page.
52
Software Requirements Specification for Fridge Management System
53
Software Requirements Specification for Fridge Management System
54
Software Requirements Specification for Fridge Management System
55
Software Requirements Specification for Fridge Management System
56