Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 27

Software Requirements Specificatio

For
FrugalPhone
Submitted by
Blue Team

Advisors
Team Members
Cycle
Date Submitted

Gregory Hislop, Jeff Salvage


Patrick Freestone, Stephen Prazenica, Johnathan Saunders, Kyle
Usbeck, Kimmie Yuan
3
2/22/2007

Document Template copyright (c) 2005, Gregory W. Hislop. Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation

Grading Rubric - Requirements Specification


This rubric outlines the grading criteria for this document. Note that the criteria represent a plan for grading. Change is possible,
especially given the dynamic nature of this course. Any change will be applied consistently for the entire class.
Achievement
Content
Introduction
Overall
Description
Specific
Requirements
Grammar and
Spelling
Expression
Tone
Organization

Minimal
Section(s) missing, not
useful, inconsistent, or
wrong.

Satisfactory
Some problems with
completeness or details
of content

Exemplary
Provides all relevant
information correctly and
with appropriate detail

Several large issues or


many smaller ones
Hard to follow or poor
word choices
Tone somewhat
unprofessional
Information difficult to
locate

Some small grammar or


spelling issues
Mostly easy to read and
understand
Mostly professional tone

Grammar, punctuation,
and spelling all correct
Clear and concise. A
pleasure to read
Tone is consistently
professional
All information is easy to
find and important points
stand out
Layout is attractive,
consistent, and helps
guide the reader

10
10
50
10 Many serious mistakes
in grammar or spelling
10 Very difficult to
understand
Tone not appropriate for
technical writing
10 Very hard to find
information

Layout

Layout makes it harder


to understand and use
the document

Late
Submission
Total

Limited
Serious omissions or
problems with content.

100

Can find information


with slight effort

Layout is inconsistent or Layout is reasonable,


not visually appealing or consistent and generally
supportive
helpful

Score

Table of Content
1

Introduction..................................................................................................................4
1.1
Purpose................................................................................................................4
1.2
Scope....................................................................................................................4
1.3
Definitions, Acronyms, and Abbreviations..........................................................4
1.3.1
System Components....................................................................................4
1.3.2
Data Entities.................................................................................................4
1.4
References............................................................................................................5
1.5
Overview..............................................................................................................6
2
Overall Description......................................................................................................7
2.1
Product Perspective.............................................................................................7
2.2
Product Functions................................................................................................8
2.3
User Characteristics.............................................................................................8
2.3.1
Use Case Overview......................................................................................9
2.4
Constraints.........................................................................................................16
2.5
Assumptions and Dependencies........................................................................16
2.6
Apportioning of Requirements..........................................................................16
2.6.1
Cycle 1.......................................................................................................16
2.6.2
Cycle 2.......................................................................................................16
3
Specific Requirements...............................................................................................17
3.1
External Interfaces.............................................................................................17
3.1.1
Data Interface.............................................................................................17
3.1.2
User Interface.............................................................................................17
3.2
Functions............................................................................................................17
3.2.1
Consumer...................................................................................................18
3.2.2
System Administrator................................................................................20
3.3
Performance Requirements................................................................................24
3.4
Logical Database Requirements........................................................................25
3.5
Design Constraints.............................................................................................25
3.6
Standards Compliance.......................................................................................26
3.7
Software System Attributes...............................................................................26

Table of Contribution

The table below identifies contributors to various sections of this document.


Section
Entire Document
1

Introduction

1.1

Purpose

1.2

Scope

1.3

Definitions

1.4

References

1.5

Overview

Overall Description

2.1

Product Perspective

2.2

Product Functions

2.3

User Characteristics

2.4

Constraints

2.5

Assumptions and Dependencies

2.6

Apportioning of Requirements

Specific Requirements

3.1

External Interfaces

3.1.1

Data Interface

3.1.2

User Interface

3.2

Functions

3.3

Performance Requirements

3.4

Logical Database Requirements

3.5

Design Constraints

3.6

Standards Compliance

3.7

Software System Attributes

Writing
PGF, KU

Editing
Team

Introduction

1.1

Purpose

The purpose of this SRS document is to provide both the functional and performance
requirements as well as the constraints for the FrugalPhone system. The intended
audience for this document includes potential investors and technical designers.
Additionally, although the intended audience of this document is not the ultimate
consumer, it is intended to be readable by a typical FrugalPhone user.

1.2

Scope

FrugalPhone allows consumers to use a mobile device to check competitors prices for a
specific product. Consumers send product information in the form of UPC Code or
product name to this service using their mobile device. FrugalPhone then returns a list of
product pricing results that includes information such as the store name, physical
location, sale price, and the last time the price was validated. GPS-enabled phones also
display the distance to the store.
FrugalPhone is also responsible for maintaining up-to-date product pricing information.
This information is provided by external retailers.
The objective of this application is to create a more portable version of Internet pricechecking websites. Given this objective, the ideal goal of FrugalPhone is to provide the
ability to compare product prices anytime and anywhere.

1.3

Definitions, Acronyms, and Abbreviations

This section provides definitions for common terms used throughout the document. They
are provided here to help minimize ambiguity throughout the document.
1.3.1

System Components

Mobile Device The application allowing the consumer to enter product input
data into the system and view the pricing result data.

FrugalPhone Server The part of the system responsible for gathering the
product pricing data from external retailers, as well as communicating with
the mobile device.

Admin Console The interface to the system that allows the system
administrator to manage the FrugalPhone server.

1.3.2

Data Entities

Product Input Data The data about a specific product that the consumer
inputs into the mobile device that is used to identify the product. Detail on this
data entity can be found in Section 3.4.

Pricing Result Data - The data returned to the consumer that includes
information about the product, locations where it is sold, the prices at those

locations, and the distance to the store (GPS-enabled devices only). Detail on
this data entity can be found in Section 3.4.

1.4

Product Pricing Data The data gathered from external retailers containing
prices and locations for consumer products. It is used to generate the pricing
result data. Detail on this data entity can be found in Section 3.4.

FrugalPhone Server Management Parameters - The data controlled by the


system administrator that regulates the FrugalPhone server. A list of server
management parameters can be found in Section 3.4.

FrugalPhone Server Status Updates The data about the status of the
FrugalPhone server communicated to the system administrator via the admin
console. Detail on this data entity can be found in Section 3.4.

References

Freestone, Prazenica, Saunders, Usbeck, Yuan. Cycle-1 Software Requirements


Specification for FrugalPhone. October, 2006.
Freestone, Prazenica, Saunders, Usbeck, Yuan. Cycle-2 Software Requirements
Specification for FrugalPhone. December, 2006.
The following websites are referenced to provide information about the standards used
for UPC Codes, specifically Global Trade Identification Numbers (GTIN), and GPS
information.
GPS Information. NMEA Data. Retrieved October 18, 2006 from
http://www.gpsinformation.org/dale/nmea.htm
GS1. GS1 ID Keys Technical. Retrieved October 15, 2006 from
http://www.gs1.org/productssolutions/idkeys/technical/#gtin

1.5

Overview

This SRS document describes the FrugalPhone system. It is divided into three major
sections.
Section 1

This section describes the document purpose and the project


scope. This section also includes the definitions, acronyms,
abbreviations, and references used throughout the document.

Section 2

This section provides the product perspective and the key


functions of the product. This section also describes the uses of
FrugalPhone and the characteristics of the systems users. The
constraints, assumptions, dependencies, and apportioning of
requirements for FrugalPhone are also addressed in this section.

Section 3

This section describes the external interfaces to the FrugalPhone


system that allow for communication across the systems border.
Also included in this section is the list of specific functions that
are included in the FrugalPhone system. All performance and
logical data requirements are addressed in this section, as well as
any design constraints, standards compliance requirements, and
software system attributes needed for the FrugalPhone system.

2
2.1

Overall Description
Product Perspective

As stated in Section 1.2, FrugalPhone is a service that allows consumers to use a mobile
device for price checking on specific products. FrugalPhone is a relatively free standing
and self-contained application that is not build into a pre-existing system. However, there
are several external entities with which the system interacts. These are shown in Figure
1.
The specific external interfaces of the system are addressed in section 3.1.

Figure 1 - External Interfaces

2.2

Product Functions

This section of the document provides a listing of FrugalPhones key functions.

Return Product Pricing Data


FrugalPhone accepts product information from a consumers mobile device in the
form of UPC code or product name and return available pricing data for that
product. This pricing data includes, but is not limited to, prices, store names, store
locations, and the dates the prices were last validated.

Provide Distance-to-Store Information


FrugalPhone provides the distance to physical store locations on GPS-enabled
mobile devices.

Gather Product Pricing Data


FrugalPhone maintains an up-to-date product pricing data by gathering
information from external retailers.

View FrugalPhone Server Status


FrugalPhone allows a system administrator to view the status of the processes
running on the FrugalPhone server.

Manage FrugalPhone Server


FrugalPhone allows a system administrator to manage the FrugalPhone server to
ensure that it is operating effectively by configuring application parameters and
administering user accounts.

2.3

User Characteristics

Consumer The consumer uses a mobile device to enter the product input data
and view product pricing data. Consumers can use FrugalPhone anywhere that
their mobile device is connected to a network. Consumers do not need to be
technical experts or possess any specific education level other than the basic
knowledge of mobile device use.

System Administrator The system administrator uses the admin console to


manage the FrugalPhone server. The system administrator should have server and
database experience to fully understand the FrugalPhone server management
parameters and FrugalPhone server status updates.

2.3.1 Use Case Overview


Figure 2.3.1 below illustrates the three main use cases of the FrugalPhone system. These
use case are described further in the sections that follow.

Figure 2 - Use Case Find Competitors' Product Prices

2.3.1.1 Use Case 1: Find Competitors Product Prices


Objective
To gain knowledge of product prices
Primary Actor
Consumer
Pre-Conditions
The consumer has FrugalPhone on their mobile device
Post-Conditions
Pricing result data is displayed on the mobile device
Flow of Events
1. Consumer chooses product input data entry type
2. Consumer enters product input data
3. Mobile device sends product input data to
FrugalPhone server
4. FrugalPhone server generates pricing result data and
sends to consumer
5. Consumer views pricing result data
Exception Conditions
1.1 If consumer chooses invalid product input data entry
type, the mobile device repeats this step.
2.1 If consumer enters invalid product input data, the
mobile device provides an error message and repeats
this step.
3.1 If mobile device is not connected to a network, the
mobile device displays an error message and returns
to previous screen.
4.1 If product pricing data does not exist, FrugalPhone
server returns an error message.

10

2.3.1.2 Use Case 2: View FrugalPhone Server Status


Objective
To know the status of the server
Primary Actor
System administrator
Pre-Conditions
System administrator has valid login to admin console
Post-Conditions
FrugalPhone system status updates are displayed
Flow of Events
1. System administrator enters username and password
into admin console
2. System administrator selects the option to view the
FrugalPhone server status
3. The admin console displays the FrugalPhone server
status
Exception Conditions
1.1 If the system administrator enters an invalid
username/password combination, the admin console
displays an error and allows the system administrator
to try again.
3.1 If the FrugalPhone server encounters an error
generating or sending the status update, an error is
logged and specific error information is displayed.

11

2.3.1.3 Use Case 3: Modify FrugalPhone Server Management Parameters


Objective
To change parameters of FrugalPhone server
Primary Actor
System administrator
Pre-Conditions
System administrator has valid login to admin console
Post-Conditions
Flow of Events
1. System administrator enters username and password
into admin console
2. System administrator selects the option to change the
FrugalPhone server management parameters
3. The admin console displays the current values for the
FrugalPhone server management parameters
4. System administrator chooses which FrugalPhone
server management parameter to change
5. The admin console allows the system administrator to
input a new value for the chosen FrugalPhone server
management parameter
6. System administrator enters a new value for the
FrugalPhone server management parameter
7. The admin console updates the value and returns the
system administrator to the FrugalPhone server
management parameter viewing display
Exception Conditions
1.1 If the system administrator enters an invalid
username/password combination, the admin console
displays an error and allows the system administrator
to try again.
3.1 If the admin console encounters an error trying to
determine current FrugalPhone server management
parameters, an error is logged and specific error
information is displayed.
6.1 If the system administrator enters an invalid value, the
admin console displays an error message and allows
the system administrator to try again.
7.1 If the admin console is unable to change the
FrugalPhone server management parameter, an error
message is displayed and the system administrator is
given the option to enter a new value.

12

2.3.1.4 Use Case 4: Add System Administrator Account


Objective
To add a system administrator account
Primary Actor
System administrator
Pre-Conditions
System administrator has valid login to admin console
Post-Conditions
A new system administrator account is created
Flow of Events
1. System administrator enters username and password
into admin console
2. System administrator selects the option to add a new
system administrator account
3. System administrator enters the new accounts
username, password, and confirmation password
4. The admin console creates the new account and
displays a confirmation of the account creation
Exception Conditions

1.1 If the system administrator enters an invalid


username/password combination, the admin console
displays an error and allows the system administrator
to try again.
3.1 If the system administrator enters a
username/password that does not conform to the
standards defined in Requirement 3.2.2.1 an error
message is displayed and the operation is not
completed.

13

2.3.1.5 Use Case 5: Modify System Administrator Account


Objective
To modify a system administrator account
Primary Actor
System administrator
Pre-Conditions
System administrator has valid login to admin console
Post-Conditions
A system administrator account is modified
Flow of Events
1. System administrator enters username and password
into admin console
2. System administrator selects the option to modify a
system administrator account
3. The admin console displays a list of accounts
4. System administrator selects which account to modify
5. System administrator modifies the account values and
selects the option to update the account
6. The admin console updates the account and displays a
confirmation of the new account values
Exception Conditions

1.1 If the system administrator enters an invalid


username/password combination, the admin console
displays an error and allows the system administrator
to try again.
4.1 If the system administrator selects the root account an
error message is displayed.
5.1 If the system administrator enters a new
username/password that does not conform to the
standards defined in Requirement 3.2.2.1 an error
message is displayed and the operation is not
completed.

14

2.3.1.6 Use Case 6: Delete System Administrator Account


Objective
To delete a system administrator account
Primary Actor
System administrator
Pre-Conditions
System administrator has valid login to admin console
Post-Conditions
A system administrator account is deleted
Flow of Events
1. System administrator enters username and password
into admin console
2. System administrator selects the option to delete a
system administrator account
3. The admin console displays a list of accounts
4. System administrator selects the account to delete
5. The admin console confirms the deletion of the user
with the system administrator
6. The admin console deletes the account and displays a
confirmation of the account deletion
Exception Conditions

1.1 If the system administrator enters an invalid


username/password combination, the admin console
displays an error and allows the system administrator
to try again.
4.1 If the system administrator selects the root account an
error message is displayed.
5.1 If the system administrator selects to not delete the
specified account no account is deleted and the
system administrator is returned to a list of accounts.

15

2.4

Constraints

There are several hardware constraints that could prevent operation of some features on
the mobile device. For example, the mobile device must possess some means of
providing a GPS location for FrugalPhone to show the distance to competitor locations.
Also, as mobile devices are not uniform in architecture, the developer is limited by the
operating system on the chosen mobile devices.

2.5

Assumptions and Dependencies

FrugalPhone assumes that no security or validation is required for mobile devices


sending data to the FrugalPhone service.

FrugalPhone assumes that the consumer has a mobile device, connection to a


mobile network, and FrugalPhone software on the device.

2.6

Apportioning of Requirements

2.6.1 Cycle 1
In Cycle 1, two main components of the system are delivered. These components do not
coincide to specific requirements but rather provide a framework to later implement the
specific requirements.
The first system component that is implemented is communication between the mobile
device and the FrugalPhone server. This provides the framework for transporting the
product input data and the pricing result data as shown in Figure 3.
The second system component implemented in Cycle 1 is divided into two parts. The first
part is the implementation of product pricing data storage on the FrugalPhone server. The
second part is implementing a pilot process for populating the data storage on the
FrugalPhone server.
2.6.2 Cycle 2
In Cycle 2, all requirements in Section 3.2.1 are delivered. This involves the consumer
interacting with the data on the FrugalPhone server via the mobile device.
Also, the first pass at the requirements pertaining to the admin console, specifically all
requirements in Section 3.2.2, is made. This involves the system administrators
interaction with the admin console.
Finally, the product pricing data gathering portion of the system, defined in Section
3.1.1.1, is made more robust from the pilot process developed in Cycle 1.
2.6.3 Cycle 3
In Cycle 3, all remaining requirements in Section 3.2 are delivered. This entails the
completion of a working system.

16

3
3.1

Specific Requirements
External Interfaces

There are three external interfaces to the FrugalPhone system. The external interfaces are
illustrated in Figure 1 and are grouped into data interfaces and user interfaces.
3.1.1

Data Interface

This section describes the data flow that does not directly involve a user.
3.1.1.1 Interface to Retailer Data
The interface to retailer data is the avenue by which the FrugalPhone server gathers the
product pricing data. This interface will refer to a list of locations where a retailer has
posted pricing data. The interface will be responsible for extracting product pricing data
from those locations and loading the data into the FrugalPhone server.
3.1.2

User Interface

This section describes the data flows that involve users.


3.1.2.1 Interface to Consumer
The interface to the consumer is the way by which the consumer provides the product
input data and views the pricing result data.
3.1.2.2 Interface to System Administrator
The interface to the system administrator provides an avenue for the system administrator
to supply FrugalPhone server management parameters and to view FrugalPhone server
status updates.

3.2

Functions

The functions listed below are required to provide the product features listed in Section
2.2. The functions are divided by the user that provides the functions input. Figure 3
below provides a logical overview of the data flows involved with the FrugalPhone
system.

17

Figure 3 - Data Flow


3.2.1

Consumer

3.2.1.1 Select Product Input Data Entry Method


Input
The consumer selects the option for one of the product input data entry types:
either UPC Code or Product Name
Action
The mobile device validates the selected product input data entry type.
Output
Note

The mobile device displays the corresponding product input data entry type
screen.
A future enhancement to this requirement is to add a product input data entry
type that captures an image of a barcode.

18

3.2.1.2 Find Competitor Prices for a Product


Input
The consumer enters the product input data into the mobile device and selects
the option to get competitor prices.
Action
The mobile device validates the product input data and sends it to the
FrugalPhone server. The FrugalPhone server searches for the specific products
pricing data and generates the pricing result data.
Output IF
The product input data is not valid for the selected product input data entry type
THEN
The mobile device displays an error message
ELSE
[
IF
The FrugalPhone server has product pricing data for the user specified
product
THEN
The system displays the pricing result data
ELSE
The system displays an error message.
]

19

3.2.2

System Administrator

3.2.2.1 Add System Administrator Account


Input
The system administrator enters the following into the admin console for the
new system administrator account:
Username
Password
Confirmation password

Action

Output

Note

The system administrator then selects the option to create the new system
administrator account.
The admin console validates the following:
The username is between 4 and 16 alphanumeric characters
The password and confirmation password are
o Equal
o Between 4 and 16 characters
o Contain at least one number
o Contain no white space
IF
The username or password standards are not met
THEN
The admin console displays an error message
ELSE
The admin console creates a new system administrator record and displays a
confirmation
By default, the installation includes one system administrator account with:
Username: admin
Password: admin1

20

3.2.2.2 Modify System Administrator Account Password


Input
The system administrator selects the account they wish to modify. The system
administrator enters a new password and confirmation new password in the
admin console and selects the option to update.
Action
The admin console validates that the new password and confirmation new
password meet the criteria of the password standards defined in Requirement
3.2.2.1.
Output IF
The new password does not meet the password standards
THEN
The admin console displays an error message
ELSE
The admin console updates the selected system administrator account record
with the new password and displays a confirmation

3.2.2.3 Delete Admin Console User Account


Input
The system administrator selects the account they wish to delete and confirms
their selection.
Action
The admin console confirms the deletion of the selected account with the system
administrator.
Output The system administrator is asked to confirm the deletion of the selected
account
AND
[
IF
The system administrator confirms the deletion of the selected
account
THEN
The select system administrator account record is deleted
]
]

21

3.2.2.4 Login to the Admin Console


Input
The system administrator enters his/her username and password.
Action
Output

The admin console accepts the username and password information displaying
the password in a human unreadable format. The admin console then validates
the username/password combination against known system administrators.
IF
The username/password combination belongs to a system administrator
THEN
The admin console displays the admin consoles management options.
ELSE
The admin console displays an error message and provides the option to re-enter
the username and password.

3.2.2.5 Logout of the Admin Console


Input
The system administrator selects the option to log out of the admin console.
Action

The admin console logs out the user.

Output

The admin console displays the logout screen and sets the users status to
inactive.

3.2.2.6 View FrugalPhone Server Status


Input
The system administrator selects the option to view the FrugalPhone server
status.
Action
The admin console processes the request to view the FrugalPhone server status
information, which is specified in the design.
Output The FrugalPhone server status information is displayed in the admin console.

3.2.2.7 View FrugalPhone Server Management Parameters


Input
The system administrator selects the option to view the FrugalPhone server
management parameters.
Action
The admin console processes the request to view the FrugalPhone server
management parameters, which are listed in Section 3.4.
Output The FrugalPhone server management parameters are displayed in the admin
console.

22

3.2.2.8 Add Product Pricing Data Location


Input
The system administrator selects to add a product pricing location and enters the
new location.
Action
The admin console sets the FrugalPhone server management parameter that
holds product pricing data locations.
Output The admin console displays the new product pricing data location value and logs
the change.
Note
A future enhancement for this requirement is to add web services in addition to
locations for gathering product pricing data.
3.2.2.9 Modify Product Pricing Data Location
Input
The system administrator selects the product pricing data location to modify and
changes the value.
Action
The admin console updates the FrugalPhone server management parameter that
holds product pricing data locations.
Output The admin console displays the updated product pricing data location value and
logs the change.
3.2.2.10 Delete Product Pricing Data Location
Input
The system administrator selects the product pricing data location to delete.
Action
Output

The admin console deletes the product pricing data location from the
FrugalPhone server management parameter.
The admin console displays the updated management parameter value and logs
the change.

3.2.2.11 Modify Product Pricing Data Refresh Rate


Input
The system administrator selects to modify the product pricing data refresh rate
and changes the value.
Action
The admin console validates that the new value is a length of time. The admin
console updates the FrugalPhone server management parameter that holds the
product pricing data refresh rate.
Output The admin console displays the updated product pricing data refresh rate value
and logs the change.
Note
The default product pricing data refresh rate is 24 hours.

23

3.2.2.12 Modify Mobile Device Connection Timeout


Input
The system administrator selects to modify the mobile device connection
timeout and changes the value.
Action
The admin console validates the new value is a length of time. The admin
console updates the FrugalPhone server management parameter that holds the
mobile device connection timeout.
Output The admin console displays the updated mobile device connection timeout value
and logs the change.
Note
The default mobile device connection timeout is specified in the design.

3.3 Performance Requirements


No particular performance requirements have been identified.

24

3.4

Logical Database Requirements

As described in Section 1.3.2, there are five main data entities. The following
classification is in no way a suggestion of design but rather a logical classification of
those data entities as well as their attributes.
Data

Attributes

Use

Product Input Data

This data is used to


identify the product and
search for product pricing
data.

Pricing Result Data

Product Pricing Data

FrugalPhone Server
Management Parameters

FrugalPhone Server Status


Updates

Consumer Phone Number


Product Name or UPC
Code
GPS Location
Product Name
Store Name(s)
Store Location(s)
Price(s)
Price Type (Sale/Regular)
Price Validation Date(s)
Distance to Store(s)
Product Name
UPC Code(s)
Store Name(s)
Store Location(s)
Price(s)
Data Source
Mobile Device
Connection Timeout
Product Pricing Data
Location(s)
Product Pricing Data
Refresh Rate
To be specified in design.

3.5 Design Constraints


No particular design constraints have been identified.

25

The pricing result data is


used to inform the
consumer of competitors
and their prices for the
consumer-specified
product.
This data is stored on the
FrugalPhone server and
used to generate the
pricing result data.

This data is used to


configure the behavior of
the FrugalPhone server.

This data is used to


inform the system
administrator of the
FrugalPhone server status.

3.6 Standards Compliance


The UPC codes used in the FrugalPhone system need to follow the standards defined for
Global Trade Item Numbers (GTIN) by GS1 at
http://www.gs1.org/productssolutions/idkeys/technical/#gtin.
The FrugalPhone system stores GPS-related information in the form of Latitude and
Longitude degrees north and west. Degrees are used to avoid excessive arithmetic on the
FrugalPhone server and the directions north and west follow the NMEA 0183 standard at
http://www.gpsinformation.org/dale/nmea.htm

3.7 Software System Attributes


No particular software system attribute requirements have been identified.

26

You might also like