Conference Registration System - Drexel University

advertisement
Conference
Registration
System
December 8
2010
This document details the problem statement of the domain, as well as analysis
via diagrams, models, and discussion, to provide system analysis, system design,
physical design, and applications design, which could lead to the creation of an
automated registration system for academic conferences.
Group Seven:
John Ehring
Joe Lizzi
Rob Sullivan
2|Page
Contents
Introduction ...............................................................................................................................................................4
Systems Analysis ........................................................................................................................................................4
Problem Statement ................................................................................................................................................4
Goals & Importance................................................................................................................................................4
Project Scope ..........................................................................................................................................................5
Functional and Data Requirements ........................................................................................................................5
Assumptions ...........................................................................................................................................................7
Use Cases ................................................................................................................................................................7
Detailed Use Cases .............................................................................................................................................. 11
Use Case Diagram ................................................................................................................................................ 14
Analysis Class Diagram ........................................................................................................................................ 15
Design Class Diagram........................................................................................................................................... 16
System Analysis – Validation & Discussion.......................................................................................................... 17
System Design ......................................................................................................................................................... 18
System Sequence Diagram .................................................................................................................................. 18
Sequence Diagram (Add Account)....................................................................................................................... 19
Sequence Diagram (Add Event to Cart) ............................................................................................................... 20
Sequence Diagram (Pay for Ticket) ..................................................................................................................... 21
State Diagram ...................................................................................................................................................... 22
System Design – Validation & Discussion ............................................................................................................ 23
Physical Design ............................................................................................................................................ 24
Entity-Relationship Diagram ................................................................................................................................ 24
Deployment Diagram .......................................................................................................................................... 25
Physical Design – Validation & Discussion........................................................................................................... 25
Applications Design ................................................................................................................................................ 27
Screenflow Diagram ............................................................................................................................................ 27
Applications Design – Validation & Discussion.................................................................................................... 28
Evaluation of Analysis & Design ............................................................................................................................. 28
Project ................................................................................................................................................................. 28
Domain ................................................................................................................................................................ 28
UML ..................................................................................................................................................................... 28
3|Page
Modeling Tools .................................................................................................................................................... 29
Appendix ................................................................................................................................................................. 29
Division of Work .................................................................................................................................................. 29
Lessons Learned – John ....................................................................................................................................... 30
Lessons Learned – Joe ......................................................................................................................................... 30
Lessons Learned – Rob ........................................................................................................................................ 30
References............................................................................................................................................................... 30
4|Page
Introduction
The International Conference on Information and Knowledge Management (CIKM) has contacted our group to
assist in the creation of an automated registration system for their yearly academic conferences. Our group was
presented with a problem statement which outlined many of the needs of the system, as well as certain
assumptions, conditions, and restraints that we would have to take into considering while designing the system.
Upon receipt of the problem statement, our group underwent a number of system analysis, system design,
physical design, and application design procedures to design the system and document our decisions. A number
of use cases were created by analyzing information available in the problem description. Detailed use cases
were then developed to understand how some of these use cases might operate in more detail. A use case
diagram was created to illustrate how these use cases might be utilized by certain actors which serve as the
direct means of interaction with the system. Based on this information, two class diagrams were created which
serve as the fundamental pieces of how our system will operate practically.
Using the detailed use cases and class diagrams as a basis, sequence diagrams were developed to understand
how sequential events might occur in the typical success scenario of these use cases. A systems sequence
diagram was developed to illustrate the main success scenario of the entire system, not just specific processes.
Similarly, a state diagram was developed to show how the state of the system will change over the course of a
completed transaction.
Two diagrams were created to explore how our system might be physically implemented. The entity-relationship
diagram illustrates how the system could be represented in a database. Meanwhile, the deployment diagram
seeks to identify which physical tools and software protocols will be necessary to get the system up and running.
A screenflow diagram was created to map out how the system’s different interfaces will transition and interact.
While a large portion of the total work necessary to successfully implement this system has been completed,
more work is necessary before this can become a reality. Only a portion of the physical design has been
outlined, and much more application design (specifically the development of the web interfaces) must be laid
out before work can begin. This being said, we feel our team has laid a good, solid basis which covers the
fundamental components of how the system should operate.
Systems Analysis
Problem Statement
The organizing company of a yearly international academic conference, along with different workshop and
tutorial sessions, needs a simpler, faster, and more reliable system of tracking attendee registration information.
Goals & Importance
The goal of the Conference Registration System (CRS) is to allow conference attendees to quickly and easily
register for conferences, workshops, and/or tutorial sessions. This includes being able to purchase additional
materials (such as printed conference proceedings) and paying the registration fees via one of several methods
(check, credit, cash [on-site only], or traveler’s check). The system will also allow the attendee to add or modify
5|Page
registration choices up to the conference or workshop date. The system will be used for self-registration
(online), registration through customer service (email or phone), or via an on-site setup (conference staff, kiosk,
etc). Regardless of whether the attendee or a customer service representative (acting on the attendee’s behalf)
is accessing the system, the process will be consistent.
A well-run conference or workshop needs to have an efficient and reliable method of attendee registration. An
automated system reduces the amount of necessary paperwork, time and effort spent by staff on registration,
and errors in registration processing. The Conference Registration System, therefore, provides benefits to both
the conference attendees and the conference organizers.
Project Scope
The system is designed to be used for registration of a specific yearly conference. However, it will also be flexible
enough to be used for special workshop or tutorial sessions that are held outside of the conference, and can be
readily adapted to other conferences that the organization may decide to host. The scope of this document is to
set up initial requirements planning, system analysis, system design, physical design, and some application
design. Final aesthetic and design decisions, a working prototype, and the final product are outside the scope of
this document and are left for future work.
Functional and Data Requirements
1. The software package will be able to process transactions for multiple conferences. Each conference will
be defined by the following:
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
Conference ID
Name
Description
Date(s)
Time(s)
Registered Attendees
2. The schedule for the conference will be defined by various sessions. Each session type will have the
following data requirements:
2.1. Paper Session
2.1.1.Paper Title
2.1.2.Speaker(s)
2.1.3.Capacity
2.1.4.Currently registered
2.1.5.Discount cutoff date
2.2. Tutorial Session
2.2.1.Title
6|Page
2.2.2.Instructor(s)
2.2.3.Minimum required registrants to have session
2.2.4.Capacity
2.2.5.Currently registered
2.2.6.Fee
2.2.7.Discount cutoff date
2.3. Workshop session
2.3.1.Title
2.3.2.Instructor(s)
2.3.3.Minimum required registrants to have session
2.3.4.Capacity
2.3.5.Currently registered
2.3.6.Fee
2.3.7.Discount cutoff date
2.4. Banquet
2.4.1.Additional tickets (the registrant’s ticket is included in the conference registration fee)
3. The software package must track individual registration information and correctly calculate all costs for
the participant based on sessions selected.
3.1. The following general registration information will be collected:
3.1.1.Name
3.1.2.Title
3.1.3.Company/Association
3.1.4.Phone Number
3.1.5.Student Status
3.1.6.Mailing Address – mailing address will need to support international in addition to domestic
addresses.
3.2. Each registrant will have the following fees tabulated:
3.2.1.Conference registration
3.2.2.Tutorial session (this fee will be refunded if session cancelled due to lack of interest)
3.2.3.Workshop session
3.2.4.Additional banquet tickets
3.2.5.Additional conference proceedings
3.3. Fee schedule
3.3.1.Fees will be tabulated based on attendee (regular/student) and date of registration (before/after
discount date).
7|Page
3.4. The package should interface with online registration as well as manual input from conference
personnel using phone or mail based registration.
3.5. The package should generate a name tag for each registrant.
3.6. The package should generate a receipt for each registrant. The receipt should contain:
3.6.1.Conference Title
3.6.2.Date(s)
3.6.3.Location
3.6.4.Attendee’s name
3.6.5.Attendee’s title/affiliation
3.6.6.Attendee’s address
3.6.7.Amount paid (itemized)
Assumptions
1. The software package will track how the payment was made, but will not actually handle the transaction
with the financial institution.
2. If a customer had previously made a transaction and seeks to make a new one, a new receipt will be
issued.
3. If multiple transactions are made, the most recent receipt will reflect all transactions.
4. There are only 4 types of conference ticket prices as opposed to 8: student price, early price (before
cutoff date), standard price (neither early nor late), and late price (after cutoff date). However, multiple
pricing structures may be used in combination with each other depending on the circumstances.
5. If an event is updated by an administrator after a ticket has been purchased, the attendee will receive
an updated receipt.
6. An author of an academic paper being shown at a conference will go through the same motions as a
normal attendee to attend that conference.
Use Cases
Use Case
Name
Actor
Purpose
Overview
Evaluate Tutorial Attendance
Use Case
Name
Actor
Purpose
Cancel Tutorial
System
The system will check to see if tutorial attendance is high enough.
At a predefined date, the system will check to see if the amount of registered
attendees for a particular tutorial meets the predefined minimum requirement. If
the number of attendees is not at least this number on the predefined date, the
system will cancel the tutorial.
System
If a tutorial does not meet attendance requirements, the system will cancel the
8|Page
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
tutorial.
If the “Evaluate Tutorial Attendance” process determines that tutorial
attendance requirements are not met, this use case will be instantiated. The
tutorial will then be removed from the list of offered tutorials, and notification
will be sent to all previously registered attendees informing them of the
cancelation.
Refund Money
System, Attendee
An attendee’s money will be refunded to them in the event that their tutorial is
canceled.
If a tutorial is canceled (via the Cancel Tutorial process), then the attendee’s
money must be refunded. This will be accomplished by issuing a credit on the
user’s account (if paid by credit) or by sending a check to the user’s billing
address (if paid via some other method).
Apply Discount
System
The system will automatically apply discounts to the customer’s purchase
before they pay.
Depending on when some items are purchase, they may be eligible for a
discount. After the user finalizes their purchases but before they pay, a discount
may or may not be applied. The user will see the final total, including discount,
before they finalize their payment.
Send Receipt
System, Attendee, Conference Staff
Regardless of how the attendee pays, they will receive a receipt in some form
after they complete their purchase.
If a attendee completes their purchase online, their receipt will be e-mailed to
them. If a attendee pays via mail, their receipt will be mailed to their billing
address. If the attendee pays via phone, the attendee may choose to either
receive a digital receipt via e-mail or a printed receipt via mail. If the attendee
pays on site, the conference staff will print out the attendee’s receipt and hand it
to the attendee.
Issue Badge
9|Page
Actor
Purpose
Overview
Attendee, Conference Staff
The attendee will show their receipt at the front desk of the conference center
and receive a badge.
Regardless of how an attendee purchased their tickets, they will have received a
receipt. The attendee will present this receipt at the front desk. The staff will
then ask for photo ID to verify that the receipt belongs to that person. Then, the
staff will check the attendance list for that attendee’s name for that particular
conference. After the staff has verified that the attendee did indeed register for
that particular conference, he will print out a badge and present it to the
customer.
Use Case
Name
Actor
Purpose
Overview
Pay for Ticket
Use Case
Name
Actor
Purpose
Overview
Handle Payment
Use Case
Name
Actor
Purpose
Overview
Register an Account
Use Case
Name
Actor
Purpose
Overview
Add Item to Cart
Use Case
Verify Student Status
Attendee
Interaction for attendee to submit payment
Attendee submits payment and receives confirmation of receipt.
System, Conference Staff (if payment in person or by phone/mail)
Validate and account for payment. Update registration information
Once registration items have been added to cart, the attendee (or conference
staff) proceeds to checkout to complete payment information, update
registration and generate a receipt.
Attendee, Conference Staff (if payment in person or by phone/mail)
If attendee does not already have an account, create an account.
Accounts are used to track cart items and registration information. If the
attendee does not have an account, create an account containing contact
information. Cannot proceed to “Add Item to Cart” without an account.
Attendee, Conference Staff (if payment in person or by phone/mail)
Allows attendee to select registration options
Attendee selects registration options – workshops, tutorials, extra proceedings,
etc. and when finished, proceeds to checkout cart.
10 | P a g e
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Use Case
Name
Actor
Purpose
Overview
Attendee, Conference Staff (if payment in person or by phone/mail)
Allows attendee to register at student discount rates
Attendee provides verification of student status in the form of an active .edu
email address or by presenting student ID card in person at conference.
Check for Scheduling Conflicts
System
Prevents attendees from inadvertently signing up for two or more events
occurring at the same time.
When attendee submits the cart for checkout, each event (workshop, tutorial) is
evaluated to see if the time conflicts with an existing event registration. If it
does, an error message is presented to the attendee. The attendee may chose to
override the error and register for both conflicting events.
Add Event/Extra
Administrator
Allows the administrator to add new conferences, tutorials, or workshops to the
system, as well as extra items, such as additional pamphlets.
When the administrator of the program must add new events (conferences,
tutorials, and workshops) or extras to the system, they will be able to directly
add these events or extras, which will immediately display in the system.
Modify Event/Extra
Administrator
Allows the administrator to modify conferences, tutorials, workshops in the
system, as well as extra items, such as additional pamphlets.
When the administrator of the program must modify events (conferences,
tutorials, and workshops) or extras in the system, they will be able to directly
modify these events or extras, which will immediately display in the system.
Delete Event/Extra
Administrator
Allows the administrator to delete conferences, tutorials, or workshops in the
system, as well as extra items, such as additional pamphlets.
When the administrator of the program must delete events (conferences,
tutorials, and workshops) or extras in the system, they will be able to directly
delete these events or extras, which will immediately display in the system.
11 | P a g e
Detailed Use Cases
USE CASE #
UC-001
USE CASE Name
Pay for ticket
ACTOR
Attendee
Purpose (1 phrase)
Interaction for attendee to submit payment
Overview and scope
Attendee submits payment (online with credit card) and receives confirmation of receipt.
Level
Primary
Preconditions
Postconditions in words
1. Attendee has a user account.
2. Attendee has events/extras in his cart.
3. Attendee is paying online.
Payment processed and ticket accounting updated. Confirmation email sent to attendee
Trigger
Use case triggered by attendee submitting web form
Included Use Cases
Handle Payment
Extended Use Cases
None
USE CASE DESCRIPTION in
numbered sequence:
Actor Action
Reference “included use
cases” in this section using
INCLUDE ius_name
System Action
1. Attendee completes web form and
submits.
2. System validates fields and calculates cost
of ticket(s).
3. Attendee submits credit card info.
4. INCLUDE Handle Payment
5. System updates ticket accounting and
sends confirmation.
6. Attendee receives confirmation email
SUBFLOWS, VARIATION
and EXTENSIONS (Specify
any variations of normal
execution paths, including
extension points using
EXTEND eus_name)
EXCEPTIONS (erroneous
situations)
Step
Priority in scheduling
First
Frequency
Once per user
Superordinates
None
Developer
John Ehring
Creation date and last
modified date
Other Comments
Created: 04 November 2010
Modified: 16 November 2010
None
Branching Action
None
Conditions
Actions
2a. Form validation fails (blank or invalid
entry);
5a. Credit card validation fails
Report error message to attendee and
instruct to correct and resubmit.
Ask to pay by another card or abort
12 | P a g e
USE CASE #
UC-003
USE CASE Name
Add an account
ACTOR
Attendee, Conference staff (if payment in person or by phone/mail)
Purpose (1 phrase)
If attendee does not already have an account, create an account.
Overview and scope
Level
Accounts are used to track cart items and registration information. If the attendee does
not have an account, create an account containing contact information.
Primary
Preconditions
Attendee does not have an account
Postconditions in words
Attendee has an account
Trigger
Included Use Cases
Use case triggered by attendee (or staff member for an attendee) starting the registration
process.
None
Extended Use Cases
None
USE CASE DESCRIPTION in
numbered sequence:
Actor Action
Reference “included use
cases” in this section using
INCLUDE ius_name
System Action
1. Attendee is prompted to create an
account if one does not already exist.
2. System displays account creation form.
3. Attendee completes form and submits
4. System evaluates form for correctness and
a unique account name.
6. Attendee receives confirmation of
successful account creation.
SUBFLOWS, VARIATION
and EXTENSIONS (Specify
any variations of normal
execution paths, including
extension points using
EXTEND eus_name)
EXCEPTIONS (erroneous
situations)
Step
Branching Action
1.
Staff member can complete form for
attendee in the case of phone order or mail
or if attendee is registering in person at time
of the conference.
Conditions
Actions
2a. Form validation fails (blank or invalid
entry);
2a. Requested account name already
exists
Report error message to attendee and
instruct to correct and resubmit.
Report account name already exists. Prompt
for a new account name or provide path to
login screen to allow attendee to login (in
case this was their account)
Priority in scheduling
First
Frequency
Once per user
Superordinates
None
Developer
Robert Sullivan
Creation date and last
modified date
Other Comments
Created: 04 November 2010
Modified: 16 November 2010
None
13 | P a g e
USE CASE #
UC-004
USE CASE Name
Add Item to Cart
ACTOR
Attendee, Conference staff (if payment in person or by phone/mail)
Purpose (1 phrase)
Allows attendee to select registration options
Overview and scope
Level
Attendee selects registration options – workshops, tutorials, extra proceedings, etc. and
when finished, proceeds to checkout cart.
Primary
Preconditions
Attendee has an account
Postconditions in words
Payment processed and receipt issued. Registration information updated.
Trigger
Use case triggered by attendee after logging into account.
Included Use Cases
None
Extended Use Cases
None
USE CASE DESCRIPTION in
numbered sequence:
Actor Action
Reference “included use
cases” in this section using
INCLUDE ius_name
SUBFLOWS, VARIATION
and EXTENSIONS (Specify
any variations of normal
execution paths, including
extension points using
EXTEND eus_name)
EXCEPTIONS (erroneous
situations)
System Action
1.Attendee completes login and selects
item from conference list.
2. System adds item to cart and calculates
and displays cost of items individually and
aggregate.
3. Attendee continues adding items as in
step 1 until proceed to checkout is
selected
Step
Branching Action
1.
Staff member can complete form for
attendee in the case of phone order or mail
or if attendee is registering in person at time
of the conference.
Conditions
Actions
Abort adding item; display “Prerequisite
Registration Needed” error dialog
Priority in scheduling
1. Attendee attempts to add an item
without an existing (in-cart or previously
registered) prerequisite (e.g. tutorial or
banquet ticket w/o corresponding
conference registration)
2. Attendee attempts to add a nonconference event (tutorial or workshop)
that has a schedule conflict with an
existing (in-cart or previously registered)
non-conference event
Primary
Frequency
Once per user
Superordinates
None
Developer
Joe Lizzi
Creation date and last
modified date
Other Comments
Created: 04 November 2010
Updated: 15 Novermber 2010
None
Abort adding item; display “Schedule Conflict”
error dialog
14 | P a g e
Use Case Diagram
Register Account
«uses»
Add Event to Cart
Add Workshop
«uses»
Add Tutorial
«extends»
Attendee
Check for Schedule
Conflicts
Add Option to Cart
Pay for Cart
Print Receipt
«extends»
«external
system»
«uses»
Handle Check
Payment
«uses»
«extends»
Handle Credit Card
Payment
Verify Student
Status
Agent
Print Badge
Apply Discount
Cancel Event
«extends»
Issue Refund
Admin
Modify Event
Add Event
Figure 1 - Use Case Diagram
Payment Verifier
15 | P a g e
Analysis Class Diagram
Workshop
Conference
Tutorial
-workshopID
-name
-description
-theme
-date
-startTime
-endTime
-registeredAttendees
-conferenceID
-name
-description
-startDate
-endDate
-startTime
-endTime
-registeredAttendees
-tutorialID
-name
-description
-topic
-minimumRegistered
-startDate
-endDate
-startTime
-endTime
-registeredAttendees
Administrator
-accountName
-permissions
0..*
Event
CustomerAccount
-registrationID
-name
-address
-phoneNumber
-email
-affiliation
-isStudent
-isRegistered
1
1
0..*
0..*
0..*
-eventID
-price
-location
-city
-discountCutoffDate
-earlyDiscount
-studentDiscount
Extras
-name
-description
-price
-extrasID
0..*
0..*
1
1
1..*
1
Payment
1
Receipt
-eventName
-eventDate
-city
-datePaid
-amountPaid
-affiliation
-address
-receiptID
-type
-amount
-date
-transactionID
Verification<<interface>>
-isAuthorized
1
Credit Card
-number
-CSC
-expDate
-
Figure 2 - Analysis Class Diagram
Check
-checkNbr
-routingNbr
-date
16 | P a g e
Design Class Diagram
Workshop
Conference
Tutorial
-workshopID
-name
-description
-theme
-date
-startTime
-endTime
-registeredAttendees
-conferenceID
-name
-description
-startDate
-endDate
-startTime
-endTime
-registeredAttendees
-tutorialID
-name
-description
-topic
-minimumRegistered
-startDate
-endDate
-startTime
-endTime
-registeredAttendees
Administrator
-accountName
-permissions
+login()
0..*
CustomerAccount
Event
-registrationID
-name
-address
-phoneNumber
-email
-affiliation
-isStudent
-isRegistered
-registeredEvents : collection : Event
-boughtExtras : collection : Extras
-eventReceipt : Receipt
+createAccount()
+updateInfo()
+validateStudent()
+login()
+createCart()
+updateCart()
+viewCart()
+deleteCart()
11
1
1
0..*
1
-eventID
-price
-location
-city
-discountCutoffDate
-earlyDiscount
-studentDiscount
+createEvent()
+updateInfo()
+getInfo()
+deleteEvent()
+getDiscount()
+getDiscountPrice()
+registerAttendee()
0..*
Extras
-name
-description
-price
-extrasID
+createExtras()
+setDependency()
+updateInfo()
0..*
0..*
1
1..*
Payment
1
Receipt
-eventName
-eventDate
-city
-datePaid
-amountPaid
-affiliation
-address
-receiptID
+createReceipt()
+printReceipt()
+updateReceipt()
0..*
-type
-amount
-date
-transactionID
+submitPayment()
+verifyPaymentStatus()
+issueRefund()
Credit Card
-number
-CSC
-expDate
Figure 3 - Design Class Diagram
Verification<<interface>>
-isAuthorized
Check
-checkNbr
-routingNbr
-date
17 | P a g e
System Analysis – Validation & Discussion
The system analysis of our Conference Registration System involved the formulation of the fundamental
principles of our system. To properly understand and flesh out these principles, we developed a number of
textual use cases and extended use cases, as well as a use case diagram, an analysis class diagram, and a design
class diagram. All of these techniques allowed our team to better articulate the demands of our system in terms
of objects, classes, attributes, relationships, scenarios, and actors.
The use cases presented above each serve as a particular scenario or function that would expect the Conference
Registration System to have to complete to satisfy the objectives stated in the problem statement. The three
detailed use case diagrams (also above) take three specific use cases into much further depth, offering
information such as preconditions, postconditions, sequences, subflows, and many other types of important
information that was immediately relevant in the creation of several UML diagrams. One such diagram, the use
case diagram (Figure 1), is perhaps the most immediately relevant to the individual use cases. This diagram
illustrates how each actor will be involved with each use case, as well as how the use cases themselves interact,
include, or extend other use cases.
The analysis class diagram (Figure 2) brings the information presented in Figure 1, the use case descriptions, and
extended use cases into focus by modeling the classes of our system. These classes, though not software
components themselves, will influence later software development. All objects in our system will be
instantiations of these classes. With this in mind, each class has some inherent attributes which are passed to all
objects of that class. An interesting example of this aspect of classes occurred during our development process.
At first, we deemed it most efficient for the Events class to comprise all attributes of the Conference, Workshop,
and Tutorial classes. In this regard, a Conference would be an object which was instantiated from the Events
class. However, we later determined that too high a degree of variation existed between these three concepts,
and so we decided to create the three Events subclasses: Conference, Workshop, and Tutorial. Another
additional feature of the analysis class diagram is its inclusion of cardinality for its classes. Figure 2 illustrates
how the cardinality of our system is centered on the notion that only one customer account can exist. All
transactions, events, and actions occur under the assumption that they will only interact with one customer
account at any given time.
The final diagram presented in the System Analysis portion of our project is the design class diagram. Very
similar to our analysis class diagram, Figure 3 offers more information about how our system will operate in the
form of functional methods. These methods will form the basis of most interactions of our system, and as such
will be modeled in the sequence diagrams in the System Design section (Figure 4, Figure 5, Figure 6, and Figure
7). The methods covered in Figure 3 cover most actions in our system, including those functions related to the
creation of accounts, the creation, modification, and deletion of events, the calculation of discount prices,
processing payments, sending receipts, enter information, and many other tasks which are essential to the
successful operation of the system.
18 | P a g e
System Design
System Sequence Diagram
A Customer <<actor>>
conference:Conference
ticket:Extras
customer:CustomerAccount
payment:Payment
Verification<<interface>
>
submitInfo()
confirmInfo()
<<create>>
selectEvent()
addtoCart()
finalizePurchase()
selectAdditional()
addtoCart()
finalizePurchase()
gotoCheckout()
calculatePrice()
requestCCDetails()
enterCCInfo()
confirmPayment()
submit()
verifyPayment()
paymentVerified()
sendReceiptInfo()
sendReceipt()
Figure 4 - System Sequence Diagram
receipt:Receipt
19 | P a g e
Sequence Diagram (Add Account)
Attendee<<actor>>
account:CustomerAccount
Security
AddAccount()
Request Username
SubmitUsername(Username, password, pwd_verify)
checkUsername(Username)
returnUsernameOK(Username)
Verify not duplicate
checkPassword(password, pwd_verify)
Verify passwords match
Verify complexity req.
returnPasswordOK(password)
Report Username OK
Request Contact Information
submitContact(address)
Validate Address
submitEmail(email_address)
Validate Email
Report Account Creation Success
Figure 5 - Sequence Diagram (Add Account)
20 | P a g e
Sequence Diagram (Add Event to Cart)
EVENT
ATTENDEE
ATTENDEE:Cart
list Events()
getDiscount(isEarly, isStudent)
event list, discount %
get Info(Event)
getDiscountPrice()
description, price, discounted price
createCart()
[Cart does not exist]
addItem(Event)
getPrice(Event)
price
viewCart()
Figure 6 - Sequence Diagram (Add Event to Cart)
updateCart()
21 | P a g e
Sequence Diagram (Pay for Ticket)
USER
Payment
Verification<<interface>
>
Pay for items
Check Cutoff Date
Validate items
Return Cutoff Status
Check Student Status
Return Student Status
Apply Discounts
Request Payment
Calculate price
Enter Credit Info
Verify Credit Info
Credit Verified
Approve Purchase
Receipt
UpdateGenerate
inventories
E-mail receipt
Figure 7 - Sequence Diagram (Pay for Ticket)
Receipt
22 | P a g e
State Diagram
User submits login credentials
Prompt for
resubmission
Fail
Validate
Login
Notify Error
Pass
Display Conference Pick List
Select
Item
Added to Cart
Add
Another?
Yes
No
Yes
Calc Student Discount
Is student?
No
Yes
Is early?
No
Display Price/Prompt for payment
Receive
Payment
Error
Prompt for Cancel or Retry
Validate
Payment
OK
Generate Receipt
User Log out
Figure 8 - State Diagram
Calc Early Discount
23 | P a g e
System Design – Validation & Discussion
The System Sequence Diagram (Figure 9) shows the success path for conference registration and payment using
the Conference Reservation System. The diagram shows the interaction required to create an account, select
conference offerings and make payment. Each of these steps is shown in greater detail in subsequent Sequence
Diagrams.
The Add Account Sequence Diagram (Figure 10) shows the interaction required to initially create an account
prior to shopping with the Conference Reservation System. The attendee (actor) submits the desired
username/password to the Customer Account system. Customer Account first passes the desired username to
the Security system to verify the username does not already exist. Once the username clearance is received, the
Security system evaluates the desired password to ensure complexity requirements are met and the password
and repeated password entered match. Customer Account receives the Password OK and reports success to the
attendee. The attendee is then prompted to supply contact information to associate with the account.
Assigning each attendee an account allows the system to track “carts” and provides a mechanism for the
attendee to only enter the contact information only once instead of once per conference.
The Add Event to Cart Sequence Diagram (Figure 11) shows the success path for adding one or more items to
the attendee’s “cart”. Once the attendee selects the conference, the system displays all the items available
(sessions, tickets, proceeding, etc.) and the attendee’s price for each item, based on status (student/regular) and
registration status (early/late). As the attendee selects items for the cart, the system maintains a running list of
the cart’s contents, item price and total price. The “cart” system was selected to allow flexibility in the
programming of the system. By treating sessions, tickets, et al. as items to be added it allows the system to
maintain a simple database for each conference, instead of custom programming.
The final Sequence Diagram, Pay for Ticket (Figure 12), is activated when the attendee is finished adding items
to the cart and proceeds to checkout. The attendee’s student and registration status is verified to ensure the
pricing displayed is correct. Once confirmed, the attendee is prompted for payment information. Following
successful conformation of the financial transaction, a receipt is generated and sent via email to the attendee.
This method allows the system to save the cart, so the attendee can come back and view what has been
purchased for a given conference.
The State Diagram (Figure 13) shows the success path (as in the System Sequence Diagram). The State Diagram
shows the decision tree that is followed for completing a transaction from start to finish.
24 | P a g e
Physical Design
Entity-Relationship Diagram
custAccount
PK
registrationID
name
address
phoneNum
email
affiliation
isStudent
Attendee
boughtExtras
FK1
FK2
FK3
registrationID
EventID
transactionID
FK1
FK2
FK3
Extras
extrasID
FK1
name
description
price
EventID
registrationID
extrasID
transactionID
Event
PK
PK
EventID
Name
location
city
discountcutoff
price
type
description
startTime
endTime
earlyDiscount
studentDiscount
Conference
PK,FK1
EventID
startDate
endDate
PK,FK1
EventID
theme
date
Receipt
PK
Tutorial
Workshop
transactionID
date
amount
paymentType
Figure 14 - Entity-Relationship Diagram
PK,FK1
EventID
topic
minimumAttendees
startDate
endDate
25 | P a g e
Deployment Diagram
<<kiosk>> ;CRS Kiosk
<<web server>> ;CRS WebServer
<web server>>
;Apache 2.1
<<database>>
;MySQL Database
PHP:MySQL
Module
<<OS> ;Ubuntu
HTTP/S
<<interface>>
;PHP5
HTTP/S
<<browser>>
;Firefox
<<PC>> Home/
Registration PC
<<browser>
Web browser
Figure 15 - Deployment Diagram
Physical Design – Validation & Discussion
The Entity-Relationship Diagram (Figure 9) maps the class-object model into a more database-ready design. Each
entity represents a table in the database. An Event represents the conference itself, as well as the various
workshops and/or tutorials that may be available. In addition to things like the name, dates, and location, it also
stores any available discount (early registration and/or student). Extras is for the optional things such as printed
(versus on CD) proceedings, banquet tickets, and so on; note that no Extra can exist by itself, but needs to be
linked to a particular Event (generally the conference itself, although there may be optional materials available
for specific workshops or tutorials).
custAccount represents the attendee’s personal information, and is modeled on a “registered account” model of
ordering (such as would be found in most online stores, like Amazon). Along with the expected address and
name, there is also a flag for student discount eligibility (when applicable). The student eligibility is set through
automated means such as a “.edu” email address, or manually via a copy of the student ID card. The Attendee
entity allows the database to store the many-to-many relationship inherent with attendees and events (each
event can have multiple attendees, and each attendee can register for multiple workshops and tutorials), by
creating a “bridge” that acts as a quick lookup table. boughtExtras has a similar purpose, but for the Extras
entity.
26 | P a g e
Finally, the Receipt entity stores the total amount paid by the attendee for the conference, workshops, tutorials,
and any extras. It, too, is linked to Attendee and boughtExtras, so that it may accurately reflect all registration
fees and purchases.
The Deployment Diagram (Figure 10) shows the overall system and software architecture. The Conference
Registration System will be designed as a web application, which can be accessed from any standard web
browser (Internet Explorer, Firefox, Safari, etc), including those on most modern phones. It can run in both
normal (HTTP) and secure (HTTPS) browsing modes, although HTTPS will automatically be used when entering
any credit card payment information.
The system itself is a simple Apache web server, running the PHP scripting language, and connecting to a MySQL
database. The “CRS Kiosk” will be a terminal setup at the conference for on-site registration; it will be a
simplified setup of Firefox running on Linux, and can either be hooked to a touch-screen for input, or a standard
mouse-and-keyboard.
27 | P a g e
Applications Design
Screenflow Diagram
Conference
Homepage
Create Account
Create
Account
User Login
Account Created
Login
Login Successful
Continue Shopping
View Cart
Logout
Conference
Offerings
Order Cleared
Logout
Proceed to Checkout
Cart Contents
Proceed to Checkout
Cancel
Order
Cancel Order
Checkout
Cancel Order
Enter Payment
Payment
Payment Verification Successful
Order
Confirmation
Figure 16 - Screenflow Diagram
Cancel Order
28 | P a g e
Applications Design – Validation & Discussion
The Screenflow Diagram (Figure 17) provides the navigation path between screens based on user (attendee)
actions. The home page is the Conference Homepage, which is unique for each conference. The attendee
either creates a new account or logs in using an existing account. Following successful login authentication, the
Conference Offerings page is shown. This page lists the sessions, event tickets, additional proceedings and other
items available for sale for the conference. The price displayed for each item is based on the attendee status
(regular/student) and registration status (early/late). At any time, the attendee can view his/her cart’s current
contents. Once the attendee is finished adding items, he/she proceeds to the Checkout. Here, the attendee
enters payment information. Alternately, the attendee can choose to return to the Conference Offerings page
to add more items or clear the cart.
Completion of the order is shown on the Order Confirmation screen. Leaving the Order Confirmation screen or
logging out at any point sends the attendee back to the Conference Homepage.
Evaluation of Analysis & Design
Project
If we could redo the project, and had more time to do so, there are several things that we would change:



We would look at a few existing designs, in order to have a better starting point for Inception.
We would create three or four different approaches to the problem, doing initial analysis work on each
one to determine which approach is the most straightforward and feasible. (The current account-andshopping-cart approach does work, but it was a little bit difficult at times to model, given our limited
experience with UML and OOA&D concepts.)
Work deadlines, section meetings, and general discussions would follow a more defined and structured
schedule.
Domain
The domain of the project, a semi-automated registration system for an academic conference, was very
appropriate for our group. We were able to successfully implement a number of functional and design artifacts
which could contribute to the actual creation of this system. However, our team stopped short of completing
more of the Physical Design and Interface Design which would be necessary to fully flesh out the system and
create a working prototype. With more time, effort, and resources, the design of this system could be
completed, and development work could begin.
UML
Unified Modeling Language was used to successfully model the design of the Conference Registration System
and critically evaluate the design for conformance to the requirements. The process required to create a UML
based model necessitated carefully reviewing the system requirements. Creating the sequence diagrams
flushed out the parameters and methods for the class model.
29 | P a g e
Modeling Tools
During the course of our project, we primarily used two modeling tools: Microsoft Visio and Gliffy. We began
using Gliffy for its ability to assist in the creation of models and diagrams in real time over the Internet. This was
seen as particularly attractive, because it was impossible for our team to meet face-to-face. That being said, we
found Gliffy’s options to be limited in terms of diagramming capability, in addition to setbacks we faced while
trying to diagram via Gliffy and communicate via Skype voice chat. We soon abandoned Gliffy for the vastly
superior Microsoft Visio.
Visio, a recommendation of the professor to be used in the course, offered a lot more in terms of compatibility,
availability, and ease of use. One team member was using Visio on a Mac; this caused a number of compatibility
issues, such as partially corrupting a diagram file and making changes to another impossible. These setbacks
were frustrating, but ultimately they were few and far between. The majority of our work with Visio was very
productive, and Visio provided a very clean way to not only create our diagrams, but to share them as well.
Appendix
Division of Work
Item
Problem Statement
Requirements
Use Cases
Detailed Use Cases
Use Case Diagram
Analysis Class Diagram
Design Class Diagram
System Sequence Diagram
Sequence Diagram (Pay for Ticket)
Sequence Diagram (Add Account)
Sequence Diagram (Add Event to Cart)
State Diagram
Deployment Diagram
Entity-Relationship Diagram
Screenflow Diagram
Evaluation of Analysis & Design
Validation & Discussion
Completed Primarily By
Group Seven
Rob Sullivan
Group Seven
John Ehring, Joe Lizzi, Rob Sullivan
Group Seven
Group Seven
Joe Lizzi
John Ehring
John Ehring
Rob Sullivan
Joe Lizzi
Rob Sullivan
John Ehring, Joe Lizzi
Joe Lizzi
Rob Sullivan
Group Seven
Group Seven
Note: While the above table demonstrates the person primarily responsible for each item, all items were
discussed and edited collaboratively and approved by the team.
30 | P a g e
Lessons Learned – John


Perhaps the most important phase of the entire project was the initial planning stages at which the use
cases and class diagrams were created. While not true of all diagrams, the class diagrams (created from
the information gathered in the use cases) provided a basis for many of the other diagrams created in
this project.
A very useful tool was the creation of a project proposal which outlined which diagrams and work items
would be due and when. This allowed for easier communication and better planning, which resulted in a
more coherent product.
Lessons Learned – Joe



The UML specification is very flexible and powerful, and is able to model many things in many ways.
Unfortunately, this can also make it confusing and hard to work with sometimes, as I wasn’t always sure
that I had the right notation or symbol.
Having gone through this project, it is easier to see how the various diagrams and specifications relate to
one another, both directly and indirectly.
Working in Visio is both a blessing (powerful, most of the UML symbols, easy to move around objects),
and a curse (some of the UML notation is slightly different, changing the labels and text on lines and
other objects is not straightforward, the snap-to-grid feature only kinda-sorta works).
Lessons Learned – Rob


I found the exercise to be very time consuming. I suspect that with practice and experience, the effort
required to create a UML design will decrease.
I found the state diagram to be implementation dependent. That is, it makes sense when dealing with a
physical system. However, I found it less useful when dealing with a system that is strictly abstract.
References
Larman, Craig (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and
Iterative Development, Third Edition. Prentice Hall. Retrieved from the Drexel University Library Online
Song , Il-Yeol, Kurt Yano, Juan Trujillo, and Sergio Luján-Mora (2004). “A Taxonomic Class Modeling Methodology
for Object-Oriented Analysis". Information Modeling Methods and Methodologies. Idea Group Publishing. pp.
216-240
Download