Skip to content
This repository has been archived by the owner on Oct 12, 2019. It is now read-only.

Software Requirements Specification

RimTeeve edited this page Apr 3, 2017 · 19 revisions

Software Requirements Specification

MealBuddy Android App

Version 1.0


Table of Contents

  1. Revision History

  2. Introduction

    1. Purpose
    2. Document Conventions
    3. Intended Audience and Reading Suggestions
    4. Product Scope
    5. References
  3. Overall Description

    1. Product Perspective
    2. Product Functions
    3. System Architecture
    4. UML Diagrams
    5. Operating Environment
    6. Design and Implementation Constraints
    7. User Documentation
    8. Assumptions and Dependencies
  4. User Requirements

  5. System Requirements

    1. User Interfaces
    2. Hardware Interfaces
    3. Back-End Interfaces
    4. Communications Interfaces
  6. Nonfunctional Requirements

    1. Performance Requirements
    2. Safety Requirements
    3. Security Requirements
  7. Appendix A: Database Design

  8. Appendix B: User Interface Design

  9. Appendix C: Glossary


Revision History

Name Date Reason for Changes
Team 3 2-6-17 Draft
Team 3 3-21-17 Final Draft

Introduction

Purpose

The purpose of this software requirements specification document is to support the development of MealBuddy Android application. The requirements will cover the full scope of the system and shall support features beyond the first release of application.

Document Conventions

Requirements are described in this document with “shall” or “should” to depict the priority and importance for the requirement to be implemented in the application. Shall is used for requirements that must be implemented and should is used to indicate a goal. All requirements are written using a natural language.

Intended Audience and Reading Suggestions

This document is intended for members of Team 3. It is suggested that this document be read beginning the overview sections and proceed through the sections that are most important to reader.

Product Scope

The MealBuddy application is meant to analyze meal plans in a 1-2 week period and produce a shopping list needed to make all of the meals. The goal is to make people’s life easier who like to create meals plans and want a quick way to start shopping. MealBuddy’s primary focus is to ensure people get the exact shopping list they need.

References

IEEE std 830-1998 Recommended Practice for Software Requirements Specifications.

Overall Description

Product Perspective

This application will be a new product developed for Android mobile devices.

Product Functions

MealBuddy application shall be able to:

  • Allow user to enter a meal plan for a 1 or 2 week period
  • Produce a shopping list based on the meal plan
  • Allow user to have their own account
  • Allow user to create more than one shopping plan list
  • Allow user to modify their ingredients for meals

MealBuddy application should be able to:

  • Show a recipe for each meal in the meal plan
  • Allow user to share their meal plan with another user

System Architecture

UML Diagrams

Use case diagram

User Class diagram

Plan Class diagram

DayPlan Class diagram

Recipe Class diagram

Operating Environment

The MealBuddy application will run on Android version Marshmallow 6.0.1 and earlier. The application will be developed using Android Studio version 2.2.3.

Design and Implementation Constraints

MealBuddy application will use APIs such as, Facebook and/or Google to log in to the application. Other APIs or cloud services may be used utilized for database or networking support. Any updates to APIs may impact system during development if used.

User Documentation

There will be no documentation provided with this application, other then SRS.

Assumptions and Dependencies

The application will be dependent on APIs used and version of Android developed for.

User Requirements

UR-1: The app shall be able to keep track of weekly meals and know what ingredients and quantities are needed to produce a shopping list.

UR-2: The app will have a database of meals that shall include a name for the meal, serving size and ingredients along with quantity. The database should include preparation directions.

UR-3: The app shall allow the user to tag meals from the database that they would like to save to their "Favorites" so that they can be recalled without having to search through the database again.

UR-4: The app shall allow the user shall to click/touch the day within a 1 or 2 week range to enter a meal, specify the type of meal and serving size.

UR-5: When the user chooses "Add Meal", the app shall ask to input a name for a new meal, directions, serving size and ingredients along with quantity. This meal is then added to the database where user can select it any anytime. If user enters an ingredient that is not in the database, the system adds it so that other users can choose it when creating their own meals.

UR-6: When user chooses "Shopping List", the app shall display an ingredient shopping list with the ingredients and quantities needed to make the selected meals. The app shall allow the user to indicate which items from the list they already have.

UR-7: The app shall display a vertical chronological calendar view of the meals listed for each day. When clicking on a meal, the app should display list of ingredients and/or directions on how to prepare the meal.

UR-8: The app shall allow the user login to the app, which allows user to save meals and shopping lists, that user can recall later.

UR-9: The app shall allow the user to share a meal plan with another user, giving both users the ability to modify the shared plan and shopping list.

UR-10: The app shall work on all Android mobile devices with appropriate versions.

UR-11: The app shall be able to be responsive to users click/touch.

UR-12: The app shall be able to run until user closes or minimizes.

UR-13: The app shall be able to exchange data between interfaces.

System Requirements

User Interfaces

UI-1.1: The app shall allow the user to input/select meals for each day.

UI-1.2: The app shall allow the user to input/select meals for a 7 or 14 day period.

UI-1.3: The app shall allow the user to be able to create shopping list plans.

UI-3.1: The app shall allow the user to click on a star icon next to any meal to indicate it is a favorite meal.

UI-3.2: The app shall provide an option to search all meals when user is adding a meal to their meal plan

UI-3.3: The app shall provide an option to search all tagged/favorite meals when user is adding a meal to their meal plan.

UI-3.4: The app shall allow user to be able to un-tag a favorite meal to remove it from their favorite meals list.

UI-4.1: The app shall allow the user to select one day out of their meal plan and the app shall prompt the user to select breakfast, lunch, or dinner.

UI-4.2: After the user makes selection for meal type, the app shall prompt the user to enter serving size for the meal.

UI-4.3: After the user enters serving size, the app shall prompt the user to select a meal from a pre-populated list.

UI-4.4: If user cannot find a meal from list, the app shall allow user to select “Add Meal to list” option.

UI-4.5: The app shall allow user to be able to remove meals from meal plan.

UI-4.6: The app shall allow the user to be able to copy an existing meal plan.

UI-5.1: The app shall present a searchable list of ingredients that have been previously entered for meals. The backing store will maintain a list of ingredients used in all the previously entered meals.

UI-5.2: The app shall present a suggested ingredient list based on values entered by the user.

UI-6.1: The app shall display a shopping list of all ingredients and quantities for the period of the meal plan.

UI-6.2: The app shall user to be able to indicate if they have any of the ingredients listed.

UI-7.1: The app shall display all days of the week for a 1 or 2 week period.

UI-7.2: The app shall prompt the user to select 1 or 2 weeks for the range of their meal plan.

UI-7.3: The app should allow the user to click on a certain meal within a day and the app shall display an option for the user to “View Ingredients” or “View Recipe”.

UI-7.4: The app shall allow the user to be able to modify the ingredients lists.

UI-7.5: The app should allow the user to be able to modify the recipe.

UI-8.1: Meals and meal plans that are created by a given user shall be available when that user is logged in to the app on any device.

UI-9.1: The app shall allow the user to shall be able to enter other user’s unique ID to indicate who meal plan can be shared with.

UI-9.2: The shall allow user A to be able to enter user B’s unique ID and have edit access to that meal plan if user B granted access.

UI-9.3: The app shall allow user A to be able to enter user B’s unique ID and not have edit access to that meal plan if user B did not grant access.

Hardware Interfaces

HI-5.3: The app should allow the user to scan the code of an ingredient with camera in order, to add ingredient to list.

Back-End Interfaces

BE-1.4: The app shall use serving size to calculate the amount ingredients of needed for the shopping list.

BE-1.5: The app shall consolidate all the ingredients for each meal into a summary of shopping list for a plan.

BE-2.1: The app shall store the following information about meals that have been entered: * The name of the meal * The serving size of the meal * The ingredients of the meal

BE-2.2: The app shall store meals with a designated category such as “pasta” in such a way that can be searched by user entered keywords.

BE-2.3: The app shall allow the user to access their account from different devices.

BE-3.5: The app shall keep a list of a user’s favorite meals in the database.

BE-4.7: The app shall retrieve a list of meals from the database when user is prompted to select a meal.

BE-4.8: The app shall scale the quantity of the ingredients based on the meals entered in meal plan.

BE-5.4: The app shall differentiate between meals entered by the user and those entered by other users. The app shall present a list of meals that were entered by the user.

BE-5.5: The app shall accept an ingredient that has not been previously entered.

BE-6.3: The app shall iterate over all meals in the meal plan and count all ingredients and quantities.

BE-7.6: The app’s database should store the recipe for each meal.

BE-7.7: The app’s database shall have a default list of ingredients for each meal.

BE-8.2: The app shall identify users by means of a uniquely identifying account. A user can log in to the app.

BE-8.3: The app shall use a user login to identify meals and plans that are created by the user.

BE-8.4: The app shall allow the user to use a guest account.

BE-8.5: The app should associate a locally saved meal plan with a unique user when going from a guest account to registered account.

BE-9.5: The app shall allow the user to have a unique ID for the app.

Communications Interfaces

CI-13.1: The app shall be able to connect to cloud server.

Nonfunctional Requirements

Performance Requirements

PR-11.1: The app shall be able to respond to users touch within 250 MS of clicking/touching a button.

PR-12.1: The app shall not crash more than once while user is using application.

Safety Requirements

SAR-5.6: The app shall warn user about meals that may contains ingredients that user may be allergic to.

Security Requirements

SER-8.6: The app shall protect user’s password and any sensitive information by encrypting data before storing it database.

Appendix A: Database Design

Appendix B: User Interface Design

Figure 1: Login Screen

Figure 2: Meal Plans

Figure 3: Meal Planner

Figure 4: Display Users Meals

Figure 5: Browse Meals

Figure 6: List of Plans to Covert into Shopping List

Figure 7: Shopping List

Appendix C: Glossary

App – Means application.

Unique ID – Can refer to user’s email, username or etc.