1. Customer Contact Database System Development Report
Milestone Five
Group D
Brent Renius; Sukhwinder Singh; Nicholai Stevens; Aaron Stroud; Ulysses Vazquez; Daniel Woolworth
2. Page | 2
Table of Contents
Part I: Planning
System Request……………………………………………………………………………………1
Proposed Solution…………………………………………………………………………………1
UML Tools………………………………………………………………………………………..1
Part II: Analysis
System Requirements
Functional………………………………………………………………………………….1
Nonfunctional……………………………………………………………………………...2
Use Cases……………………………………………………………………………………..…5-8
Use Case Diagram…………………………………………………………………………………8
Part III: Design
CRC Cards……………………………………………………………………………………..9-10
Sequence Diagrams………………………………………………………………………...…10-11
Class Diagram…………………………………………………………………………………….11
Class Relationships Table………………………………………………………………………...12
3. Page | 3
System Request:
Create a contact management application for the expanding customer list.
ProposedSolution:
We propose to create a database system that will provide an efficient and effective solution to meet
all of the needs of the ACME Warehouse contact management as its customer base continues to grow. This
system will allow ACME Warehouse to easily organize, search, update, and access contact information. It
will also be able to be integrated into the purchase records database to allow for more effective customer
service and marketing.
UML tool:
We will be using the Visio UML tool to facilitate the creation and presentation of this solution. We
chose Visio because it is a fairly simple program to understand and use, and it will allow us to create quality
diagrams which will aid in the planning and management of this project.
System Requirements:
Functional Requirements
1. Manage Customer Accounts
1.1. User enters customer information.
1.1.1. Customer Name (Last, First, MI).
1.1.2. Customer Address (Street, City, State, Zip, Other).
1.1.3. Customer Phone Number(s) (Home, Office, Cell).
1.1.4. Customer E-mail.
1.1.5. Customer Title.
1.1.6. Customer Last Contact Date (DD/MM/YYYY).
1.1.7. Customer Notes (Additional useful information).
1.2. User edits customer information.
1.2.1. All items under 1.1.
2. User Logins
2.1. Sales staff.
2.2. Shipping staff.
2.3. Administrative staff.
3. Search Functions
3.1. User searches for customer account
3.1.1. Search via last name and Phone number.
3.1.2. Search via customer number.
3.1.3. Search via customer E-mail
3.1.4. Search via customer location.
4. Page | 4
Nonfunctional Requirements
1. Operational Requirements
1.1. The system will be accessible through web browsers.
1.1.1. Internet Explorer
1.1.2. Safari
1.1.3. Chrome
1.1.4. Firefox
1.2. The system should automatically back up at end of business each day.
1.3. The customer accounts will be linked to other business systems.
1.3.1. Purchase records (for customer service and sales purposes).
1.3.2. E-mail system (For marketing purposes).
1.4. The system will operate in Windows environment.
1.5. The system should be accessible by multiple users simultaneously.
2. Performance Requirements
2.1. The Customer accounts will update immediately.
2.2. The system should retrieve a customer account in two seconds or less.
3. Security Requirements
3.1. Only ACME staff will have access to the system.
3.1.1. Users will log-in with employee number and password.
3.1.2. Users will be able to change their password.
3.2. Users will be logged out after thirty minutes of inactivity.
4. Cultural and Political Requirements
4.1. No special cultural and political requirements are anticipated.
5. Page | 5
Use Cases:
Use Case Name: Sign-in ID: 1 Importance Level: High
Primary Actor: User Use Case Type: Detail, Essential
Stakeholders and
Interests:
User – wants to sign in to access customer contact system
Brief Description: This use case describes how we sign in to access the database
Trigger: User has a need to acquire or update information from database
Type: External
Relationships: Association:
Include:
Extend:
Generalization:
User
(included in) Manage Contacts
Normal Flow of
Events:
1. User opens browser and navigate to application web address
2. The user enters username and password
3. The information is verified by the application
4. Present application to the user
a. If applicable execute S-1Change Password subflow
SubFlows: S-1: Change Password
1. The user navigates to the change password button and clicks
on it
2. The form is presented to the user where the current password
is entered for verification
3. User enters new password conforming to requirements e.g.
policy like should have a special character etc.
4. User re-enters new password in second field to confirm it
5. System verifies that new password complies with security
protocols
6. The user is then presented with change password button on the
form
Alternate /
Exceptional Flows:
NF, 3a1: The user is not authorized to access the data,re-enter password. If still
unsuccessful execute Forgot Password subflow.
S-1, 5a1: Password entered does not meet security standards; go back to S-1 step 3.
6. Page | 6
Use Case Name: Search Contacts ID: 2 Importance Level: High
Primary Actor: User Use Case Type: Detail, Essential
Stakeholders and
Interests:
User – wants to access existing customer file
clients – want their information to be secure
Brief Description: This use case describes how a user signs into the contact management system
Trigger: Customer needs to be added, updated, or referenced
Type: External
Relationships: Association:
Include:
Extend:
Generalization:
User
(included in) Update Contact
Manage Contacts
Normal Flow of
Events:
1. User opens browser and navigate to application web address
2. The user Signs In by entering username and password
a. Execute Sign In use case
3. User selects Search Contacts button
4. The user enters a search term e.g. email address, last name
5. Customer record is displayed
6. User selects contact file
SubFlows: S-1: Sign In
1. The user enters username and password
2. The information is verified by the application
3. Present application to the user
Alternate /
Exceptional Flows:
NF, 5a1: If multiple records are found, display additional information for each of
the records e.g. last name, first name, company, email address, etc., User
then chooses the specific contact to display
S-1, 2a2: The Patient chooses one of the proposed times or decides not to make an
appointment
7. Page | 7
Use Case Name: Add New Contact ID: 3 Importance Level: High
Primary Actor: User Use Case Type: Detail, Essential
Stakeholders and
Interests:
User – wants to make sale and/or store customer info for future sales.
Customer – wants to ensure orders are processed in a timely manner.
Brief Description: This use case describes how we add a new customer contact into our system.
Trigger: New customer places an order or wishes to receive promotional information.
Type: External
Relationships: Association:
Include:
Extend:
Generalization:
User
Manage Contacts
Normal Flow of
Events:
1. New customer places an order or enrolls in promotion.
2. User opens browser and navigates to application web address
3. User Signs In by entering username and password
a. Execute Sign In use case
4. Open New Customer Contact form
5. Enter customer’s information into appropriate fields.
a. Name (Last,First, MI)
b. Address (Street, City, State, Zip, Other).
c. Phone Number.
d. E-mail
e. Title (If corporate customer)
f. Last Contact Date
g. Notes
6. Customer confirms all information is correct.
7. Complete Customer Transaction
a. If customer is making a purchase, the S-1: Complete Sale subflow is
performed.
b. If the customer is signing up for promotional purposes, the S-2 Promotions
subflow is performed.
SubFlows: S-1: Sign In
5. The user enters username and password
6. The information is verified by the application
7. Present application to the user
S-2: Complete Sale
8. The Sales rep confirms the order.
9. The Sales rep processes payment.
10. Sales rep makes additional notes if necessary.
11. Sales rep performs the S-2 Promotions subflow.
S-3: Promotions
1. Sales rep asks what types of promotions customer wants to receive (e-
mail, mail).
2. Sales rep checks appropriate boxes.
3. Sales rep saves and exits customer file.
Alternate /
Exceptional Flows:
NF, 6a1: Customer identifies mistakes; sales rep makes corrections, proceeds to
next step.
S-1, 2a1: Payment method is unsuccessful; new payment is processed; once
payment is successful,proceed to next step.
8. Page | 8
Use Case Name: Update Contact ID: 4 Importance Level: High
Primary Actor: User Use Case Type: Detail, Essential
Stakeholders and
Interests:
User – wants to update existing contact information
Brief Description: This use case describes how we update contact information.
Trigger: User has a need to change existing contact information.
Type: External
Relationships: Association:
Include:
Extend:
Generalization:
User
Search Contacts
Manage Contacts
Normal Flow of
Events:
8. User opens browser and navigate to application web address
9. The user Signs In by entering username and password
a. Execute Sign In use case
10. Search for contact that requires update
a. Execute Search Contact use case
11. The information in the record is updated by the user
12. The user confirms updated information
13. The information in the record is saved by the user
SubFlows: S-1: Sign In
12. The user enters username and password
13. The information is verified by the application
14. Present application to the user
S-2: Search Contact
4. User selects Search Contacts button
5. The user enters a search term e.g. email address, last name
6. Customer record is displayed
7. User selects contact file
Alternate /
Exceptional Flows:
S-1, 2a1: The user is not authorized to access the application
S-2, 2a1: No records are found matching the search terms; User executes Add New
Contact use case.
Use Case Diagram:
Add New Contact Search Contacts
Update Contact
Sign In
Manage Contacts
Add Note
<<extend>>
Customer Contact System
User
<<include>>
<<include>>
9. Page | 9
CRC Cards:
Front:
Class Name: User ID: 1 Type: Concrete
Description: This class contains information about employees Associated Use Cases: 4
Responsibilities: Collaborators:
Store user information
Add user information
Edit user information
Delete user information
Back:
Attributes:
Last Name (text) Title (text)
First Name (text) Department (text)
Access Level(text)
Email Address (text)
Relationships:
Generalization (a-kind-of): Person
Aggregation (has-parts):
Other Associations: Search,Contacts, Customer
Front:
Class Name: Search ID: 2 Type: Abstract
Description: This class facilitates locating existing customer
information
Associated Use Cases: 2
Responsibilities: Collaborators:
Search via last name Contacts
Search via customer number Contacts
Search via phone number Contacts
Search via location Contacts
Back:
Attributes:
Last Name (text)
Customer Number (text)
Phone Number (custom text)
Location (text)
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations: User,Contacts, Customer
10. Page | 10
Front:
Class Name: Contacts ID: 3 Type: Concrete
Description: This class facilitates the management of contact
information
Associated Use Cases:
3,4
Responsibilities: Collaborators:
Store contact information
Add contact information
Edit contact information Search
Delete contact information Search
Back:
Attributes:
Last Name (text) Title (text)
First Name (text) Phone Number (custom text)
Last Contact Date (date) Location (text)
Email Address (text)
Relationships:
Generalization (a-kind-of): Person
Aggregation (has-parts):
Other Associations: Search,User,Customer
Sequence Diagrams:
User Sign In
SystemAccessReq()
System
AccessResponse()
ChangePW()
TITLE
Sign In Sequence
PWChanged()
x
ValidUser?()
AccessResponse()
MeetsCriteria?()
11. Page | 11
User Sign In
SystemAccessReq()
Contacts
AccessResponse()
CreateNewContact()
TITLE
Add New Contact Sequence
Customer
SaveNewContact()
ConfirmInfo()
InfoConfirmed()
x
System
ValidUser?()
AccessResponse()
User Sign In
SystemAccessReq()
Contacts
AccessResponse()
TITLE
Edit Contact Sequence
Customer
SaveContact()
ConfirmInfo()
InfoConfirmed()
Search
SearchContact()
Contact(s)Found()
UpdateContact()
DeleteContact()
x
RetrieveMatches()
Matches()
System
ValidUser?()
AccessResponse()
12. Page | 12
Class Diagram:
User
-Password
Person
Contacts
+Customer E-mail
+Customer Address
+Customer Phone
+Last Contact Date
+Notes
Search
+Last Name ()
+Customer E-mail ()
+Customer Number ()
+Customer Location ()
+Number
+First Name
+Title
+Add Contact ()
+Edit Contact ()
+Delete Contact ()
+Last Name
+Access Level
+Department
+Add User ()
+Edit User ()
+Delete User ()
0..* 0..*
0..*
1 1
0..*
1 0..*
11
Class Relationships:
Class Relationships Cardinality
Person
Is relatedtoUser 1 to 0..*
Is relatedtoContacts 1 to 0..*
User
Is a Person. 1 to 0..*
Uses Search. 1 to 1
Is relatedtocontacts 0..* to 0..*
Contacts
Is a Person 1 to 0..*
Is relatedtouser 0..* to 0..*
Search
Is relatedtoContacts 1 to 0..*
Is usedbyuser 1 to 1
*This report does not contain any explanations pertaining to the reasoning behind the final deliverables. The
reason for this is that we felt it would clutter the report. The explanations will be present in the form of notes
in the final presentation.