Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web...

112
Software Design Specification For FrugalPhone Submitted by Blue Team Instructor Gregory Hislop, Jeff Salvage Team Members Patrick Freestone, Stephen Prazenica, Johnathan Saunders, Kyle Usbeck, Kimmie Yuan Cycle 3 Date Submitted 2/22/2007 1

Transcript of Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web...

Page 1: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Software Design Specification

For

FrugalPhone

Submitted by

Blue Team

Instructor Gregory Hislop, Jeff SalvageTeam Members Patrick Freestone, Stephen Prazenica, Johnathan Saunders,

Kyle Usbeck, Kimmie YuanCycle 3Date Submitted 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.

1

Instructor, 12/28/04,
Please use this report template as provided. Do not change the formatting, reorganize the report, or delete sections. You may add sections at the end or add sub-sections if needed. You should also adjust page breaks so major headings are placed appropriately in the final document. Items in angle brackets, < >, are parts of the report that you must replace with appropriate information. All comments should be hidden before submitting or printing the report. This document is loosely based on IEEE Std 1016-1998. You should use that document for additional guidance.
Instructor, 12/28/04,
If you submit drafts or revisions, change this date for each submission.
Page 2: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Grading Rubric - Design SpecificationThis 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 Minimal Limited Satisfactory Exemplary ScoreContent Section(s) missing, not

useful, inconsistent, or wrong.

Serious omissions or problems with content.

Some problems with completeness or details of content

Provides all relevant information correctly and with appropriate detail

Introduction 10Architectural Description

10

Interface Description

10

Detailed Design

40

Grammar and Spelling

10 Many serious mistakes in grammar or spelling

Several large issues or many smaller ones

Some small grammar or spelling issues

Grammar, punctuation, and spelling all correct

Expression 10 Very difficult to understand

Hard to follow or poor word choices

Mostly easy to read and understand

Clear and concise. A pleasure to read

Tone Tone not appropriate for technical writing

Tone somewhat unprofessional

Mostly professional tone

Tone is consistently professional

Organization 10 Very hard to find information

Information difficult to locate

Can find information with slight effort

All information is easy to find and important points stand out

Layout Layout makes it harder to understand and use the document

Layout is inconsistent or not visually appealing or supportive

Layout is reasonable, consistent and generally helpful

Layout is attractive, consistent, and helps guide the reader

Late SubmissionTotal 100

2

Page 3: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Table of Contents

1 Introduction..................................................................................................................71.1 Purpose................................................................................................................71.2 Scope....................................................................................................................71.3 Definitions, Acronyms, and Abbreviations.........................................................7

1.3.1 System Components....................................................................................71.3.2 Data Entities.................................................................................................71.3.3 Technical Terms..........................................................................................8

1.4 References............................................................................................................91.5 Overview..............................................................................................................9

2 Architectural Description...........................................................................................102.1 Requirement Fulfillment View..........................................................................11

2.1.1 Use Case 1: Find Competitors’ Product Prices [SRS 2.3.1.1]...................112.1.2 Use Cases 2-6 [SRS 2.3.1.2-6]..................................................................122.1.3 Interface to Retailer Data [SRS 3.1.1.1]....................................................12

2.2 Component View...............................................................................................142.2.1 Mobile Device Decomposition..................................................................142.2.2 Mobile Device Interface Decomposition...................................................152.2.3 FrugalPhone Server Database Decomposition..........................................162.2.4 Product Pricing Data Retailer Interface Decomposition...........................162.2.5 Admin Console Decomposition.................................................................16

3 Interface Description.................................................................................................173.1 User Interface.....................................................................................................17

3.1.2 Phone User Interface..................................................................................193.2 Data Interface.....................................................................................................213.3 Programming Interface......................................................................................21

4 Detailed Design.........................................................................................................224.1 Mobile Device...................................................................................................23

4.1.1 Mobile Device Classes..............................................................................234.1.2 Requirement Traceability Matrix..............................................................40

4.2 Mobile Device Interface....................................................................................414.2.1 Mobile Device Interface Classes...............................................................414.2.2 Requirements Traceability Matrix.............................................................45

4.3 FrugalPhone Server Database............................................................................464.3.1 FrugalPhone Server Database Tables........................................................464.3.2 FrugalPhone Server Database Classes.......................................................484.3.3 Requirement Traceability Matrix..............................................................51

4.4 Product Pricing Data Retailer Interface.............................................................524.4.1 Product Pricing Data Retailer Interface Classes........................................524.4.2 Product Pricing Data Retailer Interface Files............................................604.4.3 Requirement Traceability Matrix..............................................................63

4.5 Admin Console..................................................................................................644.5.1 Admin Console Screens.............................................................................66

3

Instructor, 12/28/04,
Be sure to update the table of contents and resolve any problems before submitting the document.
Page 4: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.2 Admin Console Classes.............................................................................794.5.3 Requirements Traceability Matrix.............................................................89

4

Page 5: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Table of ContributionsThe table below identifies contributors to various sections of this document.

Section Writing Editing

Entire Document Team

1 Introduction

1.1 Purpose

1.2 Scope

1.3Definitions, Acronyms, and Abbreviations

1.4 References

1.5 Overview

2 Architectural Description

3 Interface Description

3.1 User Interface

3.2 Data Interface

3.3 Programming Interface

4 Detailed Design SLP,PGF,KU

5

Greg Hislop, 05/02/06,
Enter Editing contributions here, including corrections to writing (grammar, spelling, etc.), minor re-writes, and changes to integrate sections.
Greg Hislop, 04/06/06,
Enter Writing and major re-writing contributions in this column. You can assign %’s to contribution, but do not need to do so. Note that writing contributions listed here should indicate posting of a section draft on the course site.
Greg Hislop, 05/02/06,
Use this section to note contribution to this document by each team member. If all members contribute equally use the row labeled “Entire Document” Only use enough entries to capture a general picture of the work. For example, if someone did all of section 1, you can fill in the section 1 row, but leave the subsections for section 1 blank.
Page 6: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

1 Introduction

1.1 PurposeThe purpose of this SDS document is to provide the system architecture, interfaces, and design details for the implementation of FrugalPhone. Developers of the system are the intended audience for this document.

1.2 ScopeFrugalPhone allows consumers to use a Mobile Device to check competitors’ prices for a specific product. Consumers send product information to this service with their Mobile Device. FrugalPhone then returns a list of product pricing results that includes information such as the store name, physical location, price, and the last time the price was validated. GPS-enabled phones also display the distance to the store.

The FrugalPhone service provides several input methods. One format in which a consumer is able to enter product information is a UPC Code. Another format that a consumer could use is product name. A third format is bar code scanning via the camera on camera phones.

The FrugalPhone service gathers pricing data in two ways. One way in which the system gathers pricing data is by browsing web pages. A second way is by allowing retailers to provide product pricing data feeds to the FrugalPhone system.

The objective of this application is to create a more portable version of Internet price-checking 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 AbbreviationsThis section provides definitions for common terms used throughout the document. They are provided to help minimize ambiguity throughout the document.

1.3.1 System Components

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

FrugalPhone Server – This is the part of the system that is responsible for gathering the product pricing data from the Internet, 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 – This is the data about a specific product that the consumer inputs into the Mobile Device that is used to identify the product.

6

Instructor, 12/28/04,
The material here is the same as the corresponding sections in the requirements specification. Copy those sections and expand and update them as needed.
Page 7: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Pricing Result Data - This is 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).

Product Pricing Data – This is the data gathered from the retailers about prices and locations for consumer products. It is used to generate the pricing result data.

FrugalPhone Server Management Parameters - This is the data that regulates the FrugalPhone server and is controlled by the system administrator.

FrugalPhone Server Status Updates – This is the data about the status of the FrugalPhone server communicated to the system administrator via the Admin Console.

1.3.3 Technical Terms

JSP - JavaServer Pages (JSP) technology provides a simplified, fast way to create dynamic web content. JSP technology enables rapid development of web-based applications that are server and platform independent.

Servlets - Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business systems.

JavaBeans - Components (JavaBeans) are reusable software programs that you can develop and assemble easily to create sophisticated applications.

CommSystem - Component of FrugalPhone that transfers messages between a Comm Package (Mobile Device) and Comm Package (FrugalPhone Server).

HTTP - Hypertext Transfer Protocol (HTTP) is a request/response protocol between clients and servers.

JVM - A Java Virtual Machine (JVM) is the program that executes the machine language generated by Java language compilers.

XML – Extensible Markup Language (XML) is a general purpose markup language that is used to structure data.

Feed – A feed is a data file that is updated at a regular interval.

URL – A uniform resource locator (URL) is a unique address for locating a file.

7

Page 8: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

1.4 ReferencesThe following references are supplemental to the material found in this document:

GS1. GS1 ID Keys – Technical. Retrieved October 15, 2006 from http://www.gs1.org/productssolutions/idkeys/technical/#gtin

Freestone, Prazenica, Saunders, Usbeck, Yaun. Cycle-1 Software Requirements Specification for FrugalPhone. October, 2006.

Freestone, Prazenica, Saunders, Usbeck, Yaun. Cycle-1 Software Design Specification for FrugalPhone. November, 2006.

Freestone, Prazenica, Saunders, Usbeck, Yaun. Cycle-2 Software Requirements Specification for FrugalPhone. December, 2006.

Freestone, Prazenica, Saunders, Usbeck, Yaun. Cycle-2 Software Design Specification for FrugalPhone. January, 2006.

Freestone, Prazenica, Saunders, Usbeck, Yaun. Cycle-3 Software Requirements Specification for FrugalPhone. February, 2006.

1.5 OverviewThe table below provides the distribution of content across the sections in this document.

Section 1 This section of the document contains the purpose of this document, scope of the FrugalPhone system, important definitions, and references.

Section 2This section of the document contains the high-level overview of the system architecture as well as a beginning decomposition of the major system components.

Section 3 This section of the document details the user, data, and programming interfaces of the FrugalPhone system.

Section 4 This section of the document provides detailed design for all design entities of the FrugalPhone system.

8

Instructor, 11/03/04,
Include a reference to your requirements specification
Page 9: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

2 Architectural DescriptionThis section of the document provides two different views of FrugalPhone, the Requirement Fulfillment View and the Component View.

9

Instructor, 11/02/05,
This is called the “Decomposition Description” in IEEE 1016. The goal is to provide a high level view of the design. You can approach this with subsections for system components (as shown in this template in 2.1, 2.2, etc) or you can use a single section that provides a more holistic view. (Or you can do both). Diagrams (and accompanying text) are a must for this description. You should show at least one structure diagram (e.g., Class diagrams) and, if helpful, one or more interaction diagram (e.g., sequence diagrams)
Page 10: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

2.1 Requirement Fulfillment ViewFrugalPhone fulfills certain functions defined in the Software Requirements Specification (SRS) (Cycle - 2 Software Requirements Specification, 2006). This view of the system provides insight into how the use cases and external data interface defined in the SRS are fulfilled by the design of FrugalPhone.

2.1.1 Use Case 1: Find Competitors’ Product Prices [SRS 2.3.1.1]

This use constitutes the primary use case of FrugalPhone. This process is illustrated in Figure 1 - Find Competitors' Product Prices Sequence Diagram. First the consumer selects their entry type method via the EntryTypeScreen(4.1.1.1). Depending on the selection, they are directed to the appropriate input screen, either UPCInputScreen(4.1.1.3) or ProductNameInputScreen(4.1.1.2). From these screens, the consumer enters a UPC code or product name to identify desired product(s). Once this information is entered by the user, the mobile device’s CommSystem(4.1.1.14) sends the data to the FrugalPhone server’s CommSystem(4.1.1.15). On the FrugalPhone server, the ProductInputDataHandler queries the database via the DBConnection(4.3.2.1). This query returns a PricingResultData(4.2.1.1) object which is passed all the way back to the mobile device. The mobile device then displays the information in the PricingResultData(4.2.1.1) using the PricingResultScreen(4.1.1.4).

10

Page 11: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Figure 1 - Find Competitors' Product Prices Sequence Diagram

2.1.2 Use Cases 2-6 [SRS 2.3.1.2-6]

Use Cases 2-6 involve the FrugalPhone server Admin Console, a JSP web application, whose navigation is illustrated in Figure 4 - Admin Console Screen Diagram and whose design is illustrated in Figure 48 - Admin Console Design.

2.1.3 Interface to Retailer Data [SRS 3.1.1.1]

This process is illustrated in Figure 2 - Interface to Retailer Data Sequence Diagram. The interface to retailer data is the avenue by which the FrugalPhone server gathers product pricing data. The ProductPricingDataImportTimingService(4.4.1) queries the database via a DBConnection(4.3.2.1) to determine the refresh rate and acquire a list of FeedFile(4.4.1.1) objects. When it is time to refresh, the ProductPricingDataImportTimingService(4.4.1) uses the FeedFile(4.4.1.1) list and XMLParser(4.4.1.2) to generate a list of PricingResultItem(4.2.1.2) objects stored in a ProductPricingData(4.4.1.3) object. Finally, the list of ProductPricingData(4.4.1.3) is used to update the product information in the database.

11

Page 12: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Figure 2 - Interface to Retailer Data Sequence Diagram

12

Page 13: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

2.2 Component ViewThe FrugalPhone system can be divided into several components. Listed below are the five components of the system and the conceptual packages utilized within them.

Figure 3 - FrugalPhone Component Diagram

2.2.1 Mobile Device Decomposition

The Mobile Device component of the system is the software application that is running on the consumer’s Mobile Device. This component has the responsibility of sending data to and receiving data from the Mobile Device Interface as well as allowing the consumer to enter product input data and view pricing result data. The class diagram for the Mobile Device is shown in Figure 6 - Mobile Device Package Structure on page 22.

13

Instructor, 01/05/05,
Optional. Delete if not used.
Page 14: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

2.2.1.1 UI PackageThe UI Package is the collection of user interface screens that are displayed by the consumer’s Mobile Device. In addition to handling the display, this package is responsible for gathering and validating the consumer input. The UI Package also handles formatting the output that is displayed to the consumer, which includes pricing result data and any errors relevant to the consumer.

This package uses predefined components from the J2ME UI package.

2.2.1.2 GPS PackageThe GPS Package is responsible for determining the last known physical location of the Mobile Device.

2.2.1.3 Comm Package (Mobile Device)The Comm Package, part of the CommSystem, is responsible for managing the communication between the Mobile Device and the Mobile Device Interface from the perspective of the client. This package provides a means of wirelessly transmitting any class that implements Sendable. Please see the CommObjects Package in Section 142.2.2.2 for subclasses of Sendable.

*Note: This package is a Java ME compatible design of the Comm Package (FrugalPhone Server) in Section 2.2.2.1.

2.2.1.4 CommObjects PackageThe CommObjects Package contains the classes that are transferred between the Mobile Device Interface and Mobile Device.

The CommObjects Package also contains the utility classes shared between the Mobile Device and the Mobile Device Interface. These utilities include classes that handle remote addressing, transfer errors, and configuration parameters.

2.2.2 Mobile Device Interface Decomposition

The Mobile Device Interface is a component within the FrugalPhone Server. The responsibilities of the Mobile Device Interface include receiving product input data from the Mobile Device, performing queries against the FrugalPhone server database with that information, and formatting and returning the pricing result data.

2.2.2.1 Comm Package (FrugalPhone Server)The Comm Package, part of the CommSystem, is responsible for managing the communication between the Mobile Device and the Mobile Device Interface from the perspective of the FrugalPhone server. This package provides a means of wirelessly transmitting any class that implements Sendable. Please see the CommObjects Package in Section 142.2.2.2 for subclasses of Sendable.

2.2.2.2 CommObjects PackageSee the description provided in Section 2.2.1.4.

14

Instructor, 01/05/05,
Optional. Delete if not used.
Page 15: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

2.2.3 FrugalPhone Server Database Decomposition

The FrugalPhone Server Database is the component of the system that stores information needed for the application and provides utilities for accessing and manipulating that data. Please see Figure 33 - FrugalPhone Server Database Class Diagram for the database design.

2.2.3.1 DB PackageThe DB Package provides classes for accessing and manipulating data from the FrugalPhone Server Database. This package is used by the Mobile Device Interface and the Product Pricing Data Retailer Interface system components.

2.2.4 Product Pricing Data Retailer Interface Decomposition

The Product Pricing Data Retailer Interface is the component of the system that allows retailers to provide product pricing data feeds to the FrugalPhone system. A list of URLs for properly formatted data feed files is stored as the Product Pricing Data Location(s) FrugalPhone Server Management Parameter. These URLs are entered into the FrugalPhone Server Database by a system administrator via the Admin Console.

The Product Pricing Data Retailer Interface will refresh at a rate defined by the Product Pricing Data Refresh Rate, another FrugalPhone Server Management Parameter.

2.2.5 Admin Console Decomposition

The Admin Console is the component of the system that allows a system administrator to view the status of the FrugalPhone server, change the FrugalPhone Server Management Parameters, and manage system administrator accounts. This system component is implemented as a JSP-based web application. Please see Section 4.4.3 for details regarding the specific screens and classes.

2.2.5.1 AdminConsole PackageThe AdminConsole package is divided into two sub-packages, requesthandlers and datahandlers. This package is responsible for the data processing involved in the web application.

15

Page 16: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

3 Interface Description

3.1 User InterfaceIn this section we will discuss the user interface for the Admin Console and the Mobile Device.

3.1.1 Admin Console User Interface

Figure 4 - Admin Console Screen Diagram

16

Instructor, 01/05/05,
Describe the user interface. Include a diagram showing screens (if any) and how they relate to each other. Describe the general purpose of each screen. Define messages produced by the product. Do not show screen layouts in this section.
Instructor, 01/05/05,
Describe the various interfaces between your product and people or other systems.
Page 17: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

3.1.1.1 Level 0Login – The system administrator uses this page to log into the system using his or her

username and password. If the username and password are correct, the system displays AdminOptions. If the username and password are incorrect the system displays LoginErrorRetry.

LoginErrorRetry – The system administrator can attempt to log onto their account again on this page. The correct username and password combination must be entered for access. This page is displayed when an incorrect username and password is entered in Login.

3.1.1.2 Level 1AdminOptions – AdminOptions is displayed if the system administrator entered his or her

username and password correctly. The system administrator can then choose to display ManageSysAdmins, ViewStatus, or ManageServerParameters.

3.1.1.3 Level 2ManageSysAdmins – ManageSysAdmins is accessible from AdminOptions. The system

administrator can select several options from this screen to properly manage system administrator accounts. The possible options are ChangePassword, AddSysAdmin, and DeleteSysAdmin.

ViewStatus – ViewStatus is accessible from AdminOptions. The system administrator will use this screen to view information about the current status of the FrugalPhone Server.

ManageServerParameters – ManageServerParameters is accessible from AdminOptions. The system administrator will be able to alter parameters which affect how the FrugalPhone server operates. If the system administrator makes a change in ManageServerParameters, ParameterChangeConfirmation will be displayed. The server management parameters are addressed in the classes TimeoutConfigurationParameter(4.2.1.3), FeedFileListConfigurationParameter(4.4.1.4), and FeedFileRefreshRateConfigurationParameter(4.4.1.7).

3.1.1.4 Level 3aChangePassword – ChangePassword is accessible from ManageSysAdmins. The system

administrator will be able to change the password of an existing username. After changing the password, PasswordChangeConfirmation is displayed.

PasswordChangeConfirmation – This screen is displayed after a password is updated in ChangePassword. The system administrator receives confirmation that password was correctly changed.

AddSysAdmin – AddSysAdmin is accessible from AdminOptions. The system administrator can add a new username and password for a new system administrator account. After entering the new account information, SysAdminAddConfirmation is displayed.

17

Page 18: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

SysAdminAddConfirmation – This screen is displayed after a new system administrator account is added to the system in AddSysAdmin. The system administrator receives confirmation that the account was correctly added.

DeleteSysAdmin – DeleteSysAdmin is accessible from AdminOptions. The system administrator can delete an existing system administrator account. After selecting the account to delete, the SysAdminDeleteConfirmation is displayed.

SysAdminDeleteConfirmation – This screen is displayed after an existing system administrator account is deleted from the system in DeleteSysAdmin. The system administrator receives confirmation that the account was deleted.

3.1.1.5 Level 3bParameterChangeConfirmation – This screen is displayed after system parameters have

been modified in ManageServerParameters. The system administrator receives confirmation that the parameters were correctly changed and that those changes were applied.

3.1.2 Phone User Interface

3.1.2.1 Screens

Figure 5 - Phone Screens Diagram

18

Page 19: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

EntryTypeScreen – This is the first screen displayed when a consumer accesses FrugalPhone on a Mobile Device. EntryTypeScreen allows the user to choose whether to enter product information in the form of UPC code or product name. Depending on the choice, either UPCInputScreen or ProductNameInputScreen is displayed.

UPCInputScreen – This screen is accessible from EntryTypeScreen. UPCInputScreen allows the consumer to enter product information in the form of a UPC code. After the UPC code information is entered, PricingResultScreen is displayed.

ProductNameScreen – This screen is accessible from EntryTypeScreen. ProductNameInputScreen allows the consumer to enter product information in the form of a product name. After the product name is entered, PricingResultScreen is displayed.

PricingResultScreen – This screen is displayed after information is entered in either UPCInputScreen or ProductNameInputScreen. PricingResultScreen provides the consumer with the appropriate pricing data based on the product information that was entered.

19

Page 20: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

3.1.2.2 Navigation Controls

Navigation on the Mobile Device is implemented similarly to common Mobile Device applications. Continuity of button functionality is sought between the operating system on the Mobile Device and the FrugalPhone application. The table below outlines the basic uses of common buttons on a Mobile Device and how they will be used in the FrugalPhone application.

Buttons Names Typical FunctionsSend Used to answer an incoming call, not

implemented by applicationCancel / Back / Home

Used to return the user to the “previous” state or home state

Pound Used to indicate the end of input

Star Used for non-alphanumeric input

Numeric Keypad

Used for alphanumeric input

Right / Left Option

Soft functions listed in bottom of screen corners

(Directional Keypad)Up / Down / Left / Right

Used to move on-screen selections or cursor in a certain non-diagonal direction

OK Button Used for verification

3.2 Data InterfaceFrugalPhone implements a data interface to gather product pricing data from retailers. This process works through the Product Pricing Data Retailer Interface which is described in Section 2.2.4 and Section . The format of the XML file used to provide the product pricing data is outlined in Section 4.4.2.

3.3 Programming InterfaceThe FrugalPhone system does not provide an external API.

20

Instructor, 01/05/05,
Define any application programming interfaces available for the product that allow other systems to interact with the product
Instructor, 01/05/05,
Define files or other data that moves into or out of this system (except via the user interface)
Page 21: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4 Detailed DesignThis section provides details for the design components of FrugalPhone. Requirement traceability for each design component can be found at the end of each component's section. The design components of FrugalPhone are the Mobile Device, the Mobile Device Interface, the FrugalPhone Server Database, the Product Pricing Data Retailer Interface, and the Admin Console.

21

Instructor, 01/05/05,
Repeat subsections as needed. See IEEE 1016 section 5.3 for a discussion of what the sub-sections should contain. At minimum, you should provide a detailed design for your interface, database, and code entities.
Page 22: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1 Mobile DeviceThis section of the SDS details the Java classes and user interface screens that are part of the Mobile Device design.

4.1.1 Mobile Device Classes

The Mobile Device component is composed of four packages and a driver. The UI package has the GUI screens displayed on the mobile device. The Comm package is used to wirelessly transmit data from the CommObjects package to the FrugalPhone Server. The classes in CommObjects are thus shared between the mobile device and the FrugalPhone server. The GPS package is used to query the mobile device’s GPS card.

Figure 6 - Mobile Device Package Structure

22

Page 23: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.1 EntryTypeScreen

Figure 7 - EntryTypeScreen GUI

Figure 8 - EntryTypeScreen Class Diagram

Identification EntryTypeScreen

Type Class

Purpose The purpose of this class is to provide an interface for the consumer to select a product input data entry mode.

Function This class allows the Mobile Device to obtain a product input data entry type and forward the consumer to the appropriate next screen.

Subordinates None

Dependencies Javax.microedition.lcdui.List

Interface See screen above

Resources JVM is running

Data See Figure 8 - EntryTypeScreen Class Diagram for attributes.

23

Page 24: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.2 ProductNameInputScreen

Figure 9 - ProductNameInputScreen GUI

Figure 10 - ProductNameInputScreen Class Diagram

Identification ProductNameInputScreen

Type Class

Purpose The purpose of this class is to provide an interface for the consumer to enter a product name.

Function This class allows the system to obtain a product name entered by the consumer.

Subordinates None

Dependencies Javax.microedition.lcdui.TextBox

Interface See screen above

Resources JVM is running

Data See Figure 10 - ProductNameInputScreen Class Diagram for attributes.

24

Page 25: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.3 UPCInputScreen

Figure 11 - UPCInputScreen GUI

Figure 12 - UPCInputScreen Class Diagram

Identification UPCInputScreen

Type Class

Purpose The purpose of this class is to provide an interface for the consumer to enter a product UPC Code.

Function This class allows the system to obtain a product UPC Code entered by the consumer.

Subordinates None

Dependencies Javax.microedition.lcdui.TextBox

Interface See screen above

Resources JVM is running

Data See Figure 12 - UPCInputScreen Class Diagram for attributes.

25

Page 26: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.4 PricingResultScreen

Figure 13 - PricingResultScreen GUI

Figure 14 - PricingResultScreen Class Diagram

Identification PricingResultScreen

Type Class

Purpose The purpose of this class is to provide the consumer with the requested pricing result data.

Function This class allows the system to display the pricing result data.

Subordinates None

Dependencies Javax.microedition.lcdui.List; PricingResultData

Interface See screen above

Resources JVM is running

Data See Figure 14 - PricingResultScreen Class Diagram for attributes.

26

Page 27: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.5 PricingResultDetailScreen

Figure 15 - PricingResultDetailScreen GUI

Figure 16 - PricingResultDetailScreen Class Diagram

Identification PricingResultDetailScreen

Type Class

Purpose The purpose of this class is to provide the consumer with the requested pricing result data.

Function This class allows the system to display the pricing result data for a specific store/product combination.

Subordinates None

Dependencies javax.microedition.lcdui.Alert; PricingResultItem

Interface See screen above

Resources JVM is running;

Data See Figure 16 - PricingResultDetailScreen Class Diagram for attributes.

27

Page 28: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.6 Sendable

Figure 17 - Sendable Class Diagram

Identification Sendable

Type Class

Purpose The purpose of this class is to provide a framework for objects that will be sent over the CommSystem.

Function This class provides a framework for objects that will be sent over the CommSystem.

Subordinates PricingResultData; PricingResultItem; ProductInputData; IPAddress; GPSLocation

Dependencies None

Interface This is an abstract class.

Resources JVM is running;

Processing None

Data See Figure 17 - Sendable Class Diagram for attributes.

28

Page 29: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.7 ProductInputData

Figure 18 - ProductInputData Class Diagram

Identification ProductInputData

Type Class

Purpose The purpose of this class is to provide a consistent way to store all available types of product input data.

Function This class provides a framework for storing and sending the product input data that is input by the consumer.

Subordinates ProductNameInputData; ProductUPCInputData

Dependencies Sendable; IPAddress; GPSLocation

Interface This is an abstract class.

Resources JVM is running;

Processing None

Data See Figure 18 - ProductInputData Class Diagram for attributes.

29

Page 30: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.8 ProductNameInputData

Figure 19 - ProductNameInputData Class Diagram

Identification ProductNameInputData

Type Class

Purpose The purpose of this class is to provide a way to store product input data of type product name.

Function This class provides a container for product name product input data.

Subordinates None

Dependencies ProductInputData

Interface This attributes of this class are only entered at construction time.

Resources JVM is running;

Processing None

Data See Figure 19 - ProductNameInputData Class Diagram for attributes.

30

Page 31: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.9 ProductUPCInputData

Figure 20 - ProductUPCInputData Class Diagram

Identification ProductUPCInputData

Type Class

Purpose The purpose of this class is to provide a way to store product input data of type UPC Code.

Function This class provides a container for UPC Code product input data.

Subordinates None

Dependencies ProductInputData

Interface This attributes of this class are only entered at construction time.

Resources JVM is running;

Processing None

Data See Figure 20 - ProductUPCInputData Class Diagram for attributes.

31

Page 32: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.10 IPAddress

Figure 21 - IPAddress Class Diagram

Identification IPAddress

Type Class

Purpose The purpose of this class is to represent network addressing for communication purposes.

Function This class serves as a container for network addresses.

Subordinates None

Dependencies Sendable

Interface This class provides a method to access a formatted string. This string is formatted “{0-255}.{0-255}.{0-255}.{0-255}”.

Resources JVM is running;

Processing This class checks the format of the input string.

Data See Figure 21 - IPAddress Class Diagram for attributes.

32

Page 33: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.11 UPC

Figure 22 - UPC Class Diagram

Identification UPC

Type Class

Purpose The purpose of this class is to provide a consistent, well-formatted container for UPC Codes.

Function This class serves as a container for UPC Codes.

Subordinates None

Dependencies Sendable;

Interface This class provides a method to access a formatted string. This string is formatted as defined in GS1.

Resources JVM is running;

Processing This class checks the format of the input string.

Data See Figure 22 - UPC Class Diagram for attributes.

33

Page 34: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.12 DeviceLocator

Figure 23 - DeviceLocator Class Diagram

Identification DeviceLocator

Type Class

Purpose The purpose of this class is to find the last known GPS location of the Mobile Device.

Function This class checks the Mobile Device’s internal database for the most recent GPS entry.

Subordinates None

Dependencies GPSLocation

Interface This class will provide a static function to query the Mobile Device’s GPS card.

Resources JVM is running; GPS card

Processing This class is responsible for parsing any raw GPS data and formatting it as a GPSLocation (see section 4.1.6).

Data See Figure 23 - DeviceLocator Class Diagram for attributes.

34

Page 35: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.13 GPSLocation

Figure 24 - GPSLocation Class Diagram

Identification GPSLocation

Type Class

Purpose The purpose of this class is to provide an easily-transferable container for GPS Information.

Function This class provides a container for GPS data.

Subordinates None

Dependencies CommObjects

Interface This class accepts latitude and longitude in the form of degrees North or West

Resources JVM is running

Processing None

Data See Figure 24 - GPSLocation Class Diagram for attributes.

35

Page 36: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.14 CommClient

Figure 25 - CommClient Class Diagram

Identification CommClient

Type Class

Purpose The purpose of this class is to provide a means of communicating with the Mobile Device Interface.

Function This class sends and receives classes that implement Sendable.

Subordinates None

Dependencies IPAddress; Sendable and its subordinates

Interface This is a singleton class that provides methods for sending and receiving Sendable objects.

Resources JVM is running; Discoverable External IP Address;

Processing This class determines the type of Sendable object and handles accordingly.

Data See Figure 25 - CommClient Class Diagram for attributes.

36

Page 37: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.15 CommServer

Figure 26 - CommServer Class Diagram

Identification CommServer

Type Class

Purpose The purpose of this class is to provide a means of communicating with the Mobile Device.

Function This class sends and receives classes that implement Sendable.

Subordinates None

Dependencies IPAddress; Sendable and its subordinates

Interface This is a singleton class that provides methods for sending and receiving Sendable objects.

Resources JVM is running; Discoverable External IP Address

Processing This class determines the type of Sendable object and handles accordingly.

Data See Figure 26 - CommServer Class Diagram for attributes.

37

Page 38: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.1.16 SendResult

Figure 27 - SendResult Class Diagram

Identification SendResult

Type Class

Purpose The purpose of this class is to provide feedback on success or failure of communications via the CommSystem.

Function This class contains information about transfer status.

Subordinates None

Dependencies None

Interface This class provides accessors and mutators for its attributes.

Resources JVM is running;

Processing None

Data See Figure 27 - SendResult Class Diagram for attributes.

38

Page 39: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.1.2 Requirement Traceability Matrix

This section provides traceability between the detailed design in this section and the requirements set forth in the SRS (Cycle - 3 Software Requirements Specification, 2006).

Figure 28 - Mobile Device Traceability Matrix

39

Page 40: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.2 Mobile Device InterfaceThis section of the SDS will detail the Java classes that receive data from the Mobile Device and use that data to query the FrugalPhone Server Database. These classes then format the results and send the pricing result data to the Mobile Device.

4.2.1 Mobile Device Interface Classes

This section details the classes that are used exclusively by the Mobile Device Interface component. The Mobile Device Interface additionally contains a desktop Java implementation of the classes in the Comm package and shares the CommObjects package with the Mobile Device (please see Figure 6 - Mobile Device Package Structure).

40

Page 41: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.2.1.1 PricingResultData

Figure 29 - PricingResultData Class Diagram

Identification PricingResultData

Type Class

Purpose This purpose of this class is to provide an efficient way to group PricingResultItems.

Function This class allows for the storage and access of multiple PricingResultItems in a single container.

Subordinates None

Dependencies Sendable; PricingResultItem

Interface PricingResultsItems are added to this class.

Resources JVM is running;

Processing None

Data See Figure 29 - PricingResultData Class Diagram for attributes.

41

Page 42: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.2.1.2 PricingResultItem

Figure 30 - PricingResultItem Class Diagram

Identification PricingResultItem

Type Class

Purpose The purpose of this class is to provide a container for a single product/location combination.

Function This class allows for the storage of a single record returned by a DBConnection query.

Subordinates None

Dependencies Sendable; Java.util.date

Interface This class provides accessors and mutators for its attributes.

Resources JVM is running;

Processing None

Data See Figure 30 - PricingResultItem Class Diagram for attributes.

42

Page 43: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.2.1.3 TimeoutConfigurationParameter

Figure 31 - TimeoutConfigurationParameter Class Diagram

Identification TimeoutConfigurationParameter

Type Class

Purpose The purpose of this class is to provide a standard practice for accessing the timeout configuration parameter, which specifies the length of time to wait during a network transfer.

Function This class can be used to find and store the timeout configuration parameter.

Subordinates None

Dependencies DB.ConfigurationParameter

Interface This class is constructed with a value for the timeout configuration parameter. The timeout is measured in milliseconds.

Resources JVM is running;

Processing None

Data See Figure 31 - TimeoutConfigurationParameter Class Diagram for attributes.

43

Page 44: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.2.2 Requirements Traceability Matrix

This section provides traceability between the detailed design in this section and the requirements set forth in the SRS (Cycle - 3 Software Requirements Specification, 2006).

Figure 32 - Mobile Device Interface Traceability Matrix

44

Page 45: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3 FrugalPhone Server DatabaseThis section of the SDS describes the tables contained in the FrugalPhone Server Database. It also details the classes of the DB Java package used by the Mobile Device Interface and the Product Pricing Data Retailer Interface to communicate with the database.

4.3.1 FrugalPhone Server Database Tables

The seven tables included in the FrugalPhone Server Database are designed below in Figure 33 - FrugalPhone Server Database Class Diagram. Data mappings between external XML data files and the Product, ProductPriceLocation, Location, Website, and Store tables can be found in Section 4.4.2.2.

Figure 33 - FrugalPhone Server Database Class Diagram

45

Page 46: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3.1.1 Product This table stores information about products.

4.3.1.2 ProductPriceLocationThis table stores current prices for products at given locations. This table allows the system to associate a product with a location that the product is offered as well as the price at the location. This table also provides information on whether the price is a sale or regular price.

4.3.1.3 Location This table stores information about locations that offer products.

4.3.1.4 Website This table stores information specific to online locations.

4.3.1.5 Store This table stores information specific to physical retailer locations.

4.3.1.6 ServerManagementParameter This table stores the management parameters that are used to run the FrugalPhone server with the exception of the feed file locations, which are stored in the FeedFile table.

4.3.1.7 FeedFileThis table stores a list of locations where retailer XML files are located.

4.3.1.8 SystemAdministrator This table stores the username and password for FrugalPhone system administrators as well as whether or not the system administrator is a super user.

46

Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Instructor, 02/21/07,
Uniquely define each entity
Page 47: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3.2 FrugalPhone Server Database Classes

This section describes classes that are part of the DB package. These classes provide a layer of abstraction between the database and the rest of the application as well as a single point of access to the database.

4.3.2.1 DBConnection

Figure 34 - DBConnection Class Diagram

Identification DBConnection

Type Class

Purpose The purpose of this class is to have a single pathway for all connections to the FrugalPhone Server Database.

Function This class is an interface to the FrugalPhone Server Database to get and set configuration parameters as well as insert and extract product and pricing information.

Subordinates None

Dependencies ProductPricingData; DBResult; ProductInputData; PricingResultData; ConfigurationParameter

Interface This class is utilized via static function calls.

Resources JVM is running

Processing This class formats the information going into and coming out of the FrugalPhone Server Database.

Data See Figure 34 - DBConnection Class Diagram for attributes.

47

Page 48: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3.2.2 DBResult

Figure 35 - DBResult Class Diagram

Identification DBResult

Type Class

Purpose The purpose of this class is to provide feedback on success or failure of a database operation via the DBConnection.

Function This class contains information about database operation status.

Subordinates None

Dependencies None

Interface This class provides accessors and mutators for its attributes.

Resources JVM is running;

Processing None

Data See Figure 35 - DBResult Class Diagram for attributes.

48

Page 49: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3.2.3 ConfigurationParameter

Figure 36 - ConfigurationParameter Class Diagram

Identification ConfigurationParameter

Type Class

Purpose This purpose of this class is to provide a consistent way of handling entry and extraction of FrugalPhone Server Management Parameters from the database.

Function This class provides a framework for defining FrugalPhone Server Management Parameters.

Subordinates TimeoutConfigurationParameter; FeedConfigurationParameter

Dependencies None

Interface This is an abstract class.

Resources JVM is running;

Processing None

Data See Figure 36 - ConfigurationParameter Class Diagram for attributes.

49

Page 50: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.3.3 Requirement Traceability Matrix

This section provides traceability between the detailed design in this section and the requirements set forth in the SRS (Cycle - 3 Software Requirements Specification, 2006).

Figure 37 - FrugalPhone Server Database Traceability Matrix

50

Page 51: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4 Product Pricing Data Retailer InterfaceThis section of the SDS details the Java classes that allow FrugalPhone to gather product pricing data from retailers. The classes that are used to place that data in the FrugalPhone Server Database are described in Section 4.3.

4.4.1 Product Pricing Data Retailer Interface Classes

The classes listed in this section are responsible for the transfer of the product pricing data from retailers’ XML feeds to the FrugalPhone Server Database. The classes listed below belong to the FeedParser package with the exception of the ProductPricingDataImportTimingService, which is responsible for driving the data import process at the time specified by the FeedFileRefreshRateConfigurationParameter object.

Figure 38 - Product Pricing Data Retailer Interface Package Structure

51

Page 52: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.1 FeedFile

Figure 39 - FeedFile Class Diagram

Identification FeedFile

Type Class

Purpose The purpose of this class is to simplify adding product data feeds provided by retailers into the FrugalPhone Server Database.

Function This class provides a way to convert a file at a specified URL into ProductPricingData.

Subordinates None

Dependencies URL; ProductPricingData

Interface This class is constructed with a feed URL and converted to ProductPricingData via a function call.

Resources JVM is running

Processing This class converts a feed file into ProductPricingData

Data See Figure 39 - FeedFile Class Diagram for attributes.

52

Page 53: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.2 XMLParser

Figure 40 - XMLParser Class Diagram

Identification XMLParser

Type Class

Purpose The purpose of this class is to provide a robust method for parsing specifically formatted XML files into ProductPricingData objects.

Function This class parses XML files for product pricing data.

Subordinates None

Dependencies org.xml.sax.helpers.DefaultHandler

Interface A new instance of this class is instantiated. Then, all feed files can be converted to ProductPricingData via the getPricingData() method.

Resources JVM is running;

Processing None

Data See Figure 40 - XMLParser Class Diagram for attributes.

53

Page 54: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.3 ProductPricingData

Figure 41 - ProductPricingData Class Diagram

Identification ProductPricingData

Type Class

Purpose The purpose of this class is to provide a framework for objects that are used for sharing product pricing data between the XMLParser and DBConnection.

Function This class holds product pricing data.

Subordinates StoreProductPricingData, WebsiteProductPricingData

Dependencies com.frugalphone.commobjects.UPC

Interface This class is an abstract class.

Resources JVM is running;

Processing None

Data See Figure 41 - ProductPricingData Class Diagram for attributes.

54

Page 55: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.4 StoreProductPricingData

Figure 42 - StoreProductPricingData Class Diagram

Identification StoreProductPricingData

Type Class

Purpose The purpose of this class is to provide a container for objects that are used for sharing product pricing data between the XMLParser and DBConnection.

Function This class holds product pricing data for physical retailers.

Subordinates None

Dependencies ProductPricingData

Interface This class can be constructed with all parameters or no parameters. Then, all members are available via accessors and mutators.

Resources JVM is running;

Processing None

Data See Figure 42 - StoreProductPricingData Class Diagram for attributes.

55

Page 56: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.5 WebsiteProductPricingData

Figure 43 - WebsiteProductPricingData Class Diagram

Identification WebsiteProductPricingData

Type Class

Purpose The purpose of this class is to provide a framework for objects that are used for sharing product pricing data between the XMLParser and DBConnection.

Function This class holds product pricing data for websites.

Subordinates None

Dependencies ProductPricingData

Interface This class can be constructed with all parameters or no parameters. Then, all members are available via accessors and mutators.

Resources JVM is running;

Processing None

Data See Figure 43 - WebsiteProductPricingData Class Diagram for attributes.

56

Page 57: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.6 FeedFileListConfigurationParameter

Figure 44 - FeedFileListConfigurationParameter Class Diagram

Identification FeedFileListConfigurationParameter

Type Class

Purpose The purpose of this class is to provide methods to extract, add, and clear the list of retailer feed files from the FrugalPhone Server Database.

Function This class manages the list of retailer feed files in the FrugalPhone Server Database.

Subordinates None

Dependencies DB.ConfigurationParameter

Interface This class is only meant to be constructed in the DB package and is the result of a specific database query. Once an instance of this class is acquired, it provides methods to mutate and access the list of FeedFile objects.

Resources JVM is running;

Processing None

Data See Figure 44 - FeedFileListConfigurationParameter Class Diagram for attributes.

57

Page 58: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.1.7 FeedFileRefreshRateConfigurationParameter

Figure 45 - FeedFileRefreshRateConfigurationParameter Class Diagram

Identification FeedFileRefreshRateConfigurationParameter

Type Class

Purpose The purpose of this class is to provide methods to view and edit the refresh rate for importing retailer feed files.

Function This class manages the refresh rate of retailer feed files in the FrugalPhone Server Database.

Subordinates None

Dependencies DB.ConfigurationParameter

Interface This class is only meant to be constructed in the DB package and is the result of a specific database query. Once an instance of this class is acquired, it provides methods to mutate and access the retailer feed file refresh rate.

Resources JVM is running;

Processing None

Data See Figure 45 - FeedFileRefreshRateConfigurationParameter Class Diagram for attributes.

58

Page 59: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.2 Product Pricing Data Retailer Interface Files

This section contains details about the formatting of retailer feed files.

4.4.2.1 Retailer Product Pricing Data FileIdentification Retailer Product Pricing Data File

Type File

Purpose The purpose of this file is to provide, in a well-formatted manner, the product pricing data.

Function This file stores the product pricing data.

Subordinates None

Dependencies None

Interface This file must be formatted in standard XML using the tag structure below. It is possible to have multiple stores in the same file. Likewise, it is possible to have multiple products in each store. A store can either be of type “store” or “website”.

Resources The URL of the file must be accessible and readable from the FrugalPhone Server.

Processing None

59

Page 60: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Data

60

Page 61: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.2.2 Product Pricing Data File to Database MappingThis section contains a table relating tags and attributes in the Retailer Product Pricing Data File to tables and columns in the FrugalPhone Server Database.

Figure 46 - XML to Database Mapping

61

Page 62: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.4.3 Requirement Traceability Matrix

This section provides traceability between the detailed design in this section and the requirements set forth in the SRS (Cycle - 3 Software Requirements Specification, 2006).

Figure 47 - Product Pricing Data Retailer Interface Traceability Matrix

62

Page 63: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5 Admin ConsoleThis section of the SDS details the Java classes/beans, JSP pages, and user interface screens used to implement the Admin Console.

Figure 48 - Admin Console Design, on the next page, illustrates the interaction of all classes and screens of the Admin Console. This figure only illustrates downward flow. At any screen in any level, it is possible to return directly to any of the lower-numbered levels. The master screen for each level is denoted by gray shading. Please note that Level 3a returns to the ManageSysAdmins screen and Level 3b returns to the ManageServerParameters screen.

63

Page 64: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Figure 48 - Admin Console Design

64

Page 65: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1 Admin Console Screens

This section provides details for the screens of the Admin Console.

4.5.1.1 Login

Figure 49 - Login Screen

Identification Login

Type Web page (HTML)

Purpose The purpose of this screen is to allow system administrators to access the system using a username/password.

Function This screen allows the Admin Console to obtain a system administrator’s username and password for validation.

Subordinates AdminOptions

Dependencies None

Interface See screen above

Resources Web server is running

Processing None

Data None

65

Page 66: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.2 LoginErrorRetry

Figure 50 - LoginErrorRetry Screen

Identification LoginErrorRetry

Type Web page (HTML)

Purpose The purpose of this screen is to inform system administrators that his/her login attempt was unsuccessful and provide him/her with another opportunity to login.

Function This screen allows the Admin Console to provide the system administrator with a login error message and obtain the system administrator’s username and password for validation.

Subordinates AdminOptions

Dependencies LoginRequestHandler

Interface See screen above

Resources Web server is running

Processing None

Data None

66

Page 67: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.3 AdminOptions

Figure 51 - AdminOptions Screen

Identification AdminOptions

Type Web page (HTML)

Purpose The purpose of this screen is to provide the system administrator with the ability to choose one of the administration options: view server status, change management parameters, and manage system administrator accounts.

Function This screen allows the Admin Console to obtain a system administrator’s choice for an administration option.

Subordinates ManageSysAdmins; ViewStatus; ManageServerParameters

Dependencies LoginRequestHandler

Interface See screen above

Resources Web server is running

Processing None

Data None

67

Page 68: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.4 ManageSysAdmins

Figure 52 - ManageSysAdmins Screen

Identification ManageSysAdmins

Type Web page (HTML)

Purpose The purpose of this screen is to provide the system administrator with the ability to choose one of the options for managing system administrator accounts: change system administrator password, add system administrator, and delete system administrator.

Function This screen allows the Admin Console to obtain a system administrator’s choice for a system administrator account management option.

Subordinates ChangePassword; AddSysAdmin; DeleteSysAdmin

Dependencies None

Interface See screen above

Resources Web server is running

Processing None

Data None

68

Page 69: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.5 ViewStatus

Figure 53 - ViewStatus Screen

Identification ViewStatus

Type Web page (JSP)

Purpose The purpose of this screen is to provide the system administrator with current information about the operation of the FrugalPhone Server.

Function This webpage allows the Admin Console to provide the system administrator with current information about the operation of the FrugalPhone Server.

Subordinates None

Dependencies ServerStatusBean

Interface See screen above

Resources Web server is running

Processing None

Data None

69

Page 70: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.6 ManageServerParameters

Figure 54 - ManageServerParameters Screen

Identification ManageServerParameters

Type Web page (JSP)

Purpose The purpose of this screen is to allow the system administrator to view current FrugalPhone Server Management Parameter values and to change those values.

Function This screen allows the Admin Console to display the current FrugalPhone Server Management Parameter values and obtain input from the system administrator for new values.

Subordinates ParameterChangeConfirmation

Dependencies ServerManagementParameterBean

Interface See screen above

Resources Web server is running

Processing None

70

Page 71: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Data None

4.5.1.7 ParameterChangeConfirmation

Figure 55 - ParameterChangeConfirmation Screen

Identification ParameterChangeConfirmation

Type Web page (HTML)

Purpose The purpose of this screen is to provide information to the system administrator about the success or failure of an attempted FrugalPhone Server Management Parameter change.

Function This screen allows the Admin Console to inform the system administrator of the success or failure of a FrugalPhone Server Management Parameter change.

Subordinates None

Dependencies ServerManagementParameterChanger

Interface This web page will display a confirmation of the success or failure of changing FrugalPhone Server Management Parameter(s).

Resources Web server is running

Processing None

Data None

71

Page 72: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.1.8 ChangePassword

Figure 56 - ChangePassword Screen

Identification ChangePassword

Type Web page (JSP)

Purpose The purpose of this screen is to provide the system administrator with the ability to change his/her password.

Function This screen allows the Admin Console to obtain a new password from the current system administrator.

Subordinates PasswordChangeConfirmation

Dependencies ManageSysAdminsOptionRequestHandler; AdminConsoleSession

Interface This web page will display three text boxes to fill out to change the current system administrator’s password. One text box will be to verify the old password and the other two will be to type and re-type the new password.

Resources Web server is running

Processing None

72

Page 73: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Data None

4.5.1.9 AddSysAdmin

Figure 57 - AddSysAdmin Screen

Identification AddSysAdmin

Type Web page (HTML)

Purpose The purpose of this screen is to provide the system administrator with the ability to add a new system administrator.

Function This screen allows the Admin Console to obtain a new username and password from the current system administrator to be stored in the FrugalPhone Server Database SystemAdministrator table (Section 4.3.7).

Subordinates SysAdminAddConfirmation

Dependencies ManageSysAdminsOptionRequestHandler; SysAdminsBean

Interface This web page will display three text boxes. One text box will be for the new system administrator username and the other two will be to type and re-type the new password.

73

Page 74: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Resources Web server is running

Processing None

Data None

4.5.1.10 DeleteSysAdmin

Figure 58 - DeleteSysAdmin Screen

Identification DeleteSysAdmin

Type Web page (JSP)

Purpose The purpose of this screen is to provide the system administrator with the ability to delete an existing system administrator.

Function This screen allows the Admin Console to obtain the username of an existing system administrator to delete from the FrugalPhone Server Database SystemAdministrator table (Section 4.3.7).

Subordinates SysAdminDeleteConfirmation

Dependencies ManageSysAdminsOptionRequestHandler; SysAdminsBean

Interface This web page will display a list of current system administrator accounts with a checkbox next to each account. The web page will also include a button that is pressed to delete the checked accounts.

74

Page 75: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Resources Web server is running

Processing None

Data None

4.5.1.11 PasswordChangeConfirmation

Figure 59 - PasswordChangeConfirmation Screen

Identification PasswordChangeConfirmation

Type Web page (HTML)

Purpose The purpose of this screen is to provide information to the system administrator about the success or failure of an attempted password change.

Function This screen allows the Admin Console to inform the system administrator of the success or failure of and attempted password change.

Subordinates None

Dependencies SysAdminPasswordChanger

Interface This web page will display a success message or error.

Resources Web server is running

75

Page 76: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Processing None

Data None

4.5.1.12 SysAdminAddConfirmation

Figure 60 - SysAdminAddConfirmation Screen

Identification SysAdminAddConfirmation

Type Web page (HTML)

Purpose The purpose of this screen is to provide information to the system administrator about the success or failure of an attempted addition of a system administrator account.

Function This screen allows the Admin Console to inform the system administrator of the success or failure of and attempted addition of a system administrator account.

Subordinates None

Dependencies SysAdminAdder

Interface This web page will display a success message with the added

76

Page 77: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

system administrator’s username or an error message.

Resources Web server is running

Processing None

Data None

4.5.1.13 SysAdminDeleteConfirmation

Figure 61 - SysAdminDeleteConfirmation Screen

Identification SysAdminDeleteConfirmation

Type Web page (HTML)

Purpose The purpose of this screen is to provide information to the system administrator about the success or failure of an attempted deletion of a system administrator account.

Function This screen allows the Admin Console to inform the system administrator of the success or failure of and attempted deletion of a system administrator account.

Subordinates None

Dependencies SysAdminDeleter

77

Page 78: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Interface This web page will display a success message with the deleted system administrators’ username(s) or an error message.

Resources Web server is running

Processing None

Data None

4.5.2 Admin Console Classes

The Admin Console classes are distributed across two packages, the requesthandler package and the datahandler package. The requesthandler package consists of classes that handle incoming HTTP requests from web pages, carry out any associated processing, and forward requests to the appropriate web page. The datahandler package contains classes that store data accessed by JSP web pages.

78

Page 79: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Figure 62 - Admin Console Package Structure

4.5.2.1 LoginRequestHandler

Figure 63 - LoginRequestHandler Class Diagram

Identification LoginRequestHandler

Type Class

Purpose The purpose of this class is to validate login information entered in the login screen and provide the system administrator access to the administrator options screen

Function This class allows the system to validate data entered into the login screen and forward the HTTP request to the appropriate web page – AdminOptions or LoginErrorReentry.

Subordinates None

Dependencies Javax.servlet.http.HttpServlet

Interface This servlet receives a page request from the login page and

79

Page 80: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

forwards the request to the appropriate page.

Resources JVM is running

Processing This class determines whether a give username/password combination is valid and forwards the request accordingly.

Data See Figure 63 - LoginRequestHandler Class Diagram for attributes.

4.5.2.2 AdminOptionRequestHandler

Figure 64 - AdminOptionRequestHandler Class Diagram

Identification AdminOptionRequestHandler

Type Class

Purpose The purpose of this class is to forward system administrators to the appropriate page depending on the administration task that is chosen.

Function This class forwards the HTTP request to the appropriate page based upon the administration option choice made by the system administrator: manage server parameters, view server status, or manage system administrator accounts.

Subordinates None

Dependencies Javax.servlet.http.HttpServlet

Interface This servlet receives requests and forwards the HTTP requests to web pages.

Resources JVM is running

Processing This class processes incoming requests.

80

Page 81: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Data See Figure 64 - AdminOptionRequestHandler Class Diagram for attributes.

4.5.2.3 ServerManagementParametersBean

Figure 65 - ServerManagementBean Class Diagram

Identification ServerManagementParametersBean

Type Class

Purpose The purpose of this class is to provide a storage place for FrugalPhone Server Management Parameters that need to be displayed in a JSP web page.

Function This class stores the FrugalPhone Server Management Parameters in a form accessible to web pages.

Subordinates None

Dependencies Java.io.serializable

Interface This class is serialized so that it can be read from a JSP page.

Resources JVM is running

Processing None

Data See Figure 65 - ServerManagementBean Class Diagram for attributes.

81

Page 82: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.2.4 ServerStatusBean

Figure 66 - ServerStatusBean Class Diagram

Identification ServerStatusBean

Type Class

Purpose The purpose of this class is to provide a storage place for the FrugalPhone Server Status that needs to be displayed in a JSP web page.

Function This class stores the FrugalPhone Server Status in a form accessible to web pages.

Subordinates None

Dependencies Java.io.serializable

82

Page 83: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Interface This class is serialized so that it can be read from a JSP page.

Resources JVM is running

Processing None

Data See Figure 66 - ServerStatusBean Class Diagram for attributes.

4.5.2.5 ServerManagementParameterChanger

Figure 67 - ServerManagementParameterChanger Class Diagram

Identification ServerManagementParameterChanger

Type Class

Purpose The purpose of this class is to provide the ability to change FrugalPhone Server Management Parameters and display a confirmation of success or failure.

Function This class receives an HTTP request with data that it uses to change FrugalPhoneServer Management Parameter values and display a confirmation page.

Subordinates None

Dependencies Javax.servlet.http.HttpServlet

Interface This servlet receives a page request with data that it uses to update server management parameters.

83

Page 84: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Resources JVM is running

Processing This server determines how to update the database with the new values.

Data See Figure 67 - ServerManagementParameterChanger Class Diagram for attributes.

4.5.2.6 ManageSysAdminsOptionRequestHandler

Figure 68 - ManageSysAdminsOptionRequestHandler Class Diagram

Identification ManageSysAdminsOptionRequestHandler

Type Class

Purpose The purpose of this class is to provide a traffic controller for directing system administrator account management requests to the correct web page.

Function This class receives an HTTP request and depending on the value of the data with the request forwards the request to the appropriate web page: change password, add system administrator account, or delete system administrator account.

Subordinates None

Dependencies Javax.servlet.http.HttpServlet

Interface This servlet receives requests and forwards the HTTP requests to web pages.

84

Page 85: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Resources JVM is running

Processing This class processes incoming requests.

Data See Figure 68 - ManageSysAdminsOptionRequestHandler Class Diagram for attributes.

4.5.2.7 SysAdminBean

Figure 69 - SysAdminsBean Class Diagram

Identification SysAdminBean

Type Class

Purpose The purpose of this class is to provide a storage place for the list of system administrators that can be accessed by a JSP web page.

Function This class stores the system administrator information in a form that can be accessed by JSP web pages.

Subordinates None

Dependencies Java.io.serializable

Interface This class is serialized so that it can be read from a JSP page.

Resources JVM is running

Processing None

Data See Figure 69 - SysAdminsBean Class Diagram for attributes.

85

Page 86: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.2.8 SysAdminManager

Figure 70 - SysAdminManager Class Diagram

Identification SysAdminManager

Type Class

Purpose The purpose of this class is to handle requests to add a system administrator, modify a system administrator’s password, or delete a system administrator.

Function This class receives one of three requests (add/modify/delete) and performs the appropriate update in the FrugalPhone Database.

Subordinates None

Dependencies Javax.servlet.http.HttpServlet

86

Page 87: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

Interface This servlet receives requests and then processes them before forwarding the request to the next web page.

Resources JVM is running

Processing This class processes incoming requests, determines what type of request is received (add/modify/delete), and performs the appropriate action.

Data See Figure 70 - SysAdminManager Class Diagram for attributes.

4.5.2.9 AdminConsoleSession

Figure 71 - AdminConsoleSession Class Diagram

Identification AdminConsoleSession

Type Class

Purpose The purpose of this class is to provide the Admin Console with a method of tracking data about the logged-in system administrators.

Function This class stores information about the current Admin Console session.

Subordinates None

Dependencies Javax.servlet.http.HttpSession

Interface This class would provide data to other classes via accessors.

Resources JVM is running

Processing None

Data See Figure 71 - AdminConsoleSession Class Diagram for attributes.

87

Page 88: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

88

Page 89: Project Launch / Re-launch Report - College of …kfu22/frugalphone/downloads/C3... · Web viewThese utilities include classes that handle remote addressing, transfer errors, and

4.5.3 Requirements Traceability Matrix

This section provides traceability between the detailed design in this section and the requirements set forth in the SRS (Cycle - 3 Software Requirements Specification, 2006).

Figure 72 - Admin Console Traceability Matrix

89