Download Merkley Headgear

Document related concepts

Entity–attribute–value model wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Oracle Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

ContactPoint wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Relational model wikipedia , lookup

Transcript
Merkley Headgear
_______________________
System Design
Prepared For
_________________________
TA: Tianhan Wang
Instructor: John Mylopoulos
Date: April 11, 2003
Presented by
_________________________
Anthony Ku Ong
Michelle Li
Leeor Engel
Table of Contents
System Design
1
2
3
Introduction ............................................................................................................... 7
1.1
Objective ............................................................................................................. 7
1.2
The Organization ................................................................................................ 7
System Overview ....................................................................................................... 7
2.1
The Current System ............................................................................................. 7
2.2
The Problem ........................................................................................................ 8
2.3
The Proposed System .......................................................................................... 8
Global Architecture .................................................................................................. 9
3.1
Software Architecture ......................................................................................... 9
3.1.1
Repository-Based Architecture ................................................................... 9
3.1.2
Model View Controller (MVC) Architecture ........................................... 10
3.1.3
Client Server Architecture ........................................................................ 10
3.1.3.1 Two-Tier Client Server Architecture .................................................... 11
3.1.3.2 Three-Tier Client Server Architecture .................................................. 11
3.1.4
Recommendation ...................................................................................... 11
4
3.2
Computer Network Specification ...................................................................... 11
3.3
Web Application Server Specification .............................................................. 12
Platform Selections ................................................................................................. 12
4.1
Overview: Criteria for the Computing Platform .............................................. 12
4.1.1
Open System Criteria: ............................................................................... 12
4.1.2
Black-Box Criteria .................................................................................... 12
4.2
Hardware Platform ........................................................................................... 13
4.2.1
Reasons for the Use of Microcomputers ................................................... 13
4.3
Software Selection ............................................................................................. 14
4.3.1
Operating System ...................................................................................... 14
4.3.2
Database Server ........................................................................................ 14
4.3.3
Design Justification for Using Oracle9i Database .................................... 14
4.3.3.1 Scalability ............................................................................................. 14
4.3.3.2 Increased Security ................................................................................. 15
4.3.3.3 Ease of Integration ................................................................................ 15
4.4
Programming Language ................................................................................... 15
4.4.1
SQL ........................................................................................................... 15
Merkley Headgear System Design
2
4.4.1.1
4.4.1.2
4.4.1.3
4.4.1.4
4.5
5
Reasons for Using SQL ........................................................................ 15
The Use of SQL .................................................................................... 16
Advantages of Embedded SQL............................................................. 16
Reasons for Embedded SQL with Java ................................................. 17
Web Programming Technologies ...................................................................... 17
Program Design and Subsystems .......................................................................... 18
5.1
Subsystem Descriptions .................................................................................... 18
5.1.1
Client Subsystem ...................................................................................... 18
5.1.2
Customer and Product Administration Subsystem ................................... 18
5.1.3
Manufacturing Subsystem ........................................................................ 19
5.1.4
Shipping Subsystem .................................................................................. 19
5.2
Using the BCED Approach ............................................................................... 19
5.3
Class Diagram Modifications ........................................................................... 21
5.4
Use Cases .......................................................................................................... 21
5.5
Sequence Diagram ............................................................................................ 22
5.6
Activity Diagram ............................................................................................... 23
5.7
Collaboration Diagram .................................................................................... 23
5.8
State Diagram ................................................................................................... 24
5.8.1
Entire System ............................................................................................ 24
5.8.2
Web Ordering Application Subsystems .................................................... 25
5.8.3
Administration & Order Processing Application System ......................... 26
6
Database Design ...................................................................................................... 27
6.1
Database Design Criteria: Conforming to ACID ............................................. 27
6.2
Relational Schema Formation .......................................................................... 28
6.2.1
Main Identifiers ......................................................................................... 28
6.2.2
Constraints ................................................................................................ 28
6.2.3
Preliminary Relational Schema................................................................. 29
6.3
Redundancy Analysis ........................................................................................ 29
6.3.1
Removing Generalizations ........................................................................ 29
6.3.2
Merging Concepts ..................................................................................... 29
6.3.3
Removing Entity and Relation Redundancies .......................................... 30
6.4
Schema Normalization ...................................................................................... 30
6.4.1
Normalizing Relational Schemas in First Normal Form .......................... 30
6.4.1.1 Relation Customer to be in First Normal Form .................................... 30
6.4.1.2 Decomposition Alternative One into 1NF ............................................ 31
6.4.1.3 Decomposition Alternative Two into 1NF ........................................... 31
6.4.1.4 Decomposition Selection ...................................................................... 31
6.4.2
Normalizing Relational Schemas in Second Normal Form ...................... 32
Merkley Headgear System Design
3
6.4.3
6.4.4
6.5
Normalizing Relational Schemas in Third Normal Form ......................... 33
Optimized Relational Schema................................................................... 33
Entity Relationship Diagram and Design ......................................................... 34
6.6
Workload Data and Cost Comparisons ............................................................ 35
6.6.1
Table of Volumes ...................................................................................... 35
6.6.2
Operational Requirements ........................................................................ 35
6.6.3
Cost Comparison Summary ...................................................................... 36
6.7
7
Database Design Summary ............................................................................... 37
Interface Design ...................................................................................................... 37
7.1
User Groups ...................................................................................................... 38
7.1.1
Customers ................................................................................................. 38
7.1.1.1 Corporate Customers ............................................................................ 38
7.1.1.2 Personal Customers ............................................................................... 38
7.1.2
Employees ................................................................................................. 38
7.1.2.1 Production Clerks.................................................................................. 38
7.1.2.2 Shipping Clerks ..................................................................................... 38
7.1.2.3 Sales Representatives ............................................................................ 39
7.2
Online Ordering System Interface .................................................................... 39
7.3
Administration & Order Processing Application Interface .............................. 41
7.4
Input/Output Design.......................................................................................... 42
7.4.1
Ordering Module ....................................................................................... 42
7.4.1.1 Order a Product ..................................................................................... 42
7.4.1.2 View Order Status ................................................................................. 43
7.4.1.3 Modify Account Information ................................................................ 43
7.4.2
Order Tracking Module ............................................................................ 43
7.4.2.1 View Orders .......................................................................................... 43
7.4.2.2 Update Order Status .............................................................................. 43
7.4.3
Customer and Product Administration Module ........................................ 43
7.4.3.1 Add Customer Account......................................................................... 44
7.4.3.2 Modify Customer Information .............................................................. 44
7.4.3.3 Delete Customer Account ..................................................................... 44
7.4.3.4 Search Customer ................................................................................... 44
8
Conclusion ............................................................................................................... 45
Appendix A: System Information Flow ....................................................................... 47
Appendix B: Software Architecture .............................................................................. 48
Appendix B-1: Repository-Based Architecture ............................................................. 48
Appendix B-2: Model View Controller (MVC) Architecture ........................................ 49
Merkley Headgear System Design
4
Appendix B-3: Server Client Architecture .................................................................... 50
Appendix B-3.1: Two-Tier Server Client Architecture ............................................ 50
Appendix B-3.2: Three-Tier Server Client Architecture .......................................... 51
Appendix B-3.3: Comparison between Two-Tier and Three-Tier Architecture ...... 52
Appendix C: Computer System Configuration ............................................................ 53
Appendix D: Use Cases ................................................................................................... 54
Appendix D-1: General Use Case................................................................................. 54
Appendix D-2: Customer Use Case .............................................................................. 55
Appendix D-3: Sales Representative Use Case ............................................................ 56
Appendix D-4: Integrated Database Use Case ............................................................. 57
Appendix E: Sequence Diagram .................................................................................... 58
Appendix F: Activity Diagram ...................................................................................... 59
Appendix G: Class Diagrams ......................................................................................... 60
Appendix G-1: Class Diagram Overview (With Redundancies)................................... 60
Appendix G-2: Finalized Class Diagram (Without Redundancies) .............................. 62
Appendix G-3: Data Dictionary.................................................................................... 63
Appendix G-4: Additional Classes not included in Entity Class Diagram ................... 64
Appendix G-4.1 Class Web-based Client Application ............................................. 64
Appendix G-4.2 Class Integrated Database .............................................................. 65
Appendix G-4.3 Manufacturing, Shipping Class and Record Class ......................... 66
Appendix H: Collaboration Diagram............................................................................ 67
Appendix I: State Diagrams ........................................................................................... 68
Appendix I-1: System Overview .................................................................................... 68
Appendix I-2: Web Ordering System ............................................................................ 69
Appendix I-3: Administration & Order Processing System .......................................... 71
Appendix J: OCL Descriptions...................................................................................... 72
Appendix K: Database Table Design ............................................................................ 74
Appendix L: ACID Compliant Database ..................................................................... 75
Merkley Headgear System Design
5
Appendix M: Preliminary Entity Relationship Diagram ............................................ 76
Appendix N: Final Entity Relationship Diagram and Design .................................... 77
Appendix N-1: Final Entity Relationship Diagram ...................................................... 77
Appendix N-2 Data Dictionary for Final Relational Schema ....................................... 78
Appendix O: Operation Costs........................................................................................ 79
Appendix P: User Interface Design ............................................................................... 84
Appendix P-1: Web Ordering System Application........................................................ 84
Appendix P-2: Administration & Order Processing Application ................................. 90
Appendix Q: Functional Requirements ........................................................................ 92
Appendix Q-1: Details of Data Storage ........................................................................ 92
Appendix Q-2: Details of Output .................................................................................. 92
Appendix Q-3: Details of Input ..................................................................................... 93
Appendix Q-4: Details of Information Processing ....................................................... 94
Appendix R: Non-Functional Requirements ................................................................ 95
Appendix R-1: Interface Requirements ......................................................................... 95
Appendix R-2: Performance Requirements .................................................................. 95
Appendix R-3: Operating Requirements ....................................................................... 96
Appendix R-4: Lifecycle Requirements ......................................................................... 97
Appendix R-5: Economic Requirements ....................................................................... 97
Appendix R-6: Server Requirements ............................................................................. 98
Appendix R-7: System Infrastructure ............................................................................ 98
Appendix S: Glossary of Terms ................................................................................... 100
Appendix T: Team Meetings........................................................................................ 101
Appendix U: Team Report Form ................................................................................ 103
Merkley Headgear System Design
6
1 INTRODUCTION
1.1 Objective
The objective of this study is to design a global system architectural which will
include hardware, software and networking specifications as outlined and proposed by
the requirements analysis to assess the ordering and inventory problems at Merkley
Headgear. In addition, a proposed detailed software architecture defining a relational
database schema and suitable I/O procedures and interfaces will be discussed to deploy a
complete operational system. The new architectural system is to improve errors created,
through inspection and human techniques, by means of an efficient design.
The document outlines the design of the new system to substantial improve the
current system and will be addressed to John Kovacs, the Head of Operations and the
Database Management Programming Staff for further approval.
1.2 The Organization
Established in 1978, Merkley Headgear is the world’s largest ski headgear
supplier with offices in Toronto, Buffalo, Colorado, Japan, and Germany. The company
currently employs 200 people; the Toronto corporate office is home to all of its product,
design, graphics, production, sales and marketing, and customer service departments.
Merkley Headgear currently sells in 23 countries to clients like ski resorts, golf resorts
and corporate companies including those in the Fortune 500. It also provides headwear
for world-class sporting events, such as the PGA tour, World Alpine Championships, and
the past five Olympic Winter Games. There are presently 2200 customers with 60007000 ship to addresses. Merkley also receives contract work from clients as well as
orders from individual customers.
2 SYSTEM OVERVIEW
2.1 The Current System
Merkley Headgear’s current system is an Oracle-based system that is used for
labour and production tracking, inventory tracking, as well as for keeping financial
records. The process of taking and processing an order and updating inventory involves
sales representatives taking a customer order by phone, fax or mail. The representative
enters the received order into an electronic form on a Microsoft Excel spreadsheet (refer
to Appendix A of Feasibility Study). The order form is then sent out to the production
department, which creates a work order indicating the number of hats to produce,
materials to use, and how to manufacture the hats. Once the hats are produced, they are
put into the warehouse as inventory. Inventory is kept track in the ERP (Enterprise
Resource Planning) system and is manually updated on a daily basis. When an item
Merkley Headgear System Design
7
needs to be retrieved from the warehouse one must find the item in storage, tag the item,
fill out a form to update inventory figures, and send it to a front office clerk to enter the
data into the ERP system.
2.2 The Problem
The company faces many problems with its current mode of operation.
According to John Kovacs, Director of Operations and Chief Financial Officer of
Merkley Headgear, there are numerous errors in processing orders, tracking inventory,
and tracking labour and production (refer to Appendix B of Feasibility Study). Not only
does this operation create many errors in inventory data and order records, it is also
expensive and inefficient.
When a customer wants to make an order, a sales representative must be
contacted with order information by phone, fax or mail. Customers do not have a
standard form to fill out, thus pertinent information needed to fulfill an order, such as the
hat model, style, size, and company ship to, is occasionally omitted when placing orders
by fax or mail. Additionally, since these orders are hand-written, it may be difficult to
read the information to create the order. Both of these situations result in the sales
representative needing to contact the customer to obtain or verify the vital information
required. This evidently wastes time and decreases the efficiency of the sales
representative to take new orders from other customers. Once the sales representative
acquires all the proper information from the customer, the data must be entered into the
electronic order form. During this process, typos may occur and the data is incorrectly
inputted, which may lead to severe consequences. For example, if an order is made for
100 hats and the amount is accidentally entered as 1000 or if the product number is off,
leading to a whole production of hats in the wrong style, the company would experience a
great financial loss, not only in inventory but in operation costs as well.
2.3 The Proposed System
The new system uses an online order form with order legitimacy verification
software and digital work orders. To answer the error-prone and time consuming data
entry problems associated with current order receipt procedure, an online order form
would be created. Through this online form, customers would input and submit their
order information online (eliminating the need for manual data entry to the ERP system).
Submission of this form would then prompt the insertion of the information into a raw
customer orders database. To combat the tedium and potential inefficiency of sorting
through online orders, (particularly the possibility of numerous illegitimate orders)
legitimacy verification software could be implemented to comb through the raw order
submissions database and port legitimate orders to a valid orders table linked to the raw
orders table by order ID, while flagging certain orders and porting them to another table
in the database (also linked by order ID) for further verification by order processing
personnel. These personnel could be notified via automated e-mail notification of any
suspicious orders. The verification software would use various criteria to assess the
Merkley Headgear System Design
8
validity of orders including order size, by keyword, and credit card verification.
To help alleviate difficulties encountered during the order processing phase,
which currently causes significant inventory problems including delayed and often
inaccurate stock and order status information, a system utilizing digital work orders with
completion signature technology could be implemented. In this system, when an order
has been made and must be sent to the factory floor for manufacturing, a computer can
generate a digital work order. This work order would contain a special signature, which is
based upon its unique primary key in the legitimate orders database. The work order
would be generated through functionality offered by the integrated database, where a
small application would interface the database and make functionality such as this
possible. Upon generation of the work order, the database is updated by changing a field
in the database marked Order Status to “In Production”. Upon completion or filling of
the order, a member of the order processing team simply queries the database by the
signature generated by the digital work order through the program that interfaces the
database, and indicates that the order has been filled. When this command is entered, it
prompts a changing of the order status to “Shipped”, and modifies inventory records
(stored in a linked database) in real-time. This thereby eliminates the need for manual
modification of inventory records and current order status.
Through this system, additional functionality could even be offered to customers.
Order status could be obtained as well as checking their order information and perhaps
making modifications (under the condition their order has not yet reached the production
phase). This functionality would be implemented in an analogous fashion to the interface
offered to employees.
3 GLOBAL ARCHITECTURE
3.1 Software Architecture
There are a various number of software architectures that can be employed to
facilitate communication between software system components (refer to Appendix A:
System Information Flow). This section will review three types of architecture
considered for Merkley Headgear’s system.
3.1.1 Repository-Based Architecture
A repository-based architecture has a central data structure and a multiple number
of independent components that operate on the central structure.1 Typically, one process
completes before another one begins. For Merkley’s system, the central data structure
would be the Oracle database and the independent components are the end-user
applications. Each application accesses the database, allowing for transmission and
reception of information between the central and peripheral structures (refer to Appendix
B-1: Repository-Based Architecture)
1
Source: CSC340 Lecture 18: Software Architectures. Slides 10-11
Merkley Headgear System Design
9
3.1.2 Model View Controller (MVC) Architecture
Since user interfaces are a key aspect in the proposed system, the Model View
Controller (MVC) architecture serves as a viable alternative. The MVC architecture
involves the following three subsystems (refer to Appendix B-2: Model View Controller
Architecture):
Model
- provides the main functionality of the application and is aware of each of its
dependent view and controller components
- the model for Merkley’s system would be the Oracle database
View
- each view corresponds to a particular style and format of presentation of
information to the user
- the view for Merkley’s system would be the web ordering system
application, which retrieves data from the model and updates its
presentations when data has been changed in one of the views
Controller - accepts user input in the form of events that trigger the execution of
operations within the model
- the controller for Merkley’s system would be the order processing and
shipping application, which may trigger updates to the model and views.
3.1.3 Client Server Architecture
A client server architecture is a modular infrastructure that uses a relational
database management system (DBMS) to quickly perform user queries.2 It consists of
two components: service consumers (clients) and service providers (servers). The client
and server communicate with each other through exchanging messages. There are three
protocols by which requests and responses are sent:
a) Remote Procedure Call (RPC)
The client invokes a remotely located procedure, which is executed and the results
are sent back to the client.
b) Remote Data Access (RDA)
The invoked procedure is a database query (e.g. SQL) and the response is often a
large set of data.
c) Queued Message Processing
Requests are queued and processed whenever possible.
For Merkley’s application system, the most appropriate protocol to use would be
the RDA protocol since querying a database and receiving large data results are necessary
functions. With a client server architecture, two models need to be discussed: two-tier
and three-tier architecture.
2
Source: http://www.sei.cmu.edu/str/descriptions/clientserver_body.html
Merkley Headgear System Design
10
3.1.3.1 Two-Tier Client Server Architecture
The client is the user-interface application located on the user’s desktop
environment. The client queries and updates information on the server (database
layer). The client contains the code base required to query the database and to
format data returned from the server. The database tier contains the DBMS and
business logic to service multiple simultaneous clients. The two-tier architecture
allows direct communication between the user application and database, thus
processing management is divided between the client and the server (refer to
Appendix B-3.1: Two-Tier Server Client Architecture).
3.1.3.2 Three-Tier Client Server Architecture
Three-tier client server architecture differs from two-tier architecture in
that three-tier architecture involves a processing layer between the user interface
client environment and the database management server environment (refer to
Appendix B-3.2: Three-Tier Server Client Architecture). The client and server do
not communicate directly with each other, but with a processing layer instead.
The middle layer handles the processing management that carries out the business
logic and processes queries from the user application. In this model, the user
application sends requests (query or information updates) to the processing layer,
which then sends the processed queries to the database server. The server returns
data from the database to the processing tier, which then sends the data to the
client application.
3.1.4 Recommendation
For Merkley’s application system a client server architecture will be employed.
A client server architecture is the most feasible because simultaneous users must access
data from the database. A thin client (most of the functionality is provided by the server)
and thick server (offers a lot of functionality) will be utilized. The client and server will
communicate using an RDA protocol, allowing clients to query the shared database and
allowing the server to return large amounts of data back to the clients. The specific client
server architecture used for the system will be a three-tier model. From the model
comparison summary (refer to Appendix B-3.3: Comparison Between Two-Tier and
Three-Tier Architecture), the three-tier model is the best solution as it provides more
flexibility, maintainability, and scalability than the two-tier model.
3.2 Computer Network Specification
The current networking at Merkley uses a 45 Node TCP/IP Windows system.
The cables used for the network are copper Ethernet, and has a maximum transmission
rate at 100Mbps. The network hub will support the interface between the machine
running the Oracle database (refer to Appendix R: Non-Functional Requirements) and the
Merkley Headgear System Design
11
host machine, which will run the web server application (refer to Appendix R: NonFunctional Requirement).
In order to avoid any disruptions with the information flow, the microcomputers
will be separated within an acceptable distance so that data flow can be split and
efficiently channeled by the switched hub.
The new proposed system can use the existing network to connect to the database
and the web server (using TCP/IP), and at the same time query the database and return
the results.
3.3 Web Application Server Specification
The system is using off-the-shelf servers from Dell and the facility has been very
satisfied with the services provided. The technical support that Dell provides was also
very good and they actually helped with setting up the infrastructure. Refer to Appendix
C: Computer System Configuration) for more details.
For survivability reasons an auto-backup feature needs to run every week where
the backup is stored on a Tape Backup (fulfilling non-functional requirements as
specified in Appendix R: Non-Functional Requirements). This feature is built into the
server.
4 PLATFORM SELECTIONS
4.1 Overview: Criteria for the Computing Platform
It is necessary to select a computing platform that consists of hardware, and
software such that it meets the demands of Merkley's inventory problem and at the same
time, offer an efficient solution to run all required operations. The criteria for the
hardware platform are listed below.
4.1.1 Open System Criteria:
We want flexibility so that the hardware we choose can be easily replaced by a
similar system from a different manufacturer. This is because Merkley needs to
implement this system in their other global branches. The other option is to have a
proprietary system. The problems with a proprietary system are that such a system is
costly and only available from one vendor, which will create potential problems for
Merkley. However, by imposing an open system, Merkley can easily change vendors;
competition from other vendors will keep system costs low.
4.1.2 Black-Box Criteria
Since customers will be involved in secure transactions online, we do not want a
"Glass Box" system, where the internal system design and implementation can be
Merkley Headgear System Design
12
accessed by a customer. A "Black Box" system will be imposed for security reasons to
avoid outsiders such as hackers to steal protected customer information, and to protect
Merkley employees from manipulating the system (refer to Appendix R: Non-Functional
Requirements).
4.2 Hardware Platform
The first task is to determine which hardware platform to choose from. From a
business perspective, we can choose from 4 possibilities:
 Mainframes are large centralized computers. They can provide the bulk of
business computing through time-sharing.
 Commercial Minicomputers are single-user, relatively simple machines running
simple program-launcher operating systems that are now replaced by
microcomputers.
 Microcomputers are essentially smaller, less expensive versions of mainframes
for businesses that cannot afford true mainframes
 Embedded Systems combine computer hardware and software, and perhaps
additional mechanical or other parts, designed to perform a dedicated function
4.2.1 Reasons for the Use of Microcomputers
1) The cost and maintenance of mainframes and commercial minicomputers are high.
Merkley would not require a mainframe because although they do handle largescale tasks, such as updating large inventory systems, standard microcomputers
have evolved to become powerful and fast enough to perform many of the main
operations that mainframes can handle. In fact, because the number of transistors
in computer chips doubles every eighteen months according to Moore's Law, many
microcomputers have become fast enough, and will be even faster than the
mainframes we have today.
Reference: (http://www.db2mag.com:8080/db_area/archives/2002/q3/lynch.shtml)
2) Mainframes and commercial minicomputers are only ideal for extremely large
tasks, such as keeping a centralized billing system worldwide. Integrating a worldwide system is not necessary and can be harder to maintain since Merkley is more
concerned about reliability. For instance, if the mainframe crashes it will affect the
whole system, resulting in longer time for repairs and higher costs. With the use of
microcomputers, standard components would be readily be available allowing for
quicker repairs.
3) An embedded system such as an integrated telecommunication hardware or
software is not necessary at this moment, according to Merkley. Paying the higher
costs for this system will only reduce Merkley's profits.
Merkley Headgear System Design
13
4.3 Software Selection
There are a couple of software components that need to be discussed: operating
system and database server.
4.3.1 Operating System
The operating system (OS) will serve as a backbone that bridges communication
between software, hardware and any other applications running under the operating
system. All desktops use the Windows 2000 Server operating system. For ease of
integration, an OS with a GUI interface is required considering the machines were
purchased from Dell- an Apple OS has already been ruled out. Again, Windows is a
viable OS because of the staff ‘s familiarity with it. Also, since the Merkley’s current
system has been recently upgraded to Windows 2000 Server (refer to Appendix R: NonFunctional Requirements), it would not be necessary to upgrade to Windows XP as
employees have not been experiencing any problems with the current OS. Additionally,
due to licensing issues, a bid for Windows 98 had failed.
4.3.2 Database Server
The database system will be implemented using the existing Merkley Oracle
software currently under license. Merkley currently has Oracle8i database tools under
license and would purchase Oracle9i Developer Suite for Java development with SQL as
software to interface the database and offer the proposed functionality. The database will
preside on a dedicated server, which will be securely connected to the website and will be
accessible to a Merkley intra-network.
4.3.3 Design Justification for Using Oracle9i Database
The following design justifications for using Oracle9i Database are based on our
Requirements Analysis (refer to Appendix R: Non-Functional Requirements).
4.3.3.1 Scalability
Oracle is the most scalable database in the market. Scalability is a requirement
for Merkley due to the fact that Merkley's branches are located worldwide.
Oracle's database scalability is attributable to the fact that it offers OLAP
(Analytic Queries Per Minute technology) with Real Application clusters, which
surpasses both Microsoft and Hyperion. Comparing this software to others, it
performs up to 75 times faster than any of the competition. Oracle enables
delivery of enterprise-scale business intelligence to thousands of users efficiently
and cost-effectively.
Source:(http://www.databasejournal.com/features/mssql/article.php/2170201)
Merkley Headgear System Design
14
4.3.3.2 Increased Security
Once again, you cannot beat Oracle in the security space. Oracle9i database has
15 international security evaluations to its credit along with a slew of other
security features built from the ground up not bolted on, including control data
access down to the row level, and meeting federal and international standards for
data privacy and assurance.
4.3.3.3 Ease of Integration
Integration between Merkley’s existing Oracle software and the new software will
be much easier than implementing new software. The time it takes to set up
different database software will take more time and waste many man hours in
order to training staff to learn new software. In addition, according to Oracle's
web page http://www.oracle.com/, we know that Oracle has several upgrade
options from Oracle8i to 9i, depending on the client’s needs. Moreover, Oracle
provides many courses for the current database administrators to upgrade their
experience to Oracle9i from Oracle8i database as well as articles and tips on
migration from 8i-developed databases to 9i for greater scalability, reliability, and
safety.
In sum, the upgrade is primarily due to the fact that there are a few functional
aspects included in Oracle9i that is not offered in Oracle8i database. By using Oracle9i,
there will be an improved database on several fronts. With superior security and
increased scalability with new data processing techniques, Merkley would save a lot of
money and have a more efficient system to boot.
4.4 Programming Language
4.4.1 SQL
The Structured Query Language is a database query language that was adopted as
an industry standard. SQLs widespread acceptance by relational database vendors will
substantially increase the speed it takes for orders to be processed. The strengths of SQL
will benefit all ranges of users, including Merkley's employees and customers.
4.4.1.1 Reasons for Using SQL
Costs
The SQL data sub language is already supported with the existing Oracle8i
relational database to which Merkley currently holds a license. Purchasing new
hardware and software may accrue higher costs for Merkley.
Integration with Oracle
Merkley Headgear System Design
15
SQL is tightly integrated with Oracle. As a data sub language, SQL is specifically
designed to interface a relational database, such as Oracle8i, and all SQL
statements are instructions to the database. In other words, SQL statements use an
optimizer as part of Oracle8i that determines the fastest means of accessing the
specified data. Oracle8i also provides techniques you can use to make the
optimizer perform its job better.
Functionality
SQL processes sets of data as groups rather than as individual units so that we can
find queries quicker since it also provides automatic navigation to the data. For
example, to retrieve a set of rows from a table, you define a condition used to
filter the rows. All rows satisfying the condition are retrieved in a single step and
can be passed as a unit to the user, to another SQL statement, or to an application.
You need not deal with the rows one by one, nor do you have to worry about how
they are physically stored or retrieved.
4.4.1.2 The Use of SQL
SQL statements will be used to process the queries in our tables. An embedded
SQL program basically consists of code written in an ordinary programming
language mixed with SQL commands in specially marked sections. To build the
program, the source code is first passed to the embedded SQL preprocessor,
which converts it to an ordinary C or Java program. Afterwards it can be
processed by a C or Java compilation tool chain. Embedded SQL has advantages
other methods for handling SQL commands from C and Java code.
4.4.1.3 Advantages of Embedded SQL

One of the advantages of embedded SQL is that it can help Merkley reduce
overhead, improve performance, and increase productivity. For example,
without embedded SQL, Oracle must process SQL statements one at a time.
Each SQL statement results in another call to the server with higher
overhead. However, with embedded SQL you can send an entire block of
SQL statements to the server. This minimizes communication between the
web application and Oracle database system.

Secondly, embedded SQL takes care of the tedious passing of information to
and from variables in Java and C programs. Also SQL in C or Java is defined
in the SQL standard and supported by many other SQL databases.
Embedded SQL is typically implemented in C, however we propose that Merkley
instead incorporates Java in the embedded SQL instead of doing it in C/C++. The
main reason for this decision is due to the benefits of Java over C/C++.
Merkley Headgear System Design
16
4.4.1.4 Reasons for Embedded SQL with Java
There are some advantages not to use the C/C++ language, which is typically
used to program in SQL and to use embedded SQL in Java instead.
1) The absence of pointers and its automatic garbage collection eliminates many
bugs. In addition, it facilitates programming and the safety of program
execution considerably as programmers do not need to dynamically allocate
memory and then remember to free it later. Thus it avoids the risk of memory
leaks.
2) Java is easier to teach and learn because of its streamlined syntax. It inherits
less baggage from the C language. The extensive and standardized Java API
makes it considerably easier to program in Java than in C++.
3) The standard Java API includes built in, standardized libraries for TCP/IP
network sockets and services, SQL Database access, and many other areas.
C++ libraries which perform similar functions to the Java API are usually
available, but there are typically several competing and mutually
incompatible versions with overlapping functionality which cannot easily be
used together.
4) Lastly, Java can be programmed for multiple plaforms with little regard
towards platform-specific characteristics like hardware data types, floating
point implementations, or OS libraries.
4.5
Web Programming Technologies
The online web application will be developed using Java server-side technology
(servlets). Along with SQL statements, the server-side code will perform the necessary
database I/O that is required to facilitate the proposed functionality. JavaScript will be
used on the client side for all verification and page validation of customer submissions.
Justification for Using Servlets
1) Compared to other server-side technologies such as CGI, servlet technology is
much faster and more efficient.
2) Since servlets are simply Java programs, it allows an entire web application to be
developed using one programming language alone. The interactions remain within
this single language domain and eliminate extra levels of data transmission.
Merkley Headgear System Design
17
5 PROGRAM DESIGN AND SUBSYSTEMS
In order to give a full description of the detailed design of the application
component of the system, we will analyze the components and subsystems in terms of
Boundary Classes, Control Classes, Entity Classes, Database Classes, Use Cases,
Sequence Diagrams, State Diagrams, and Activity Diagrams.
5.1 Subsystem Descriptions
Before the final UML diagrams can be described, we must consider all the
subsystems that were mentioned in the Requirements Analysis. Below is an overview
that outlines the key subsystems involved in the order processing cycle. The following is
a summary of their functionalities:
 Client subsystem – Represents the interaction between a client and the web-based
ordering application.
 Customer and product administration subsystem – Represents the interaction
between the sales representative and database in order to manage customers and
products
 Manufacturing subsystem – Represents the interaction between manufacturing
staff and the Administration & Order Processing application.
 Shipping subsystem – Represents the interaction between shipping staff and the
Administration & Order Processing application.
5.1.1 Client Subsystem
Activities and Entities/Actors Involved:
 A customer creates a new order online by filling out an online order form with the
required information
 A customer has the option to modify account information (e.g. new address) and
must access and change their account information via a web form
 A customer checks the current status of an order that he or she has submitted
 A customer browses or searches Merkley’s online catalogue for products
 A customer adds an item found in the catalogue to the cart of present order
5.1.2 Customer and Product Administration Subsystem
Activities and Entities/Actors Involved:
 A sales representative can create or delete a new user
 A sales representative may update user account information and permissions
 A sales representative can search for existing customers
 A sales representative can add or remove a product to and from the catalogue
 A sales representative can configure a new product or modify existing product
details
Merkley Headgear System Design
18
5.1.3 Manufacturing Subsystem
Activities and Entities/Actors Involved:
 A manufacturing clerk generates a digital work order from the Administration &
Order Processing application
 An order processing person signifies an order complete to the Administration &
Order Processing application
5.1.4 Shipping Subsystem
Activities and Entities/Actors Involved:
 The shipping staff pulls up the orders to be shipped that day from the
Administration & Order Processing application
 A shipping person signifies that the order had been shipped to the Administration
& Order Processing application
5.2 Using the BCED Approach
In the design process, there are four types of classes that must be considered,
which can be broken down by identifying the classes in our system that make up the all
our BCED classes.
Boundary Classes: These specify interface functions and applications. In our case, this
will be the WebBasedClientApplication. Further details about the interface are described
in Section 7: Interface Design. Refer also to Appendix G-3: Data Dictionary.
Control Classes: These specify business logic functions and other processes involved in
processing and delivering information in the system. Refer to Appendix G-3: Data
Dictionary.
Manufacturing Class:
Manufacturing staff are responsible for the production of products as well as
delivering information within the system.
Shipping Class:
Shipping staff are responsible for the process involving delivering a product to a
customer and completing a business function in the overall system.
Merkley Headgear System Design
19
Entity Classes: These represent in-memory, run-time data structures for the database.
Any redundant information is removed from the classes, which model the relational
schemas (tables) in the database (refer to Appendix G: Class Diagrams).
Customer Class
This is part of the entity class because the database needs to retrieve information
about the customer such as their Customer ID shipping address in order to process an
order.
Order Class
The database will need an order entity so that it can match the Order ID to find a
product in Merkley's inventory.
Product Class
The justification that this must be an entity as part of the database is that Merkley
does not only have one product, but many. Each must be identified by Product ID so that
a customer order can be completed.
Inventory Class
We also need an inventory class that will act as a relationship in our Entity
Relationship Diagram (to be further discussed in Section 5: Database Design) because
we know that inventory is composed of a composition of products. We need a way to
access any particular product from the database.
Database Classes: These correspond to the application classes and describe what will be
stored persistently (refer to Appendix G: Class Diagrams).
WebBasedClientApplication
This database class describes the interaction between a client and the online web
application. It also provides a channel for the information flow between the web
application and the Oracle database.
Integrated Database
This is the actual database class that will handle the queries that are made by
either the customer or the Merkley’s employees.
Merkley Headgear System Design
20
5.3 Class Diagram Modifications
From the classes above, we have modeled only the relevant classes in our class
diagram. The interactions between the BCED classes can be merged and simplified to
create two class diagrams that are fundamental in the design process.
Overall Class Diagram - This class diagram will provide an overview of the system
described above. Specifically, it will model the Boundary, Control, Entity, and Database
Classes in a simplified form. See the Appendix G: Class Diagrams for the overall class
diagrams.
Entity Class Diagram - This class diagram is vital later on for generating the relational
schemas and the ER diagrams (further described in Section 5: Database Design). The
entities presented in this class diagram show a reduced, yet very efficient design of the
information system that is to be modeled.
5.4 Use Cases
General Use Case
The use case diagram illustrated in the general use case for the information
system (refer to Figure D.1 under Appendix D: Use Cases). Either a personal or corporate
customer will use the online web application. Depending on their activity in the system,
they will query the customer table or the orders table by creating or modifying account
information, placing an order, or checking on the status of their orders. These interactions
occur between the online web application and the database. Once this information is
stored in the database, a sales representative may modify any of the information including
information about products in the catalogue. A sales representative may also manually
create a corporate account for a corporate customer. All these interactions are made
between the sales rep and the Administration & Order Processing application. This
application interacts with the database as the online web application does. Once all
information about accounts and orders has been modified, manufacturing staff generates
a digital work order and completes the order, telling the application it is complete. Then
shipping staff ships the item to the customer.
Customer Use Case
This use case describes the available options to a customer that is logged onto the
web system (refer to Figure D.2 under Appendix D: Use Cases). Customers have an
option to create a customer account, as well as view and modify account information.
Customers may also place an order by submitting an electronic order form and then check
the status of their order. Lastly, the customer must log out of the system for security
measures.
Merkley Headgear System Design
21
Sales Representative Use Case
This use case shows the interaction between a Merkley sales representative and
the database (refer to Figure D.3 under Appendix D: Use Cases). As can be seen the sales
representative can perform the following operations: login/logout of the system; create,
modify, or delete a customer account; search for customers; search for products; add or
delete a product; modify information about a product; and update a product's inventory
records.
Integrated Database Use Case
This use case describes the functionality of the integrated database (refer to Figure
D.4 under Appendix D: Use Cases). When an order form is sent to the database, the
values are inserted into their appropriate tables. That is to say, customer information is
placed in a Customer table by customer ID, and product information is placed into a
Product table, sorted by a unique product ID number. In the case that the customer wants
to update or modify the account or ordering information, the integrated database must
also modify those values in its appropriate tables. For these operations, the integrated
database must also have the ability to search for a customer in the Customer table by
customer ID. Lastly, the integrated database must have the ability to search for a
particular product so that the customers and employees may get information for a specific
product.
5.5 Sequence Diagram
Customer Interaction
The purpose of the sequence diagram is to represent the use case previously
presented without being limited by the relationships between the actors of the system.
That is, we are not only interested between the interactions between the actors and
entities of the system, but we also want to know both the synchronous and asynchronous
relationships between each actor as a function of time.
The sequence diagram illustrates the timeline from customer account creation until
shipment (refer to Appendix E: Sequence Diagram) from the perspective of a personal
customer. First a customer enters the site and creates an account. After the account has
been created the web server will send confirmation back to the client. That customer may
then login. If they enter a valid login they are logged into the system. Once a customer
has created an order, they submit it to the web server. The web server then verifies the
order and sends a confirmation message with the order number for reference. At this
stage the order processing begins. First the database will check if the product is currently
available in inventory. If it is, the shipping staff may immediately ship it. Otherwise the
order is sent to production for filling of the order. Once the order is completely produced,
it is sent back to shipping and then shipped to the custom
Merkley Headgear System Design
22
5.6 Activity Diagram
We chose to model the ordering process from a personal customer’s perspective
with an activity diagram because we want to show the activities that describe
concurrency and synchronization when a customer creates an order online (refer to
Appendix F: Activity Diagram).
Description:
1) The first activity involves a customer going online and starting the order
application. A synchronization bar is needed because there are two parallel
transitions. One transition involves the process of logging into the system to place
an order.
2) At the same time, the customer must already have an existing account. Unless, a
customer has both an account and has logged in successfully, he or she will not be
able to place an order. In both cases, an error arises if either a customer does not
have an account or is not able to login because of an invalid user name or
password.
3) For each order that is placed, an electronic order form that contains the desired
items must be filled out. The diamond shape symbol after the "Fill Electronic
Order Form" activity represents a decision with alternate paths. The outgoing
alternates indicate if the condition is sufficient for an order request to be
processed.
4) If the order form is filled out properly with a valid credit card number and has no
missing fields, the order can be processed by the Oracle database. However, if
even one field is invalid, then the order is cancelled. In both cases, this would end
a customer transaction.
5.7 Collaboration Diagram
The purpose of this collaboration diagram is to show the interaction between a
customer (more specifically, a personal customer) and the actors involved in placing an
order in this system (refer to Appendix H: Collaboration Diagram). This will model the
sequence of events and actions without the time factor.
Interaction #1:
The first interaction occurs between the web server and customer. Upon initial
use of the web ordering application, the customer creates a new account.
Interaction #2:
The customer can then proceed to log into the system.
Merkley Headgear System Design
23
Interaction #3:
The customer interacts with the Web Server by submitting an electronic online
order form. Similarly, the web server receives the online form from the customer to be
processed.
Interaction #4:
This interaction occurs between the web server and the Oracle database. Before
the orders can be inserted into the database, the verification system must confirm that all
fields on the online form are not missing and that a valid credit card number is entered.
Interaction #5:
It is vital for the shipping staff to communicate and interact with the Oracle
database in order to check the status of a given order. The searchProduct( ) functionality
that the shipping staff and Oracle database both require in order to communicate with
each other is important because this will allow inventory to be kept up-to-date in an
electronic database. At the same time, this will also inform staff if the order needs to be
sent to the manufacturing staff to produce more items, or if they can ship the product
directly.
Interaction #6:
This interaction is a subclass of the interaction between the shipping staff and
both the customers and manufacturing staff. In the case that the product is available, the
product can be shipped directly to the customer and a direct interaction occurs.
Interaction #6:
The shipping staff also needs to interact with the manufacturing staff. This occurs
if a product is not available in Merkley's inventory. In this case, the manufacturing staff
must create a digital work order and start production.
5.8 State Diagram
5.8.1 Entire System
The state diagram modeled in Appendix I-1: System Overview illustrates the order
processing cycle from order submission to shipment. Once the customer goes online, we
enter the order super state. Once the customer has completed his/her order, it is verified
by the online application; if no errors or omissions are detected, it then moves to the next
state- the validation super state.
Within the validation super state, the order is first received and placed into the
Orders table of the database. The verification system then analyzes the orders for any
suspicious entries. If the order is determined to be completely invalid, it is immediately
discarded and the process ceases. Otherwise, the order is confirmed and inventories are
checked for stock.
If enough items are determined to be in stock (i.e. not a custom order), order
processing personnel execute the order completion function. If not enough of the item is
Merkley Headgear System Design
24
in stock a digital work order is generated by order processing personnel. At this stage the
order status becomes “In Progress”. Production then commences. The order completion
function is then executed and inventories are updated. Order status is now changed to
“Completed production”. If more items must now be produced to fill the order), the
shipping department waits for order completion. Once all items are in stock, the order is
sent to the shipping department and ported to the shipping table for shipping and
dispatch. The order is then shipped and order status is changed to “Shipped”. The
customer can no longer modify their order at this stage.
5.8.2 Web Ordering Application Subsystems
The state diagrams modeling the different subsystems provide a more detailed
examination of Merkley’s system. Not all subsystems are modeled however, for the
reason that the omitted subsystems are not necessarily crucial within the overall system.
Login Subsystem
When a user accesses the website, he or she will be presented with a login screen
(refer to Figure I-2.1 under Appendix I-2: Web Ordering System). If the user does not
already have an account, he/she may create one (only if the user is a personal customer).
The user must enter a user ID and password and click on the Enter button. If a valid user
ID and password has been entered, the user will proceed to the Main Menu Screen. If an
incorrect user ID and password pair is entered, the text fields are cleared and the user is
prompted to try again. Upon three invalid login attempts, the user is directed to another
screen informing the user to contact customer support for assistance. If a user is a
personal customer, he or she may create an account (refer to Appendix Q: Functional
Requirements).
Main Menu Subsystem
Upon successfully logging into the ordering application, the user is presented with
the Main Menu screen with various menu options (refer to Figure I-2.2 under Appendix I2: Web Ordering System). Only a corporate customer has the option to create a customer
order (refer to Appendix Q: Functional Requirements). Choosing a particular option will
bring the user to another screen to perform specific operations (more detailed descriptions
in the following diagrams). Alternately, the user may choose to sign out of the session by
clicking the Sign Out button and return to the login screen.
Order Entry Subsystem
When a user selects the Order Entry option from the Main Menu, the user is
presented with the Order Entry screen (refer to Figure I-2.3 under Appendix I-2: Web
Ordering System). From here, the user can choose not to order any items and return to
the Main Menu or browse through the selection of products offered by the company. The
user can perform a search based on different criteria and click on a product to view more
information. The Product Information displays more detailed information about the
Merkley Headgear System Design
25
product in question and allows the user to add the item to the order. If the user has more
items to add to the order, he or she may return to the Order Entry screen to view more
products. If the user has no more products to order, he or she enters the required shipping
and payment information and confirms the order. From this point, the user may return to
the Main Menu or place another order.
Account Information Subsystem
When a user chooses to view his or her account information from the Main Menu
screen, the user proceeds to the Account Information screen. At this screen, the user can
view all the information associated with this account and choose to update information
(refer to Appendix Q: Functional Requirements). After the user has finished with this
application, he or she may return to the Main Menu.
5.8.3 Administration & Order Processing Application System
The Administration & Order Processing application system is modeled in
Appendix I-3: Administration & Order Processing Application. When a staff member
starts the Administration & Order Processing application on the local network, he or she
is prompted for a user ID and password. A valid user ID and password will allow the user
to proceed to the Main Menu. Three failed login attempts will direct the user to a page
advising him or her to contact the network administrator for assistance.
On the Main Menu screen the user has 4 options: view and update customer
accounts, update order and shipping status, configure products, and sign out of the user
session (fulfilling the Functional Requirements as described in Appendix Q: Functional
Requirements).
Selecting the Customer Accounts option will bring the user to a separate screen
listing all the customers. On this screen, the user can create new accounts or delete
accounts, update customer information, modify customer access levels, search for
specific customers, sort the list by different criteria, or return to the Main Menu.
Similarly, with the Orders and Product Configuration menu items, selecting one
will bring the user to the Orders screen and Production Configuration screens,
respectively. On these screens, the user may perform any functions allowed on the screen
and then may return to the Main Menu.
Merkley Headgear System Design
26
6 DATABASE DESIGN
The design of the database must match the operations of the system (refer to
Appendix Q: Functional Requirements), and since it specifies the relational schema to be
implemented, it must account for Merkley's inventory problems. The main data that need
to be accounted for when designing Merkley's database are as follows:
 The Corporate Customers- Merkley specializes to these customers through sports
and recreational events.
 The Orders are fundamental to the database design because we know that due to
the volume of orders, a database can slow down if not designed efficiently.
 Inventory must be kept up to date to prevent lose of sales, and customer orders
getting lost.
6.1 Database Design Criteria: Conforming to ACID
Our database design will also be based on the fact that Oracle is an ACID
compliant database. Thus the schemas will abide to ACID conditions (refer to Appendix
L: ACID Compliant Database) for more information on ACID. It is important to create a
relational schema with a minimal number of transactions (reads, and writes). This is
important in order to avoid any concurrency problems during simultaneous executions of
the program. By trying to reduce the number of reads and writes that are needed, our
relational schema, along with Oracle, will process queries and transactions quickly and
efficiently. A summary of the ACID compliant test is listed below:
1) Atomicity
Our relational schema must make sure that all elements of a given transaction take
place or none at all.
2) Consistency
The relational schema must ensure that each transaction transforms the database
from one valid state to another valid state.
3) Isolation
The relational schema must make sure that the effects of a transaction are not
visible to other transactions in the system until it is complete.
4) Durability
The relational schema must ensure that if a transaction has been committed, its
effects are permanent- even if the system crashes or if a disk dies.
Merkley Headgear System Design
27
6.2 Relational Schema Formation
We are to design a relational schema that reduces or eliminates (if possible) any
insertion, deletion or update anomalies. We also want to try to design a database such
that the following anomalies are avoided:
1) Insertion Anomalies
This occurs when it is not possible to insert attributes into a table without first
having information of another attribute. For example, if we insert product ID
alone we would have to make it possible to insert this attribute with its
corresponding tuples without knowing any other information like customer ID.
2) Deletion Anomalies
These occur when we delete an attribute from a table that causes extra loss of
information in another table.
3) Update Anomalies
These occur when multiple instances of a relation of attributes have to be
maintained.
The preliminary relational schema (before any normalization and removal of
redundancies) is given below based from the previous criteria. The first step to create a
Relational Schema and its corresponding ER diagram is to decide on the Main Identifiers.
6.2.1
Main Identifiers
The following identifiers require these Relations and Entities
Concept
Customer
Personal
Corporate
Orders
ProductForm
Production
Product
InventoryComposition
ShipsTo
Type
E
E
E
R
E
R
E
R
R
Identifiers
CustID
inherits from Customer (CustID)
CompName
CustID, OrderID
ProdID
WorkOrderID
ProdID
ProdID
Address
6.2.2 Constraints
There are no specific constraints for this database besides the basic functional
dependencies for each relation, which the identifiers will handle as keys.
Merkley Headgear System Design
28
6.2.3 Preliminary Relational Schema
The preliminary relational schema (before any removal of redundancies, and
normalizing) is a direct translation from the main identifiers we have and is a direct
translation from the ER diagram (refer to Appendix M: Preliminary Entity Relationship
Diagram).
Customer (Name, CustID, Password, BillingInfo, Payment, PhoneNumber)
Personal (HomeAddress)
Corporate (CompName, ShipToAddress)
Orders (CustID, OrderID)
ProductForm (CustID, OrderID, ProdID, OrderStatus, PaymentStatus)
Production (OrderStatus, WorkOrderID)
Product (ProdID, OrderID, Colour, Size, ProdName)
InventoryComposition (ProdID, Quantity)
ShipsTo (Address, ProdID, CustID)
6.3 Redundancy Analysis
We need to re-analyze the relational schema that we have created and examine if
there are any redundancies. For the relational schema, we will consider removing
generalizations, partitioning or merging entities, removing redundant entities and
relationships, and finally normalize our schema in the highest normal form.
6.3.1 Removing Generalizations
In the Customer entity, the generalization is not needed since the attributes
ShippingAddress in the Personal Customer entity and the ShipToAddress in the
Corporate Customer class are redundant since they repeat the same information. That is,
there are no relevant operations in the Personal or Corporate Child entities that are unique
to the Customer entity.
Therefore, we can delete the child entities of Personal and Corporate Customers
and add an attribute Type to the parent entity Customer.
6.3.2 Merging Concepts
The ProductForm entity is redundant because the attributes can be accessed from
other entities/tables and reduces both read and write operations.
Recall that the schema is:
ProductForm (CustID, OrderID, ProdID, OrderStatus, PaymentStatus)
-
CustID can be promoted to Orders (CustID, OrderID) and therefore this attribute
may be eliminated
Merkley Headgear System Design
29
-
ProdID can be promoted to Product (ProdID, OrderID, Colour, Size,
ProdName) since it also is a primary key in Product
OrderStatus can be promoted to Order (CustID, OrderID, OrderStatus) and thus
OrderID may be eliminated
PaymentStatus can be promoted to Order (CustID, OrderID, OrderStatus,
Payment Status) and thus Payment Status can be eliminated.
6.3.3 Removing Entity and Relation Redundancies
The Shipping Relationship can be removed since it contains redundant attributes
that can be pulled from other entities and relationships already defined.
a) ProductID can be found in the entity Product with attribute ProdID. Therefore
ProductID = ProdID is a redundancy.
b) ShippingAddress can be found in children entities of Customer as either
ShipToAddress or HomeAddress.
The redundancy is as follows:
Shipping.ShippingAddress
=
Personal.HomeAddress
=
Corporate.ShipToAddress
Thus we eliminate these attributes and have only one attribute Address that is
encompassed in the Customer entity. This will reduce the number of reads and
writes drastically. It will reduce the reads and writes from two tables (Shipping and
either Personal or Corporate tables).
c) ItemName is a redundant attribute because every Product is identified by ProductID
and this information is not important for Shipping and Ordering.
6.4 Schema Normalization
The relational schemas that we have defined require normalization to help produce a
schema that is not redundant.
6.4.1 Normalizing Relational Schemas in First Normal Form
Recall a relation is in First Normal Form (1 NF) if it does not include any multivalued attributes or any composite attributes. We have ensured that when designing our
relational schemas they are all at least in 1NF.
6.4.1.1 Relation Customer to be in First Normal Form
There is the only schema that is not in First Normal Form. The derivation of the
original relational schema had to undergo the removal of the Customer
Generalization. Below, will we will show the 1NF decomposition. That is, the
original Customer schema (before Generalization and 1NF) may have had
Merkley Headgear System Design
30
composite attributes from our Functional Requirements (refer to Appendix Q:
Functional Requirements). Consider the non-normalized schema:
Customer (UserID, Name, Billing Info, Phone Number, Password,
HomeAddress, Company , Ship to Address)
This is not in 1NF since HomeAddress, Company, and Ship to Address are multivalued attributes.
6.4.1.2 Decomposition Alternative One into 1NF
One option is to split the Customer entity such that the multi-valued attributes
such as HomeAddress, Company, Ship to Address (as part of the Customer
Entity) be promoted into relations into their own right to guarantee a 1NF
decomposition. But this can be avoided because we do not want the promotion to
lead to the schema:
Personal Customer (HomeAddress) and
Corporate Customer (Company, ShiptoAddress).
This is undesirable because attributes HomeAddress and ShiptoAddress give the
same information as previously mentioned (refer to Section 6.3.2: Removing
Generalizations).
6.4.1.3 Decomposition Alternative Two into 1NF
The other alternate is to apply the generalization that was indicated previously
(refer to Section 6.3.2: Removing Generalizations) by eliminating HomeAddress
and ShipToAddress, and to promote them as one value in the Customer Relational
schema to produce the final minimization to:
Customer (Name, Address, CustID, Password, PhoneNumber,
BillingInfo)
Note: The relational schema is still can be further normalized, and will be done
later.
6.4.1.4 Decomposition Selection
Clearly, Decomposition Alternative Two will be the best alternative to reduce
redundant attributes. At the same time, it will minimize the redundant children
tables of Customer, which will involve more read and write operations.
Merkley Headgear System Design
31
6.4.2 Normalizing Relational Schemas in Second Normal Form
A relation is in Second Normal Form (2NF) if it is in 1NF and all non-key
attributes depend on all elements of its key rather than a subset.
Customer is already in Second Normal Form (2NF) because it is in 1NF and the
non-key attributes Name, Address, Password, PhoneNumber, BillingInfo, and Type
depend on all elements of its key rather than a subset.
Customer (Name, Address, CustID, Password, PhoneNumber,
BillingInfo,Type)
Personal and the Corporate entities of Customer have been eliminated due to the
merging of HomeAddress, CompName, and ShipToAddress simply to preserve the 2NF
decomposition of Customer. Therefore these relational schemas are eliminated:
Personal (HomeAddress)
Corporate (CompName, ShipToAddress)
ProductForm, and Production are not in 2NF because not all their non-key
attributes depend on all elements of its key rather than a subset. For example in
ProductForm, the OrderStatus is not dependant on PaymentStatus, but only on OrderID.
Note also that Production will be eliminated if ProductForm is eliminated because
OrderStatus will not be accessible. Thus they need to be merged to Order to ensure 2NF
decomposition. These relations are eliminated due to redundant attributes and a violation
of 2NF:
ProductForm (CustID, OrderID, ProdID, OrderStatus, PaymentStatus)
Production (OrderStatus, WorkOrderID)
If we merge OrderStatus to Order, although it looks similar to ProductForm, we
can note that there are only 2 non-key attributes, PaymentStatus and OrderStatus, which
were already mentioned to be dependant with each other. All other attributes also depend
on each other so that all non-key attributes in Order Status depend on all elements of the
set.
Order (CustID, OrderID, ProdID, PaymentStatus, OrderStatus,
Inventory is already in 2NF because its only non-key attribute does depend on
ProdID.
InventoryComposition (ProdID, Quantity)
Merkley Headgear System Design
32
6.4.3 Normalizing Relational Schemas in Third Normal Form
Recall a relation is in Third Normal Form (3NF) if it is in 2NF and none of its
non-key attributes depends on any other non-key attribute. In other words for any
relationship R, where R (A, B, C, D, E, F) represents the schema and A, B, C are primary
keys, if there exists say D-> E, which is a non-key attribute, we have violated a 3NF
condition.
a) Customer is in 3NF because the non-key attributes Name, Address, Password,
Phone Number, BillingInfo, and Type do not functionally depend on each other in
the schema that we have designed. Thus the following is in 3NF:
Customer (Name, Address, CustID, Password,
PhoneNumber,BillingInfo,Type)
b) Also Order is in 3NF because the non-key attributes PaymentStatus, OrderStatus,
Quantity, and TotalPrice do not functionally depend on each other in the schema
that we have designed. Thus the following is in 3NF:
Order (CustID, OrderID, ProdID, PaymentStatus, OrderStatus,
Quantity,TotalPrice)
c) The entity Product is also in 3NF because the non-key attributes PaymentStatus,
OrderStatus, Quantity, and TotalPrice do not functionally depend on each other in
the schema that we have designed. Thus the following is in 3NF:
Product (ProdId, Colour, Size, ProdName)
d) The entity Product is also in 3NF because there exist only one non-key attribute,
which is Quantity (i.e. there does not exist any other non-key attributes that it can
depend on since ProdID is a key attribute). Thus the following is in 3NF:
InventoryComposition (ProdID, Quantity)
6.4.4 Optimized Relational Schema
Below is the optimized relational schema after all normalizations, generalizations,
and redundancy reductions have occurred.
Customer (Name, Address, CustID, Password, PhoneNumber, BillingInfo,Type)
Order (CustID, OrderID, ProdID, PaymentStatus, OrderStatus, Quantity, TotalPrice)
Product (ProdId, Colour, Size, ProdName)
InventoryComposition (ProdID, Quantity)
Merkley Headgear System Design
33
6.5 Entity Relationship Diagram and Design
The entity-relationship diagram modeled in Appendix N: Entity Relationship
Diagram and Design describes the structure of the information system. In the design of
the ER diagram (and the resulting translation to a relational schema) the motive was to
construct a situation where information is not only adequately encapsulated but also
properly indexed as to minimize redundancies and unnecessary trips to the disk.
Instead of broadly defining an entity-relationship diagram where the information
was simply represented, a little more careful attention was paid to modularity and
operational latency. Specifically, redundancies of key attributes within entities and
relationships were already employed (refer to Sections 6.3-6.4).
The problem in the non-normalized schema was created by awkward information
accessing procedures. For example, when a customer logs onto the system, his/her
information can be displayed for his/her scrutiny and modification if necessary. If a
customer wishes to pull up a list of all his/her orders, rather than have orderID’s in the
customer entity, (as a string perhaps, which repeatedly gets appended) the customers ID
should be made a key attribute in the orders relationship. This implies that when
customers query their orders, the orders may simply be pulled from the Orders table by
customer ID. As can be seen, this eliminates the need for a potentially long and awkward
attribute belonging to the customer entity (such was the case before normalization). It
also eliminates a parsing capability that would otherwise be needed to extract the
pertinent information.
Further design optimizations were made from the Requirements Analysis. Instead
of the proposed 6-table database architecture (refer to Appendix K: Database Table
Design), it has been reduced to four tables. The ordersToProcess and ordersToShip tables
may both be eliminated and dynamically generated by the main orders entity based on the
order’s present order status. Further redundancies such as redundant attributes in different
tables were eliminated. As mentioned above, the results of these optimizations can be
seen in the ER Diagram located in the Appendix N: Entity Relationship Diagram and
Design.
Merkley Headgear System Design
34
6.6 Workload Data and Cost Comparisons
The workload data consists of the relations and entities defined in our ER
diagram, along with their volumes, and operations. Supporting documentation for the
following information can be found in (refer to Appendix Q: Functional Requirements).
6.6.1 Table of Volumes
Concept
Type
Volume
Customer
Personal
Corporate
Orders
ProductForm
Production
Product
InventoryComposition
ShipsTo
E
E
E
R
E
R
E
R
R
200
50
150
400
400
400
150
5000
50
Table 6.6-1: Table of Volumes
6.6.2 Operational Requirements
There are 9 common operations that are performed. Details of the operations are
described in Appendix Q4: Details of Information Processing of the Functional
Requirements.
Operation 1: Adding a new Customer
Operation 2: Updating/Deleting a Customer Account
Operation 3: Checking an Order Status
Operation 4: Modifying an Order Status
Operation 5: Configuring a New Product for Inventory
Operation 6: Searching for a Product
Operation 7: Ordering a Product
Operation 8: Updating Product Inventory
Operation 9: Modifying/Deleting Product Information
Merkley Headgear System Design
35
Operation
Type
Frequency
Operation 1
Operation 2
Operation 3
Operation 4
Operation 5
Operation 6
Operation 7
Operation 8
Operation 9
Interactive
Interactive
Interactive
Interactive
Batch
Interactive
Interactive
Interactive
Interactive
100 per day
25 per day
10 per day
5 per day
250 per day
1000 per day
0.5 per day
0.15 per day (or once a week)
0.02 per day (or once every 2 months)
Table 6.6-2: Table of the most common operations
6.6.3 Cost Comparison Summary
This section presents a summary of the operation costs as calculated in Appendix
O: Operation Costs.
Operation 1: Adding a New Customer
Presence of Redundancies: (4 + 0) Accesses x 100/day = 400 accesses per day.
Absence of Redundancies: (2 + 0) Accesses x 100/day = 200 accesses per day.
Operation 2: Updating/Deleting a Customer Account
Presence of Redundancies: (4 + 2) Accesses x 25/day = 150 accesses per day.
Absence of Redundancies: (1 + 2) Accesses x 25/day = 75 accesses per day.
Operation 3: Checking an Order status
Presence of Redundancies: (0 + 4) Accesses x 10/day = 40 accesses per day.
Absence of Redundancies: (0+ 2) Accesses x 10/day = 20 accesses per day.
Operation 4: Modifying an Order Status
Presence of Redundancies: (6 + 4) Accesses x 5/day = 50 accesses per day.
Absence of Redundancies: (2+ 2) Accesses x 5/day = 20 accesses per day.
Operation 5: Configuring a New Product for Inventory
Presence of Redundancies: (6 + 4) Accesses x 250/day = 2500 accesses per day.
Absence of Redundancies: (2+ 2) Accesses x 250/day = 1000 accesses per day.
Operation 6: Searching for a Product
Presence of Redundancies: (0 + 4) Accesses x 1000/day = 4000 accesses per day.
Absence of Redundancies: (2+ 0) Accesses x 1000/day = 2000 accesses per day.
Operation 7: Ordering a Product
Presence of Redundancies: (0 + 3) Accesses x 0.5/day = 1.5 accesses per day.
Absence of Redundancies: (2 + 0) Accesses x 0.5/day = 1 access per day.
Merkley Headgear System Design
36
Operation 8: Updating Product Inventory
Presence of Redundancies: (2 + 2) Accesses x 0.15/day = 0.6 accesses per day.
Absence of Redundancies: (2 + 1) Accesses x 0.15/day = 0.45 access per day.
Operation 9: Modifying/Deleting Product Information
Presence of Redundancies: (2 + 2) Accesses x 0.02/day = 0.08 accesses per day.
Absence of Redundancies: (2 + 1) Accesses x 0.02/day = 0.06 access per day.
Total Cost (Presence of Redundancies) = 7142.18 total accesses per day.
Total Cost (Absence of Redundancies) = 3316.51 total accesses per day.
As the calculations done in the above point out, the total cost in the presence of
redundancies will total 7142.18 total accesses per day.
However, the absence of
redundancies will total 3316.51 total accesses per day. Clearly, the lack of redundancies
improves overall performance in our database.
6.7 Database Design Summary
The requirements for the database was to efficiently update and retrieve data, and
the other was to be able to collect enough data to ensure that inventory levels were
correct. Making most of the operations interactive enables fast retrievals and updates.
The relations were also normalized so that functional dependencies were constrained,
thereby, eliminating anomalies. In addition, data is needed to monitor customer
information, order information and product information. Consequently, this design for the
database meets relevant requirements as outlined in our requirements specification (refer
to Appendix Q: Functional Requirements).
7 INTERFACE DESIGN
The interface design of Merkley’s online web ordering application and
Administration & Order Processing application is simple and user-friendly for the reason
that the application is highly dependent on user interaction. The application interfaces are
geared toward novice users- it is assumed that users have experience with navigating the
World Wide Web and using every day Windows applications. The interfaces display only
the necessary options required by the user and simple text instructions for straightforward
user interaction with the system. The interface design for Merkley’s applications thus
fulfills the specified interface requirements (refer to Appendix R: Non-Functional
Requirements).
Merkley Headgear System Design
37
7.1 User Groups
There are basically 2 groups of users that will be interacting with Merkley’s
system: customers and employees. Customers interact with the online web ordering
system while the employees utilize a desktop application on an internal network
7.1.1 Customers
Customers log into the online ordering system accessible through the World Wide
Web and order products that are supplied and manufactured by Merkley Headgear. There
are two types of customers: corporate and personal customers.
7.1.1.1 Corporate Customers
Corporate customers belong to a company, which buys wholesale products from
Merkley to sell to their own customers. These types of customers may create
custom orders for hats tailored to the company’s requirements (e.g. they may
specify the use of the company’s colours and logo). Corporate customers may
also have multiple ship-to addresses as their business may have different branch
locations. Customers also have the option of checking the status of their custom
orders and track the progress of production.
7.1.1.2 Personal Customers
Personal customers refer to customers who are not purchasing merchandise on
behalf of a corporation. These customers buy a few items for their own personal
user and may not create custom orders (refer to Appendix Q: Functional
Requirements).
7.1.2 Employees
Employees deploy the shipping and production tracking system on their own
desktops. There are 3 types of employees that need to interact with the tracking system:
production clerks, shipping clerks, and sales representatives.
7.1.2.1 Production Clerks
The production department utilizes the system to check which orders need to be
put into production sends those orders to be manufactured. Production clerks may
only make updates to the status of orders- they may change a status to either “In
Production” or “Manufactured”.
7.1.2.2 Shipping Clerks
Shipping clerks employs the system to check which orders are ready to be
shipped. They may update a status of an order to “Shipped” and update the
inventory of products in the warehouse.
Merkley Headgear System Design
38
7.1.2.3 Sales Representatives
Sales representatives use the system to create new customer accounts, modify
existing account information or permissions, or delete expired accounts. They
also manage the product catalogue, which involves configuring a new line of
products, modifying existing product details (e.g. pricing and colours), and
remove discontinued products.
7.2 Online Ordering System Interface
The design for the website is simple, colourful, attractive and user-friendly. The
interface is user-friendly to maximize ease of navigation and usability. When a user
initially accesses the website, an introduction created using Macromedia Flash will play
on the screen in order to attract the customer’s attention. After a user logs onto the
system, he or she is presented with the Main Menu and all the options available to him or
her. By clicking on a Main Menu option, the user can navigate to other pages on the site.
Each application has a button “Home” that allows the user to return to the Main Menu to
choose another option or to log out of the system. The page layout and structure of the
site allows the user to easily navigate through the site and use each application quickly
and effortlessly.
Login Interface
When the login screen is displayed, the user can log into the ordering system on a
secure server using a unique user ID and password (refer to Figure P-1.1 under Appendix
P-1: Web Ordering System Application). If the user does not have an account, he or she
may create one. The user proceeds to the Main Menu when a valid user ID and password
are typed into the appropriate text fields. If an invalid user ID or password is entered, all
the fields are cleared and the user is prompted to try again. Upon 3 login failures, a page
is displayed indicating that the user has exceeded the maximum amount of login attempts
and must contact customer support for any assistance.
Main Menu Interface
Once the user is logged in, a Main Menu is loaded on the screen with different
menu options: My Account, Order Entry, Order Status, Custom Orders and View
Account Information (refer to Figure P-1.2 under Appendix P-1: Web Ordering System
Application). The Custom Orders option is only displayed for corporate customers, as
personal customers may not place a custom order (refer to Appendix Q-2: Functional
Requirements-Details of Output). Additionally, a button for signing out is available to
log the user out of the application session.
Merkley Headgear System Design
39
Order Entry and Product Information Interfaces
The Order Entry screen is loaded into the user’s browser and displays a list of
categories by which the products are sorted (refer to Figure P-1.3 under Appendix P-1:
Web Ordering System Application). Clicking on a category will display the thumbnail
pictures of all hats available in that category (refer to Figure P-1.4 under Appendix P-1:
Web Ordering System Application). A user can select a product to view more
information. This action brings up the Product Information screen, which displays
enlarged picture and product information, including price and availability (refer to Figure
P-1.5 under Appendix P-1: Web Ordering System Application). A drop down menu
listing available colours allows the user to view the product in a selected colour. The
user can specify the quantity that he or she wishes to order in a text field and can add the
item to the shopping cart by clicking the Add to Cart button. The Order Entry screen also
has an option to display a catalogue. A user can perform a search using various search
terms: by product number, description, or category (refer to Figure P-1.6 under Appendix
P-1: Web Ordering System Application). The search results are then displayed on the
screen in a similar fashion as if viewing products by category. After adding all desired
items in the shopping cart, the user can then proceed to the next screen to view all items
in the shopping cart (refer to Figure P-1.7 under Appendix P-1: Web Ordering System
Application). At this point, the user may remove items from the cart, cancel the entire
order, or confirm the order. When a use decides to complete an order, he/she must ensure
that the account and payment information are correct (refer to Figure P-1.8 under
Appendix P-1: Web Ordering System Application). When the user has confirmed the
order, the system provides the user with an order number, which allows the user to follow
up on that particular order.
Custom Orders Interface
The Custom Orders screen allows corporate customers to place custom orders
(refer to Figure P-1.9 under Appendix P-1: Web Ordering System Application). The user
must fill out a form with the hat specifications that he or she requires. The form consists
of drop down menus to choose material type, colours, and styles, and text fields to input
the amount required and any text to appear on the hat. If the customer would like a logo
to appear on the hat, then he or she may attach a small image to include in the form.
Upon completion of the specifications, the user then confirms the order and is given a
work order number as well as the order number. The work order number enables the user
to view the progress of the hat production.
Order Status Interface
The Order Status screen displays a list of all the orders placed by the user along
with the date that the order was place, the order number, and the order status (refer to
Figure P-1.10 under Appendix P-1: Web Ordering System Application). By clicking on
the order number link, the user can see all the items ordered, including the product
specifications (quantity, size, and colour), and the total price of the order. The link to
Merkley Headgear System Design
40
view the order status enables the user to track when and which items were shipped. If the
user is a corporate customer, he or she may also check the progress of the hat production.
Account Information Interface
On the My Account screen a user may check on his or her information, such as
ship to address and payment information (refer to Figure P-1.11 under Appendix P-1:
Web Ordering System Application). A user may also modify account information,
including the user’s account password.
7.3 Administration & Order Processing Application Interface
Employees may access the Administration & Order Processing application
through an application icon located on the terminal desktop. Upon starting the
application, a login screen is displayed and the employee must log in with his or her
unique user ID (composed of the first name initial and last name) and password. If an
invalid user ID or password are entered, all the fields are cleared and the user is prompted
to try again. Upon 3 login failures, a page is displayed indicating that the user has
exceeded the maximum amount of login attempts and must contact customer support for
any assistance. The login interface is similar that of the online web ordering application
displayed in Figure P-1.1 under Appendix P-1: Web Ordering System Application).
Main Menu Interface
The Main Menu is displayed on the screen showing appropriate menu options
according to the access level for the user account. From this point, the user may view all
orders in progress and update the status of orders and shipments, view customer accounts
and create or delete accounts, configure products (make price adjustments or add new
products), or sign out of the user session (refer to Figure P-2.1 under Appendix P-2:
Administration & Order Processing Application).
Customers Interface
On the Customers screen is a list of all customers. The user may list customers by
user ID, company name, customer name, or customer type. By clicking on a customer
from the list, the user may view all the details of the user account, such as user ID,
company information (name, address, phone number), past orders, and permissions. On a
side bar is a list of options the user may choose from: create new account, delete account,
update customer information, modify permission levels, or return to the Main Menu
(refer to Figure P-2.2 under Appendix P-2: Administration & Order Processing
Application).
Merkley Headgear System Design
41
Orders Interface
The Orders screen lists orders placed by customers from most recent to least
recent. The list of orders displays the order number, date on which the order was placed,
the customer that placed the order, order total, and status of the order; the list may be
sorted by any of these categories. By clicking on an order from the list, the employee may
view the order details, such as the items and the quantities ordered. Additionally, the user
has the option to change the status of the order or update the shipping status of the order
by means of a drop down menu. The user may also choose to return to the Main Menu
(refer to Figure P-2.3 under Appendix P-2: Administration & Order Processing
Application).
Product Configuration Interface
The Product Configuration screen organizes the catalogue products by category:
ski, golf, ball caps, etc. The user may view a list of the products by category or choose to
view them all. The list of products displays the product number and description. By
clicking on a product from the list, another screen is displayed, which shows the details
for the product. The product information shown on this screen is the information that the
customer sees when viewing the product details in the web ordering application. The
information includes the product number, product name, description, available sizes and
measurements, available colours, available stock, list price, material, image, and any
other customizable features allowed for the product. The information is displayed in
editable text fields, allowing the employee to update any details. The employee also has
the option to configure a new product or remove a product from the catalogue.
7.4 Input/Output Design
When the client receives input from a user it makes sure that all necessary fields in
the application are filled out and entered with the appropriate data type (e.g. integer for to
specify a quantity). The three-tier client server architecture described in Section 3.1.3
uses the processing tier to validate all the inputted data to make sure they are not corrupt
and to ensure that there are no suspicious orders (e.g. a personal customer placing an
order of 1 000 units).
7.4.1 Ordering Module
The Ordering Module describes the I/O interaction between customers and the
system. More specifically, user input is directed to the database and the user is presented
with data from the database.
7.4.1.1 Order a Product
Customers select the items they want to order and specify the quantity and colour
for each item. The system ensures that a valid input for quantity is entered and
that a colour has been selected. To complete an order, the customer must fill out
all relevant fields, including credit card information. After all user input is entered
Merkley Headgear System Design
42
into the database, the system returns a unique order number for the future
reference of the customer.
7.4.1.2 View Order Status
The database returns a list of all orders placed by the customer; the list includes
the order number, total price, the date the order was placed, and the order status.
The customer may view an order detail by clicking on an order number. The
database then returns a list of the products and product information for that
particular order.
7.4.1.3 Modify Account Information
When a customer modifies his/her account, he/she must make sure that no
required fields are made empty and that the fields are filled out with the correct
data format. If the customer wishes to change his/her password, he/she must type
in the old password, then type in the new password twice. The system verifies that
the old password entered matches the actual user password. If the entered
password is valid, then the system checks that the new password is a valid
password (not blank) and that both entries for the new password are identical.
Once all these conditions are fulfilled, the user record in the Customers table is
updated with the new password.
7.4.2 Order Tracking Module
The Order Tracking Module describes the I/O interaction between manufacturing/
shipping clerks and the system.
7.4.2.1 View Orders
As part of processing orders, manufacturing and shipping clerks must handle the
appropriate orders depending on the phase of the order with respect to the order
cycle. Both clerks pull up records according to their current status in order to
proceed in the next phase of order processing. Manufacturers handle orders that
are in the “Start Production” phase, while shipping clerks handle the orders that
have the status “Ready for Shipment”.
7.4.2.2 Update Order Status
Shipping and manufacturing clerks only have permission to update the status of
orders by selecting the status from a drop-down menu on the screen.
Manufacturing clerks my only modify a status to “In Production” and shipping
clerks may only modify a status to “Shipped”. The modified status is updated in
the database. In addition, when an order status is changed to “Shipped”, the
inventory numbers are also updated in the database.
7.4.3 Customer and Product Administration Module
The Customer and Product Administration Module describes the I/O interaction
between sales representatives and the system.
Merkley Headgear System Design
43
7.4.3.1 Add Customer Account
Sales reps collect customer information and input them into the system, which
adds a new customer record in the Customers table. The system then generates a
unique user ID for the user as well as a temporary password that will be encrypted
in the database for security purposes (refer to Appendix R-2: Performance
Requirements).
7.4.3.2 Modify Customer Information
Sales reps view user information and modify any user information or user
permissions. The system verifies that the modified data is legitimate before
updating the database with the new data (refer to Appendix Q: Functional
Requirements).
7.4.3.3 Delete Customer Account
When a sales representative deletes a customer account, the account is deactivated in the database (refer to Appendix Q-1: Details of Data Storage). An
account may only be de-activated if the user does not have any more open orders
to be processed. The system performs this check before allowing a sales rep. to
delete the account. The account de-activation signals to the database that the
account is to be deleted from the database. Only after a period of time when
closed orders are transferred from the database to another server are all deactivated accounts deleted from the Customers table.
7.4.3.4 Search Customer
Sales reps perform queries on the Customers table in the database. They may
view all existing customers or search customers by name, company or customer
type (see Appendix Q: Functional Requirements). Sales reps may or may not
enter a search string for the query. If a string is not entered, all record items in the
table matching the string is returned to the client. If no string is inputted then all
records in the table are returned.
Merkley Headgear System Design
44
8 CONCLUSION
A thorough description of the new system design has been documented to meet
and assess the ordering and inventory problems at Merkley Headgear. We discussed the
global system architectural, hardware, software and networking design specifications for
the new system to improve the data entry errors created through inspection and human
techniques.
By means of an efficient design, from a technical and monetary standpoint, the
design specifications presented give modularity and efficient answers to Merkley’s
business challenges. With a nice front-end ordering infrastructure in place, Merkley
positions itself to increase its customer base while at the same time serving its clients
better. As mentioned, the database interface design module guarantees simple real-time
order status and inventory information to be updated by its floor staff. Simplicity above
all other things, along with opportunities for unlimited growth, makes the design
specification easy to implement.
A meticulous system design has been presented, which describes all the
components required to build and successfully implement and initiate the new system
which we are confident will be more than satisfactory to John Kovacs, Head of
Operations and the Database Management Programming Staff.
Merkley Headgear System Design
45
Appendices
Merkley Headgear System Design
46
APPENDIX A: SYSTEM INFORMATION FLOW
Figure A.1: System information flow
The diagram above shows the general information system interactions. First the
client will use the web-based application to create an account and make and modify
orders. The web-based application will transact with the integrated database. The
Administration & Order processing application with also use the same integrated
database to facilitate the interaction made by manufacturing and shipping personnel, as
well as sales representatives, who may process and modify user and product information.
Merkley Headgear System Design
47
APPENDIX B: SOFTWARE ARCHITECTURE
Appendix B-1: Repository-Based Architecture
Figure B-1.1 Repository-based architecture for Merkley Headgear’s system
Merkley Headgear System Design
48
Appendix B-2: Model View Controller (MVC) Architecture
Figure B-2.1: Responsibilities of MVC components for Merkley Headgear’s system
Merkley Headgear System Design
49
Appendix B-3: Server Client Architecture
Appendix B-3.1: Two-Tier Server Client Architecture
Figure B-3.1.1: Logical representation of two-tier architecture
Figure B-3.1.2: Physical representation of two-tier architecture
Merkley Headgear System Design
50
Appendix B-3.2: Three-Tier Server Client Architecture
Figure B-3.2.1: Logical representation of three-tier architecture
Figure B-3.2.2: Physical representation of three-tier architecture
Merkley Headgear System Design
51
Appendix B-3.3: Comparison between Two-Tier and Three-Tier Architecture
Model
TwoTier
Development Time
Short
Scalability and Usage
Low
Maintenance Costs
Moderate




software vendor tools
available to simplify
development
of
applications for twotier model
little
modularity
required


ThreeTier
can service a low number
of simultaneous users
(100)
increased application logic
stored in the DBMS
depletes
processing
power, thus reduces the
number of simultaneous
users
that
can
be
accommodated
handles light transaction
loads
since business logic is
integrated in the server,
any code change will
also require changes to
the database
Long
High
Low



requires
proper
communication
between all three tiers
 requires
precise
module specifications
 separation
of user
interface logic, process
management logic and
data logic not always
easy to distinguish


high performance when
handling a high number of
simultaneous
users
(thousands)
each tier can be built and
executed on a separate
platform
each tier can be developed
in different languages

centralized process logic
allows for code changes
in middle tier without
needing to modify client
or server
modularity
makes
it
easier
to
identify
problem
areas
and
quickly resolve issues
Table 3.1.3-1: Client server architecture comparison summary
Merkley Headgear System Design
52
APPENDIX C: COMPUTER SYSTEM CONFIGURATION
This will be the configuration for both the servers that run the Oracle database and
the web application.
Manufacturer
CPU
RAM
OS
Model
Hard Drive
Network Card
CD-ROM Drive
Monitor
Dell
Intel Pentium III 933Mhz
PC 512MB SDRAM
Window 2000
Dell Poweredge 4600
10x36GB Hard Drive (10,000rpm)
D-Link DFE-550+TX
Creative Labs 40X IDE
Samsung 17' SVGA SyncMaster 763MB
Merkley Headgear System Design
53
APPENDIX D: USE CASES
Appendix D-1: General Use Case
Figure D.1: Use case for entire system
Merkley Headgear System Design
54
Appendix D-2: Customer Use Case
Figure D.2: Customer use case
Merkley Headgear System Design
55
Appendix D-3: Sales Representative Use Case
Figure D.3: Sales representative use case
Merkley Headgear System Design
56
Appendix D-4: Integrated Database Use Case
Figure D.4: Integrated database use case
Merkley Headgear System Design
57
APPENDIX E: SEQUENCE DIAGRAM
Figure E.1: Order processing sequence diagram
Merkley Headgear System Design
58
APPENDIX F: ACTIVITY DIAGRAM
Figure F.1: Customer ordering process activity diagram
Merkley Headgear System Design
59
APPENDIX G: CLASS DIAGRAMS
Appendix G-1: Class Diagram Overview (With Redundancies)
Figure G-1.1: Class diagram with redundancies
Merkley Headgear System Design
60
Description (With Redundancies)
There are two inheritance relationships in the diagram: class customer and class
record. The customer super class has two child or inheriting classes: corporate and
personal customers. Corporate customers generally have higher priority and are identified
by their company name. Personal customers are just regular customers. There is an
associative relationship between this class system and the web-based client application
class. This class system represents the customer’s interaction with Merkley’s information
system. The second inheritance relationship is that of the record class. The record super
class has three child or inheriting classes: customer, order and product record. A
customer record is the database object from which the customer’s table is constructed. It
contains each customer’s account profile and current order information. The order record
is the database object from which the orders table is constructed. It contains all
information about a given order, including its present status. The product record is the
database object from which the products table is constructed. It contains all information
about each product in Merkley’s catalogue. The record class system possesses an
aggregation relationship with the integrated database class of which they are a part.
The other two classes are the applications, which interface the integrated database
class: the web-based client application class and the application for order processing and
shipping class. As can be seen from the diagram each of these classes possesses an
associative relationship with the database class.
Minimizing Redundancies in the Class Diagram
There are many redundancies in the class diagram from the Requirements
Analysis. A drastic re-structuring and elimination of a few classes will need to occur.
First, the Corporate Customer class and Personal Customer class contains very similar
information and can be merged to Class Customer. By making this change, a new
attribute Type, must be added to identify the type of customer. Also, the Web-Based
Application and Integrated Database Class are also eliminated because they give extra
information that can be obtained by looking at some Order Class we propose to create.
Thus a new class entitled Order, which will incorporate the number of users by
associating an appropriate CustID to each user who logs on. We also do not need the
Record class for a similar reason. A Customer Record can be tracked by looking at the
Customer Class. An Order Record can be traced by looking in an Order Class that has
information about the CustomerID, OrderID, and ProductID. Trivially, this will in sum
eliminates a Product Record if we create a class Product. The changes reflect a much
more simplified version of the Class Diagram, and models the whole system. It is much
more difficult to create a Class Diagram with fewer entities that model the whole system,
opposed to creating a Class Diagram with many entities contain an abundant amount of
redundancies.
Merkley Headgear System Design
61
Appendix G-2: Finalized Class Diagram (Without Redundancies)
Figure G-2.1: Overview of entire system(with redundancies eliminated)
Description
The above class diagram models the whole system in terms of our design. There
can be 0 or more customers. Every customer that makes an order can create one or more
orders. The customer also can look up or search for a Product whose productID should
match the products in the Order they make. For each separate Order, there is exactly one
Product that has the same ProductID. For each order, a Product can be searched in
Merkley's inventory, which contains 0 or more products of that type. Lastly, Merkely's
inventory has products (explaining the aggregation), which corresponds to a customer's
order.
Merkley Headgear System Design
62
Appendix G-3: Data Dictionary
The following gives the description of the Entity Classes, which are the
fundamental classes that make up the overall system and is tied closely (but not exactly)
with our ER diagram in Appendix N: Final Relationship Entity Diagram and Design.
(Recall that an ER diagram is not necessarily a 1:1 mapping to a class Diagram). The
Boundary, Control, and Database Classes, are in the next section.
Class
Description
Attributes
Operations
Customer
The customer class
represents
the
customer in the
information system.
It
models
the
customer’s
interaction with the
system.
The
customer
can
perform an array of
different operations
once logged into the
online
client
application.
-custID
-name
-address
-phone
-creditCard
-expiryDate
-type
+login(usrname,pwd):Boolean
-The
customer logs into the system, by
entering unique username and password
+logout():Boolean-The customer logs out
of the system, and their session is closed
and any activity is saved by the system
+search(str):void - Allows the customer
to search the Merkeley catalogue of
available products
+fillForm():Boolean - The customer
completes the online order form to for
submission and order processing
+createAccount():Boolean
customer creates an
Merkeley’s system
- A new
account in
+createOrder():Boolean - A customer
creates a new order by filling out the
online order form
+modifyAccountInfo():Boolean - The
customer
modifies
their
account
information and submits it for update in
Merkeley’s system
+modifyOrderInfo(orderID):Boolean - The
customer modifies their order information
and submits it for update in Merkeley’s
system by providing the orderID
+checkOrderStatus(orderID):String - A
customer checks the status of their order
online by providing the orderID
Product
The product class
represents
a
product
from
Merkley’s catalogue
of products.
Merkley Headgear System Design
-prodID
-name
-size
-colour
63
Order
Inventory
The order class
represents an order
for product(s) made
by
a
specific
customer.
The inventory class
represents products
currently in stock at
Merkley
Manufacturing
facilities.
-orderID
-prodID
-custID
-quantity
-orderStatus
-prodID
-quantity
Appendix G-4: Additional Classes not included in Entity Class Diagram
The following is included in the overall system, and are omitted in the simplification
of the Entity Class Diagram (which is a simplification of the overall system that models
the entire system) because these do not model entities in the database. But for
completeness sake, here they are. They describe the Boundary, Control, and Database
Classes.
Appendix G-4.1 Class Web-based Client Application
Type: Boundary Class and Database Class (BCED)
The web-based client application class represents the client application that
interfaces the database. It models the application’s interaction with both the customer and
the database. It essentially acts as the middleware of the information system.
Attributes:
o -numLoggedInUsers – An integer value representing the number of concurrent
user sessions currently open in Merkley’s system
o –sessionList – A list of all current sessions presently logged into the online
system
Functions:
 +startSession():void – Creates a new session for the user once confirmed log in
has occurred
 +endSession():void – Closes the users current session and makes sure all new or
modified information has been saved in the system
 +timeout():void – Logs the user out of the application after 10 minutes of
inactivity
 +searchResults():void – Returns the results of a users search of Merkley’s product
catalogue
 +makeAccount():Boolean – Creates a new customer record and inserts it into the
customer’s table of the integrated database
 +makeOrder():Boolean – Creates a new order record and inserts it into the orders
table of the integrated database
Merkley Headgear System Design
64




+changeAccountInfo():Boolean – Updates the customer record with the changes
requested by the user
+changeOrderInfo():Boolean – Updates the order record with the changes
requested by the user
+returnOrderStatus():String – Returns the current status of an order
+validate():Boolean – Performs page validation on all forms submitted in the
application
Appendix G-4.2 Class Integrated Database
Type: Database Class (BCED)
The integrated database class represents the database itself, which stores all the
information contained within the entire information system. It models both the
information itself and the operations that must be performed to store, remove and update
existing information.
Attributes:
o -customer:Table – The table containing the customer records. Primary key:
customerID, foreign keys: ordered
o -order:Table – The table containing the order records. Primary key: orderID,
foreign keys: customerID, productID
o -ordersToProcess:Table – The table containing the order records to be processed.
Primary key: orderID, foreign keys: customerID, productID
o -itemsToShip:Table – The table containing the order records to be shipped.
Primary key: orderID, foreign keys: customerID, productID
o -inventories:Table – The table containing the inventory records. Primary key:
productID, foreign keys: orderID
o -products:Table– The table containing the product records. Primary key:
productID, foreign keys: none
Functions:
 +insert(values,Table):Boolean – Inserts the given values into the given table (i.e.
inserts a new record)
 +delete(values,Table):Boolean – Deletes the given values from the given table
(i.e. removes the record)
 +modify(values,Table):Boolean – Changes the old values with new values for the
given table (i.e. updates the record)
Merkley Headgear System Design
65
Appendix G-4.3 Manufacturing, Shipping Class and Record Class
Type: Control Classes (BCED)
The Record, Manufacturing and Shipping Classes are eliminated in the finalized
Class Diagram because all information that needs to be obtained here can be found in the
Order Class. For example orderComplete (orderID) and changeOrderStatus (orderID) are
equivalent to the Order Status attribute in Class Order. The subclasses in Record Class
(refer to Appendix G-1: Class Diagram (Without Redundancies)) are also omitted for the
same reason.
Having an Order Record, Customer Record, and Product Record is redundant
because we can identify these records by their appropriate ID, (i.e. CustID, OrderID, and
ProdID) and put these attributes in the Order class. Therefore, this the reason why we
simplified our previous class diagram. Please refer to the Appendix F: Data Dictionary
of Requirements Analysis for more details on the descriptions and specific attributes and
function of the Record, Manufacturing and Shipping Class.
Merkley Headgear System Design
66
APPENDIX H: COLLABORATION DIAGRAM
Figure H.1: Collaboration diagram for an order cycle
Merkley Headgear System Design
67
APPENDIX I: STATE DIAGRAMS
Appendix I-1: System Overview
Figure I-1.1: System Overview
Merkley Headgear System Design
68
Appendix I-2: Web Ordering System
Figure I-2.1: Login subsystem
Figure I-2.2: Main Menu subsystem
Merkley Headgear System Design
69
Figure I-2.3: Order Entry Subsystem
Figure I-2.4: Account Information Subsystem
Merkley Headgear System Design
70
Appendix I-3: Administration & Order Processing System
Figure I-3.1: Administration & order processing subsystem
Merkley Headgear System Design
71
APPENDIX J: OCL DESCRIPTIONS
The following constraints supplement the UML models that are included. We
have provided the following descriptions because there are some expressions such as post
and preconditions that we could not model through UML alone. Therefore the constraints
below only model the most crucial requirements in our system. Listed are the four main
OCL constraints we have.
Note: All OCL keywords and notation is in Bold.
Class: Customer
Constraint Based on: Order Creation
Description:
When a customer orders an item, they must have sufficient funds to purchase the
product. After the order is created, their balance decreases by that amount.
OCL Expression
Customer :: createOrder()
pre: self.paymentInfo > product.price
post : self.paymentInfo = self.balance - product.price
Class: Customer
Constraint Based on: Account Creation
Description:
When a customer creates an account, they are identified by a unique customerID. The
unique ID does not exist before the account is created.
OCL Expression
Customer :: createAccount()
pre: self.customerID = null
post: notEmpty ( self.createAccount( ) )
Merkley Headgear System Design
72
Class: Order
Constraint Based on: Attributes of the Order, after creation.
Description:
After an order is created, the orderID should be valid, and the productID must match a
product that is found in Class Product for a form to be valid. Also it makes no sense
ordering 0 products. There needs to be at least 1 product for an entry to be valid.
OCL Expression
self.notEmpty (orderID) implies
self.quantity ≥ 1 union
self.productID = Product.productID.
Class: Product
Constraint: Product ID
Description:
The Product ID must be valid. The condition is that it could be identified the ID can
be identified in Class Inventory or that the ProductID matches the ID found when
placing an order
OCL Expression
Either the ProductID is found in Inventory (If the productID is not empty) or the
ProductID is found in a valid Order. A valid Order means quantity ≥ 1
(self.notEmpty (productID) implies
self.productID = Inventory .productID).
union
(Order.notEmpty (orderID) implies
self.quantity ≥ 1 union
self.productID = Order.productID).
Merkley Headgear System Design
73
APPENDIX K: DATABASE TABLE DESIGN
Figure K.1: Original database table design before normalization
The above table shows the general layout and internals of the database. Within it
there are six tables. The three main tables are customer, order and product. These tables
correspond to a customer, order and product record respectively. Each had a primary key
corresponding to a unique ID of that type of record. The customer and order table each
contain a foreign key, which is the other's primary key. This is necessary for the efficient
retrieval of information needed for the proposed functionally of the system. The other
three tables are: ItemsToShip, orderToProcess and Inventories. The first two correspond
to more specific instances of the orders table but where in each table they only contain
orders in that phase of completion. The Inventories table stores quantities of product
records. It thus has the product ID in it as well.
Merkley Headgear System Design
74
APPENDIX L: ACID COMPLIANT DATABASE
The primary test for reliability of a database management system (DBMS) is the
ACID test. ACID-compliant systems possess certain properties that offer greater
protection to stored data in the event of an unexpected hardware or software failure, even
if the system crashes. The four ACID properties are atomicity, consistency, isolation and
durability.
Atomicity
When a transaction that updates the database occurs, either all of the update
occurs, or none of the update occurs, even if a hardware or software failure occurs during
the transaction.
Consistency
Any changes to the value of an instance are consistent with all other changes to
other values of that instance. An ACID-compliant DBMS provides the tools to enforce
consistency, usually in the form of rules checking. However, it is up to the designer to
implement consistency enforcement.
Isolation
Isolation prevents changes in concurrent transactions from conflicting with each
other. Isolation also allows multiple users to each use the database as if he or she were the
only user. Isolation is primarily accomplished through locking. To lock a table or record
prevents other transactions from reading or writing the data in that table or record until
the current transaction is finished. This process ensures that no transaction reads data,
which is no longer valid.
Durability
When a hardware or software failure occurs, the information in the database must
be accurate up to the last committed transaction before the failure. This durability is
required even if the failure causes the operating system to crash or the server to shut
down. The only exception is a hard disk failure, at which point the database is valid up to
the last successful backup made before the failure.
Note: All durable database management systems are atomic, but not all atomic database
management systems are durable.
References:
Daniel C. Silverstein. http://squishdot.org/989843029/index_html.
Merkley Headgear System Design
75
APPENDIX M: PRELIMINARY ENTITY RELATIONSHIP DIAGRAM
Figure M.1: The Entity Relationship Diagram (before normalization)
Merkley Headgear System Design
76
APPENDIX N: FINAL ENTITY RELATIONSHIP DIAGRAM AND DESIGN
Below is the optimized relational schema after normalizations, generalizations,
and reductions of all redundancies have occurred.
Customer (Name, Address, CustID, Password, PhoneNumber, BillingInfo,Type)
Order (CustID, OrderID, ProdID, PaymentStatus, OrderStatus, Quantity, TotalPrice)
Product (ProdId, Colour, Size, ProdName)
InventoryComposition (ProdID, Quantity)
Appendix N-1: Final Entity Relationship Diagram
Figure N-1.1: Final ER diagram
Merkley Headgear System Design
77
Appendix N-2 Data Dictionary for Final Relational Schema
Entities:
Customer (CustID, Name, Address, Phone, CreditCard, ExpiryDate, Type)







CustID: The unique ID of this customer (their login name to the system)
Name: The customer’s name
Address: The customer’s full address
Phone: The customer’s phone number
CreditCard: The customer’s credit card number
ExpiryDate: The expiry date of the customer’s credit card
Type: Whether it’s a corporate customer or personal customer (corporate
customer’s have the additional option to request custom orders
Product (ProdID, Name, Size, Color)




ProdID: The unique ID of this product
Name: The name of this product
Size: The dimensions of the product
Color: The color scheme of the product
Relationships:
Order (OrderID, ProdID, CustID, Quantity, OrderStatus)





OrderID: The unique ID of this order
ProdID: The unique ID of this product
CustID: The unique ID of this customer
Quantity: The quantity of the order
OrderStatus: The current status of this order
Inventories (ProdID, Quantity)


ProdID: The unique ID of this product
Quantity: The quantity of the product in stock
Redundancy Decision
After analyzing the above operations, it is clear that keeping redundant
information is beneficial since access to the database will be cut down a lot.
Merkley Headgear System Design
78
APPENDIX O: OPERATION COSTS
Cost Estimation of Operation 1: Adding a New Customer
Operation 1 With Redundancy
Concept
Type
Accesses
Type
Personal
Corporate
Entity
Entity
1
1
W
W
Accesses
Type
1
W
Operation 1 Without Redundancy
Concept
Type
Customer
Entity
Presence of Redundancies
Total Writes = 2W = 2W x 2 = 4 R
Total Reads = 0R = 0 R.
(4 + 0) Accesses x 100/day = 400 accesses per day.
Absence of Redundancies
Total Writes = 1W = 1W x 2 = 2 R
Total Reads = 0R = 0 R.
(2+ 0)Accesses x 100/day = 200 accesses per day.
Cost Estimation of Operation 2: Updating/Deleting a Customer Account
Operation 2 With Redundancy
Concept
Type
Personal
Corporate
Entity
Entity
Operation 2 Without Redundancy
Concept
Type
Customer
Entity
Accesses
Type
1
1
RW
RW
Accesses
Type
1
RW
Presence of Redundancies
Total Writes = 2W = 2W x 2 = 4 R
Total Reads = 2R = 2 R.
(4 + 2) Accesses x 25/day = 150 accesses per day.
Merkley Headgear System Design
79
Absence of Redundancies
Total Writes = 1W = 1W x 2 = 2 R
Total Reads = 1R = 1 R.
(1+ 2) Accesses x 25/day = 75 accesses per day.
Cost Estimation of Operation 3: Checking an Order Status
Operation 3 With Redundancy
Concept
Type
Personal
Corporate
Order
ProductForm
Entity
Entity
Relation
Relation
Operation 3 Without Redundancy
Concept
Type
Customer
Order
Entity
Entity
Accesses
Type
1
1
1
1
R
R
R
R
Accesses
Type
1
1
R
R
Presence of Redundancies
Total Writes = 0W
Total Reads = 4R = 4 R.
(0 + 4) Accesses x 10/day = 40 accesses per day.
Absence of Redundancies
Total Writes = 0W
Total Reads = 2R = 2 R.
(0+ 2) Accesses x 10/day = 20 accesses per day.
Cost Estimation of Operation 4: Modifying an Order Status
Operation 4 With Redundancy
Concept
Type
Personal
Corporate
Order
ProductForm
Production
Entity
Entity
Relation
Entity
Relation
Operation 4 Without Redundancy
Concept
Type
Customer
Order
Entity
Entity
Merkley Headgear System Design
Accesses
Type
1
1
1
1
1
RW
RW
R
R
RW
Accesses
Type
1
1
RW
R
80
Presence of Redundancies
Total Writes = 3W = 3W x 2 = 6R
Total Reads = 5R = 4 R.
(6 + 4) Accesses x 5/day = 50 accesses per day.
Absence of Redundancies
Total Writes = 1W = 1W x 2 = 2R
Total Reads = 2R = 2 R.
(2+ 2) Accesses x 5/day = 20 accesses per day.
Cost Estimation of Operation 5: Configuring a New Product for Inventory
Operation 5 With Redundancy
Concept
Type
ProductForm
Production
Product
InventoryComposition
Entity
Relation
Entity
Relation
Operation 5 Without Redundancy
Concept
Type
Product
InventoryComposition
Entity
Relation
Accesses
Type
1
1
1
1
R
R
RW
R
Accesses
Type
1
1
RW
R
Presence of Redundancies
Total Writes = 1W = 1W x 2 = 2R
Total Reads = 4R = 4 R.
(6 + 4) Accesses x 250/day = 2500 accesses per day.
Absence of Redundancies
Total Writes = 1W = 1W x 2 = 2R
Total Reads = 2R = 2 R.
(2+ 2) Accesses x 250/day = 1000 accesses per day.
Cost Estimation of Operation 6: Searching for a Product
Operation 6 With Redundancy
Concept
Type
ProductForm
Production
Product
InventoryComposition
Entity
Relation
Entity
Relation
Merkley Headgear System Design
Accesses
Type
1
1
1
1
R
R
R
R
81
Operation 6 Without Redundancy
Concept
Type
Product
InventoryComposition
Entity
Relation
Accesses
Type
1
1
R
R
Presence of Redundancies
Total Writes = 0 W
Total Reads = 4R = 4 R.
(0 + 4) Accesses x 1000/day = 4000 accesses per day.
Absence of Redundancies
Total Writes = 0 W
Total Reads = 2R = 2 R.
(2+ 0) Accesses x 1000/day = 2000 accesses per day.
Cost Estimation of Operation 7: Ordering a Product
Operation 7 With Redundancy
Concept
Type
Orders
ProductForm
Relation
Entity
Operation 7 Without Redundancy
Concept
Type
Order
Relation
Accesses
Type
1
1
RW
R
Accesses
Type
1
RW
Presence of Redundancies
Total Writes = 1/2 W = 1R (Since there is a 0.5 chance that changes are made)
Total Reads = 2R = 2 R.
(3 ) Accesses x 0.5/day = 1.5 accesses per day.
Absence of Redundancies
Total Writes = 1/2 W = 1 R (Since there is a 0.5 chance that changes are made)
Total Reads = 1R = 1 R.
(2 ) Accesses x 0.5/day = 1 access per day.
Cost Estimation of Operation 8: Updating Product Inventory
Operation 8 With Redundancy
Concept
Type
Accesses
Type
Production
Product
1
1
R
RW
Relation
Entity
Merkley Headgear System Design
82
Operation 8 Without Redundancy
Concept
Type
Product
Entity
Accesses
1
Type
RW
Presence of Redundancies
Total Writes = 1 W = 1W x 2 = 2 R
Total Reads = 2R = 2 R.
(2+ 2) Accesses x 0.15/day = 0.6 accesses per day.
Absence of Redundancies
Total Writes = 1 W = 1W x 2 = 2R
Total Reads = 1R = 1 R.
(2+ 1) Accesses x 0.15/day = 0.45 access per day.
Cost Estimation of Operation 9: Modifying /Deleting Product Information
Operation 9 With Redundancy
Concept
Type
Accesses
Type
Production
Product
Relation
Entity
1
1
R
RW
Accesses
Type
1
RW
Operation 9 Without Redundancy
Concept
Type
Product
Entity
Presence of Redundancies
Total Writes = 1 W = 1W x 2 = 2 R
Total Reads = 2R = 2 R.
(2+ 2) Accesses x 0.02/day = 0.08 accesses per day.
Absence of Redundancies
Total Writes = 1 W = 1W x 2 = 2R
Total Reads = 1R = 1 R.
(2+ 1) Accesses x 0.02/day = 0.06 access per day.
Merkley Headgear System Design
83
APPENDIX P: USER INTERFACE DESIGN
The user interface for both the Web Ordering system application and
Administration & Order Processing application are designed with simplicity, ease of
navigation and functionality in mind. The following sections describe each screen that a
customer or employee may interact with along with screen shots of what the design may
look like. The available screen images do not represent all the pages within the site, but
give a general overview of the look, feel, and functionality of the applications.
Appendix P-1: Web Ordering System Application
Figure P-1.1: Login interface
Merkley Headgear System Design
84
Figure P-1.2: Main Menu interface
Figure P-1.3: Order Entry interface
Merkley Headgear System Design
85
Figure P-1.4: Order Entry interface – browse catalogue
Figure P-1.5: Product Information interface
Merkley Headgear System Design
86
Figure P-1.6: Search interface
Figure P-1.7: Order Entry interface – shopping cart
Merkley Headgear System Design
87
Figure P-1.8: Order Entry interface – complete order
Merkley Headgear System Design
88
Merkley Headgear System Design
89
Appendix P-2: Administration & Order Processing Application
Figure P-2.1: Main Menu interface
Merkley Headgear System Design
90
Figure P-2.2: Customer Administration interface
Figure P-2.3: Orders interface
Merkley Headgear System Design
91
APPENDIX Q: FUNCTIONAL REQUIREMENTS
In this section, we will describe details that facilitate the functionality outlined in
both the application descriptions and user interface sections.
Appendix Q-1: Details of Data Storage
The system will need to store the following types information within the database
component:
-
Information pertaining to customer accounts and other customer information
Information about all products in the Merkley catalogue
Information about all orders currently in the processing pipeline
Information about employees
Information about product inventories
Additionally, when a customer account is to be deleted from the Customers table of
the database, it cannot be removed until all orders ordered by the customer is removed
from the database as well (because the order makes reference to the customer ID). After
a certain time interval, completed orders are removed from the database and backed up
on another server for record keeping. Until then, the customer account will be
deactivated until it is ready for deletion from the database.
Appendix Q-2: Details of Output
The output of the information system is defined by the user interfaces (refer to
Appendix P: User Interface Design). They are as follows:
Online Client Application






A customer will have a login screen asking them for a login name and password.
If he/she makes a mistake inputting either field they will be given an error
message and asked to try again. If they give incorrect input three times, they will
be told to contact customer support.
A personal customer may create a new account for himself/herself. If a corporate
customer needs a new account, a sales representative must create one for the
customer.
Once logged in a customer has an array of options. They can view their account
information by clicking “My Account”. This will display their account
information.
They may also create a new order by clicking “Order Entry”. They may check the
status of one of their orders by clicking “Order Status”.
If they have the sufficient privileges (i.e. a corporate customer), they may make a
custom order by clicking “Custom Order”.
A customer may also view the status of any placed orders.
Merkley Headgear System Design
92








Finally, they may logout by clicking “logout”
When a customer enters “Order Entry”, he/she is given a new screen, which
allows him/her to browse the catalogue and view thumbnails of the products.
At any time, the customer can return to the initial screen by clicking “Home”.
If the customer clicks on a thumbnail image of the product while browsing, this
will bring up a screen giving detailed information about the given product.
When done with order entry, a customer clicks “checkout”, which brings him/her
to a screen prompting for payment information.
Upon completing an order, the system returns an order number to the customer
enabling the customer to track the order.
A screen for custom orders is available to corporate customers who click “Custom
Order”.
A customer may view the status of any orders placed. Clicking on “Order Status”
will present the customer with a screen listing the customer’s orders and their
status. Order details may be viewed by clicking on a listed order number.
Administration and Order Processing Application








Employees may login in a similar fashion as customers; they have a login screen
as well.
Once logged in, employees have several options depending on permissions given
to the employee. Sales representatives can view customers, orders, as well as
products, while shipping and manufacturing employees only have access to the
orders menu option.
If they click “customers”, they will be brought to a new screen giving them
several options. They can create, modify or delete customer accounts, as well as
search the database for particular customers.
Similarly, they may view all the current orders in the database. They may change
the order status of any order at any time by changing the order status to a different
value from the drop-down menu.
Employees may view all the products in Merkley’s catalogue. They can add new
products, remove discontinued products, and modify product information.
Manufacturing personnel can generate a digital work order and this will also
change the order status automatically
Manufacturing personnel can signify the order is complete to the application and
the order status will change and inventory updated
Customer
Appendix Q-3: Details of Input
The system’s inputs consist only of customer inputs from the online client
application as well as employee inputs from the Administration & Order Processing
application. The only other inputs are manual changes made by system and database
administrators to the database.
Merkley Headgear System Design
93
Appendix Q-4: Details of Information Processing
This information system is very processing intensive. The following operations will
be supported:
Operation 1: Adding a New Customer – Add a new customer account to the database
either by a customer creating a new account in the online client application or by an sales
representative.
Operation 2: Updating/Deleting a Customer Account – Once logged in, a customer may
modify their user account with Merkley. An administrator may also modify or delete a
customer account if it is necessary.
Operation 3: Checking an Order Status – A customer will be able to check the current
real-time status of their order as it gets processed.
Operation 4: Modifying an Order Status – A shipping or manufacturing clerk may
modify the status of an order depending on order’s phase in processing.
Operation 5: Configuring a New Product for Inventory – When a product is introduced to
Merkley’s catalogue of products, a sales representative will be able to add it to the
database.
Operation 6: Searching for a Product – Customers and sales representative will be able
to browse Merkley’s catalogue of products on the online client application and
administration and order processing application, respectively.
Operation 7: Order a Product – A customer orders a product using the online order form
once logged into the online client web application.
Operation 8: Updating Product Inventory – A sales representative will be able to modify
inventory information if necessary. Ordinarily this will be automatically done by the
administration and order processing application after orders have been manufactured and
entered as complete or when shipped.
Operation 9: Modifying /Deleting Product Information – If details of a product change,
an administrator will be able to modify them or even delete the product if it is
discontinued.
Merkley Headgear System Design
94
APPENDIX R: NON-FUNCTIONAL REQUIREMENTS
In this section, we will describe aspects of the web ordering system that are
concerned with how well it supports the functional requirements. We will also define
global constraints on the software system such as performance, reliability, security
maintainability, portability, as well as physical constraints.
Appendix R-1: Interface Requirements
The users of either the web ordering system or the Administration & Order
Processing application are novice computer users and should not be inundated by
unnecessary information or functions. The interfaces of each system applications must
be simplistic yet highly functional, allowing the user to maximize his or her interaction
with Merkley’s system. In order to access the system, the user must log in with a user ID
and password. Once the user has been authenticated, he or she is presented with a Main
Menu from which menu options may be selected. Each main menu option then takes the
user to the respective application.
Appendix R-2: Performance Requirements
Time Bounds

Since transactions will be occurring daily, the web server shall not take more than
five seconds for each transaction to be placed.

As the system is using an Oracle database (see Appendix K of Requirements
Analysis), it shall be able to handle at least 100 concurrent user connections and
will be running 24 hours a day.
Space Bounds

The system must handle at least 200 transactions and 400 orders per day (see
Appendix K of Requirements Analysis), which would take about 200 KB for
storage space per server.

Merkley may require an additional server to back up their system in case they
experience any technical difficulties. Therefore, the estimated size of the database
tables and user logs will be approximately between 800 MB to 1000 MB in
several years.
Reliability
 The system shall be extremely reliable in production mode- the system uptime
must be 100% operational 99.5% of the time.
 The Rate of Failure Occurrence (ROCOF) shall be at most 1/500- at most one
failure is likely to occur within every 500 user sessions.
 No more than one bug per 10 000 lines of code may remain in the system after
delivery
Merkley Headgear System Design
95
Security
 The web application will run on a secure server using encryption, therefore the
system cannot be tampered with from outside sources.
 Each account shall be encrypted with an alphanumerical password and a unique
username that is generated by the system.
 Every client-based program and software shall require login with a username
password to protect system tampering by employees or the public. The
transactions between the system server and client programs will be encrypted with
a 256 key algorithm to ensure secure transactions.
 The Oracle database system will shut down upon detection of any fatal software
error that may have been caused by system tampering.
 The database system will record all transactions in a daily log, and the web server
will record all requests made in a daily log.
 A “Black Box” system shall be imposed to avoid outsiders such as hackers to
steal protected customer information. This system shall also protect Merkley
employees from tampering with the system.
Survivability
All information and records shall be backed up daily on a secondary server in the
event of a system failure. Log files and transaction records older than a certain period of
time shall be archived to another server.
Appendix R-3: Operating Requirements
Physical Constraints
There are no physical constraints for the system. The system will be running on
an existing server and employees accessing the system will use existing terminals located
on the current internal network.
Personnel Availability
Customer support specialists are to be on hand during regular business hours to
aid any customers encountering any problems. Any support requests outside of regular
business hours can be made through e-mail or voice mail for a support specialist to
receive the next business day. Problems are then routed to the appropriate person
(database administrator, technical support, etc) to aid in fixing the situation.
In the event that that the system fails, technical support specialists are on site to
fix any problems or repair the system. On a bi-monthly basis, they will perform
maintenance checks to ensure that the system is running smoothly or to detect any flaws
early on before they pose a greater threat to the operation of the system or the business.
Skill Level Considerations
End users should have minimal difficulty using the client application, navigating
through the site and its applications because of its user-friendly interface. The user must
simply be knowledgeable in using a browser to launch the website.
Merkley Headgear System Design
96
Employees using the employee application should also have no problem with the
application. Short training sessions would be given to all employees, which must
eventually use the system. The application will be running on a Windows operating
system, which is what was previously being used before the new system implementation,
thus employees are already familiar with its operation (see Appendix K of Requirements
Analysis).
Appendix R-4: Lifecycle Requirements
Quality of the design
 Maintainability- According to Oracle, the database shall exhibit a Mean Time to
Repair (MTTR) of no more than 3600 seconds (1 hour), which is the time required
to correct and restore the database in the case of system failure.
(Source: http://www.oracle/Articles/8i/RecoveryEnhancements8i.asp)
 Enhanceability- The system design shall allow for ease in system upgrades and
expandability.
 Portability- The system shall be running on a Windows platform and will not be
required to run on anything else. Therefore, there are no requirements for
portability.
 Lifespan- The system’s lifespan is expected to be at least 20 years; that is, the
system will still be fully operational and maintainable for a minimum of 20 years.
The system will age gracefully as modularity in design will allow for expandability
and upgrades.
 Efficiency- The system shall handle up to 10000 simultaneous terminals or users
accessing and performing transactions on the web-based or company order
processing and shipping applications without any performance degradation. In this
case, login time shall take no more than one second after the user sends login
information to the system. Any more users exceeding the maximum capacity shall
result in degraded system performance, where logging into an application shall take
between 5 and 10 seconds.
Limits on Development
There are no development time limits, nor limits on resource availability.
Appendix R-5: Economic Requirements
As determined in the Feasibility Study performed for Merkley Headgear, the
development of the system shall cost $16 000 and the maintenance of the system shall
cost an average of $200 000 per annum. To reduce costs, the system shall use an Oracle
database over IBM’s DB2 (see Appendix N of Requirements Analysis).
Merkley Headgear System Design
97
Appendix R-6: Server Requirements
Operating System
 The server shall be running Windows 2000 Server since this is the current operating
system that Merkley is currently using.
Memory
 The server shall be equipped with 512 MB for speed and reliability
Storage
 The server shall have 360 GB worth of storage in order to store and back up the
large amounts of data on Merkley’s system.
 The server shall also have a Tape Backup to perform weekly backups.
CPU

The server shall use an Intel Pentium III 933 MHz CPU to handle a high level
input/output procedures
Network
 A D-Link network shall be employed to provide a high bandwidth allowing
multiple users to access the database.
 Copper network cables with 100Mbps bandwidth utilized to facilitate intranetwork.
Appendix R-7: System Infrastructure
To facilitate the proposed system functionality the following system infrastructure
will be created:
-
An Oracle9i database will run on a dedicated server running Windows 2000
server
The client web application will run on another server acting as the web server,
which is also running Windows 2000 server
A network hub will support the interface between the machine running the Oracle
database and the host machine running the web server application
45 Dell networked workstations will run on intra-networked centralized at
database server
The choice of using Oracle based software is based upon several factors. First and
most importantly, Merkeley already uses Oracle databases and has licenses. Their
administrators are already familiar with the software and upgrading to 9i should not be a
problem. Oracle is also ACID compliant, a requirement of Merkeley. To scale to
Merleley’s present and future customer loads, it is projected they will have 5000 products
in inventory and an average of 200 online customer transactions occurring daily. Oracle
will scale to this requirement with technologies such as OLAP (Analytic Queries per
Merkley Headgear System Design
98
minute technology) with real application clusters for faster queries. It also accommodates
the RDA protocol for large data transfers.
The web application will be written using java servlet technology. The reason for
servlets over other server side technologies such as the CGI interface and ASP is that it is
faster and has cross-platform ability. SQL libraries from the Java API will be used to
query the Oracle database.
Merkley Headgear System Design
99
APPENDIX S: GLOSSARY OF TERMS
ERP - Enterprise Resource Planning, a business management system that integrates all
facets of the business, including planning, manufacturing, sales, and marketing
Please refer to http://www.cio.com/research/erp/edit/erpbasics.html for more details.
GUI - Graphical User Interface refers to a program interface that takes advantage of
the computer's graphics capabilities to make the program easier to use. Well-designed
graphical user interfaces can free the user from learning complex command languages.
Please refer to http://www.clienthelpdesk.com/dictionary/gui.html for more details
OWDS - Oracle Web Developer Suite is an integrated and flexible set of products for
creating scalable, high performance and robust enterprise class database applications for
server based and client/server deployment.
Please refer to http://www.oracle.com for more.
HTML - HyperText Markup Language, the authoring language used to create
documents on the World Wide Web. It defines the structure and layout of a Web
document by using a variety of tags and attributes
Please refer to http://www.w3.org/MarkUp/ for more details.
JDBC - JDBCTM technology is an API that lets you access virtually any tabular data
source from the JavaTM programming language. It provides cross-DBMS connectivity to a
wide range of SQL databases, and now, with the new JDBC API, it also provides access
to other tabular data sources, such as spreadsheets or flat files.
Please refer to http://java.sun.com/products/jdbc/ for more details.
JSP - JavaServer PagesTM technology allows web developers and designers to rapidly
develop and easily maintain, information-rich, dynamic web pages that leverage existing
business systems
Please refer to http://java.sun.com/products/jsp/ for more details
PHP - Hypertext Preprocessor, an open source, server-side, HTML embedded scripting
language used to create dynamic web pages. In an HTML document, PHP script is
enclosed within special PHP tags.
Please refer to http://www.php.net/ for more details.
SQL - Structured Query Language is a standard language for accessing databases.
Please refer to http://www.w3schools.com/sql/default.asp for more details
SSL - Secure Socket Layer has been universally accepted on the World Wide Web for
authenticated and encrypted communication between clients and servers.
Please refer to http://developer.netscape.com/docs/manuals/security/sslin/contents.htm
fore more details
Merkley Headgear System Design
100
APPENDIX T: TEAM MEETINGS
Team Meeting #1
Location : Bahen Centre, Room 2210
Date: March 23, 2003
 We met together to discuss the requirements specification of assignment 2. We
discussed possible design issues that we should discuss with the Merkley Staff,
and also a specialist in Oracle. We have decided that each of us will need to do
some research and contribute with collecting technical data.
 Since Michelle has contact with the Merkley Staff, she would be collect the data
for global system architecture. Leeor and Anthony would of collecting the data
from the existing computer networks.
Team Meeting #2
Location : Bahen Centre, Room 2210
Date: March 27, 2003
 By this time, we had enough information to begin the Design analysis. We began
defining the global system architecture, which consisted of the computer networks
that Anthony and Leeor found information for.
 We evenly divided the tasks, and began to develop key ideas that we could use in
the write up the report. Specifically, we wanted to finish the software platform
selections for the next meeting
Team Meeting #3
Location : Bahen Centre, Room 2210
Date: March 31, 2003
 We had finished writing the software selection platform. Now we had to select
the specific hardware, software, and networking that we needed for the new
system..
 We split the UML diagrams into three, such that every member was doing
roughly about three diagrams each. The diagrams, we had thought of using
included Use cases, Class diagrams, State diagrams, Collaboration Diagrams,
Sequence Diagrams, and Activity Diagrams.
Merkley Headgear System Design
101
Team Meeting #4
Location : Bahen Centre, Room 2210
Date: April 2, 2003
 When we assembled again, we re-examined our Use case, Class diagrams, State
diagrams, and Collaboration diagrams first.
 When we were satisfied these were correct, we began to define invariants for the
classes we have come up with - that is we started to begin the OCL aspect of the
assignment.
 Now we had to design the database schema for the database component of our
system. We accounted and discussed the workloads when we were working on
the relational database schema.
Team Meeting #5
Location : Bahen Centre, Room 2210
Date: April 5, 2003
 When we met again, we concentrated on the interaction diagrams, namely, the
Sequence diagram, and Activity diagrams, and finalizing the ER diagram and
doing the normalizations for the specific schemas.
 We begin to write up and design the I/O procedures and user interfaces. Each of
the subsystems that we thought should be incorporated was discussed. Each of us
wrote the description for at least one subsystem.
Team Meeting #6
Location : Bahen Centre, Room 2210
Date: April 12, 2003
 This last meeting was devoted to writing up the report in good, having a well
developed introduction, and scope so that the reader of the report has a good
understanding of not only the system, but a good assessment of the specific design
details.
 We've made sure that the Design decisions satisfied the Requirements and Nonfunctional requirements were consistent with our UML diagrams.
 Finally, we wrote the conclusion together, along with the Team report, and this
section.
Merkley Headgear System Design
102
APPENDIX U: TEAM REPORT FORM
Team Report Form
(must be submitted with assignment)
Description of roles and contributions of each team member:
The distribution of the work, was distributed evenly just like our first report. Again in
this report, all three team members took advantage of the ICQ Web technology to discuss
all report issues in real time. Contributions during the report write up were more or less
equal as we were able to provide our opinions and feedback to each other’s suggestions
without delay.
We each took our own time to make amendments to the report but they were saved in a
separate draft file and e-mailed to each other for review and approval.
Each team member dedicated an equally sufficient amount of time and effort to make this
report possible.
Name
% of team Effort
Signature
Leeor Engel
Leeor Engel
(991032538)
33
1/3%
Anthony Ku Ong
(991040119)
33
1/3%
Anthony Ku Ong
Michelle Li
(991015931)
33 1/3%
Michelle Li
Merkley Headgear System Design
103