8/2/2019 SDS Sample
1/65
Quality Management System
DOCUMENT ADMINISTRATION: The master of this document is stored in an electronic database and is
write-protected. It may only be altered by authorized persons. Copies may be printed out, but this is not
recommended. Viewing of the master online ensures access to the current issue. Any hard copy of this
document or unlocked soft copy must be regarded as an uncontrolled copy.
ABCSoftware Design Specification
Version 0.5
Project/Department: ABCIssue Date: December 5, 2007
Issue Status: Draft
Owner: ABC
Author: Hau Tran
Location: ABC Repository
Confidential Class:
8/2/2019 SDS Sample
2/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 2 of 65
Table of Contents
1. DOCUMENT MANAGEMENT 61.1.1 Document Reviewer History 6
1.1.2 Document Approver History 6
1.1.3 Document Revision History 6
2. INTRODUCTION 7
2.1 Overview 7
2.2 Design Map 7
2.3 Supporting Materials 8
ABC web site: http://www.ABC.com/content/us/en/index.jsx Error! Bookmark not defined.
FedEx web site: http://www.fedex.com/us/officeprint/main/ Error! Bookmark not defined.
3. CONSIDERATIONS 93.1 Assumptions and Dependencies 9
3.2 System Environment 9
3.3 Processes, Policies, Conventions, and Tactics 10
4. ARCHITECTURE 10
4.1 System Architecture 10
4.2 Processes of Key Components in the Architecture 12
4.3 Architecture Decisions and Rationales 12
5. COMPONENT DESIGN 13
5.1 Components Dependencies Diagram 13
5.2 Description of the Components 145.3 Components and Use Cases Mapping 15
5.4 Detail Component Design 16
5.4.1 Module 16
5.4.1.1 Processing Narrative 16
5.4.1.2 Sequence Diagram 16
5.4.1.3 Class Diagram 17
5.4.1.4 Interface Description 18
5.4.1.5 Data Processing 19
5.4.2 Module 19
5.4.2.1 Processing Narrative 195.4.2.2 Sequence Diagram 19
5.4.2.3 Class Diagram 20
5.4.2.4 Interface Description 20
5.4.2.5 Data Processing 21
5.4.3 Module 21
5.4.3.1 Processing Narrative 21
5.4.3.2 Sequence Diagram 21
5.4.3.3 Class Diagram 22
5.4.3.4 Interface Description 22
5.4.3.5 Data Processing 235.4.4 Module 23
8/2/2019 SDS Sample
3/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 3 of 65
5.4.4.1 Processing Narrative 23
5.4.4.2 Sequence Diagram 23
5.4.4.3 Class Diagram 23
5.4.4.4 Interface Description 245.4.4.5 Data Processing 24
5.4.5 Module 25
5.4.5.1 Processing Narrative 25
5.4.5.2 Sequence Diagram 25
5.4.5.3 Class Diagram 26
5.4.5.4 Interface Description 26
5.4.5.5 Data Processing 27
5.4.6 Module 27
5.4.6.1 Processing Narrative 27
5.4.6.2 Sequence Diagram 28
5.4.6.3 Class Diagram 28
5.4.6.4 Interface Description 29
5.4.6.5 Data Processing 29
5.4.7 Module 30
5.4.7.1 Processing Narrative 30
5.4.7.2 Sequence Diagram 30
5.4.7.3 Class Diagram 30
5.4.7.4 Interface Description 31
5.4.7.5 Data Processing 31
6. USER INTERFACE DESIGN 32
6.1 Navigation 32
6.2 Screen Representation 33
6.2.1 Main Structure 33
6.2.2 Content Page 33
6.2.3 Button, Textbox, Drop-down List 34
6.2.4 Menu Items, Action Items 34
6.3 Screen Snapshots 35
6.3.1 Shipping 35
6.3.1.1 Create a Shipment 35
6.3.1.1.1 Begin Your Shipment 35
6.3.1.1.2 Add Shipping Options 356.3.1.1.3 Preview Your Shipment 36
6.3.1.1.4 View History or Void Shipment 37
6.3.1.1.5 Create a Return 38
6.3.1.1.6 Set Preferences 39
6.3.1.2 Calculate Time and Cost 40
6.3.1.2.1 Provide Shipment Information 40
6.3.1.2.2 Provide Shipment Details 41
6.3.1.2.3 Time and Cost Summary 42
6.3.1.2.4 Time and Cost Details 43
6.3.1.3 Schedule a Pickup 446.3.1.3.1 Pickup Information 44
8/2/2019 SDS Sample
4/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 4 of 65
6.3.1.3.2 Pickup Services Details 45
6.3.1.3.3 Pickup Status 46
6.3.1.3.4 Pickup Status 46
6.3.1.3.5 Set Preferences 476.3.2 Printing / Copying 48
6.3.2.1 New Print Job 48
6.3.2.2 Delivery Options 48
6.3.2.3 Manage Print Jobs 48
6.3.3 Tracking 49
6.3.3.1 Track by Reference 49
6.3.3.2 Track by Number 49
6.3.3.3 Track by Email 50
6.3.3.4 Import Tracking Numbers 50
6.3.4 Online Transaction Report 50
6.3.5 Support 51
6.3.6 Admin 51
6.3.6.1 Register 51
6.3.6.2 My ABC 52
6.3.6.3 Forgot User ID or Password 52
6.3.6.4 Manage Users 53
7. DATA MODEL / DATA STRUCTURE 53
7.1 General View 53
7.2 Table Description 54
7.2.1 Table user 54
7.2.2 Table UserRole 55
7.2.3 Table LayoutReference 55
7.2.4 Table ABCAccount 56
7.2.5 Table Address 56
7.2.6 Table Pickup 57
7.2.7 Table Shipment 57
7.2.8 Table PaymentInfo 59
7.2.9 Table ReturnShipment 59
7.2.10Table Package 59
7.2.11Table Tracking 60
7.2.12Table ShipmentHistory 607.2.13Table PrintJob 60
7.2.14Table PrintJobOption 61
7.2.15Table Document 61
7.2.16Table PrintJobHistory 62
7.2.17Table Country 62
7.2.18Table State 62
7.2.19Table Service 62
7.2.20Table ServiceType 62
7.2.21Table Authorities 63
7.2.22Table Resource 638. DEPLOYMENT MODEL 63
8/2/2019 SDS Sample
5/65
8/2/2019 SDS Sample
6/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 6 of 65
1. DOCUMENT MANAGEMENT
1.1.1 Document Reviewer History
Reviewer Name Review Attendance (R/S) Comments
Linh Le R
Hai Nguyen R
R/S: Required or Suggested participants or functions for the document review meeting.
1.1.2 Document Approver History
Approver name Approver Function Comments
Linh Le Project Manager
ABC Technical Contact Person
1.1.3 Document Revision History
Date Version Description Revised by
Dec 05, 07 0.1 Draft Hau Tran
Dec 12, 07 0.2
Update parts:
- Architect
- Component Design
Hau Tran
Dec 14, 07 0.3Update parts:
- User Interface Design
- Data Model/Structure
Hau Tran, HaiNguyen, TuanPhan
Dec 18, 07 0.4
Update parts:
- Deployment Model
- Testing Issues
Hai Nguyen
Dec 28, 07 0.5Update for comments in the review meeting Hau Tran, Hai
Nguyen
8/2/2019 SDS Sample
7/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 7 of 65
2. INTRODUCTIONThis is a Software Design Specification (SDS) document, and it provides a detailed overview of thedesign for the ABC system.
The main purpose of this document is to provide a solid foundation for the development phase of theproduct. The design takes the results of use case analysis in SRS document and produces a specificationthat can be effectively implemented. It contains an explanation of a way to carry out each of the
requirement specifications written in the Software Requirements Specification (SRS). The design isconsidered complete, when it is detailed enough to implemented and tested. It serves as a guide to thedevelopers who write the code and actually create the product. The SDS document will break down theproject into components to describe in detail what the purpose of each component is and how it will be
implemented. The SDS document will also serve as a tool for verification and validation of the finalproduct.
2.1 Overview
The project to be developed is a pilot project that provides cost-effective and convenient on-line ABCservices to the (SOHO) Small Office Home Office market and consumers via the ABC network in theUnited States. Ultimately, this future system will be an opportunity for all of the ABC Stores to provideon-line services to its customers, regardless of where they live, work or travel.
The system is an open-source, multi-lingual, web-based application. The scope of the project is targetedto service the US market first before other markets (Canada, Western Europe, Latin America, and Asia-
Pacific). Specifically, this phase of project will aim to service only one ABC store in the US.
2.2 Design Map
This document will present the architecture, components, and graphical user interfaces (GUI) that makeup the ABC system.
8/2/2019 SDS Sample
8/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 8 of 65
2.3 Supporting Materials
Definitions, acronyms, and abbreviations
Part CONTENTS DESCRIPTIONS
Part 1 DOCUMENT MANAGEMENT History of this document development, including
Revision History, Reviewer history, and ApproverHistory.
Part 2 INTRODUCTION An introduction to the document by explaining thepurpose of the document, providing design mapand references, and a brief overview of eachsection within the document.
Part 3 CONSIDERATIONS A description of any assumptions or dependenciesregarding the software and its use. Other concernssuch as: related software or hardware, operating
systems, performance, security, design
methodology, possible and/or probable changes infunctionality.
Part 4 ARCHITECTURE An overview of the components that make up thesystem architecture and the relationships betweenthem.
Part 5 COMPONENT DESIGN A detail of all components specification and therelationship between them.
Part 6 USER INTERFACE DESIGN Screen snapshots and descriptions of user interfacedesigns that directly support construction of the
system.
Part 7 DATA MODEL / DATASTRUCTURE
A description of the major data model of bothglobal and subsystem scope. This should berepresented in the form of entity relation model.
Part 8 DEPLOYMENT MODEL A diagram that shows how system components,operating system, services and software will be
deployed on each server.
Part 9 OPERATIONAL SUPPORTINGMECHANISM
The design document may need to support somespecial mechanisms in order to easily identify
issues / defects / problems and resolve them.
Part 10 RESTRICTIONS, LIMITATIONS,AND CONSTRAINTS
Identification of any issues that may impact thedesign or implementation of the software.
Part 11 TESTING ISSUES A specification of test strategy and preliminary testcase.
8/2/2019 SDS Sample
9/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 9 of 65
ABC United Parcel Service
SDS Software Design Specifications
SRS Software Requirement Specifications
ORM Object Relational Mapping
IDE Integrated Development Environment
References
ABC-SRS-001-Software Requirement Specification.doc
3. CONSIDERATIONS
3.1 Assumptions and Dependencies
The software is separated into 8 modules. Each module has it own responsibility:
Administrationcontains components of managing user accounts, roles and profiles.
Packaging & Shippingcontains components of shipments, pickABC and preferences.
Printing and Copyingcontains components of print jobs, orders and options setting.
Trackingcontains tracking component.
Reportcontains report component.
Utilitycontains e-mail component.
Deliverycontains delivery service component.
Paymentcontains payment service component.
* Help Desk Ticket SystemWill be implemented separately after finishing this pilot project.
3.2 System Environment
The following are the description of frameworks, tools, operating system, servers and plug-ins which areimplemented in system development.
Categories Technologies
Frameworks JDK 1.5
Spring MVC
Spring Web Flow
Acegi Security Framework
Hibernate framework
JUnit (for unit testing)ORM (Object Relational Mapping) Hibernate 3.x (for Object Relational Mapping)
8/2/2019 SDS Sample
10/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 10 of 65
Business Logic Spring framework
Web Application Server Apache Tomcat 5.5
IDE (Integrated Development Environment) Eclipse 3.3.x with all necessary plug-ins.
Database My SQL 5.0
Operating System Linux Enterprise
3.3 Processes, Policies, Conventions, and Tactics
There are two kinds of documents that customers requireSoftware Requirements Specification (SRS)and Software Design Specification (SDS).
SRS document describes all business and user requirements through use cases and diagrams. SDSdocument contains system architecture, components interaction diagram, description of all components
and modules and data model. In further detail, all functions of each component are then furtherexplained with description, sequence diagram, and class diagram.
4. ARCHITECTURE
4.1 System Architecture
8/2/2019 SDS Sample
11/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 11 of 65
Client Tier
UPS Store members
Browser ClientBrowser Client
Browser Client
Customer
Browser Client
Browser Client
Browser Client
Database
System
Database Tier
SpringScheduler
VIEW
View(JSP/HTML)
ViewResolver
MODEL
Business
Objects
Hibernate
Beans
Acegi Security
Objects are managed by Spring IoC Container
CONTROLLER
SpringDispatcher Servlet
HandlerMapping
Controller
SpringWebFlow
ModelAndView
Middle Tier 1
23
44.1
4.2
5
6
7
8
H T T P S
R e q u e s
t
HTTPS
Response
JDBC
Shipping
Printing
Tracking
Adminstration
Help Desk
Report
8/2/2019 SDS Sample
12/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 12 of 65
4.2 Processes of Key Components in the Architecture
From the Client Tier, users who are ABC Store customers or members (Admin, ABC Storeowner, ABC Store manager and staffs) will use Packing & Shipping services, Printing &
Copying, Tracking and/or Transaction Report services via the web browsers as InternetExplorer or Firefox. Being able to send requests (HTTPS Request) to the middle tier,
customers have to follow step-by-step of the wizards of services. Each step of one servicegenerates a request to send to the ABC server in the middle tier (refer to SRS document ABC-SRS-001-Software Requirement Specification.doc for functionality details).
The ABC application in the middle tier contains business logic rules, functions to handleclient requests. The data access objects (Hibernate objects) are included. One of features is theapplication sends emails to stores for printing and copying documents. Stores will print anddeliver documents as requirements from email. The Spring framework also supports the email
sender component. The following is the general architecture in middle tier of ABC Storeapplication.
1Spring Dispatcher Servlet receives requests from Client tier though Acegi security filter.
2The Spring Dispatcher Servlet consults the suitable Handler Mapping to find a
controller.
3 The Spring Dispatcher Servlet dispatches the request to approximate Controller for
processing belongs to SpringWeb Flow configuration.
4The Controller will work with business objects of the service
4.1, e.g. createUser and
corresponding persistent classes4.2
to create a ModelAndView object.
5 The Controller returns the ModelAndView object with a logical view name to the
Dispatcher Servlet.
6TheDispatcher Servlet consults its view revolver to find the appropriate view.
7DispatcherServlet forwards the request to the view.
8The view renders the JSP page to the web browser.
With the contents of a client request and business rules, the application will store the real-
world data into database tables and retrieve data from database. The database model in thedatabase tier for the system should be designed, implemented and tested carefully forprocessing a huge number of package information.
4.3 Architecture Decisions and Rationales
Name Description
Multi-tieredArchitecture
A multi-tiered architecture is designed to partition the system intodistinct functional units: Client, Presentation, Business-Logic,Persistence and Database Management System.
This ensures a clean division of responsibility and makes the systemmore maintainable and extensible. Systems with three or more tiers prove
8/2/2019 SDS Sample
13/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 13 of 65
more scalable and flexible than a client-server system, in which nobusiness-logic middle tier exists.
Apache Tomcat The main benefit of using the Apache server and Tomcat servlet engine
is that both of these products are open source. These products can bedownloaded and installed for free, they run on a variety of computerserver hardware platforms, are very reliable, scalable, and are supportedand enhanced by developers throughout the world.
Spring Spring is a lightweight container that makes it easy to wire objects
together using an external XML configuration file. Spring supportspluggable transaction managers giving a broader range of choices fortransaction handling. The Spring architecture allows connecting Struts asWeb framework to Spring-based business and persistence layers. Springalso provides a simple mechanism for applying aspect-oriented codeagainst normal, object-oriented code.
Spring MVC Provides a full-featured MVC module for a very clean division betweenControllers, Java Bean models and Views.
Spring Web Flow This module is built on top of Spring MVC and adds the capability toeasily write wizardweb applications that span across several HTTPrequests. The core artifact within Spring Web Flow is the flow (orconversation). It is this flow definition that defines a blueprint for aconversation with the user. Conversations can execute in parallel withoutintruding on each other, and when the conversation has finished, allallocated resources are automatically cleaned up.
Hibernate Hibernate is the most flexible and powerful ORM solution on the markettoday. Hibernate not only takes care of the mapping from Java classes todatabase tables and from Java data types to SQL data types, but also
provides data query and retrieval facilities that significantly reducedevelopment time. Hibernators design goal is to relieve the developer
from 95% of common data persistence related programming tasks byeliminating the need for manual, hand-crafted data processing using SQLand JDBC.
Acegi Security Acegi Security System is a remarkable, easy-to-use alternative to writingendless security code for authentication and authorization through out the
applications. For any application written using Java and Springframework, there is no reason why Acegi should not be used.
POJO Plain Old Java Object is preferred by many advocates because of itssimple design. The name is used to emphasize that the object in question
is an ordinary Java Object, not a special object. POJO is simply refers to
the natural condition of an object class. The term serves as a reminderthat simpler designs can be better, rather than incorporating acomplicated framework in the architecture of a system without sufficientreason
5. COMPONENT DESIGN
5.1 Components Dependencies Diagram
http://en.wikipedia.org/wiki/Software_architecturehttp://en.wikipedia.org/wiki/Software_architecture8/2/2019 SDS Sample
14/65
8/2/2019 SDS Sample
15/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 15 of 65
PickABCervice The Pickup Service component is responsiblefor scheduling or voiding an online pickup.
5 Payment PaymentService The Payment Service component contains all
the logic related to the online payment andcredit card validation. The Payment Service isan external subsystem.
6 Delivery DeliveryService The Delivery Service component contains allthe logic related to the ABC Store delivery
service. The Payment Service is an externalsubsystem.
7 Printing PrintJobService The Print Job Service component is responsiblefor executing a print job online.
8 Utility EmailMgr The Email Manager component is responsiblefor generating and sending an email to end
user.
5.3 Components and Use Cases Mapping
# Package Name Component Name Use Cases
1 Administration UserService Register an account (ABC_UC_1.1)
Open an ABC Store account (ABC_UC_1.2)
Log in (ABC_UC_1.3)
Retrieve account and forgot password(ABC_UC_1.4)
Customize personal profile (ABC_UC_1.5)Manage user accounts (ABC_UC_1.6)
RoleService Manage user roles (ABC_UC_1.7)
2 Report ReportService Generate transactions report (ABC_UC_5.1)
3 Tracking TrackingService Track by reference (ABC_UC_4.1)
Track by e-mail (ABC_UC_4.2)
Track by tracking numbers (ABC_UC_4.3)
Import tracking numbers (ABC_UC_4.4)
4 Shipping ShipmentService Create a shipment (ABC_UC_2.1)
Continue previous shipment (ABC_UC_2.2)
View shipment history (ABC_UC_2.3)
Void shipment (ABC_UC_2.4)
Set shipment preferences (ABC_UC_2.5)
Create a shipment return (ABC_UC_2.6)
Calculate shipment time and cost(ABC_UC_2.7)
PickupService Schedule a pickup (ABC_UC_2.8)
View pickup status (ABC_UC_2.9)
Modify a pickup (ABC_UC_2.10)
Void a pickup (ABC_UC_2.11)Set pickup preferences (ABC_UC_2.12)
8/2/2019 SDS Sample
16/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 16 of 65
5 Payment PaymentService N/A
6 Delivery DeliveryService N/A
7 Printing/Copying PrintJobService Start a new print job (ABC_UC_3.1)
Set print job options (ABC_UC_3.2)
Combine files (ABC_UC_3.3)
Select delivery options (ABC_UC_3.4)
Place the order (ABC_UC_3.5)
Trace order (ABC_UC_3.6)
Re-use print job (ABC_UC_3.7)
Review order history (ABC_UC_3.8)
8 Utility EmailMgr N/A
5.4 Detail Component Design
5.4.1 Module
5.4.1.1 Processing Narrative
The User Service component is responsible for creating, modifying and deleting users andassigning role or resetting password for an existing user.
5.4.1.2 Sequence Diagram
Users
Homepage
AddUserAbsAction
User
UserService
UPSAccount
EmailUtility
UserInfoForm
UserFormAction
1 : access()
2 : register()
3 : getUserId()
4 : view()
5 : getUserId()
6 : submit()
7 : addUser()
8 : saveObject()
9 : createUPSAccount()
10 : generateEmail()
11 : sendEmail()
8/2/2019 SDS Sample
17/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 17 of 65
Users
UserMngtForm
AddUserAbsAction
User
UserService
UPSAccount
EmailUtility
UserManager
1 : access()2 : action()
3 : getUserList()
4 : v iew()
5 : getUser()
6 : addUser()
7 : addUser()
8 : saveObject()
9 : createUPSAccount()
10 : generateEmail()
11 : sendEmail()
Users
UserMngtForm
AddUserAbsAction
User
UserService
UPSAccount
EmailUtility
UserManager
1 : access()2 : action()
3 : getUserList()
4 : view()
5 : getUser()
6 : updateUser()
7 : resetPassword()
8 : enable/disable()9 : updateUser()
10 : saveObject()
11 : updateUPSAccount()
12 : generateEmail()13 : sendEmail()
14 : deleteUser()15 : deleteUser()
16 : removeObject()
17 : deleteUPSAccount()
5.4.1.3 Class Diagram
8/2/2019 SDS Sample
18/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 18 of 65
UPSAccount
+account_number
+user_id
+getAccNumber()
+setAccNumber()
UPSAccountManager
-upsService
+handleRequest()
+...()
User
+user_id
+userName
+password
+address
+...
+getUserName()
+setUserName()
+getPassword()
+setPassword()
+...()
UserManager
-upsService
+handleRequest()
+...()
Users
UPSAccounts
EmailUtility
+sendEmail()
+...()
Controller
AddUserAbsAction
-upsService
-emailUtil
+doExecute()+getUPSService()
+setUPSService()
+...()
UserService
-upsDAO
+addUser()
+removeUser()+updateUser()
+getUserList()
+addUPSAccount()
+deleteUPSAccount()
+getUPSAccountList()
+...()
UserInfoFormAction
-upsService
+createFormObject()
+...()
AbstractAction FormAction
5.4.1.4 Interface Description
register(): register a new user account.
getUserId(): get user identification to validate the user existed or not.
addUser(): create an user and use User Service to add it into system. saveObject(): save user to database by User Service.
generateEmail(): generate an email contains ABC Account number or UserID and password,user information
sendEmail(): send an email to user.
getUserList(): get the list of user in system.
getUser(): get a specify user.
updateUser(): update user information.
resetPassword(): reset password in case users forgot password.
disableUser(): lock users account.
enableUser(): recover an account that has been locked.
8/2/2019 SDS Sample
19/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 19 of 65
deleteUser(): delete an user out of system.
5.4.1.5 Data Processing
User_Layout
User_Address
User_RoleUser_UPSAccount
Address
address_id
user_id
payment_id
address1
address2
city
telephone
zipcode
extension
floor_room
country
state
in t
in t
in t
char(100)
char(100)
char(30)
char(12)
char(8)
char(5)
varchar(20)
varchar(30)
smallint
LayoutReference
layout_id
enter_tracking
save_tracking
create_shipment
find_location
quick_link
billing_center
oder_supply
schedule_pickup
form_export
void_shipment
in t
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
tinyint(1)
UPSAccountInfo
account_number
user_id
payment_id
account_description
char(30)
in t
in t
varchar(256)
User
user_id
layout_iduser_role_id
user_name
upsPassword
secret_question
secret_answer
title
company
enabled
role_use_ups
info_notice
pickup_reference
tracking_reference
shipment_reference
printjob_reference
in t
in tin t
varchar(40)
char(50)
char(40)
varchar(256)
varchar(256)
varchar(100)
varchar(100)
tinyint(1)
varchar(100)
in t
varchar(30)
varchar(30)
in t
in t
UserRole
user_role_id
user_role_name
role_privileges
in t
varchar(50)
smallint
5.4.2 Module
5.4.2.1 Processing Narrative
The Role Manager component is responsible for creating a new role, modifying and deleting anexisting role of ABC Store system. This pilot phase supports 5 roles: Customer, Admin, ABCStore Owner, ABC Store Manger and ABC Store Staff.
5.4.2.2 Sequence Diagram
8/2/2019 SDS Sample
20/65
8/2/2019 SDS Sample
21/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 21 of 65
saveObject(): save user role to database.
deleteUserRole(): allows users to delete a role. If this role is being used by any users, the roleof users will be set to default role (customer role as well).
removeObject(): remove User Role in database.
5.4.2.5 Data Processing
User_Role
User
user_id
layout_id
user_role_id
user_name
upsPassword
secret_question
secret_answertitle
company
enabled
role_use_upsinfo_notice
pickup_reference
tracking_reference
shipment_reference
printjob_reference
in t
in t
in t
varchar(40)
char(50)
char(40)
varchar(256)
varchar(256)varchar(100)
varchar(100)
tinyint(1)
varchar(100)in t
varchar(30)
varchar(30)
in t
in t
UserRole
user_role_id
user_role_name
role_privileges
in t
varchar(50)
smallint
5.4.3 Module
5.4.3.1 Processing Narrative
The Report component is responsible for making Transaction Report contains shipping info,
printing/copying info.
5.4.3.2 Sequence Diagram
8/2/2019 SDS Sample
22/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 22 of 65
Users
ReportForm
ReportManager
Shipments
Packages
PrintJobs
ReportService
Pickups
1 : access()2 : makeReport()
3 : makeReport()
4 : getShipmentInfo()
5 : getPackageInfo()
6 : getPrintJobInfo()
7 : getPickupInfo()
8 : returnReport()
5.4.3.3 Class Diagram
ReportService
+getShipmentInfo()
+getpackageInfo()
+getPrintJobsInfo()
+makeReport()
+...()
Shipments
Users
Packages
PrintJobs
ReportManager
-upsService
+hanldeRequest()
+...()
Controller
Pickups
5.4.3.4 Interface Description
makeReport(): allows users to make a report about customer using service in a date range. getUserInfo(): this function collects the info of customer using ABC services.
8/2/2019 SDS Sample
23/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 23 of 65
getShipmentInfo(): this function collects all shipments which customer used.
getPackageInfo(): this function collects all packages which customer used .
getPrintJobInfo(): this function collects all print jobs which customer used
getPickupInfo(): this function collects all pickup schedule which customer used .
5.4.3.5 Data Processing
N/A
5.4.4 Module
5.4.4.1 Processing Narrative
The Tracking Manager component is responsible for tracking the status of services which users
are using by email, by shipment reference
5.4.4.2 Sequence Diagram
Users
TrackingForm
TrackingManager
ShipmentHistory
EmailUtility
PrintJobHistory
1 : access()
2 : trackByRef()
3 : trackByNumber()
4 : getShipmentHistory()
5 : getPrintJobHistory()
6 : showResult()
7 : trackByEmail()
8 : getShipmentHistory()
9 : getPrintJobHistory()
10 : generateEmail()
11 : sendEmail()
12 : importTrackingNumber()
5.4.4.3 Class Diagram
8/2/2019 SDS Sample
24/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 24 of 65
TrackingManager
-upsService
+handleRequest()
+...()
ShipmentHistory
+date
+location+notes
+getDate()
+setDate()
+...()
EmailUtility
+sendEmail()
+...()
PrintJobHistory
+date
+location
+notes+getDate()
+setDate()
+...()
ShipmentHistories
PrintJobHistories
Controller
TrackingService
-upsDAO
+getShipmentInfo()
+getPrintJobInfo()
+...()
5.4.4.4 Interface Description
trackByRef(): allows users to track the shipment, print jobs and pickup by reference.
trackByEmail(): allows users to track the shipment, print jobs and pickup by email.
trackByNumber(): allows users to track the shipment, print jobs and pickup by enteringnumbers.
importTrackingNumber(): allows users to import a CVS file contains number of shipment,print jobs and pickup.
getShipmentHistory(): this function collects the history of shipments.
getPrintJobHistory(): this function collects the history of print jobs.
getPickupHistory(): this function collects the history of pickup.
sendEmail(): this function will send an email to end user.
5.4.4.5 Data Processing
8/2/2019 SDS Sample
25/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 25 of 65
FK_%REFERENCE%
ShipmentHistory_Address
Shipment_TrackingShipment_T racking
Address
address_id
user_id
payment_id
address1
address2
address3
city
telephone
zipcode
int
int
int
char(100)
char(100)
varchar(100)
char(30)
char(12)
char(8)
Shipment
shipment_id
return_shipment_id
tracking_number
pickup_iduser_id
payment_id
print_job_id
shipper_address
ship_from
ship_to
email_content
rint reference1
int
int
varchar(30)
varchar(30)int
int
int
int
int
int
varchar(50)
tin int 1
Tracking
tracking_number
shipment_id
countryshipment_type
date_start
date_end
varchar(30)
int
varchar(30)varchar(30)
date
date
ShipmentHistory
address_id
tracking_number
shipment_status
notice
int
varchar(30)
varchar(30)
varchar(128)
5.4.5 Module
5.4.5.1 Processing Narrative
The Shipment Manager component is responsible for creating, voiding an online shipment.
5.4.5.2 Sequence Diagram
Users
ShipmentInfoForm
ShipmentFormAction
AddShipmentAbsAction
Shipments
Packages
TimeAndCost
ShipmentService
1 : access()
2 : getShipmentInfo()3 : getPackages()
4 : getPackageInfo()
5 : view()
6 : createShipment()
7 : createReturn()
8 : continueShipment()
9 : addShipment()
10 : addPackage()
11 : saveObject()
12 : saveObject()
13 : getTimeAndCode()
8/2/2019 SDS Sample
26/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 26 of 65
Users
ShipmentHistoryForm
ShipmentManager
Shipments
Packages
ShipmentService
VoidShipment
1 : access()
2 : showShipmentHistory()3 : getShipmentList()
4 : getObjects()
5 : getObjects()
6 : view()
7 : voidShipment()
8 : voidShipment()
9 : removeObject()
10 : removeObject()
5.4.5.3 Class Diagram
ShipmentService
-upsDAO
+createShipment()
+voidShipment()
+viewShipmentHistory()
+createShipmentReturn()
+calculateTimeAndCost()
+...()
Shipments
Users
Packages
ReturnShipments
TimeAndCost
Addresses
Shipment
+user
+shipFrom
+shipTo
+service
+...
+getUserAddress()
+setUserAddress()
+getShipFrom()
+setShipFrom()
+schedulePickup()
+...()
PaymentManager
PaymentService
PickupManager
DeliveryService
ShipmentManager
-upsService
+handleRequest()
+...()
AddShipmentAbsAction
-upsService
+doExecute()
+...()
ShipmentInfoFormAction
-upsService
+createFormObject()
+...()
VoidShipment
-upsService
+handleRequest()
+...()
Controller
AbstractAction
FormAction
5.4.5.4 Interface Description
getShipmentInfo(): this function keeps shipment information for page session.
createShipment(): allows users to create a shipment.
getPackages(): allows users to get all packages customer having.
getPackageInfo(): allows users to get the package info.
createReturn(): allows users to create a return shipment. continueShipment(): allows users to continue an un-submitted shipment.
8/2/2019 SDS Sample
27/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 27 of 65
addShipment(): this function creates a shipment and use Shipment Service to add this shipmentinto database.
addPackage(): this function creates a package and use Shipment Service to add this packageinto database.
saveObject(): this function save Shipment information into database.
getTimeAndCost(): this function collects Time and Cost from database that customer provide.
showShipmentHistory(): this function allows user to show all shipments customer created.
getShipmentList(): this function collects all shipments user created.
getObjects(): this function collects all Shipment from database.
voidShipment(): this function allows user to void a shipment.
removeObject(): this function removes object in database.
5.4.5.5 Data Processing
Shipment_PaymentShipment_User
Return_Shipment
Shipment_Package
Shipment_Return
Tracking_Shipment
Shipment_Tracking
Shipment_Pickup
Pickup_Shipment
PrintJob_ShipmentShipment_PrintJob
Package
package_id
shipment_id
package_weight
declare_value
package_length
in t
in t
decimal(10)
decimal(10)
decimal(10)
PaymentInfo
payment_id
account_number
address_id
payment_name
card_number
expiration_date
card_type
in t
char(30)
in t
varchar(50)
varchar(40)
date
varchar(30)
Pickup
pickup_id
shipment_id
print_job_id
user_id
pickup_date
time_ready
varchar(30)
in t
in t
in t
date
time
PrintJob
print_job_id
shipment_id
user_idpickup_id
print_history_id
print_job_name
order_date
cost
in t
in t
in tvarchar(30)
in t
varchar(50)
date
decimal(12)
ReturnShipment
return_shipment_id
shipment_id
ERL
ERL_memo_field
ERL_notice_fail
return_service
in t
in t
varchar(50)
varchar(1024)
varchar(40)
varchar(30)
Shipment
shipment_id
pickup_id
tracking_number
return_shipment_id
user_id
payment_id
print_job_id
shipper_address
ship_from
sh i t o
in t
varchar(30)
varchar(30)
in t
in t
in t
in t
in t
in t
in t
Tracking
tracking_number
shipment_id
country
shipment_type
date_start
date_end
varchar(30)
in t
varchar(30)
varchar(30)
date
date
User
user_id
user_role_id
layout_id
user_name
upsPassword
in t
in t
in t
varchar(40)
char(50)
char(40)
5.4.6 Module
5.4.6.1 Processing Narrative
The Pickup Manager component is responsible for scheduling or voiding an online pickup.
8/2/2019 SDS Sample
28/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 28 of 65
5.4.6.2 Sequence Diagram
Users
PickupInfoForm
PickupInfoFormAction
Pickups
AddPickupAbsAction
PickupService
1 : access()
2 : getPickupInfo()
3 : v iew()
4 : schedulePickup()
5 : updatePickup()
6 : addPickup()
7 : saveObject()
Users
Pickups
PickupHistoryForm
PickupManager
DeletePickup
PickupService
1 : access()
2 : showHistory()
3 : getPickupList() 4 : getObjects()
5 : v iew()
6 : viewPickupStatus()7 : getPickupStatus()
8 : getObject()
9 : deletePickup()
10 : deletePickup()
11 : removeObject()
5.4.6.3 Class Diagram
8/2/2019 SDS Sample
29/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 29 of 65
PickupService
-upsDAO
+createPickup()
+deletePickup()
+viewPickupHistory()
+viewStatus()
+getPickupList()
+...()
Addresses
Pickup
+date
+address
+time_ready
+time_latest
+...
+getDate()
+setDate()
+getAddress()
+setAddress()
+...()
PaymentService
DeliveryService
Pickups
PickupManager
-upsService
+handleRequest()
Controller
PickupInfoFormAction
-upsService
+createFormObject()
+...()
AddPickupAbsAction
-upsService
+doExecute()
+...()
Packages
AbstractAct ion
FormAction
5.4.6.4 Interface Description getPickupInfo(): this function collects pickup information for page session.
schedulePickup(): this functionallows users to schedule a pickup.
updatePickup(): this function updates Pickup information.
addPickup(): this function creates a new pickup and use Pickup Service to save it to database.
saveObject(): this function save Pickup information into database.
5.4.6.5 Data Processing
8/2/2019 SDS Sample
30/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 30 of 65
Pickup_PrintJob
Pickup_User
PrintJob_Pickup
Shipment_Pickup
Pickup_Shipment
Pickup
pickup_id
shipment_idprint_job_id
user_id
pickup_date
time_ready
time_latest
varchar(30)
intint
int
date
time
time
PrintJob
print_job_id
pickup_iduser_id
shipment_id
print_history_id
print_job_name
order_date
cost
int
varchar(30)int
int
int
varchar(50)
date
decimal(12)
Shipment
shipment_id
print_job_id
tracking_number
pickup_iduser_id
payment_id
return_shipment_id
shipper_address
in t
in t
varchar(30)
varchar(30)in t
in t
in t
in t
User
user_id
layout_id
user_role_id
user_name
upsPassword
secret_question
int
int
int
varchar(40)
char(50)
char(40)
varchar(256)
5.4.7 Module
5.4.7.1 Processing Narrative
The Print Job Manager component is responsible for executing a print job online.
5.4.7.2 Sequence Diagram
Users
PrintJobInfoForm
PrintJobFormAction
PrintJobs
PrintJobManager
PrintingService
AddPrintJobAbsAction
DeletePrintJob
PrintJobMgntForm
1 : access()2 : getPrintJob()
3 : view()4 : createPrintJob()
5 : setPrintJobOption()
6 : setDeliveryOptions()
7 : addPrintJob()
8 : saveObject()9 : access()
10 : getPrintJobList()
11 : getPrintJobList()
12 : getObjects()
13 : view()
14 : deletePrintJob()
15 : deletePrintJob()
16 : removeObject()
5.4.7.3 Class Diagram
8/2/2019 SDS Sample
31/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 31 of 65
PrintJob
+printJobID
+date
+status
+printOptions
+...
+getOrderDate()
+setOrderDate()
+getPrintOptions()
+setPrintOptions()
+...()
PrintJobService
-upsDAO
+selectDocument()
+combineFiles()
+setPrintOptions()
+tracePrintOrder()
+previewPrintOrder()
+...()
PrintJobs
Deliveries
PrintOptions
ShipmentManager
Shipments
PickupManager
Pickups
PrintJobManager
-upsService
+handleRequest()
+...()
DeletePrintJob
-upsService
+handleRequest()
+...()
AddPrintJobAbsAction
-upsService
+doExecute()
+...()
PrintJobFormAction
-upsService
+createFormObject()
+...()
Controller
AbstractAction
FormAction
5.4.7.4 Interface Description getPrintJob(): this function keeps print job information for page session.
createPrintJob(): this function allows user to create a new print job online.
setPrintOptions(): this function allows users to set the print options.
setDeliveryOptions(): this function allows users to choose a delivery option.
addPrintJob(): this function creates a print job and use PrintJob Service to save it intodatabase.
saveObject: this function saves the print job into database.
getPrintJobList(): this function collects all print jobs customer created.
getObjects: this function queries print job from database.
deletePrintJob: this function deletes a print job.
removeObject: this function remove print job information out of database.
5.4.7.5 Data Processing
8/2/2019 SDS Sample
32/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 32 of 65
History_PrintJob
PrintJob_History
PrintJob_Pickup
Pickup_PrintJob
Shipment_PrintJob
PrintJob_Shipment
User_PrintJob
PrintJob_Document
Document
document_id
print_job_id
print_option_iddocument_name
document_dir
int
int
intvarchar(50)
varchar(50)
Pickup
pickup_id
shipment_id
user_id
print_job_id
pickup_datetime_ready
time_latest
email notice1
varchar(30)
int
int
int
datetime
time
varchar 50
PrintJob
print_job_id
pickup_id
user_idprint_history_id
shipment_id
print_job_name
order_date
cost
int
varchar(30)
intint
int
varchar(50)
date
decimal(12)
PrintJobHistory
print_history_id
print_job_id
printhistory_status
int
int
varchar(30)
8/2/2019 SDS Sample
33/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 33 of 65
6.2 Screen Representation
6.2.1 Main Structure
There are 3 main parts for the structure of the screen shown above. These are:
1. Page Header: this content the ABC logo and the applications name. This part will beappearing for all the main page of application.
2. Left Menu Bar: This contents all the menu items use for navigate for the main modules ofapplication.
3. Main Area: this area will content all the input and output of the application.
6.2.2 Content Page
8/2/2019 SDS Sample
34/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 34 of 65
The content page dominates the main area of the web site.
6.2.3 Button, Textbox, Drop-down List
Depend on the screen the input text field, drop-down list, buttons will be appropriately displayed.
Buttoncontain the action and get parameter from the form or simply go to other screen.Text boxallows user to enter information or to display information back to user.Drop-down listallows user to select an item from the list.
6.2.4 Menu Items, Action Items
Menu Itemsare presented in the left-hand side of the web site. They are the action steps forcertain main action.
Action Itemare small individual actions for each menu item.
8/2/2019 SDS Sample
35/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 35 of 65
6.3 Screen Snapshots
There are about 50 screens total in the system. We have a limited space in the document to show andexplain all the screens. Therefore, each screen prototype below represents a use case of each
component described in the Architecture section mentioned above. Currently, there are twenty eightscreenshots are outstanding representatives for six components. Other sub-screens are incapable topresent in the document.
6.3.1 Shipping
6.3.1.1 Create a Shipment
6.3.1.1.1 Begin Your Shipment
6.3.1.1.2 Add Shipping Options
8/2/2019 SDS Sample
36/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 36 of 65
6.3.1.1.3 Preview Your Shipment
8/2/2019 SDS Sample
37/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 37 of 65
6.3.1.1.4 View History or Void Shipment
8/2/2019 SDS Sample
38/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 38 of 65
6.3.1.1.5 Create a Return
8/2/2019 SDS Sample
39/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 39 of 65
6.3.1.1.6 Set Preferences
8/2/2019 SDS Sample
40/65
8/2/2019 SDS Sample
41/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 41 of 65
6.3.1.2.2 Provide Shipment Details
8/2/2019 SDS Sample
42/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 42 of 65
6.3.1.2.3 Time and Cost Summary
8/2/2019 SDS Sample
43/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 43 of 65
6.3.1.2.4 Time and Cost Details
8/2/2019 SDS Sample
44/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 44 of 65
6.3.1.3 Schedule a Pickup
6.3.1.3.1 Pickup Information
8/2/2019 SDS Sample
45/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 45 of 65
6.3.1.3.2 Pickup Services Details
8/2/2019 SDS Sample
46/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 46 of 65
6.3.1.3.3 Pickup Status
6.3.1.3.4 Pickup Status
8/2/2019 SDS Sample
47/65
8/2/2019 SDS Sample
48/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 48 of 65
6.3.2 Printing / Copying
6.3.2.1 New Print Job
6.3.2.2 Delivery Options
6.3.2.3 Manage Print Jobs
8/2/2019 SDS Sample
49/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 49 of 65
6.3.3 Tracking
6.3.3.1 Track by Reference
6.3.3.2 Track by Number
8/2/2019 SDS Sample
50/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 50 of 65
6.3.3.3 Track by Email
6.3.3.4 Import Tracking Numbers
6.3.4 Online Transaction Report
8/2/2019 SDS Sample
51/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 51 of 65
6.3.5 Support
6.3.6 Admin
6.3.6.1 Register
8/2/2019 SDS Sample
52/65
8/2/2019 SDS Sample
53/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 53 of 65
6.3.6.4 Manage Users
7. DATA MODEL / DATA STRUCTURE
7.1 General View
8/2/2019 SDS Sample
54/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 54 of 65
7.2 Table Description
7.2.1 Table user
The table stores information of an ABC user.
Field name Key Field type Length Description
User_id Primary key String 30 This field is used to identify every ABC user.
Layout_id Foreigner key Integer This field refers to LayoutReference table. It
helps to customize ABC profile.
User_role_id Foreigner key Integer This filed refers to UserRole table. It helps to
determine the role of ABC users when they uses
The ABC.
Address_id Foreigner key Integer This field refers to Address table and helps to
show address of the user.
User_Name No String 40 This field contains full name of the user.
Email No String 40 This field stores email address of ABC user.
8/2/2019 SDS Sample
55/65
8/2/2019 SDS Sample
56/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 56 of 65
ABC.
Save_tracking No Boolean This field lets ABC user select save_tracking link is
displayed on his profile or not when he logins the
ABC.
Create_shipment No Boolean This field lets ABC user select create_shipment linkis displayed on his profile or not when he logins the
ABC.
Find_location No Boolean This field lets ABC user select find_location link is
displayed on his profile or not when he logins the
ABC.
Quick_link No Boolean This field lets ABC user select quick_link link isdisplayed on his profile or not when he logins the
ABC.
Billing_center No Boolean This field lets ABC user select billing_center link is
displayed on his profile or not when he logins the
ABC.
Order_supply No Boolean This field lets ABC user select order_supply link isdisplayed on his profile or not when he logins the
ABC.
Schedule_pickup No Boolean This field lets ABC user select schedule_pickup
link is displayed on his profile or not when he
logins the ABC.
Form_export No Boolean This field lets ABC user select form_export link isdisplayed on his profile or not when he logins the
ABC.
Void_shipment No Boolean This field lets ABC user select void_shipment link
is displayed on his profile or not when he logins the
ABC.
7.2.4 Table ABCAccount
The table contains information of account that ABC users uses to pay for their services.
Field name Key Field type Length Description
Account_number Primary key String 30 This field plays a role of primary key. It helps to
distinguish among records in the table.
Payment_id Foreigner key Integer This field refers to a record in Payment table. It
supplies information for billing.
User_id Foreigner key String 30 This field refers to a record in User table. It helps
to determine this account belong to whom.Account_description No String 126 This field aims to have more description for the
account.
7.2.5 Table Address
The table stores address of an ABC user. An ABC user can have many addresses. And it also stores addresses for
billing.
Field name Key Field type Length Description
Address_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among records in the tables.
User_id Foreigner key String 30 This field refers to a record in User table. It helpsto determine this account belong to whom.
8/2/2019 SDS Sample
57/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 57 of 65
Payment_id Foreigner key Integer This field refers to a record in Payment table. It
supplies information for billing.
Address1 No String 50 This field stores information about first street for
the address.
Address2 No String 50 This field stores information about second street for
the address.
City No String 30 This field stores name of city.
Telephone No String 12 This field stores telephone number.
Zipcode No String 6 This field stores zip code number.
Extension No String 8 This field stores extension number.
Floor_room No String 20 This field stores information about floor and room
of the address.
Country No String 30 This field stores name of country.
State No String 30 This field stores name of state if has.
7.2.6 Table Pickup
The table stores information relates to a pickup of an ABC user.
Field name Key Field type Length Description
Pickup_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among records in the table.
User_id Foreigner key String 30 This field refers to a record in User table. It helps
to determine this pickup belong to whom.
Address_id Foreigner key Integer This field refers to a record in Address table. It
stores location that packages are picked up.
Shipment_id Foreigner key Integer This field refers to a record in Shipment table. Ithelps to get information of shipment that this
pickup relates to.
Pickup_date No Date This field stores the date this pickup is carried out.
Time_ready No DateTime This field stores the earliest time this pickup can be
carried out.
Time_latest No DateTime This field stores the latest time this pickup can be
carried out.
Email_notice1 No String 30 This field stores email address.
Email_notice2 No String 30 This field stores another email address.
Item_weigh_70lbs No Boolean This field shows whether packages are over 70 lbs
weight or not.Total_weight No Decimal This field stores total weight of all packages.
Pickup_result No String 30 This field stores result of the pickup.
Status No String 30 This field stores status of the pickup.
Pickup_place No String 30 This field figures out position that packages can be
picked up at a location.
Email_for_fail No String 30 This field stores email address to notice in case of
failing to pick up.
Service No String 30 This field stores services name that uses to pick up
packages.
7.2.7 Table Shipment
8/2/2019 SDS Sample
58/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 58 of 65
The table stores information of a specific shipment.
Field name Key Field type Length Description
Shipment_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among records in the table.
Tracking_number Foreigner key String 30 This field refers to a record in Tracking table. It
helps ABC user to track the shipment.
User_id Foreigner key String 30 This field refers to a record in User table. It states
that the shipment belongs to whom.
Pickup_id Foreigner key Integer This field refers to a record in Pickup table. It
contains information so that all packages of the
shipment can be picked up.
Return_shipment_id Foreigner key Integer This field refers to a record in theReturnShipment table. It states that this shipment
is a shipment or a return shipment.
Payment_id Foreigner key Integer This field refers to a record in Payment table. It
helps to get information for billing for the shipment.
Ship_from Foreigner key Integer This field refers to a record in Address table. It
stores place where the shipment begins.
Ship_to Foreigner key Integer This field refers to a record in Address table. It
stores place where the shipment will be shipped to.
Email_content No String 256 This field contains content of an email that will
notice to who receive the shipment.
Print_reference1 No Boolean This field allows ABC User select to print and stick
a reference on every package or not.
Email_notice_fail No String 30 This field stores email address so that it can be used
when the shipment is failed.
Email1 No String 30 This field stores first email address.Email2 No String 30 This field stores second email address.
Email3 No String 30 This field stores third email address.
Email4 No String 30 This field stores fourth email address.
Email5 No String 30 This field stores fifth email address.
Response_email1 No Integer This field stores options for case of using the first
email.
Response_email2 No Integer This field stores options for case of using the
second email.
Response_email3 No Integer This field stores options for case of using the third
email.
Response_email4 No Integer This field stores options for case of using the fourth
email.
Response_email5 No Integer This field stores options for case of using the fifth
email.
Saturday_deliver No Boolean This field states that whether the shipment delivers
on Saturday or not.
Date No Date This field stores date that the shipment is created.
Cost No Decimal This field stores cost of the shipment.
Number_package No Integer This field stores number of packages for the
shipment.
Service No String 40 This field stores information about service that uses
to ship the shipment.
8/2/2019 SDS Sample
59/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 59 of 65
7.2.8 Table PaymentInfo
The table stores information that ABC customers use to pay for their services.
Field name Key Field type Length Description
Payment_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among records in the table.
Shipment_id Foreigner key Integer This field refers to a record in Shipment table. It
states that what shipment uses the payment info for
its billing.
Account_number Foreigner key String 30 This field refers to an ABC account.
Address_id Foreigner key Integer This field stores address that credit card use to pay
for.
Payment_name No String 59 This field contains a brief description for the
payment info.
Card_number No String 30 This field stores credit card number.
Expiration_date No Date This field stores date credit card will be expired.
Card_type No String 30 This field stores information about type of credit
card.
7.2.9 Table ReturnShipment
The table contains additional information for a return shipment.
Field name Key Field type Length Description
Return_shipment_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among return shipments.
Shipment_id Foreigner key Integer This field refers to a shipment in Shipment table.
ERL No String This field stores ERL.
ERL_memo_field No String This field stores ERL_memo_field.
ERL_notice_fail No String 30 This field stores an email to notice when the
shipment return is failed.
Return_service No String 30 This field stores name of service that uses for the
return shipment.
7.2.10 Table Package
The table stores information relates to package that ABC Customer would like to transfer.Field name Key Field type Length Description
Package_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among package in the table.
Shipment_id Foreigner
keyInteger This field refers to a shipment in Shipment table.
Weight No Decimal This field stores weight of the package.
Declare_value No Decimal This field stores value of the package.
Length No Decimal This field stores length of package.
Width No Decimal This field stores width of package.
Height No Decimal This field stores height of package.
Reference1 No String 256 This field stores the first reference for package.
8/2/2019 SDS Sample
60/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 60 of 65
Reference2 No String 256 This field stores the second reference for package.
Is_large No Boolean This field states that whether package is large or
not.
Additional_handling No Boolean This field allows ABC user select option of
handling.
Merchandise_des No String 50 This field stores information about merchandise of
package.
Cod_amount No Integer This field stores amount of cod of package.
Shipper_release
Diliver_confirm_type No String 40 This field stores information that deliver confirms.
Package_type No String 30 This field helps to classify packages.
7.2.11 Table Tracking
The table stores the tracking information of a shipment.Field name Key Field type Length Description
Tracking_number Primary key String 30 This field plays a role of primary key. It helps todistinguish among tracking item in Tracking
table.
Shipment_id Foreigner key Integer This field refers to a shipment in Shipment table.
Shipment_type No String 30 This field stores information about type of
shipment.
Date_start No Date This field stores start date in range of time view
tracking.
Date_end No Date This field stores end date in range of time view
tracking.Account_number No String 30 This field stores account number that ABC user
usually uses.
7.2.12 Table ShipmentHistory
The table stores history of every shipment.
Field name Key Field type Length Description
Tracking_number Primary key String 30 This field refers to a tracking in Tracking table.
Address_id Primary key Integer This field refers to an address in Address table.
Status No String 30 This field shows status of shipment.
Notice No String 128 This field stores notice for every milestone.
7.2.13 Table PrintJob
The table stores information of a specific print job.
Field name Key Field type Length Description
Print_job_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among print jobs.
Print_history_id Foreigner key Integer This field refers to a printjob history in
PrintJobHistory table.
Shipment_id Foreigner key Integer This field refers to a shipment in Shipment table.
User_id Foreigner key String 30 This field refers to a user in User table. It states
8/2/2019 SDS Sample
61/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 61 of 65
that who creates the print job.
Pickup_id Foreigner key Integer This field refers to a pickup in Pickup table. It
helps to get information about pickup for this print
job.
Print_job_name No String 50 This field contains name of print job.
Order_date No Date This field stores date that print job is created.
Status No String 20 This field stores status of print job.
Cost No Decimal This field stores expense for a print job.
7.2.14 Table PrintJobOption
The table contains options that ABC Customers want for their print job.
Field name Key Field type Length Description
Print_option_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among print job options.Number_copy No Integer This field stores number of copies for a document
that needs to be printed.
Is_collated No Boolean This field is an option that allows ABC user choose
when he prints document.
Is_single_side No Boolean This field is an option that allows ABC user choose
when he prints document.
Is_print_color No Boolean This field is an option that allows ABC user choose
when he prints document.
Is_first_color No Boolean This field is an option that allows ABC user choose
when he prints document.
Folding No Boolean This field is an option that allows ABC user choosewhen he prints document.
Paper_type No String 20 This field stores type of paper uses to print
document.
Paper_category No String 20 This field stores category of paper uses to print
document.
Cutting No Boolean This field is an option that allows ABC user choose
when he prints document.
BindingStapling No Boolean This field is an option that allows ABC user choose
when he prints document.
HolePunching No Boolean This field is an option that allows ABC user choose
when he prints document.
7.2.15 Table Document
The table stores information of the document that ABC Customer would like to print.
Field name Key Field type Length Description
Document_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among documents in the table.
Print_job_id Foreigner key Integer This field states which print job relates to the
document.
Print_option_id Print_option_id Integer This field refers to a document in the Document
table. It helps to select options when they print a
document.
8/2/2019 SDS Sample
62/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 62 of 65
Document_name No String 30 This field stores name of document needs to be
printed.
Document_dir No String 50 This field stores directory of document.
7.2.16 Table PrintJobHistory
Field name Key Field type Length Description
Print_history_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among print job histories.
Print_job_id Foreigner key Integer This field refers to a print job in PrintJob table. It
is also print job that we store history.
Status No String 20 This field stores status of print job.
Notice No String 128 This field stores information of print job
7.2.17 Table Country
The table contains all countries on the world.
Field name Key Field type Length Description
Country_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among countries.
Country_name No String 30 This field stores name of country.
7.2.18 Table State
The table contains all states in each country.
Field name Key Field type Length Description
State_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among states.
Country_id Foreigner key Integer This field refers to a country in Country table. It
shows which country this state belongs to.
State_name No String 30 This field describes name of state.
7.2.19 Table Service
The table lists all services following their type can be used at The ABC.
Field name Key Field type Length Description
Service_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among services.
Service_type_id Foreigner key Integer This field refers to a service type in ServiceType
table. It helps to classify the service following typeof service.
Service_name No String 30 This field describes name of service.
7.2.20 Table ServiceType
The table lists all types of services that can be used at The ABC.
Field name Key Field type Length Description
Service_type_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among types of service.
8/2/2019 SDS Sample
63/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 63 of 65
Service_type_name No String 30 This field describes name of type of service.
7.2.21 Table Authorities
The table lists all authorities for each user The ABC.
Field name Key Field type Length Description
Author_id Primary key Integer This field plays a role of primary key.
Username No String 30 This field describes name of user that has authority.
Authority No String 40 This field describes name of authority
(ROLE_ADMIN).
7.2.22 Table Resource
The table lists all pages of The ABC. It also attaches authority for each page.Field name Key Field type Length Description
Resource_id Primary key Integer This field plays a role of primary key. It helps to
distinguish among pages.
Resource_name No String 50 This field stores link of web page.
Authority No String 40 This field stores authority for this page.
8. DEPLOYMENT MODELDistribution is an essential aspect of enterprise applications. Deployment model is useful for
modeling how the different components that make up the system are distributed across multipletypes of servers. The deployment model below displays the configurations of the ABC systemwith types of operating system, services or software will be installed on appropriate servers.
There are two servers for the systemWeb Application server and Database server.
Web Application server will be installed with:
JDK/JRE version 1.5.x or later.
Apache Tomcat version 5.5.x or later
Deploy all ABC packages by running the scripts setupABCWebStore.sh
Database server will be installed with:
MySQL 1.5 or later.
Setup ABC database by running the scripts setupDB.sh
8/2/2019 SDS Sample
64/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
TMA Confidential TMA Solutions, 2004 Page 64 of 65
Client Browser
MySQL 5.0
Windows: Linux Inteprise, Apache Tomcat 5.5
Ultility
Shipping
Printing/Copying
Tracking
Report
Delivery
Payment
Administration
9. OPERATIONAL SUPPORTING MECHANISM
Event Logging and Development Logging are important parts of ABC Store system. They will helpadministrator to identify easily any problems, and help defects developers to find defects and resolvethem easily. With development logging, we will support following types of logging.
- Debug: provides the debug info to help developer easily to find the problems. It should be loggedfor complicated data, and data flow
- Info: provides the information of each method the system will go though. It should be logged inbeginning and ending of each function.
- Error: provides all error happened in system such as throwing the catch block,
10. RESTRICTIONS, LIMITATIONS, AND CONSTRAINTS
Address validation: The system does not perform detailed address validation.
Packaging and shipping services: TMA system will not provide the calculation functionality
of time and cost but the system will create function calls to get business rules, interfacesand/or APIs from the ABC iShip CMS backend system regarding cost and time.
Printing and copying services: Customers can easily customize the document(s) by adding
tabs and inserting pages into the document. TMA system will not support the functionPreview Print Job in Printing/Copying service.
11. TESTING ISSUES
11.1 Classes of Tests
8/2/2019 SDS Sample
65/65
Quality Management SystemSoftware Design Specification
Code: ABC-SDS-001
Issue Date: Dec 18, 2007 Version: 0.5
Unit Testing
Individual components (Administration, ShipmentMgr ...) will be tested separately bydevelopers.
This test will be conducted on each function before integrating to the system. All units testing will be done in White Box fashion.
Integration Testing
Combined components will be tested as a whole. To maintain maximum control overthe testing criteria, all data files will be made specifically for testing purposes.
The level builder will be tested to ensure proper communication between the interface
and the database.
System Testing
System Testing will be performed on Usability, Security, and Performance testing.
These testing will be conducted by testers after the integration testing completed.
Stress and Load Testing
Stress Testing will determine the stability of ABC Store system
Load Testing is the process of creating demand on a system or device and measuring
its response.
These testing will be conducted by testers after the integration and system testingcompleted.
11.2 Expected Software Response
All components of the system are working properly and satisfy the requirement.
The system satisfies non-functional requirements. There is an error log if the system has problem.
Error-less compilation of code.
11.3 Performance Bounds
The normal speed to load a web page is within 10 seconds.
12 hours/day and 6 days/week for front-end (retail stores) technical support
24x7 for back-end (remote servers) technical support
Number of connections the system maximum support: TBD