CS377 UML Diagrams
Design Implementation Proposal
Design Implementation Proposal
***Some of the Material in this paper has been repurposed from IT with Professor Stewart and CS455 with Professor Lemaster, and IT251 with Professor Noffsinger ***
CS377-1503-A-01 Software Design
Phase 1 Individual Project
Design Implementation Proposal
Damon Tholson
July 18th, 2015
Design Implementation Proposal
For
<Legacy Equipment Corporation>
Version 1.2 approved
Prepared by <Damon Tholson>
<Ethical Company Finder>
<July 21st, 2015,>
Revision History
|
Name |
Date |
Reason For Change(s) |
Version |
|
Damon Tholson |
July 18, 2015 |
Original Document |
1.0 |
|
Damon Tholson |
July 21, 2015 |
Phase Two Class Diagram Implementation |
1.1 |
|
|
|
|
1.2 |
|
|
|
|
1.3 |
|
|
|
|
1.4 |
Table of Contents Revision History 3 1.0 Project description 4 1.1 Use Case Diagram 6 Introduction 6 Use Case Model Actor Description and intended interactive role 6 Relationships between the actors and the use case 7 1.2 Use Cases 9 2.0 Class Diagram 13 3.0 Sequence and Collaboration Diagram 15 4.0 State Transition and Activity Diagram 16 5.0 Follow-Up Discussion on Use of Object-Oriented and Recap of Design Changes 19 References: 20
1.0 Project description
The Ethical Company Finder application will allow the US government to sell otherwise wasted byproducts of the chemical munitions process to companies which operate ethically and set a standard for honest business practices. Thiodiglycol is most commonly used as a common solvent in the paint and coatings industry however, it can also be used for more devious purposes (i.e., the reproduction of mustard gas) and a system is needed to identify industrial companies who will purchase and use the chemical in a safe and ethical manner. Therefore, in order to sell this chemical for a profit, a software service must be developed which will create a “whitelist” (list of allowed, rather than prohibited) companies which meet a given set of conditions set forth by the US government. Companies which meet the minimum criteria, to include such things as good credit, a reputation of honest business practices, and no lawsuits regarding company behavior within the past ten years, will be considered for the whitelist service. Once companies are whitelisted they will be allowed to bid on the chemical with the software service calculating factors such as quantity of selected product, cost and distance of shipping, location of the product destination, the required route for the product to reach the customers destination, and the price the customer is willing to pay to determine which company to sell the product to and how much to sell them.
1.1 Use Case Diagram
1.2 Introduction
Within every individual use case there are specified actors and roles which those actors play. In the following paper the names of those actors will be specified and a description of how they interact with the software service will be provided. It should be noted that only current customers are within scope with current customers being defined as those who already reside in a database of companies identified as ethical companies. It should also be noted that orders are not updateable meaning that once an order is created no further changes to that order are permitted Additionally, we will define the system and boundary box and define the use of the packages in requirements engineering.
1.3 Use Case Model Actor Description and intended interactive role
A use case is a description of specified interactions between a product and an actor that will result in an outcome desired by the actor (Weigers & Beatty, 2013). An actor is a representative of an individual or object from the outside of a product, who will interact with that product in a specified way to perform a use case. The human actors known as Corporate Customer, System Administrator, and Government Auditor will be interacting with the Ethical Company Finder product (ECF) by completing desired tasks utilizing the on screen user interface along with the provided peripherals of a keyboard and mouse. The following is a description of the roles these actors will play
· The Corporate Customer will use the ECF application in an attempt to purchase the product from the government.
· The Government Auditor will use the ECF application to ensure the Corporate Customer meets all of the criteria required to purchase the product from the government.
· The system manager will oversee the operation and will be ensure that all objectives of the project are met.
1.4 Relationships between the actors and the use case
The relationships between actors in a use case help to identify the functionality of the system and how the user will interact with the system. In a use case the actor has identified a desired result and to achieve that desired result the actor must perform the tasks outlined in the use case. Relationships between actors occurs when an actor is reliant upon another actor complete a given task before they can continue on with the completion of their assigned tasks or achieved their desired results. For example, a Corporate Customer may wish to purchase a government product and has completed all of the tasks necessary to do so however the Corporate Customer cannot achieve their desired result until the Government Auditor has approved the purchase. Additionally, when a System Administrator is performing updates or audits the system may be offline which would prevent all other actors from achieving their desired results.
1.5 Use Cases
Use Case ID: #: [UC001]
· Use Case: Login to create an order and payment entry
· User Story: Customer creates an order and then decides upon the payment method for that order. The manager then approves or denies the order based upon the availability of the product and the customers’ ability to pay
· Primary Actor(s): Customer, Manager
· Preconditions: Customer is logged in and verified as an approved vendor. Vendor is able to pay at the time of purchase and product is available for
· Post-conditions: Product is removed from system inventory and shipped to customer.
|
Flow of Events |
Actor |
System
|
|
|
1. Customer logs onto system 2. Customer verifies personal info 3. Customer places order 4. Customer updates order/adds item if necessary 6. Customer ends order 7. Customer pays with CC payment 8. Manager views order |
1.1 Create order 2.1 Display order 3.1 Add item 4.1 End order 6.1 Verify payment 7.1 End order 8.1 Log/view order |
Use Case ID: #: [UC002]
· Use Case: Application Access to view an order and payment entry
· User Story: The system shall allow vendors current and prior transactions
· Primary Actor(s): Customer
· Preconditions: User is logged onto system and granted privileges to access current and past transactions
· Post Conditions: User has verified current and past transactions
|
Flow of Events |
Actor |
System
|
|
|
1. Customer logs onto system 2. Customer verifies personal info 3. Customer views order
|
1.1 Creates an order 2.1 Verifies Customer input 3.1 Order is displayed
|
Use Case ID: #: [UC003]
· Use Case: User Communications to update an order and payment entry
· Primary Actor(s): Customer/Manager
· User Story: Company employee accesses applications across the network.
· Preconditions: User is logged on and has required credentials
· Post Conditions: Order is updated
|
Flow of Events |
Actor |
System
|
|
|
1. Manager logs onto system 2. Manager views Account 3. Manger updates payment entry type 4. Manager Exits account
|
1.1 Verify Credentials 1.2 Display Account 1.3 Update payment type
|
Use Case ID: #: [UC004]
· Use Case: User Communications to delete an order and payment entry
· Primary Actor(s): Customer/Manager
· User Story: Company employee accesses applications across the network.
· Preconditions: User is logged on and has required credentials.
|
Flow of Events |
Actor |
System
|
|
|
1. Manger logs onto system 2. Manager views Account 3. Manger deletes order or payment entry type 4. Manager Exits account
|
1.4 Verify Credentials 1.5 Display Account 1.6 Delete order or payment type
|
·
2.0 Class Diagram
The goals and objectives of the Accounts application will be achieved through the use of the Inheritance hierarchy principle of project design. Inheritance hierarchy is a concept in object oriented programming in which a new class is created by acquiring a parent class’s existing capabilities. For inheritance hierarchy to be effectively used the subclasses must all share at least one common attribute or method with their specified superclass.
The superclass for the inheritance hierarchy will be Accounts and the two subclasses will be PaymentAccount, SalesAccount, and SuppliesAccount each of which share an “is a” type of relation with the Accounts superclass because each is a type of account. Accounts superclass will also extend the functionality of the computeSales method functionality to each of the subclasses through the use of inheritance hierarchy. The subclasses will share a “has a” type of relationship with the superclass computeSales method because each subclass which is an object of the Accounts superclass with have a computeSales method but that method will be specialized according to the needs of the specific account. This methodology increases the robustness of the code because Common instance variables or attributes which are assigned or defined in a superclass are not affected by changes in a subclass.
A test class known as SalesApplication will be created to test the subclasses by instantiating the already created objects of the Accounts superclass (subclasses which extend the functionality of a superclass are considered objects of that superclass). The information contained within the methods will then be displayed using the viewAcccounts and modifyAccounts methods.
Class Diagram 1
3.0 Sequence and Collaboration Diagram
In addition to the use cases we have been asked to put together some sequence diagrams to give the customer a graphical representation of the logical processes throughout the new system. In the following sequence diagrams we will depict the actions of a user logging onto the system, accessing the applications residing on the host server, and communicating on the system through the use of email or instant message.
Figure 1 User Logon Use Case Sequence
Figure 2 Application Access Use Case Sequence
3.1. Collaboration Diagrams
Application Access Collaboration Diagram 1
Login Collaboration Diagram 1
4.0 State Transition and Activity Diagram
The following Activity diagram shows the activities involved when a user attempts to logon to the network. It also shows the activities that occur when a user who is unauthorized or has forgotten their username/password attempts to access the network.
User Login Activity Diagram 1
The following Application Access activity diagram assumes the user is logged in with valid credentials. It shows the activities that occur when a user attempt to access programs within the application which they are authorized to access. Additionally it shows the system response when a user attempts to access parts of the system which are beyond their level of access.
Application Access Activity Diagram 1
4.1 State Transition Diagrams
The following state transition diagram shows User Communications to update an order and payment entry
State Transition Diagram 1
The following state transition diagram shows user communications to delete an order and payment entry.
5.0 Follow-Up Discussion on Use of Object-Oriented and Recap of Design Changes
TBD
References:
Ambler, S. W. (2014). UML 2 Use Case Diagrams: An Agile Introduction. Retrieved from http://agilemodeling.com/artifacts/useCaseDiagram.htm
Wiegers K. and Beatty J. (2013). Software requirements 3 (3rd ed.). (chapter 1 – 4, pp. 3 – 73, chapter 7, pp. 119 – 142). Redmond, Washington: Microsoft Press.
-End1
Application access to view and order and payment entry
User Communications to update a payment entry
Customer
Government Auditor
*
-End2
*
Login to create an order and payment entry
-End3
*
-End4
*
User communications to delete an order and payment entry
-End5
*
-End6
*
-End7
*
-End8
*
-End9
*
-End10
*
-End11
*
-End12
*
Manager
-AccountID() : void
-get Account int AccountID() : void
-get creationDate Date() : int
-toString():() : string
+computeSales():() : void
-viewAccounts():() : Accounts
-modifyAccounts():() : Accounts
-AccountNumber : int
-creationDate : Date
Accounts
-paymentVerified()
+setpaymentType int () : long
+getpaymentType() : double
+computeSales():() : long
-paymentType : String
PaymentAccount
+Unit() : long
+setunitSold () : long
+getunitSold() : long
+setpricePerUnit() : long
+getpricePerUnit()
+computeSales():() : long
-unitSold : long
-pricePerUnit : long
SalesAccount
+computeSales() : long
+viewAccounts() : Accounts
+modifyAccounts() : Accounts
«interface»
Sales
+public static void main (String [] args)()
+totalSales() : string
SalesApplication
-AccountID() : void -get Account int AccountID() : void -get creationDate Date() : int -toString():() : string +computeSales():() : void -viewAccounts():() : Accounts -modifyAccounts():() : Accounts
-AccountNumber : int -creationDate : Date
Accounts
-paymentVerified() +setpaymentType int () : long +getpaymentType() : double +computeSales():() : long
-paymentType : String
PaymentAccount
+Unit() : long +setunitSold () : long +getunitSold() : long +setpricePerUnit() : long +getpricePerUnit() +computeSales():() : long
-unitSold : long -pricePerUnit : long
SalesAccount
+computeSales() : long +viewAccounts() : Accounts +modifyAccounts() : Accounts
«interface» Sales
+public static void main (String [] args)() +totalSales() : string
SalesApplication
User Interface
Application Server
User Logon Use Case
Sequence
User Logon
Access requested
SD User Authentication
Invalid User
Valid User
[guard]
PERM1
[User Has Access
�
�
�
�
�
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
ref
Access requested
Invalid User
User Logon Use Case Sequence
Valid User
[User Has Access
User Interface
Application Server
User Logon
SD User Authentication
PERM1
Application Server
Email Application
Application Access Use
Case Sequence
User Logon
Message is created
SD Application Access
Conf Message Sent
Comms Error
[guard]
PERM1
[User is Logged on
Message recipient
Message is Sent
Message Recieved
Comms Error
�
�
�
�
�
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
ref
Message is created
Conf Message Sent
Application Access Use Case Sequence
Comms Error
[User is Logged on
Application Server
Email Application
User Logon
SD Application Access
PERM1
Message recipient
Message is Sent
Message Recieved
Comms Error
User Input Feedback
Application access to view an
order and payment entry
collaboration diagram
User login Prompt
/SelectAccount
/ViewOrder
�
�
�
�
�
Text
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
[guard]
ref
Text
User Input Feedback
Application access to view an order and payment entry collaboration diagram
/ViewOrder
User login Prompt
/SelectAccount
User Input Feedback
Login to create an order and
payment entry collaboration
diagram
User login Prompt
/Login
/User
Text
User Input Feedback
Login to create an order and payment entry collaboration diagram
/User
User login Prompt
/Login
User Login
Login is Valid
Login is Invalid
User enters system
Access is Denied
User attempts application access
Authentication is Valid
Login is Invalid
Results are Displayed
User Login
Statechart
Login is Valid
Login is Invalid
User enters system
Access is Denied
User attempts application access
Authentication is Valid
Login is Invalid
Results are Displayed
User attempts application access
Credentials are valid
User has insufficient privilege
User enters system
Access is Denied
User attempts application access
Dispatch the order
Confirm the order
Results are Displayed
[check if item is in
stock]
[No]
[Yes]
User attempts application access
Statechart
Credentials are valid
User has insufficient privilege
User enters system
Access is Denied
User attempts application access
Dispatch the order
Confirm the order
[Yes]
Results are Displayed
[check if item is in stock]
[No]
Checking
Do/check inventory
Dispatching
Do/package items
Items Delivered
Waiting
/Receive Order
A
l
l
i
t
e
m
s
i
n
S
t
o
c
k
Order Cancelled
i
t
e
m
s
N
o
t
i
n
S
t
o
c
k
Checking Do/check inventory
Dispatching Do/package items
Order Cancelled
items Not in Stock
Items Delivered
All items in Stock
Waiting
/Receive Order
User Login
Send Deletion Request
Order cancelled
Waiting
/Initialization
I
t
e
m
s
s
t
i
l
l
i
n
i
n
v
e
n
t
o
r
y
Cancellation Request Denied
i
t
e
m
s
D
e
l
i
v
e
r
y
i
n
p
r
o
g
r
e
s
s
User Login
Send Deletion Request
Cancellation Request Denied
items Delivery in progress
Order cancelled
Items still in inventory
Waiting
/Initialization
Application access to
view and order and payment
entry
User Communications to
update a payment entry
Customer
Government Auditor
Manager
Login to create an
order and payment entry
-End1
*
-End2
*
-End3
*
-End4
*
User communications to
delete an order and payment
entry
-End5
*
-End6
*
-End7
*
-End8
*
-End9
*
-End10
*
-End11
*
-End12
*