Running head: LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 1

advertisement
Running head: LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Lab 2 – Nutricipe Prototype Product Specification
Olga V Gallup
CS411
Professor Janet Brunelle
Old Dominion University
November 30, 2010
V2.2
1
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
2
Table of Contents
1
INTRODUCTION ...................................................................................................................4
1.1 Purpose ............................................................................................................................. 5
1.2 Scope ................................................................................................................................ 8
1.3 Definitions, Acronyms, and Abbreviations .................................................................... 22
1.4 References ...................................................................................................................... 25
1.5 Overview ........................................................................................................................ 26
2
GENERAL DESCRIPTION ..................................................................................................26
2.1 Prototype Architecture Description ................................................................................ 27
2.2 Prototype Functional Description................................................................................... 28
2.3 External Interfaces.......................................................................................................... 36
2.3.1 Hardware Interfaces .................................................................................................36
2.3.2 Software Interfaces ..................................................................................................37
2.3.3 User Interfaces .........................................................................................................37
2.3.4 Communications Protocols and Interfaces ...............................................................39
3. SPECIFIC REQUIREMENTS...............................................................................................39
3.1 Functional Requirements................................................................................................ 39
3.2 Performance Requirements ............................................................................................ 40
3.3 Assumptions and Constraints ......................................................................................... 40
3.3.1 Assumptions.............................................................................................................42
3.3.2 Constraints ...............................................................................................................43
3.3.3 Dependencies ...........................................................................................................44
3.4 NON-FUNCTIONAL REQUIREMENTS .................................................................... 45
3.4.1 Security ....................................................................................................................45
3.4.2 Maintainability .........................................................................................................45
3.4.3 Reliability.................................................................................................................46
List of Figures
Figure 1. Prototype Major Functional Component Diagram.........................................................27
Figure 2. Prototype User Privileges Diagram................................................................................30
Figure 3. Nutricipe Process Flow ..................................................................................................31
Figure 4. Daily Caloric Needs Process Flow.................................................................................32
Figure 5. Food Variety Process Flow ............................................................................................33
Figure 6. Recipe Search Process Flow ..........................................................................................34
Figure 7. Meal Builder Process Flow ............................................................................................35
Figure 8. Meal Component Diagram .............................................................................................36
Figure 9. Nutricipe Site Map .........................................................................................................38
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
3
List of Tables
Table 1. Profile Comparison Between Real Product and Prototype ..............................................10
Table 2. Nutricipe Prototype Reports ............................................................................................12
Table 3. Database Comparison Between Real Product and Prototype ..........................................14
Table 4. Algorithm Comparison Between Real Product and Prototype ........................................16
Table 5. User Access Comparison Between Real Product and Prototype .....................................19
Table 6. Additional Features Comparison Between Real Product and Prototype .........................21
Table 7. Effects of Assumptions, Dependencies, and Constraints on Requirements ....................42
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
1
4
INTRODUCTION
All humans require nutrients in specific proportions to balance their body’s systems and
to achieve optimal health. Unfortunately, according to the American Journal of Clinical Nutrition
(n.d.), 99% of Americans are not getting the daily nutrition considered necessary to maintain
good health. According to the USDA Center for Nutrition Policy and Promotion (2005), only
10% of Americans have good diets, 74% need to improve their diets, and 16% of people in the
United States have poor diets.
People are unaware that unhealthy diets can lead to health problems. According to the
World Cancer Research Fund (2009), 41% of people in America do not know that there is a link
between what they eat and cancer, 23% do not know that unhealthy diets can lead to heart
diseases, and 10% of people in the U.S. do not even understand that unhealthy diets can cause
health problems. Some people who have already developed health problems do not know that
their diets should be changed based on their current health conditions. Even those people who are
interested in eating healthy face problems with developing their proper diets. 60% of all people
in America find it difficult and confusing to learn about nutrition and follow all the guidelines
(Sansolo, 2004).
Because people do not consume the necessary nutrients, there is an increasing concern
among health professionals regarding the cumulative effects of nutrition. Cumulative effects are
the results of something that has been done repeatedly over an extended period of time. For
example, eating saturated fats in excess for many years can lead to heart attacks. Years of
overeating can cause obesity and may contribute to type two diabetes, bladder disease, foot
problems, and even certain cancers (Roth, 2007).
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
5
When nutrients are extremely scarce in the diet for an extended period of time, deficiency
diseases can occur. Osteomalacia is one of the most common deficiency diseases, which affects
70% of Americans. This deficiency disease is caused by a lack of calcium and vitamin D.
Another common deficiency disease in the U.S. is iron deficiency, which is common among
women and children. To avoid deficiency diseases, or improve an individual’s current state of
health, everyone should consume the proper quantity of nutrients (Roth, 2007).
There are many reasons that getting daily nutrients necessary for good health and
organizing a proper diet is problematic. A variety of choices, inconsistent information about
nutrition, and a lack of time are the some of the major causes. People simply do not know what
they need to eat and how they need to prepare the ingredients they have on hand. There are many
foods that look appealing and that are fast to buy and easy to prepare, but many of the
ingredients in these convenience foods will lead to health problems in the future. Unfortunately,
people lack time to plan their meals, lack knowledge of healthy foods, and buy foods that will
not benefit their individual health needs.
1.1
Purpose
Nutricipe is a meal planning tool conceived by the Old Dominion University (ODU)
CS410 Blue Group. It is designed to facilitate healthier eating, provide education about healthy
food choices, offer nutritional advice based on individual profile, preferences, values, suggest
healthy and delicious recipes with nutritional facts, and generate shopping lists. Nutricipe helps
people save time by allowing them to organize a daily routine of preparing wholesome meals and
including a variety of foods based on personal needs and goals in their diet. It is aimed at
individuals who are interested in improving their current health conditions and those who are
interested in maintaining good health by eating the right meal, the right way, every time.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
6
Nutricipe is a software solution that provides customers with a meal planning tool that
will assist them in organizing proper diets. It will also aid customers in consuming the necessary
daily nutrients based on their individual needs, preferences, and nutritional goals. Nutricipe
customers will not only be able to accommodate their individual goals and preferences by using
this product, but they will also receive many other benefits. They will be able to gain knowledge
about the nutritional content of different ingredients. Furthermore, they will be instructed on
what foods they need to eat according to their nutritional goals. Customers will also have
shopping list generated by Nutricipe, so that they will always have the necessary ingredients on
hand.
Nutricipe is accessed through a website that presents the user information in a clear,
concise manner. It offers very basic authentication, consisting of a username and password. Only
authenticated users can proceed with using the Nutricipe website. They will be able to use all of
its features.
Nutricipe is a profile-based solution. It can accommodate the needs of the customers who
require special diets because of their current health conditions. It can also provide assistance to
those who are interested in eating healthy and have not developed any detrimental health
conditions. In either case, customers will need to populate their profile in order to start using
Nutricipe.
A customer profile is used to store and retrieve information specific to a particular
Nutricipe customer. Profiles allow Nutricipe software to analyze, develop, and output reports
based on individual information. In order to receive comprehensive reports, Nutricipe customers
need to provide the following profile information: age, gender, activity level, available
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
7
ingredients, likes, and dislikes. They will also be able to set nutritional goals from the selection
of provided categories.
Nutricipe is a meal planning tool that offers a meal builder option, recommends diets that
will provide all the nutrients needed for growth and health, and educates users about right food
choices. In order to offer these options to the customers, Nutricipe provides the following
features to them: daily calorie needs message, food variety, recipe search, shopping list, food
tracker, and goal tracker. The calorie needs message provides information about how many
calories a particular Nutricipe customer should consume daily. The food variety generates
amounts of various food groups that are recommended each day and provides a specific list of
foods that should be consumed in order to accomplish individual nutritional goals and improve
health based upon family health history.
The Nutricipe user has an option to build a meal by searching different Nutricipe
provided recipes, selecting the recipes, and adding individual ingredients to the meals. To save
time and to make it more convenient, Nutricipe provides a printable shopping list based on
customized meals. Nutricipe also offers a food tracking option that allows customers to view
previously built meals and to select the same meals without the need to build them again. A goal
tracking feature allows users to see how they are meeting their goals based on their meal history.
Nutricipe administrative personnel and health club moderators are able to perform a
statistical analysis of the registered Nutricipe users based on the user satisfaction survey.
Nutricipe users will periodically receive the user satisfaction survey that evaluates how they are
satisfied with the Nutricipe solution and how helpful they find it in achieving their nutritional
goals. Based on the provided data, a user satisfaction survey report is generated.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
8
The Nutricipe solution will not check the accuracy of inputted customer information and
treat diseases. It will not provide the food combining guidelines as they are not essential to the
success of Nutricipe. Nutricipe will not be marketed as a weight loss oriented product. It will not
guarantee the amount of calories in prepared meals because it solely depends on how the
customers follow the preparation instructions. It will not control the serving size of prepared
meals. Also, Nutricipe will not provide any guarantees about nutritional information for the
recipes from the third party recipe databanks. However, only reliable sources will be used in
order to obtain all the recipes.
Because Nutricipe is aimed at individuals who are interested in improving their diets and
learning about healthy nutrition, it will be targeted to fitness centers. According to the
International Health, Racquet and Sportsclub Association (2010), there are almost 30,000 health
clubs in the U.S. with total revenue of almost $20 billion, and with over 45 million health clubs
members; 23% of those members are new. There is a good chance that new members will be
interested in obtaining nutritional guidelines. Health club members are already oriented towards
a healthy lifestyle and are interested in maintaining healthy diets and meal plans that will
contribute to the improvement of their overall health. Health clubs will offer Nutricipe as a part
of their membership. Nutricipe will provide user satisfaction survey reports in order to prove that
it contributes to the achievements of the health club’s customers’ goals.
1.2
Scope
The prototype of the Nutricipe solution is designed to demonstrate the feasibility of using
a profile-based meal planning tool by multiple independent users via the website. The Nutricipe
prototype allows demonstrating what the proposed solution will do in a smaller scale and scope.
The prototype is intuitive to use. Hence, it allows garnering support from the customers to build
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
9
the final product, demonstrating mitigation of risks for the final solution, proving the concept of
the real world product (RWP), and demonstrating the ease of use. The prototype functionalities
will be illustrated by use cases.
In order to limit the scope of the prototype, it will be necessary to eliminate non-essential
components of the RWP. The client stand-alone application, the mobile application, the food
combining guidelines algorithm, the family history and diseases components of the user profile,
and Google Ads will be eliminated from the prototype. Since the food combining guidelines
algorithm and the family history and diseases components of the profile will not be a part of the
prototype development, that data will not be stored in the Nutricipe database.
All nutritional and recipe data that is used in the prototype is the real world data. It is
essential to the success of Nutricipe to use the USDA National Nutrient Database (SR22) in
order to have access to the comprehensive list of ingredients. To reduce the scale, however, only
a certain number of recipes will be stored in the Nutricipe database. The variety of nutritional
goals will also be reduced for the prototype. In order to accommodate different scenarios, the
prototype uses the modeled data to populate user profiles. The profile data is carefully selected
based on the use cases.
The main goal of the Nutricipe solution is to offer a meal planning tool based on the
customer’s individual preferences and nutritional goals. In order to accomplish this goal, the
profile system must be built. Every registered user must access and populate his or her profile
before Nutricipe is used. The profile will include the customer’s age, gender, activity level,
nutritional goals, food preferences, and available ingredients. Table 1 provides a summary of the
differences of user profiles between the full Nutricipe service and the prototype.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Profile
Real World Product
10
Prototype
Age, gender, and
activity level
Customer’s age, gender and
activity level will be included
in order to estimate daily
calorie needs based on the
USDA data.
Customer’s age, gender and
activity level will be included in
order to estimate daily calorie
needs based on the USDA data.
Family history and
diseases
The customer will be able to
Not included
specify what diseases he or
she currently has and include
family history in order to build
a menu that will improve or at
least maintain his or her
current health conditions.
Nutritional goals
Different nutritional goals are
available for the user to
choose from.
A reduced set of nutritional goals
is available for the user to choose
from.
Food preferences
The customer will be able to
specify his or her food
preferences.
The customer will be able to
specify his or her food
preferences.
Available ingredients
The customer will have an
option to include the
ingredients he or she has on
hand.
Customer will have an option to
include the ingredients he or she
has on hand.
Table 1. Profile Comparison Between Real Product and Prototype
In the prototype and real solution, Nutricipe customers must include their age, gender,
and activity level. This is a fully functional element because it is essential for Nutricipe to have
this information in order to follow the USDA guidelines and accommodate the customer’s
individual needs. The age, gender, and activity level are stored in the user’s profile database.
To reduce the scope of the prototype development, family history and diseases categories
in the profile are eliminated from the prototype. In the RWP, every family history and disease
has a list of nutritional goals that must be met in order to improve health based upon family
history and diseases. Hence, instead of selecting particular diseases and specifying family
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
11
history, a number of nutritional goals can be selected to achieve the same results. Since
nutritional goals are included in the prototype, the family history and diseases categories can be
eliminated from the prototype development.
In the RWP and prototype, Nutricipe users select the nutritional goals they are aiming to
accomplish. This is a fully functional element because it is essential for Nutricipe to have this
information in order to aid the user in managing his or her diet. For the sake of prototyping, two
nutritional goals are presented for the customers to choose from.
In the prototype and real solution, Nutricipe customers need to be able to identify their
food preferences and available ingredients in order to receive satisfactory reports. They are fully
functional elements. The user will be able to select the ingredients on hand and specify his or her
likes and dislikes from different ingredients that are provided by the USDA National Nutrient
Database.
One of the functional objectives is to show that Nutricipe customers are able to build
healthy, delicious meals which account for their individual needs and preferences. Nutricipe
customers must fill out their profiles as previously discussed. The Nutricipe software searches
through the recipe database and selects those recipes that are beneficial to the particular customer
based on his or her profile. Then, it allows customer to select different recipes, add individual
ingredients, and build a meal. The created meal is built solely based on the unique profile and
customer’s choices.
Another goal is to educate Nutricipe customers. By specifying different nutritional goals
and by filling out their personal profiles, Nutricipe customers can learn what foods they need to
consume, what the amounts of calories are best for them, what types of food they need to focus
on, and ways on how to prepare their meals based upon results from algorithms. Nutricipe can
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
12
provide different reports that are based on individual needs, nutritional goals, and preferences.
The reports are built using the Graphical User Interface (GUI) and data provided by the
algorithms. Table 2 summarized the reports that the Nutricipe prototype provides.
Report Name
Daily calorie needs report
Recipient
Nutricipe user
Food variety report
Nutricipe user
Recipe search report
Nutricipe user
Nutritional value report
Nutricipe user
Percentage of daily goals
report
Nutricipe user
Food tracking report
Nutricipe user
Goal achievement report
Nutricipe user
User satisfaction survey report
Health club
Description
The amount of calories a particular Nutricipe
user needs to consume based on his or her
age, gender, activity level, and the USDA
guidelines.
Consists of two sub-reports: recommended
food intake message based on the user’s age,
gender, activity level, and the USDA
guidelines and a list of recommended foods
that the user needs to consume based on his
or her nutritional goals.
Provides a list of recipes that which account
for the customer’s individual needs and
preferences.
Provides nutritional facts for the selected
ingredients or recipes.
Indicates the percentages of calories and
specific nutrients selected ingredients,
recipes, and entire customized meals contain
compared to recommendations for the whole
day for the particular user.
Provides a list of meals that the user
consumed within the specified timeframe.
Provides the progress report on how the
customer is achieving his or her goals based
on the meal history.
Indicates if members of the particular health
club are satisfied with Nutricipe and
achieving their goals with Nutricipe help.
Table 2. Nutricipe Prototype Reports
There are the following functional objectives that support the educational goal of the
Nutricipe solution: to provide food recommendations, to offer a meal history, and to track the
progress of customers. Nutricipe offers different reports in order to educate customers about
nutrition and food recommendations. Nutricipe customers can learn how many calories they need
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
13
to consume on a daily basis from the daily calorie needs report. They can also gain knowledge on
what types of food are better for their nutritional goals, what food categories they need to focus
on, and the amounts of food in each category by viewing the food variety report. The recipe
search report allows users to learn what recipes can better suit their personal needs and
accommodate their nutritional goals. Nutricipe also teaches about the nutritional facts for recipes
and individual ingredients by providing the nutritional value report. It also shows customers the
percentage of daily goals for the ingredients, recipes, and the entire meals by offering the
percentage of daily goals report. Since Nutricipe customers are able to track their meals and
progress, they can view what they have been eating in the past by producing the food tracking
report. They can also evaluate how they are reaching their goals based on the food history report.
Finally, Nutricipe produces the user satisfaction survey report to the health clubs to prove that it
is capable of helping its customers to accomplish their goals.
The USDA National Nutrient Database (SR22) is imported into the Nutricipe MySQL
database on the ODU Computer Science Department MySQL server. The Nutricipe database
also contains individual profiles data and stores recipes. The recipes are provided by the third
party recipe databanks. When Nutricipe customers fill out their profiles, the data is stored into
corresponding tables in the Nutricipe database. The prototype Nutricipe database is reduced in
scale but is the same in scope compare to the RWP database. Table 3 illustrates the database
differences between the RWP and the prototype.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Stored Data
Real World Product
14
Prototype
USDA nutrient schema
(SR22)
USDA nutrient database
contents.
USDA nutrient database
contents.
Recipe schema
A combination of the USDA
recipe database and a third party
recipe databases.
A reduced set of recipes from
the USDA recipe database and
third party databases.
User profile schema
Tables to store user profile. They
are loaded with the customer’s
age, gender, activity level,
family history/diseases,
nutritional goals, food
preferences, and available
ingredients.
Tables to store user profile.
They are loaded with the
customer’s age, gender,
activity level, nutritional goals,
food preferences, and available
ingredients.
Combinations
Tables to store food
combinations. Food combining
guidelines which will specify
what foods should and should
not be eaten together for proper
digestion are loaded into the
combination table.
Tables to store food
combinations. This table will
not be populated for the
prototype.
Personal and billing
information
Tables to store address and
billing information.
Tables to store address and
billing information. These
tables will not be populated for
the prototype.
Table 3. Database Comparison Between Real Product and Prototype
The databases in the full Nutricipe solution and in the prototype import the USDA
National Nutrient Database (SR22). It is essential to the success of Nutricipe to use the USDA
National Nutrient Database (SR22) in order to have an access to the comprehensive list of
ingredients. To reduce the scale of the prototype, the prototype database stores a limited number
of recipes that come from a variety of reputable sources. The RWP database contains recipes
from the USDA recipe database and third party recipe databanks.
To reduce the scope of the prototype development, family history and diseases categories
in the profile are eliminated. In the RWP, every family history and disease is a combination of
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
15
nutritional goals that must be achieved in order to improve current health conditions. Since
nutritional goals are included in the prototype, the family history and diseases categories can be
eliminated from the prototype development. Hence, this data will not be available for the
prototype. However, in order to provide the database that is the same in scope as the RWP
database, the tables will be available to store the family history and diseases data. Those tables
will remain empty for the prototype.
Combinations are also excluded from the prototype development because they are not
essential in providing individual reports and helping customers to achieve their goals. The
Nutricipe database will include tables to store the food combinations. However, for the
prototype, these tables will remain empty.
The prototype database and the RWP database have tables to store the Nutricipe
customer’s address and billing information. However, for the sake of prototype, all registered
users are members of one particular health club. In the prototype, if user creates an account, he or
she does not need to provide payment information. He or she will automatically be treated as a
member of the selected health club. The payment flag will be set to true for every prototype user.
The billing and address tables will not be populated for the prototype.
One of the major components of Nutricipe is its decision making algorithms. There are
seven different algorithms in the prototype. Each algorithm serves its particular role and allows
Nutricipe customers to get distinct reports. Table 4 provides a summary of the algorithm
differences between the full Nutricipe solution and the prototype.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Algorithms
Real World Product
16
Prototype
Calorie needs
algorithm
Estimate customer’s calorie needs
based on the customer’s age, gender,
activity level, and the USDA
guidelines.
Estimate customer’s calorie
needs based on the customer’s
age, gender, activity level, and
the USDA guidelines.
Food variety
algorithm
Generate recommended food intake
and a list of foods that customer needs
to consume based on the customer’s
family history, diseases, personal goals,
and preferences.
Generate recommended food
intake and a list of foods that
customer needs to consume
based on the personal goals and
preferences.
Nutritional
content
calculator
Purchased nutrient calculator
Calculates nutritional content of
ingredients based on data in the
SR22 database, percentage of
daily goals for ingredients,
recipes, and meals. Percentages
of daily goals for ingredients and
recipes are calculated using the
nutritional content of
ingredients, recipes and user’s
nutritional goals. Percentage of
daily goals for the meal is
calculated using ingredients and
recipes data.
Food combining Calculate what foods should and should Not included
not be eating together for proper
guidelines
digestion.
algorithm
Recipe selection
algorithm
Select recipes from the recipe database
based on the customer’s profile and
preferences.
Select recipes from the recipe
database based on the customer’s
profile and preferences.
Shopping list
generator
Generate a shopping list based on a
customized meal, time of the year, and
store.
Generate a shopping list based
on a customized meal.
Food tracking
algorithm
Keep track of all the meals that
customers select.
Keep track of all the meals that
customers select.
Goal tracking
algorithm
Calculate how customers are reaching
their goals based on their food history.
Calculate how customers are
reaching their goals based on
their food history.
Table 4. Algorithm Comparison Between Real Product and Prototype
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
17
The calorie needs algorithm for the prototype is a fully functional element. This
algorithm is the same for the RWP and the prototype. It calculates the amount of calories each
customer needs to consume based on their age, gender, activity level according to the USDA
guidelines.
The food variety algorithm in the prototype generates recommended food intake based on
the age, gender, and activity level according to the USDA guidelines. It also produces a list of
foods that customers need to consume based on their nutritional goals and preferences. This
algorithm does not consider family history and diseases because, as it was discussed earlier, the
prototype profile does not contain this information.
The nutritional content calculator calculates the nutritional values of ingredients,
percentage of daily goals of ingredients, recipes, and meals. Originally, the nutritional content
calculator was planned to be purchased for the RWP. However, if the implementation of the
prototype nutritional content calculator is successful, it can be used in the RWP instead.
The food combining guidelines are eliminated from the prototype development. Because
of this, there is no need to implement the food combining guidelines algorithm. It will only be
available in the RWP.
The recipe selection algorithm is fully functional. This algorithm allows Nutricipe
customers to select the desired recipes only from those recipes that satisfy individual needs,
preferences, and nutritional goals. The shopping list generator in the prototype is based on a
customized meal and does not include time of the year and grocery stores features because those
features are only included in the RWP for the sake of convenience.
The food tracking algorithm for the prototype is the fully functional element. It keeps
track of all the meals that the Nutricipe customer generates. This algorithm allows the user to
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
18
store the customized meal and specify the time and date when this meal is going to be consumed.
The customer can track the meals that he or she consumed within a specified timeframe. The
user can also directly select a meal that was previously built without the need to build this meal
again.
The goal tracking algorithm for the prototype is a fully functional element. This
algorithm runs the food tracking algorithm first in order to access the saved meals within a
specific timeframe. Then, it evaluates how the customer is reaching his or her goals based on the
meal history.
The RWP and prototype have the same types of users. However, since it is assumed that
only one particular health club uses the prototype solution, the health clinic moderator is not
included in the prototype. Table 5 provides a summary of the user access differences between the
full Nutricipe solution and the prototype. Different user types and their privileges will be further
discussed in section 2.2.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Features
Real World Product
19
Prototype
Guest
Access welcome page, create Access welcome page, create an
an account, pay for individual account
account, gain access to
Nutricipe as a health club
member, gain access to
Nutricipe as a health clinic
member
Authenticated
Nutricipe customer
Access all Nutricipe web
pages, request different
reports, view profile
information, modify profile
information, renew
subscription
Access all Nutricipe web pages,
request different reports, view
profile information, modify profile
information, flag will be set
indicating that all current users
have a valid subscription through
one selected health club
Admin User
Access individual accounts,
create individual accounts,
modify individual accounts,
activate individual profiles,
deactivate individual profiles,
make changes to Nutricipe,
generate analysis reports
Access individual accounts, create
individual accounts, modify
individual accounts, activate
individual profiles, deactivate
individual profiles, make changes
to Nutricipe, generate analysis
reports
Health club moderator
Create, activate, and
deactivate accounts for the
members of the health club
that he or she represents,
generate analysis reports
Create, activate, and deactivate
accounts for the members of the
health club that he or she
represents, generate analysis
reports. All health club moderators
belong to one selected health club
Health clinic moderator
Create, activate, and
deactivate accounts for the
members of the health clinic
that he or she represents,
generate analysis reports
Not included
Table 5. User Access Comparison Between Real Product and Prototype
The guest user in the RWP has more capabilities than the guest user in the prototype.
However, all registered users are assumed to be members of one particular health club for the
prototype. Hence, if the user creates an account in the prototype, he or she does not need to
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
20
provide payment information. He or she will automatically be treated as a member of the
selected health club. Thus, the guest member does not need to be able to provide his or her
payment information.
The authenticated Nutricipe customers in the prototype also do not have an option to
renew their subscriptions by themselves. Instead, the Admin User or the health club moderator
will be able to deactivate the user account when the health club membership is expired. If the
customer decides to renew his or her health club membership, the Admin User or the health club
moderator can activate his or her account.
The Admin User and the health club moderator are fully functional elements. The only
assumption is made for the prototype is that all the health club moderators belong to one selected
health club where in the RWP, they can represent different health clubs. Since the health clinics
are not going to use the prototype, the health clinic moderator is not included.
The Nutricipe customer can access and update his or her profile at any time. He or she
needs to provide personal information about age, gender, and activity level and specify
nutritional goals. He or she can also access the pantry to specify what ingredients are currently
on hand or modify the previously selected ingredients. Once the profile is complete and available
ingredients are specified, he or she can start building a meal.
The Nutricipe prototype simulates the intended RWP with some limitations. Those
limitations are not significant and do not affect the goals and objectives of the Nutricipe solution.
Table 6 compares some additional features between the real product and the prototype.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Features
Real World Product
21
Prototype
Web application
Included
Included
Mobile application
Included
Not included
Client stand-alone
application
Included
Not included
Google Ads
Included
Not included
Web server
Web servers
ODU CS department web server
Liability
Legal disclaimer, HIPAA
privacy
The user will need to accept the
terms and conditions before
proceeding with creating a profile.
The Nutricipe prototype will be
released from any legal
responsibilities.
Authentication, profile
security, website security
HTTP Authentication,
access control mechanism
implementation for
authorization.
Nutricipe users can only access
their personal accounts using their
username and password.
Table 6. Additional Features Comparison Between Real Product and Prototype
The Nutricipe prototype is a web-based solution only. It will be widely accessible via the
Nutricipe website. The mobile application and client stand-alone application are not developed
for the prototype because they do not carry an innovative aspect of the Nutricipe solution. They
are only developed in the RWP for the purpose of convenience.
Google Ads allow the Nutricipe product to earn additional revenue by displaying relevant
advertisements on the Nutricipe website. This will help to generate more profit and eventually
reduce the membership fees. Because the purpose of the Nutricipe prototype is not to earn
revenue but to prove the concept, usefulness, and usability, Google Ads will not be included in
the prototype.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
22
The Nutricipe prototype will not be liable for any perceived damage or personal
negligence arising from the use of Nutricipe. The Nutricipe users must accept the terms and
conditions before proceeding with using the Nutricipe solution. In the RWP, the responsibility
for handling all legal risks will be transferred to Nutricipe’s lawyer. However, in the prototype,
damages emanating from misuse of Nutricipe are solely owned by the offending user as it is
stated in the terms and conditions that every user must accept.
1.3
Definitions, Acronyms, and Abbreviations
Admin User: Persons controlling Nutricipe.
Algorithm: A set of commands to serve a particular purpose.
Application Programming Interface (API): An interface implemented by a software program that
enables it to interact with other software.
Array: A collection of data items that can be selected by indices.
Cascading Style Sheets (CSS): A style sheet language used to describe the look and formatting
of a document written in a markup language.
Client stand-alone application: An application that can work offline.
Database (DB): A collection of information that is organized so that it can easily be accessed,
managed, and updated.
Denormalization: A process of adding redundant data in the database in order to optimize the
read performance in the database.
Graphical user interface (GUI): A type of user interface that allows users to interact with
programs in different ways.
Health club moderator: A health club representative who has a special Nutricipe account used for
the health club administration purposes.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
23
Hypertext Markup Language (HTML): A language used to create web pages.
Hypertext Transfer Protocol (HTTP): A networking protocol for distributed, collaborative,
hypermedia information systems.
Hypertext Processor (PHP): A server-side programming language designed for building dynamic
Web pages.
Ingredients: Any individual raw or prepared food items included in the USDA nutrient database.
Interface: A point of interaction between components, hardware and/or software.
JavaScript: An object-oriented scripting language developed to offer dynamic control over the
various elements within an HTML document.
jQuery: A fast and concise JavaScript library that makes it easier to handle events, navigate a
document, and create advanced effects.
jQUI: An official jQuery user interface library that provides advanced effects and high-level
widgets built on top of the jQuery JavaScript library.
Meal: A combination of recipes and ingredients.
MFCD: Major functional component diagram.
MySQL: An open source multi-user database management system.
Normalization: A process of removing redundant data from tables in the database in order to
improve storage efficiency, data integrity, and scalability.
Nutricipe customer: A user who has gained access to Nutricipe through purchasing it directly,
obtaining the health club’s memberships, or being members of the health clinics and who
is operating Nutricipe.
Nutricipe database: A database that serves the purpose of the Nutricipe solution and combines
the USDA National Nutrient Database, the recipe database, and the user profile database.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
24
Nutricipe user: The same as Nutricipe customer.
Personal computer (PC): Any general-purpose computer.
Plugin: A set of software components that adds specific capabilities to a larger software
application.
Query: A request for information from a database.
Recipe: A set of the following components: the name, how much time it will take to prepare the
dish, the required ingredients along with their quantities, preparation instructions, the
number of servings that the recipe will provide and nutrition facts.
Recipe database: A part of the Nutricipe database that stores the content of recipes from the
USDA recipe database and third party databases.
RWP: Real world product.
Schema: Defines the tables, the fields in each table, and the relationships between fields and
tables in the database.
Server: A computer program that provides services to other computer programs and their users.
Shopping list: A list of ingredients generated for shopping purposes.
Tablesorter: A jQuery plugin for turning a standard HTML table into a sorted table.
ThemeRoller: A web app that offers a fun and intuitive interface for designing and downloading
custom themes for jQUI.
Transmission Control Protocol/Internet Protocol (TCP/IP): A set of general design guidelines
and implementations of specific networking protocols to enable computers to
communicate over a network.
Uniform Resource Locator (URL): An identifier that specifies where an identified resource is
available and the mechanism for retrieving it.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
25
User Interface (UI): A system which people use to interact with computers.
USDA: United States Department of Agriculture.
USDA National Nutrient Database: A database of the nutritional content of food items produced
by the United States Department of Agriculture.
User profile database: A part of the Nutricipe database that stores the user personal information.
Web Server: A computer program that delivers web pages using HTTP over the World Wide
Web.
1.4
References
American Journal of Clinical Nutrition. (n.d.). How do healthy people stay healthy. Retrieved
from
http://www.diseaseeducation.com/wellness/How_Healthy_People_Stay_Healthy.php
International Health, Racquet and Sportsclub Association. (2010) Industry research. Retrieved
from
http://cms.ihrsa.org/index.cfm?fuseaction=Page.viewPage&pageId=19547&parentID=18
737&grandparentID=21437&nodeID=15
Roth, R. (2007). Nutrition & diet therapy. Clifton Park, NY: Thomson/Delmar Learning
Sansolo, M. (2004). The next big thing? Retrieved from
http://www.factsfiguresfuture.com/archive/october_2004.htm
USDA Center for Nutrition Policy and Promotion. (2005). Healthy eating index. Retrieved from
http://www.cnpp.usda.gov/HealthyEatingIndex.htm
World Cancer Research Fund. (2009). Millions unaware that unhealthy diet increases cancer
risk. Retrieved from http://www.nursingtimes.net/whats-new-in-nursing/millionsunaware-that-unhealthy-diet-increases-cancer-risk/1991181.article
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
1.5
26
Overview
This product specification document provides a comprehensive explanation of the
Nutricipe prototype’s hardware, software, external interfaces, capabilities, and features.
The information provided in the remaining sections of this document includes a detailed
description of the prototype architecture, prototype functional description, and detailed overview
of the hardware, software, and user interfaces. It also describes the key features of the prototype,
their functional requirements, and the performance characteristics of these features in terms of
inputs, outputs, and user interaction.
2
GENERAL DESCRIPTION
The Nutricipe prototype will effectively demonstrate the key features of the RWP. Users
will be able to access Nutricipe via the website. They will be able to register, populate their
profiles, request different reports, use a meal builder to generate customized meals, track their
food intakes and goals. They will also be able to fill out a user satisfaction survey to report how
helpful they find the Nutricipe product to be.
The administrative personnel and health club moderators will be able to perform
administrative tasks. The administrative personnel privileges include, but are not limited to,
accessing existing accounts, creating new accounts, activating previously deactivated accounts,
deactivating existing accounts, and generating the user satisfaction survey report. The health club
moderators will be able to activate and deactivate users who belong to the particular health club.
They will also be able to generate the user satisfaction survey report.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
2.1
Prototype Architecture Description
The major functional components of the Nutricipe prototype are illustrated in Figure 1.
The prototype is a scaled-down version of the real world product. However, the prototype does
retain the innovative functionality of a profile-based meal planning tool.
Figure 1. Prototype Major Functional Component Diagram
The Nutricipe prototype is a web-based solution only. It will use the widely accessible
Apache web-server software which is available through the resources of the ODU Computer
Science Department, a MySQL database on the ODU Computer Science Department MySQL
server for storage and retrieval of nutritional data, user profile data, and recipes. It will use the
scripting language Hypertext Preprocessor (PHP) to produce dynamic web pages and to play a
27
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
28
liaison role between the database and the end-user. The logical elements and decision making
algorithms are implemented using PHP. MySQL queries are used to store and retrieve data from
the database. Admin and user interfaces will be created for the Nutricipe website. The website is
built using PHP, MySQL queries, HTML, CSS, and JavaScript.
The USDA National Nutrient Database (SR22) is imported into the Nutricipe MySQL
database on the ODU Computer Science Department MySQL server. The Nutricipe database
also contains individual profiles data and stores recipes. The recipes are provided by the third
party recipe databanks. When Nutricipe customers fill out their profiles, the data is stored into
corresponding tables in the Nutricipe database. The prototype Nutricipe database is reduced in
scale, but is the same in scope compared to the RWP database.
2.2
Prototype Functional Description
Nutricipe is a web-based solution. The Nutricipe website will be developed to allow users
to experience the full scope of functionalities that the Nutricipe product offers. It will be
designed in a user-friendly manner to ensure ease of use.
The Nutricipe prototype solution distinguishes different types of users: personnel
controlling Nutricipe also referred as Admin Users, health club moderators, Nutricipe customers,
and non-authenticated users, also called guests. The Admin User has a special account used for
system administration. When the Admin User logs into the Nutricipe system, he or she has
access to the individual account, the capability to create new accounts, modify, activate, and
deactivate existing accounts, has an option to generate user satisfaction survey reports, and has
the ability to make changes to the Nutricipe website.
The health club moderator is the health club representative who has a special Nutricipe
account used for the health club administration purposes. He or she must be authenticated in
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
29
order to use his or her administrative privileges. For the sake of prototyping, it is assumed that
only one particular health club uses the Nutricipe prototype solution. Thus, all health club
moderators belong to one selected health club. The health club moderator has the capability to
create new accounts, activate, and deactivate existing accounts for the members of the health
club that he or she represents. The health club moderator also has access to the user satisfaction
survey results that were generated for that particular health club.
Nutricipe customers are users who have gained access to the solution through purchasing
a Nutricipe subscription directly, obtaining the health club’s membership, or by being a member
of a health clinic using Nutricipe. Nutricipe customers must be authenticated in order to use the
Nutricipe solution. Non-authenticated users can only get familiar with Nutricipe by accessing a
welcome page. In order to proceed further, they must create an account. For the prototype, all
registered users are assumed to be members of one particular health club. In the prototype, if the
user creates an account, he or she does not need to provide payment information. He or she will
automatically be treated as a member of the selected health club. Once the Nutricipe customer
creates an account, he or she will be able to explore all the features that Nutricipe is capable of
providing. All types of users have different privileges that are summarized in Figure 2.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
30
Figure 2. Prototype User Privileges Diagram
The Nutricipe customer can access and update his or her profile at any time. He or she
needs to provide personal information about age, gender, and activity level, and specify
nutritional goals. He or she can also access the pantry builder to specify what ingredients are
currently on hand or modify the previously selected ingredients. Once the profile is complete and
available ingredients are specified, he or she can start building a meal. Figure 3 describes the
Nutricipe process flow.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
31
Figure 3. Nutricipe Process Flow
The meal builder provides different reports along with the ability to create individual
meals. It displays daily caloric needs, a food variety report, allows a recipe search, provides
nutritional facts on selected ingredients and recipes, and allows Nutricipe customers to create
nutritional meals based on their preferences and nutritional goals. The daily calorie needs report
simply displays how many calories Nutricipe customers need to consume daily. The displayed
calculations are made based on their age, gender, activity level, and the USDA guidelines. Figure
4 illustrates the use case process for the daily calorie needs report.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
32
Figure 4. Daily Caloric Needs Process Flow
The meal builder also offers a food variety report. This report consists of two parts and is
included in the Nutricipe solution for educational purposes. It displays the recommended food
intake message and provides a list of recommended foods. The recommended food intake
message includes information about how much grain, vegetable, fruit, milk, meat and bean, and
oil Nutricipe customers need to consume based on their age, gender, and activity level, according
to the USDA guidelines. A list of recommended foods is based on the nutritional goals that the
user specifies in his or her profile. Figure 5 illustrates the use case process for the food variety
report.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
33
Figure 5. Food Variety Process Flow
The recipe search report is a part of the meal builder. If Nutricipe customers are only
interested in finding recipes based on their available ingredients and not their nutritional goals,
they have an option to do this. However, if they are aiming to achieve their nutritional goals, it is
beneficial to do a recipe search based on the available ingredients and nutritional goals. In both
cases, recipes are displayed with the percentage of daily goals. The percentage of daily goals
should help Nutricipe customers to make the right selections while building their meals. Figure 6
illustrates the use case process for the recipe selection report.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
34
Figure 6. Recipe Search Process Flow
The main goal of the meal builder is to allow Nutricipe customers to customize their
meals. When a customer performs a recipe search, he or she can select the recipes he or she likes
and add them to his or her meals. In addition to the recipes, the Nutricipe customer might like
individual ingredients. When the ingredients on hand and recommended foods to achieve
customer nutritional goals are displayed, there is an option to display nutritional facts of any
listed ingredient. The Nutricipe customer can request to view the nutritional facts of the selected
ingredients. Based on the provided information, the customer can make an informed decision on
what ingredients he or she would like to add to the meal. If the Nutricipe customer is not
interested in learning about nutritional facts of individual ingredients, he or she can simply select
the ingredients and add it to the meal. Figure 7 illustrates the process flow for combining recipes
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
35
and single ingredients into a meal.
Figure 7. Meal Builder Process Flow
The customized meal consists of the selected recipes, raw ingredients, and prepared
ingredients. Raw and prepared ingredients are selected from the pantry and recommended foods
from the food variety report. Each recipe and individual ingredient in the meal has nutritional
value and percentages of daily goals. Daily goals include the daily caloric goal and the
nutritional goals that the Nutricipe customer selects in his or her profile. The percentages of daily
goals for the entire meal are also provided. Figure 8 illustrates meal components.
[This space intentionally left blank]
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
36
Figure 8. Meal Component Diagram
2.3
External Interfaces
This section will identify the physical and logical interfaces used by the Nutricipe
prototype. The interfaces to be discussed in this section will include the hardware, software, user
interfaces, and the communication protocols of the interfaces. External interfaces will be limited
to standard PC hardware and freely available software. The only custom interface will be the
Nutricipe website.
2.3.1 Hardware Interfaces
No hardware interfaces will be built for this prototype. An ODU classroom PC will be
used to allow a test user to interface with the Nutricipe website via the ODU network. The
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
37
Nutricipe website will be hosted on an ODU Apache web-server. An ODU laptop will be used to
monitor database contents.
2.3.2 Software Interfaces
Group members will interface with the MySQL database via SQL queries using PHP.
The reason for using PHP as an interface to MySQL database is to format the results of SQL
queries in a form visible in a web page. Using PHP, instead of using MySQL’s command line to
enter instructions and view output, query strings that are passed to MySQL are created. When
MySQL returns its response, it will come as a data structure that PHP can recognize instead of
the command line output. Because all calls to MySQL database can be made directly without
having to use a command-line interface, it will allow saving the results in arrays for processing
and performing multiple lookups, each dependent on the results returned from earlier ones, to
drill down to the item of needed data. In addition, PHP commands can retrieve the data and
format it for the web page. PHP web pages will be developed using standard text editing tools.
2.3.3 User Interfaces
The user interface is the Nutricipe website which may be accessed by any Internetconnected PC with a web browser. The website provides the Nutricipe user interface and admin
interface. It also authenticates the user in order to distinguish what is accessible for him or her.
The Nutricipe user interface will permit new users to register and allow existing users to log in,
populate or update their profiles, generate different reports, build meals by using a meal builder,
track their food intakes and goals, and fill out the user satisfaction survey. The admin interface
will allow the health club moderators to generate the user satisfaction survey reports. It will also
allow the Admin User to maintain accounts, make changes to the Nutricipe website, and generate
the user satisfaction survey reports. Figure 9 illustrates the Nutricipe site map.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
38
Figure 9. Nutricipe Site Map
The Nutricipe website will use clean URLs that do not contain a query string and instead,
contain only the path of the resource. The main reason of using clean URLs is for the search
engine optimizations. It is also used for the usability and accessibility improvements.
In order to keep track of users, the object-oriented sessions will be used for the web
development. The user must be authenticated first. Once the user is authenticated, the session is
created for that user. All session variables are stored in the session array. When the user requests
to log out from the website, the function is called to destroy the session, log the user out, and
unset all session variables.
The Nutricipe website user will interact with PHP and MySQL through the use of HTML
forms. The website will present different forms to the user. These forms include, but are not
limited to, registration, profile, recipe search, and pantry builder forms. The user is required to
enter the data into the form. This data is then sent to the web server, where it is interpreted with
some error checking. If the PHP code identifies one or more fields that require reentering, the
form will be redisplayed with an error message. If the input is accurate, the PHP code gets that
data and either stores it in the database or passes the data to the algorithms.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
39
In order to allow the user-selectable themes and improve layout and functionality,
jQuery, jQUI, ThemeRoller, and Tablesorter are used for the web development. jQuery is a fast
and concise JavaScript library that makes it easier to handle events, navigate a document, and
create advanced effects. jQUI provides advanced effects and high-level widgets built on top of
the jQuery JavaScript library. One of its features, ThemeRoller, is used for the Nutricipe website.
ThemeRoller is a web application that offers a fun and intuitive interface for designing and
downloading custom themes for jQUI. One of the pre-designed themes will be chosen for the
Nutricipe website. Tablesorter is a jQuery plugin for turning a standard HTML table into a sorted
table. Using these technologies will contribute to the creation of powerful and dynamic web
pages.
2.3.4 Communications Protocols and Interfaces
There are two protocols that are used for the Nutricipe product. The first one is the
Transmission Control Protocol/Internet Protocol (TCP/IP) over a standard Ethernet connection.
The second protocol is the Hypertext Transfer Protocol (HTTP) for the World Wide Web
communication.
3.
SPECIFIC REQUIREMENTS
The following section describes the specific functional, performance, and non-functional
requirements of the Nutricipe prototype. It also includes the assumptions and constraints of the
Nutricipe prototype. In order for the prototype to be successful, all functional requirements must
be met. The non-functional requirements will include security, maintainability, and reliability.
3.1
Functional Requirements
Please see the team’s collaborative version.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
3.2
40
Performance Requirements
Please see the team’s collaborative version.
3.3
Assumptions and Constraints
There are a number of assumptions, constraints, and dependencies made for the prototype
development. They include every aspect of the prototype implementation. Table 7 contains the
full list of assumptions, constraints, and dependencies for the prototype.
Condition
Type
Effects on Requirements
The speed of a user’s Internet
connection can vary widely.
Assumption
Individual web page response time
will not be tested.
The Nutricipe prototype will not
have user scaling issues.
Assumption
The Nutricipe prototype will only be
tested with a minimal number of
registered users.
The domain name provided in an
authentication request is valid.
Assumption
Allows for minimal error checking
for the purposes of developing and
demonstrating the prototype.
One particular health club is selected Assumption
as a primary customer.
Allows for simplified report process.
All Nutricipe users belong to the
selected health club.
Assumption
User’s payment information will not
be verified. Access to Nutricipe is
obtained through the membership.
All meals that users consume are
created within the Nutricipe system.
Assumption
Nutricipe users’ goal achievement
report is produced by Nutricipe for
the selected health club. This report
will prove that Nutricipe helps people
to achieve their nutritional goals. In
order to produce that report, every
user will be asked if he is meeting his
individual goals after consuming
Nutricipe customized meals.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Condition
Type
Effects on Requirements
If Nutricipe users have available
ingredients, they have enough to
make any recipe.
Assumption Recipe search does not take into
account the quantity of ingredients on
hand.
When Nutricipe users indicate their
likes and dislikes, they definitely like
some foods that are good for them.
Assumption Allows for minimal error checking
for the purpose of developing and
demonstrating the prototype.
When new recipe is added to the
recipe database, that recipe only
consists of ingredients from the
USDA National Nutrient Database.
Assumption Allows for minimal error checking
and avoidance of adding new
ingredients to the Nutricipe database.
Nutricipe user follows the recipe
instructions and monitors the
portions on its own.
Assumption The prototype is only responsible for
providing reports to the customers.
Nutricipe does not provide cooking
instructions for already prepared
ingredients. The Nutricipe user
follows the preparation instructions
that those ingredients offer.
Assumption The prototype only provides cooking
instructions for the selected recipes.
Before any recipe is stored to the
Nutricipe database, it is modified by
the company that provided that
recipe according to the Nutricipe
database requirements.
Constraint
Allows for minimal error checking
and easy database data loading since
recipe data is presented in the suitable
form.
Data transfer that would normally be
performed via an encrypted
connection will be done in plain text.
Constraint
Simplifies the tasks of monitoring
and demonstration.
Only two nutritional goals are
included in the prototype.
Constraint
While the full product will have a
variety of different nutritional goals,
in the prototype, Nutricipe customers
will only be able to select their
nutritional goals from the two offered
choices.
41
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
Condition
Type
42
Effects on Requirements
Nutricipe user profile will not
include customer’s family history
and diseases.
Constraint
While the full product will have fully
customizable reports, the prototype
will only generate reports based on
the user personal information,
preferences, and nutritional goals.
An Internet connection is available
at the time of demonstration.
Dependency The prototype cannot be
demonstrated without Internet.
ODU servers will be available to
host Nutricipe components, and the
necessary software can be installed.
Dependency If this is not the case, personal
hardware would need to be utilized or
purchased.
USDA nutrient database is freely
available at any time.
Dependency If this is not the case, the updated
USDA nutrient database would need
to be purchased to incorporate most
recent nutritional changes and
additions.
Table 7. Effects of Assumptions, Dependencies, and Constraints on Requirements
3.3.1 Assumptions
11 assumptions are being made. First, the speed of a user's Internet connection can vary
widely, and it is outside of Nutricipe's control. Accordingly, individual web page response times
will not be tested. Second, the prototype will not have user scaling issues, so only a minimal
number of user accounts will be demonstrated. Third, the domain name provided in an
authentication request is assumed to be valid. Limiting the possible domain names reduces the
amount of error checking for the purposes of developing and demonstrating the prototype.
Forth, only one particular health club is selected as a primary customer. All health club
moderators will belong to this particular health club. This will allow for simplified report
process. Fifth, all Nutricipe users belong to the selected health club. They will obtain access to
Nutricipe through their health club membership. Their payment information will not be required.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
43
Sixth, all meals that users consume are created within the Nutricipe system. This
assumption will help to produce valid user satisfaction survey reports. When users fill out that
survey, they will answer questions based on the assumption that they only consume Nutricipe
meals. Seventh, if Nutricipe users have available ingredients, they have enough to make any
recipe. Thus, the recipe search does not take into account the quantity of ingredients on hand.
Eighth, when Nutricipe users indicate their likes and dislikes, they definitely like some
foods that are good for them. Otherwise, if they dislike all nutritional foods, it would be
impossible for Nutricipe to find healthy recipes and to accommodate customers’ preferences at
the same time. Ninth, when new recipe is added to the recipe database, that recipe only consists
of ingredients from the USDA National Nutrient Database. Every recipe has a list of ingredients
in the database. Those ingredients are mapped to the USDA National Nutrient Database in order
to access nutritional information about those ingredients.
Tenth, the Nutricipe user follows the recipe instructions and monitors the portions on its
own. Nutricipe will not control the serving size nor will it guarantee that the user followed the
instructions correctly. The final assumption is that Nutricipe does not provide cooking
instructions for already prepared ingredients. The Nutricipe user follows the preparation
instructions that those ingredients offer. The Nutricipe solution only provides cooking
instructions for the selected recipes.
3.3.2 Constraints
A number of constraints will be used to limit the scope of the prototype, to simplify the
development process, and to focus on the innovative aspects of the service. There are four
constraints that have particular importance. First, before any recipe is stored to the Nutricipe
database, it is modified by the company that provided that recipe according to the Nutricipe
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
44
database requirements. It will allow for the fast and easy database loading process. Second, data
transfers that would normally be performed via an encrypted connection will be done in plain
text for monitoring and demonstration purposes.
Third, only two nutritional goals are included in the prototype. While the full product will
have a variety of different nutritional goals, in the prototype, Nutricipe customers will only be
able to select their nutritional goals from the two offered choices. The two nutritional goals
selected for the prototype are calcium intake increase and vitamin C intake increase.
Finally, the Nutricipe user profile will not include customer’s family history and diseases.
While the full product will have fully customizable reports, the prototype will only generate
reports based on the user personal information, preferences, and nutritional goals. In the RWP,
every family history and disease has a list of nutritional goals that must be met in order to
improve health based upon family history and diseases. Hence, instead of selecting particular
diseases and specifying family history, a number of nutritional goals can be selected to achieve
the same results. Since nutritional goals are included in the prototype, the family history and
diseases categories can be eliminated from the prototype development.
3.3.3 Dependencies
There are three dependencies that have been identified for the Nutricipe prototype.
Network and Internet connections must be available at the time of the demonstration. The
prototype cannot be demonstrated without these connections. The second dependency recognizes
that ODU servers are expected to be available to host the Nutricipe components. Required
software must also be installed. If this is not the case, personal hardware would need to be
utilized. Finally, the USDA nutrient database must be freely available at any time. If this is not
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
45
the case, the updated USDA nutrient database would need to be purchased to incorporate most
recent nutritional changes and additions.
3.4
NON-FUNCTIONAL REQUIREMENTS
Non-functional requirements address features of the prototype that are outside of the core
innovative functionality. Non-functional requirements include security, maintainability, and
reliability. Security is important to keep the integrity of the system. Maintainability and
reliability are important in any product for the customer satisfaction.
3.4.1 Security
The prototype will demonstrate access control, administration, and basic authentication.
Each user will have a different level of access based on the user type. Only Admin Users will
have administrative privileges. Other users will only be able to access their own information.
Authentication will be very basic, consisting of a username and password.
3.4.2 Maintainability
Since the Nutricipe prototype is a web-based solution, it will allow for the low cost
maintenance. The website will be built using the dynamic approach. Instead of just using the
same HTML code on every page, sets of functions will be called automatically based on what
page is being viewed.
The Nutricipe database will be manually populated with the recipes and nutritional data
by the developers prior to the demonstration of the Nutricipe prototype. The USDA National
Nutrient Database will be imported directly to the Nutricipe database by the developers prior to
the Nutricipe solution demonstration. To access different accounts, to maintain the Nutricipe
product, and to make changes to the Nutricipe website, the administrative accounts will be used.
LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION
46
3.4.3 Reliability
Nutricipe must be very reliable, since the information being handled is important. All
produced reports must be accurate, consistent, and valid. Access to the Nutricipe website must be
available at all times. A disclaimer will be included in the product to remove responsibility from
Nutricipe if there are any health related issues.
Download