INFO 620 ~ Information Systems Analysis and Design Fall 2003 Analysis & Design Project Conference Registration System (CRS) Olga Alsheimer Nicole Carfagno Alex Podoksik December 11, 2003 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Table of Contents Section Page Introduction ......................................................................................... 4 Overview .......................................................................................... 4 Nature of CRS ................................................................................... 4 Assumptions and Scope ...................................................................... 4 Systems Analysis .................................................................................. 5 Problem Statement ............................................................................ 5 Use Case Diagram ............................................................................. 7 Analysis Class Diagram ....................................................................... 8 Use Case Descriptions ........................................................................ 9 Maintain Conference Offerings - Carfagno .......................................... 9 USE CASE # ........................................................................................ 9 USE CASE Name ................................................................................... 9 ACTOR ................................................................................................ 9 Purpose (1 phrase) ............................................................................... 9 Overview and scope .............................................................................. 9 Level................................................................................................... 9 Preconditions ....................................................................................... 9 Postconditions in words ......................................................................... 9 Collect Marketing Data – Carfagno .................................................. 12 USE CASE # ...................................................................................... 12 USE CASE Name ................................................................................. 12 ACTOR .............................................................................................. 12 Purpose (1 phrase) ............................................................................. 12 Overview and scope ............................................................................ 12 Level................................................................................................. 12 Preconditions ..................................................................................... 12 Postconditions in words ....................................................................... 12 Process Registration – Podoksik ...................................................... 14 USE CASE # ...................................................................................... 14 USE CASE Name ................................................................................. 14 ACTOR .............................................................................................. 14 Purpose (1 phrase) ............................................................................. 14 Overview and scope ............................................................................ 14 Level................................................................................................. 14 Preconditions ..................................................................................... 14 Postconditions in words ....................................................................... 14 Process Payment – Podoksik........................................................... 18 USE CASE # ...................................................................................... 18 USE CASE Name ................................................................................. 18 ACTOR .............................................................................................. 18 Purpose (1 phrase) ............................................................................. 18 Overview and scope ............................................................................ 18 Level................................................................................................. 18 2 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Preconditions ..................................................................................... 18 Postconditions in words ....................................................................... 18 Process Cancellation – Alsheimer .................................................... 22 Process Refund – Alsheimer ........................................................... 24 Generate E-mail Confirmation – Alsheimer ....................................... 26 Systems Analysis - Validation & Discussion ......................................... 28 Systems Design ................................................................................. 32 System Sequence Diagrams .............................................................. 32 Process Registration SSD - Podoksik ................................................ 32 Process Payment SSD – Podoksik .................................................... 33 Process Cancellation SSD – Alsheimer ............................................. 34 Sequence Diagrams ......................................................................... 35 Collect Marketing Data SQD - Carfagno............................................ 35 Collect Marketing Data SQD – Carfagno ........................................... 36 Maintain Conference Offerings SSD – Carfagno ................................. 37 Process Registration SQD - Podoksik ............................................... 40 Process Payment SQD – Podoksik ................................................... 43 Process Cancellation SQD – Alsheimer ............................................. 45 Process Refund SQD – Alsheimer .................................................... 47 Generate E-mail Confirmation SQD - Alsheimer ................................ 48 State Diagram – Registration ............................................................ 49 Design Class Diagram....................................................................... 50 Systems Design – Validation & Discussion........................................... 51 Evaluation of Analysis and Design ......................................................... 53 Summary and Lessons Learned ............................................................ 54 References ........................................................................................ 55 Appendices ........................................................................................ 56 Individual Experience & Lessons - Alsheimer ....................................... 56 Individual Experience & Lessons – Carfagno ........................................ 58 Individual Experience & Lessons – Podoksik ........................................ 59 Taxonomic Class Modeling Methodology .............................................. 60 SQD 10-step Heuristics..................................................................... 63 3 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Introduction Overview This purpose of this project is to develop a web-based conference registration system (CRS) to accommodate organization of yearly conferences, tutorials and workshop sessions. The system should be flexible enough to adapt to various conference registration needs. For example, some conferences may include tutorials, workshops, technical programs and expositions, while others include only a subset of those activities. The system should also allow registrants to select attendance at associated special events and to purchase extra copies of conference material. Nature of CRS Through this system, a conference participant should be able to enter and maintain personal information, select conference activities, and enter payment information. The system should also allow for collection of marketing data. The system should display information regarding what is included in each registration, as well as registration dates and fees for each activity. The system should also display refund policies and cancellation procedures. The system should accommodate different types of conference fees for each activity, according to early/late registration date and registrant status. It should calculate the proper price for each activity based on registration date and status. The system should allow registrants to pay for all activities at once or to select and pay for separate components at different times using different registrations. Participants should be able to indicate preferred form of payment and enter related information. Credit card payments would be authorized and processed as part of the web-based registration. Assumptions and Scope The conference registration system will be in one language (English) and payment will be in one currency (US Dollars). This system will support automated conference registration, billing, ticket purchasing and financial reporting. The system will support web, phone, mail-in, and walk-in registration modes. The system will process attendee payment information. Although the registration system will track participant payment for conference materials, procedures for actual distribution of conference proceedings and tutorial notes will be outside the scope of the system. Ideally, the system could be integrated with an organization's overall conference management system (i.e., tracking of accepted papers, invited speakers, hall assignments). This integration is outside the scope of the project. 4 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Systems Analysis Problem Statement This project designs a web-based conference registration system (CRS) to accommodate organization of yearly conferences, tutorials and workshop sessions. The system should be flexible enough to adapt to various sponsor organizations' (e.g., CIKM, XML, Seybold) particular conference registration needs. For example, some sponsors may offer tutorials, workshops, technical programs and expositions, while other sponsors offer only a subset of those activities. Thus, the system may be used for any combination of conference activities. The system should also allow registrants to select attendance at associated receptions, lunches and banquets (including special meal request), and/or other special events (e.g., sightseeing tours affiliated with a particular conference). Through this system, a conference registrant should be able to enter and maintain personal information (name, mailing address, phone numbers, email, company affiliation, job function, and status such as membership identification), select from a menu of conference activities, and enter payment information. Furthermore, the system should allow sponsors to collect marketing data (i.e., inquire where registrants learned about the conference) and ask whether registrants wish to be included on future mailing lists. The system should display information regarding what is included in each registration, as well as registration dates (pre-, late, on-site) and registration fees (by date and status) for each of the conference activities. The system should also display refund policies, cancellation procedures, and instructions and contact information for registrants with questions. Registrants must submit cancellation request via mail, phone or fax. Only conference staff may process cancellations and refunds. The system should accommodate different types of conference fees for each activity (workshop, tutorial, etc) according to early/late registration date and registrant status (member, nonmember, student). It should also include a "quick calculator" to calculate the proper price for each activity based on registration date and status. Once a registrant selects a combination of activities (conference sessions, tutorial, workshop, one or more tickets for lunches or banquets, receptions, tours, extra proceedings), the system should calculate the total fee. The system should allow registrants to pay for all activities at once or to select and pay for separate components at different times using different registrations. Registrants should be able to indicate preferred form of payment and enter related information. Acceptable forms of payment include cash, check, traveler's check and credit card. Cash, check and traveler's 5 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik check payments would need to be mailed and processed separately from the web-based registration. A registration would be marked as "incomplete" until payment was received and processed. Credit card payments would be authorized and processed as part of the web-based registration. The system should keep a record of participants registered for each type of session, indicate seat availability, and identify if conference tutorial session cannot be opened due to lack of required number of participants registered. Conference staff should be able to generate conference reports, including attendee lists by event (e.g., conference, workshops, tutorials), and print tickets for special events. This system will support automated conference registration, billing, ticket purchasing and financial reporting. The system will support web, phone, mail-in, and walk-in registration modes. The system will process attendee payment information. The system will centralize all the activities surrounding registration and billing. Although the registration system will track registrant payment for conference materials, procedures for actual distribution of conference proceedings and tutorial notes will be outside the scope of the system. This system will allow for web-based registration. However, conference personnel will be able to use the system to process registrations received by mail, phone and/or fax. Furthermore, an sponsor may choose to set up workstations at a conference site to accommodate on-site registration. Ideally, the system could be integrated with an sponsor's overall conference management system (i.e., tracking of accepted papers, invited speakers, hall assignments). This integration is outside the scope of the project. Finally, maintenance of the main organization and conference websites is outside the scope of the system. 6 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Use Case Diagram System Boundary = Conference Registration System (CRS) The follow ing aspects are OUTSIDE the scope of CRS: 1. Maintenance of conference w ebsite; 2. Distribution of conference proceedings; 3. Tracking conference papers, speakers, hall assignments. <<extend>> Request Event Tickets Sponsor <<include>> Process Conference Registration Collect Marketing Data Registrant <<include>> Check Registration Status Issue Confirmation <<include>> <<include>> Process Payment Staff CCAS <<include>> Process Cancellation Process Refund Generate Conference Reports Maintain Conference Offerings 7 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Analysis Class Diagram 8 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Use Case Descriptions Maintain Conference Offerings - Carfagno USE CASE # USE CASE Name ACTOR Purpose (1 phrase) Overview and scope Level Preconditio ns UC01 Maintain Conference Offerings Staff CSR maintains conference offerings To keep track of the type of conference being offered and its id. Also to keep track of they type of member and the amount due for the conference. Also keeps track of refund policies, cancellation policies and contact information for registrants that have questions. Primary The The The The The sponsor has listed the conferences. list of dates and status are listed for each activity refund policies are included cancellation policies are included contact information is included The conferences are offered Postconditio The dates and status were listed for each activity ns in words The refund policies were included Trigger Included Use Cases Extended Use Cases MAIN SUCCESSFUL SCENARIO in numbered The cancellation policies were included The contact information was included A list of conferences are offered Actor Action 1. The sponsor lists yearly conferences and types of conferences System Action 9 INFO 620, Fall 2003, Analysis & Design Project sequence Reference “included use cases” in this section using INCLUDE ius_name Alsheimer, Carfagno, Podoksik 2. The system displays the conferences offered and what is included in each registration 3. The sponsor added the fees for each activity by date and status 4.The system displays different fees for each activity by date and status 5. The sponsor added the refund policies for the conferences 6. The system displays refund policies. 7. The sponsor added the cancellation procedures 8. The system displays cancellation procedures 9. The sponsor added instruction and contact information for registrants with questions 10. The system displays instructions and contact information for registrants with questions OTHER SUCCESSFUL SCENARIOS (Specify any successful variations of the normal execution path, including extension points using EXTEND eus_name) UNSUCCESSF UL SCENARIOS Step Branching Action Conditions 1a. No conferences are available Actions CRS can not maintain information 10 INFO 620, Fall 2003, Analysis & Design Project (erroneous situations) 4a. No prices are added to conferences 6a. No refund policies are added 8a. No cancellation procedures are added 10a.No contact information is provided Priority in scheduling Frequency Superordinate s Developer Creation date and last modified date Other Comments Primary Alsheimer, Carfagno, Podoksik Can not display to registrant Can not notify registrants on refund policies Can not notify registrants of cancellation policies Registrants will not know who to contact regarding questions Yearly Nicole Carfagno 11-11-2003 11 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Collect Marketing Data – Carfagno USE CASE # USE CASE Name ACTOR Purpose (1 phrase) Overview and scope Level Preconditio ns U02 Collect Marketing Data Sponsor CRS collects marketing information For the sponsor to track of information about registrants such as where they heard about the conference and if they would like to receive information about future conferences by being part of the mailing list Included Information regarding registrant is included in personal information The registrant’s information as to how they heard Postconditio about conference was known. ns in words The registrants requested information about future conferences Trigger Sponsor inquires information about how registrants learned about conference Included Use Cases Extended Use Cases MAIN Actor Action System Action SUCCESSFUL 1. The CRS displays a form SCENARIO in to fill out marketing data. numbered 2. Staff adds registrants sequence marketing information 3. CRS updates statistics as Reference to how registrants learned “included use about conference. 12 INFO 620, Fall 2003, Analysis & Design Project cases” in this section using INCLUDE ius_name Alsheimer, Carfagno, Podoksik 4. CRS checks to see if registrant requests information about future conferences. 5. CRS sends out information about future conferences. OTHER SUCCESSFUL SCENARIOS (Specify any successful variations of the normal execution path, including extension points using EXTEND eus_name) UNSUCCESSF UL SCENARIOS (erroneous situations) Step Branching Action Conditions 2a. Registrant does not include information on how they learned about conference Actions No information is collected Priority in scheduling Frequency Superordinate s Developer Creation date and last modified date Other Comments Second Several times a year Nicole Carfagno 11-11-03 13 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Registration – Podoksik USE CASE # USE CASE Name ACTOR Purpose (1 phrase) Overview and scope Level Preconditions Postconditions in words Trigger Included Use Cases Extended Use Cases MAIN SUCCESSFUL SCENARIO in numbered UC03 Process Conference Registration Registrant To register for a conference Registrant enters all the necessary personal and billing information, selects conference activities, accommodations and proceedings, pays for purchased items. System will store all provided information, determines seat availability, calculates total fee, updates seat availability information and sends conformation by email to registrant. Should registrant decide to pay by CC online, system validates customer credit and process payment. Primary Registrant is successfully accessed CRS entrance web site. Registrant registered for conference. Registrant had scheduled conference activities. System recorded all required registrant information and scheduling. System had calculated and recorded total fee. If desired, credit card payment for conference is processed, and the card is charged. Confirmation email has been sent to registrant with registrant’s detailed registration information. Customer logged into the system and navigates to “Register for Conference” option. “Register for Conference” web page appears. Process Payments. Send Email Confirmation. None. Actor Action System Action 1. Navigates to “Register Conference” page. 14 INFO 620, Fall 2003, Analysis & Design Project sequence Alsheimer, Carfagno, Podoksik 2. Display conference activities, such as: presentations, tutorials, workshop sessions, technical programs and expositions. Display other conference offerings, such as: receptions, banquets (with “special” meal requests forms), special events and extra proceedings. Display their schedule and specify pricing options. Indicate variances in fees based on different criteria such as: registrant status (member, nonmember, and student), early/late registration. Allow registrant to select various items from the conference activities and offering lists and accommodate registrant in calculation of total fee. The system should present the final total fee to registrant. Display the option to cancel or continue registration. Display a form with username and login text boxes to enter if registration account is already created. [Scenario: Registrant registers online for conference including online credit card payment.] 3. Registrant chooses to continue registration. 4. Display required input form for registrant to fill out name, mailing address, phone numbers, e-mail, company affiliation, job function, status and, if member, membership identification. Allow registrant to create username and password. Display message to review entered information and continue registration. 15 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik 5. Registrant proceeds to the next page. 6. Display information presented by registrant with ordered conference options and total fee. Prompt registrant to confirm entries or edit information. 7. Display a message indicating that registration account for registrant has been created and provide registrant with Registration ID. 8. Display to registrant payment options: cash, check, traveler’s check or credit card. For mail-in payments display address for mail-in payments. Display an option to pay in full or partially by credit card online. Display an option to finish registration now with “incomplete” status until payment for conference is processed. 9. Registrant selects to make a payment by credit card. 10. INCLUDE Process Credit Card. 11. If status returned ok, display message thanking for registration and informing registrant that confirmation email report is sent to registrant’s email address. 12. INCLUDE Send Confirmation Email. OTHER SUCCESSFUL SCENARIOS Step Branching Action 2a. Registrant aborts registration 6a. Registrant selected to edit the information. System displays starting page of the conference. Return to step 4. 16 INFO 620, Fall 2003, Analysis & Design Project 8a. Registrant decided to pay by other means than credit card later. UNSUCCESSFUL SCENARIOS (erroneous situations) Priority in scheduling Frequency Superordinates Developer Creation date and last modified date Other Comments Conditions 10a. Credit card validation fails Alsheimer, Carfagno, Podoksik Proceed to step 10 continue from there. Registrant information is considered incomplete until paid in full. Confirmation report should contain an INCOMPLETE status. Actions Abort transaction. Inform registrant about the failure. Go to step 11. Primary TBD Alex Podoksik Created 11/12/2003 17 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Payment – Podoksik USE CASE # USE CASE Name ACTOR Purpose (1 phrase) Overview and scope Level Precondition s Postconditio ns in words Trigger Included Use Cases Extended Use Cases U06 Process Payments. Registrant, Staff, CCAS, Bank. Process payments for conference. Registrant or Staff on behalf of Registrant pays for conference by credit card, check, traveler’s check or cash. If paid by cash, Staff enters paid amount and system returns ok status. If paid by check or traveler’s check, Staff enters check amount. Checks are deposited to conference bank account and system returns ok status when money is transferred to the account. If paid by credit card, Registrant or Staff enters registrant’s credit card information. System submits the data to CCAS for authorization. If authorized, system processes the charge, submits the charge to subscriber’s credit card and returns ok status. Included Registrant submits some form of payment or chooses to pay by credit card online. Registrant payment is processed by the system and conference is paid by registrant. Status successfully returned to the host system. Registrant mails-in the check. Registrant pays by cash or traveler’s check Registrant calls in to pay by credit card. Registrant selects to pay by credit card online. none none 18 INFO 620, Fall 2003, Analysis & Design Project MAIN SUCCESSFUL SCENARIO in numbered sequence Actor Action Alsheimer, Carfagno, Podoksik System Action 1. Display login page with username and login inputs. 2. Staff enters login and username. 3. Display message to user indicating that he/she is about to be redirected to the secure site. 4. Display input box to enter Registration ID or other input boxes (name, membership ID, phone number, email) to search for registrant’s registration account. 5. Staff enters Registration ID provided by Registrant 6. Display registrant’s account information with payment options: Pay by cash Pay by check Pay by credit card 7. Staff selects to Pay by Credit Card 8. Display billing and credit card information form with required fields indicated to be filled in. 9. User inputs credit card information and submits data for processing. 10. Verifies that required fields are filled in. 11. If required fields are filled in, validate data integrity and data format. 6 If data appears correct, sends authorization request for the submitted amount through credit line gateway to CCAS. 19 INFO 620, Fall 2003, Analysis & Design Project OTHER SUCCESSFUL SCENARIOS (Specify any successful variations of the normal execution path, including extension points using EXTEND eus_name) Step 2a.User who enters username and password is Registrant. 7a. Staff selects to “pay by cash” option. 7a. Staff selects to “pay by check” option 7c. Staff uses 7a when processes traveler’s check. 10a. Not all required fields are filled in. 11a. Incorrect data entered. UNSUCCESSFUL Conditions SCENARIOS 2a. Login fails less (erroneous than 3 times Alsheimer, Carfagno, Podoksik 12. If authorization is successful and charge has been approved, display success message and calculate the balance. 13. If balance is zero, return “complete” status to calling application, otherwise return “incomplete” status. Branching Action Go to step 3, then skip to step 6 with only “pay by credit card” option. Display form to enter amount. After amount entered, calculate the balance. Proceed to step 13. Display form to enter the amount from the check, check number, branch routing number and bank name. Balance is calculated and check submitted to accounting department. Periodically check accounting system if money is transferred. When money transferred, proceed to step 13. Display billing and credit card information form again with missing fields being highlighted. Display billing and credit card information form again with incorrectly entered fields being highlighted. Actions Go to step 1. 20 INFO 620, Fall 2003, Analysis & Design Project situations) 2b. Login fails 3 times 5a. CCAS Authorization fails. Priority in scheduling Frequency Superordinates Developer Creation date and last modified date Other Comments Alsheimer, Carfagno, Podoksik Display message “Login Failed” Display failure message to subscriber and return failure status to calling application. Primary TBD Add a paid subscription Alex Podoksik Created 10/27/03 21 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Cancellation – Alsheimer USE CASE # UC07 USE CASE Name Process Cancellation ACTOR Staff Purpose Staff accesses CRS to process Registrant's cancellation request and issue a refund. Staff accesses CRS and initiates 'cancel registration' request. CRS accesses appropriate registration record. CRS flags registration record as 'cancelled' and decrements 'number registered' by one for each conference offering included in registration. CRS processes refund and auto-generates confirmation e-mail to Registrant. Primary Overview and scope Level Preconditions Postconditions Trigger Included Use Cases Extended Use Cases MAIN SUCCESSFUL SCENARIO CRS system is available. Staff is logged on. Registrant requesting cancellation has a current registration. Correct registration record is flagged as cancelled. 'numRegistered' counter for each conference offering included in registration is decremented by one. Registrant receives appropriate refund. Confirmation e-mail sent to Registrant. Registrant submits cancellation request via phone, fax or mail. UC08 Process Refund UC09 Generate E-mail Confirmation Actor Action System Action 1. Staff initiates cancellation request, entering Registration ID and request date. 2. CRS retrieves current Registrant, Registration and Payment records, displaying Registrant's personal information, list of Registration Selections, and amount paid by Registrant. 3. Staff selects 'cancel current registration' option. 4. CRS prompts to confirm registration cancellation (Are you sure you want to cancel registration for Registrant X?). 5. Staff confirms that registration should be cancelled. 6. CRS sets 'registrationStatus' in Registration record to 'Cancelled.' 22 INFO 620, Fall 2003, Analysis & Design Project OTHER SUCCESSFUL SCENARIOS Step 1a. Cancellation request does not contain Registration ID Priority in scheduling Frequency 5a. Staff entered registration ID for wrong Registrant Conditions *a. Staff aborts process Use case ends. 2b. No corresponding registration record found after 3 entry attempts Primary Use case fails. Approx 1% of registrations Superordinates None Other Nonfunctional Requirements Developer Olga Alsheimer Creation date and last modified date Other Comments 7. For each Registration Selection (line item) on the Registration, CRS decrements the corresponding Conference Offering's 'numRegistered' and Conference Material's 'numOrdered' by one. 8. CRS processes refund. <<UC08: Process Refund>> 9. CRS auto-generates cancellation email to Registrant INCLUDE <<UC09: Generate E-mail Confirmation>> Branching Action Staff selects 'find Registration ID' option. Staff enters Registrant membership ID or name (last, first, middle). CRS searches and obtains Registrant, Registration and Payment records. CRS displays message that registration does not exist and prompts for new registration ID. Staff re-enters valid registration ID. Staff responds 'no' to confirm cancellation prompt. CRS repeats step 2. Actions 2a. No corresponding registration record UNSUCCESSFUL SCENARIOS Alsheimer, Carfagno, Podoksik Created: 11-9-2003 Last modified: 12-8-2003 23 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Refund – Alsheimer USE CASE # USE CASE Name UC08 Process Refund ACTOR Purpose CRS processes credit card or check refund. Overview and scope For credit card refunds, total amount paid is credited to selected credit card. CRS calls credit card authorization service (CCAS) and obtains validation. For check refunds, total amount paid is processed into a refund check. Refund information is stored. Included Level Preconditions Postconditions in words Trigger CRS system is available. Staff is logged on. CCAS site is available. Registrant has an active paid Registration. Refund amount equal to Payment amount in Payment record. If credit card refund, validation obtained. If check refund, Registrant information and refund amount transmitted to accounts payable department for check processing. Refund data stored. Staff confirms that registration should be cancelled. Included Use Cases Extended Use Cases MAIN SUCCESSFUL SCENARIO Actor Action System Action 1. CRS creates Refund record, deriving 'refundAmount' from 'pymtAmount' in Payment table. 2. CRS obtains Registrant's credit card information (ccType, ccNumber, ccExp) from CreditCardPayment record. 3. CRS transmits Registrant's refund data to CCAS. 4. CCAS validates Registrant credit card information and approves refund. OTHER SUCCESSFUL SCENARIOS Step 5. CRS stores refund data (refundID, refundAmount, refundDate, refundMethod) in Refund table. Branching Action 2a. Check refund CRS skips this step. 24 INFO 620, Fall 2003, Analysis & Design Project 3a. Check refund Alsheimer, Carfagno, Podoksik UNSUCCESSFUL SCENARIOS Priority in scheduling Frequency CRS obtains Registrant's personal information (name, phone, address). CRS transmits Registrant information and refund amount and date to accounts payable for check processing. CRS skips this step. 4a. Check refund Conditions Actions 4b. Credit card authorization fails Primary CCAS returns failure message to CRS and use case terminates. Approx. 1% of registrations Superordinates UC07: Process Cancellation Request Other Nonfunctional Requirements Developer Olga Alsheimer Creation date and last modified date Other Comments Created: 11-11-2003 Last modified: 11-28-2003 25 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Generate E-mail Confirmation – Alsheimer USE CASE # USE CASE Name UC09 Generate E-mail Confirmation ACTOR Purpose Overview and scope Level Preconditions Postconditions in words Trigger CRS generates and sends a confirmation e-mail for a Registration or Cancellation. CRS creates and fills in e-mail template. For registrations, CRS fills in registration data (registrationID, registrant personal information, list of registration selections, special meal requests, and payment data). For cancellations, CRS fills in cancellation data (registrationID, registrant personal information, list of cancelled registration selections, and refund data). Email data is stored. Included CRS system is available. Staff is logged on. E-mail template is available. Registration or Cancellation has successfully processed. E-mail containing subject (confirmation or cancellation), registrant personal information, and registration/payment or cancellation/refund data is transmitted to Registrant E-mail data stored. Registration or Cancellation successfully processed. Included Use Cases Extended Use Cases MAIN SUCCESSFUL SCENARIO OTHER SUCCESSFUL SCENARIOS Actor Action System Action 1. CRS creates an instance of Email Template with the subject "Registration Confirmation." 2. CRS fills in Registrant's emailAddress. 3. CRS fills in Registrant's personal information (name, phone, fax, company, title, status, membership ID, username, password). 4. CRS fills in Registration information (list of registration selections with qty, meal requests, early or late, payment data). 5. CRS transmits e-mail. Step 6. CRS stores Email Template data (description, sentDate, subject, emailAddress) and updates Registration record with confEmailSent =Y and sentDate. Branching Action 1a. Cancellation CRS fills in subject "Cancellation Confirmation." 26 INFO 620, Fall 2003, Analysis & Design Project 4a. Cancellation Conditions CRS fills in Cancellation information (list of cancelled selections with qty, refund data). CRS updates Cancellation record with confEmailSent =Y and sentDate. Actions 5a. E-mail bounces back 6a. Cancellation UNSUCCESSFUL SCENARIOS Alsheimer, Carfagno, Podoksik CRS returns failure message to Staff Staff sends out a letter of confirmation to Registrant Priority in scheduling Frequency Primary Superordinates UC03: Process Conference Registration UC07: Process Cancellation Request Other Nonfunctional Requirements Developer Creation date and last modified date Other Comments 100% of registrations Olga Alsheimer Created: 11-28-2003 27 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Systems Analysis - Validation & Discussion The use case model we developed adheres to the main idea of use case development: it describes what system does but it does not specify how it does it. The main decision about use case diagram was to identify appropriate level of detail, so it would allow correctly identify classes and operations. The other problem was to place reasonable boundaries to the system (another word to identify “scope” of the system). As it was stated in our problem statement, primarily the system should be able to maintain conference offerings and activities, be able to present them to registrant. System should allow registrant to register through online registration interface, allow participant to modify personal and registration information. System should also allow staff to perform the above operations on behalf of participant. Furthermore, system should be able to present, store and process financial information. System should also be able to channel marketing information to conference sponsors. Our initial desire was to list all possible activities performed by main actors during at the conference in our use case diagram. First step in developing use case diagram was to identify main actors. Our initial list consisted of: registrant, staff, and sponsor/speaker and site manager. For exception of site manager, which we later dropped by scaling down the scope of the system, our list of main actors remained the same. By placing different activities against each of the actor, we developed first iteration of our use case diagram. Actor Activities Sponsor/Speaker manage staff, manage finances, manage conference offerings (<<include>> monitor seat availability), present marketing data Registrant collect marketing data, maintain personal info, process conference registration (<<include>> get confirmation email, process payment, calculate total fee, compile custom registrations) (<<extend>> request event ticket, request special accommodation) Staff all Registrant activities, maintain conference badges, generate special event tickets, process payment, process cancellation (<<include>> process refund) By analyzing our use case diagram, we realized few things: our diagram is not complete without a business actor such as credit card authorization service/financial institution; and our diagram appeared too granular. At this level of granularity, any of the activities that were not captured, needed to 28 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik be added later. This means we would not be able to finalize our design. Therefore, the next version of use case diagram is a rebuild of the first version from a higher view. In this version we collapsed granular activities into generalized use cases that would list just abstracted actions of the actors. Actor Activities Sponsor/Speaker provide conference offerings Registrant select offerings and activities, maintain personal info, register for conference and accommodations(<<include>> schedule activities (<<include>> issue confirmation)), pay for conference (process payment (<<include>> issue confirmation)) Staff all Registrant activities, process cancellation (<<include>> generate refund) By analyzing this diagram, we came to the conclusion that we were making one crucial mistake. We were creating actions that actor does with the system but not what system does for actor. Finally, we have developed our last version of the use case diagram that seemed to serve the purpose of the system under development. Actor Activities of the System Sponsor/Speaker collect marketing data Registrant process conference registration ((<<include>> collect marketing data, process payment, issue confirmation) (<<extend>> request event tickets)) Staff all Registrant activities, process cancellation (<<include>> process refund) process payment, generate conference reports, check registration status, maintain conference offerings Listed below are our use cases with brief explanation. Use Case Name Collect Marketing Data Actor Sponsor Purpose Allow sponsors and speakers to submit marketing data to the system Overview System should be able to collect conference offerings submitted by sponsors, such as tutorials, workshops, technical programs, expositions. 29 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Maintain Conference Offerings Staff Allow staff to add and modify conference offerings. Process Conference Registration Registrant, Staff Allow registrant or staff on behalf of registrant to register for conference, schedule activities and reserve seats. Request Event Tickets System Allow participant to get tickets to the events outside of conference location. Issue Confirmation Registrant, Staff, System Generate Conference Reports Staff Process Payment Registrant, Staff, System CCAS/Bank Participant receives confirmation by email about conference registration or cancellation Staff prints out specialized reports about conference statistics to support seat and session availability and participation. Participant is capable of paying for conference by credit card online, or by paying to staff member by cash or check. System should be able to provide means to add, delete and update offerings for the conference. System should be able to enable registrant to submit his personal and billing information, order activities, get fees calculated, get registration number and provide a channel for payment by credit card. System should accommodate participant in booking special events outside the conference location. System generates an email, sends it to registrant triggered by successful conference registration or cancellation. System capable of generating specialized reports with calculated statistics about conference participation, registration information and seat availability. System should be able to store payment data, calculate balance, and display resulting balance to participant or Staff. System should be able automatically process credit card payment online using CCAS, and report on check payment through the accounting system. 30 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Cancellation Staff Staff is capable of canceling participant’s registration at registrant’s request. Process Refund System System generates refund to registrant after conference cancellation was successful. Check Registration Status Staff Staff is able to see whether the author of each paper has registered for conference. System should update registrant’s record; deactivate registrant’s participation on the conference. System must trigger email generation to registrant on successful cancellation. System should be able to calculate refund according to conference refund policy and generate refund payment and invocate check mailing to registrant through accounting department. System returns status based on the data stored about registrants. System is capable of analyzing who of registrants is an author of the paper and whether his record exists as an active registrant. 31 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Systems Design System Sequence Diagrams Process Registration SSD - Podoksik 32 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Payment SSD – Podoksik 33 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Cancellation SSD – Alsheimer : CRS : Staff 1. initiateCancellation(registrationID) 2. displayRegistrationData(registrant, registration, and payment data) 3. confirmCancellation() 4. sendConfirmation(cancellation and refund data) 34 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Sequence Diagrams Collect Marketing Data SQD - Carfagno 10-step Heuristic – Collect Marketing Data – Carfagno # Step Include 1. 2. 3. 4. 5. Actor Primary Boundary Object Use-case Controller Secondary Control Object(s) Secondary Boundary Object(s) Domain Classes Block Labels MarketingHandler none 6. 7. 8. 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 9. 10. Message Obvious Parameters Problem-Solving Operations Instance Creation Association Forming Attribute Modification Calculation Change Status Display/Reporting Collect marketing data Marketinghandler, collect marketing data, sponsor Displayform() none Updatestatistics get customer_info Get future_requests Interface Processfuture_info Rearrange the sequence none Updatestatistic(registrants name,phone number, address,email address) Updatefuture_requests(registrationStatus 35 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Collect Marketing Data SQD – Carfagno : MarketingHandler : Collect marketing data : Sponsor display form( ) get customer_info( ) get future_requests( ) updatestatics( ) 36 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Maintain Conference Offerings SSD – Carfagno :CRS : Staff lists yearly conferences display (conferences offered) add fees for activities displays fees( ) add refund policies displays refund policies( ) add cancellation procedures display cancellation procedures( ) add contact info display contact info display type of members, conferences, and fee 37 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik 10-step Heuristic – Maintain Conference Offering – Carfagno # Step Primary 1. 2. 3. 4. 5. 6. 7. Actor Primary Boundary Object Use-case Controller Secondary Control Object(s) Secondary Boundary Object(s) Domain Classes Block Labels Staff Conference Screen Conference Controller none none Maintain Conference Offering Conference Screen, Conference Controller, Maintain Conference Offering 8. 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 9. 10. Instance Creation Association Forming Calculation Change Status Display/Reporting Interface Rearrange the sequence Message Obvious Parameters Conference Screen none none Updateconferences_offfered Displayconference_offered Display fees Displayrefund_policies Displaycancellation_policies Displaycontact_info Maintain Conference Offerings none 38 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Maintain Conference Offering SQD – Carfagno : Staff : Conference Screen : Conference controller : Maintain conference Offering enters conference list inputs conference( ) sorts conferences( ) display conferences( ) enters fees inputs fees( ) sorts fees( ) display fees( ) enter refund policy( ) iputs refund( ) sorts refunds( ) display refunds( ) enter cancellation policy( ) inputs cancellation policy( ) sorts cancellation policy( ) return cancellation policy( ) enter contact info( ) inputs contacts( ) sorts contact info( ) display contact info( ) 39 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Registration SQD - Podoksik 40 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Registration SQD (continued) 41 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Registration SQD (continued) 42 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Payment SQD – Podoksik 43 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Payment SQD (continued) 44 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Cancellation SQD – Alsheimer : Staff : CancellationWindow : CancellationController : Cancellation : Registrant : Address : Registration : RegistrationSelection : Payment : RefundHandler : Refund : EmailHandler 1. initiateCancellationRequest(registrationID) 2. create(registrationID) 3. create(cancellationID) 4. getRegistrant() 5. getAddress() 6. * getRegistrationSelection() 7. getPymtAmount() 8. returnRegistrationData(registrant data, registration selections, pymtAmount) 9. displayRegistrationData(registrant data, registration selections, pymtAmount) 10. enterCancellation(requestDate, cancelMethod, reasonCode) 11. display ConfirmationRequest() 12. confirmCancellation(Y) 13.passCancellation(requestDate, cancelMethod, reasonCode) [confirm = 'Y'] 14. setCancellationParameters(requestDate, processDate, cancelMethod, reasonCode) 45 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Cancellation SQD (continued) : Staff : CancellationWindow : CancellationController : Cancellation : Registrant : Address : Registration : RegistrationSelection : Payment : RefundHandler : Refund : EmailHandler 15. updateRegistrationStatus(cancelled) 16. * decrementconfOfferingNumRegistered(-1) 17. *decrementconfMaterialNumOrdered(-1) 18. getPaymentData() 19. process Refund(pymtAmount, ccType, ccNumber, ccExp) 20. getRefundData() 21. generateCancellationEmail(registrant data, registration selections, refund data) 46 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Process Refund SQD – Alsheimer : RefundHandler : Refund : CCAS 1. create(refundID, refundMethod) 2. authorizeRefund(pymtAmount, ccType, ccNumber, ccExp) 3. updateRefund(refundAmount, refundDate) [status=authorized] 4. returnErrorMsg [status=unauthorized] 47 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Generate E-mail Confirmation SQD - Alsheimer : EmailHandler : EmailTemplate : EmailSystem : Registration 1. create(registrant data, registration data, refund data) 2. addEmailAddress() 3. addRegistrantInfo(name, phone, fax, company, title, status, membershipID) 4. * listRegistrationSelection(description, qty) 5. addRefundData(refundDate, refundMethod, refundAmount) 6. transmitEmail() 7. storeEmailTemplate(description, sentDate, subject, emailAddress) 8. updateRegistration(confEmailSent, emailSentDate) 48 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik State Diagram – Registration STATE DIAGRAM REGISTRATION Selected Cancelled Accepted Registered Cancelled cancelled Payment processed Paid payment denied Declined not paid in full Paid in full Partially Paid Fully Paid fully paid 49 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Design Class Diagram 50 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Systems Design – Validation & Discussion The center of the CRS system design is the REGISTRATION class. A registration is composed of one or more REGISTRATION SELECTIONs, as a conference attendee may elect to participate in numerous conference activities. Registration selections include CONFERENCE OFFERINGS such as TUTORIALS and WORKSHOPS, as well as SPECIAL EVENTS (e.g., banquets and tours). A Registration selection may also consist of extra copies of CONFERENCE MATERIAL, such as PROCEEDINGS, WORKSHOP NOTES or TUTORIAL NOTES. A REGISTRANT may have one or more registrations for a given conference. Registrations may be incomplete, active or cancelled. Thus, the system allows a registrant to register for one or more activities, cancel activities, register for additional activities, and pay separately for these various registrations. A given registration may, therefore, have one or more PAYMENTS. A payment may be via cash, traveler's check, personal CHECK or CREDIT CARD. We chose not to include cash in our model, since there are no interesting properties to track. Similarly, traveler's checks were modeled as a type of check (attribute checkType). Overall, the model is flexible enough so that multiple registrations (incomplete, active or cancelled), payments and cancellations may be tracked for each registrant. Each registration may have zero or one CANCELLATIONS. The model allows for tracking of cancellation request date, processing date, reason, and method (i.e., written, phone). A cancellation may or may not have an associated REFUND. For example, if an incomplete registration (payment not yet made) was cancelled, there would be no associated refund. Early versions of our design included classes related to conference sessions, technical programs and expositions. We subsequently removed these classes, because they are beyond the scope of CRS. Since anyone who registers for a conference may attend these sort of sessions, we did not feel it necessary to track them. They seemed more important for purposes of monitoring capacity and physical space, which were not considered part of the CRS design. In the initial model, we also used a generalization hierarchy wherein all conference offerings (tutorial, workshop, special event and conference material) were deemed subclasses of conference offering. We later revised the model to separate special events and conference material as their own unique classes. We made this decision partly because 51 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik these latter classes do not need the inherited attributes related to conference offering fees (i.e., member, nonmember, student, early, late). As a rule, special events and proceedings are offered at the same cost to everyone regardless of membership or time of registration. The other reason for this decision is that these seem logically different from regular conference events such as tutorials and workshops. In the final version of the system design, we also added classes to track AUTHOR registrations and their associated PAPER presentations. One author may present multiple papers, and a paper may have multiple authors. We realized that these classes are important because conference staff may want to check that each paper has a registered author (i.e., even authors must not forget to register for the conference!). 52 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Evaluation of Analysis and Design This was a very successful design effort. The domain, a conference registration system, is an important problem and is familiar to us as students and professionals. In terms of scope, this domain was a reasonable size for a 10-week analysis and design project. As a group, we are pleased with the UML models we developed: use case diagram, use case descriptions (3 primary, 4 included), analysis class diagram, 4 system sequence diagrams, 7 sequence diagrams, a design class diagram and a state diagram. We feel these models accurately depict our intention, address the problem statement, and could be given to a programmer to start writing code. The models, as designed, meet all the goals and functionality of the system as described in the problem statement. We were also satisfied with the tools we used as a group: our primary software for developing diagrams and graphs was Rational Rose Modeling Edition, version 2001.03.01. Text was created with Microsoft Word 2002. Microsoft Project Professional 2002 was used to maintain the group's work plan. Most communication was via e-mail and in class. 53 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Summary and Lessons Learned This analysis and design project was challenging from inception through many design iterations. As a group, we learned to create a problem statement with a reasonable scope. The domain, conference registration system, lent itself nicely to a moderate-sized design project. The iterative development of the use case model was also a useful exercise, in which we learned the importance of refining granularity! We also learned a good deal from the iterative and circular nature of refining use case descriptions, class diagram, interaction diagrams. As we developed our interaction diagrams, we were able to see the holes and inconsistencies in our use case descriptions and class diagram. Changes to the class diagram also needed to be reflected in the use case description and interaction diagrams. After repeated interations, we arrived at a satisfactory model. In this respect, the project was an excellent representation of an actual design process that we may encounter in the real world. 54 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik References 12th International Conference on Information and Knowledge Management (CIKM '03) Conference Registration. Conference on Information and Knowledge Management: (Online), Available: http://www.cikmreg.org/. Cockburn, A. (2001). Writing Effective Use Cases. Boston: AddisonWesley. XML Conference & Exposition 2003 Conference Registration. International Digital Enterprise Alliance: (Online), Available: http://www.xmlconference.org/xmlusa/2003/registration.asp. The Unified Modeling Language User Guide by Grady Booch ,James Rumbaugh , Ivar Jacobson Addison-Wesley Pub Co (1998) 55 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Appendices Individual Experience & Lessons - Alsheimer I found this project challenging, but rewarding, from inception through design. In terms of individual contributions, I created a draft PROJECT PROPOSAL (problem statement, knowledge acquisition, software/hardware specifications, deliverables) for group discussion and review. I then worked with the group to refine and assimilate our varied proposals. In the initial analysis phase, I developed a USE CASE MODEL and facilitated team review of alternate models, ultimately incorporating the best of each into one model. After your review of the group's use case model, I took the lead on refining the model through several iterations. For the ANALYSIS CLASS DIAGRAM, I applied the Taxonomic Class Modeling (TCM) Methodology (see Appendix) to the problem statement, identifying noun, discovered and transformed classes. I created a proposed analysis class diagram, which was ultimately selected by the group for submission. I also created a USE CASE DESCRIPTION for 'Process Cancellation' and its <<include>> use cases, 'Process Refund' and 'Generate E-mail Confirmation.' After your review, I again took the lead on refining the class diagram until the group was satisfied with the design. In the system design phase, I developed a SYSTEM SEQUENCE DIAGRAM (SSD) and a SEQUENCE DIAGRAM (SQD) for the use case 'Process Cancellation.' I also developed SQD's for the <<include>> use cases 'Process Refund' and 'Generate Email Confirmation,' following the 10step Heuristic on SQD Development (see Appendix). Using operations identified in these interaction diagrams, I created a first draft of a DESIGN CLASS DIAGRAM for team review. I worked on several iterations of the design class diagram, adding operations and refining layout. I also wrote the VALIDATION AND DISCUSSION for the systems design portion of the documentation. Finally, I created the final term PROJECT DOCUMENTATION, with table of contents and INTRODUCTION SECTION for the group's convenience. I also wrote the first drafts of the EVALUATION OF ANALYSIS AND DESIGN and SUMMARY AND LESSONS LEARNED for the group's review and editing. I then circulated the complete set of documentation and diagrams so the team members could add their individual contributions. 56 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik In terms of lessons learned, I learned a lot from the entire analysis and design process. I had previous experience with business modeling using UML, but find system analysis and design much more challenging! This project was my first exposure to object-oriented systems; I have never programmed in OO. Until this project, I did not know the meaning of class, object, responsibility/operation/method, polymorphism, inheritance or encapsulation. The learning curve was steep! I found it very stimulating to tackle a systems analysis and design project from inception to design. It is no trivial matter to write a problem statement and make decisions regarding project scope. Even deciding upon the appropriate granularity for the use case model can be difficult. Most likely due to practice with TCM, I thought the analysis class diagram was relatively straightforward, although I am still a bit fuzzy on the associations between classes. For example, why is it better that Author has an association with Registrant rather than an 'isa' relationship? I hope to have the opportunity to more fully understand the links between classes, in the same way I now understand the relationships between entities in an ERD. Of all the models, I found interaction diagrams the most difficult. This is interesting, because these diagrams are not difficult in business modeling. With business models where many actors are collaborating with business entities (e.g., databases, systems), it is very clear who sends which message to whom. I found working with the multi-layered architecture (external actor -> boundary class -> control class -> entity class) a bit more confusing. I think this will become clearer with experience. I also believe this was a valuable exposure, since I work in a software development environment, albeit in a testing/project management capacity. 57 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Individual Experience & Lessons – Carfagno I have learned many lessons throughout this project of designing and analyzing this problem domain. Working with a talented team was an excellent way to see how others analyze and a design a the same problem domain. It allows me to look at thing in many different ways. This is my first experience with object-oriented systems and it was a challenging, but knowledgeable experience. Beginning with creating the problem statement and continuing through with the rest of the project design was very educational. This helped me to see what how the problem statement and scope were so important to the systems analysis and design of the project. The Taxonomic Class Methodology was very helpful in creating class diagram and the examples were very useful in view to our problem domain. Discovering domain class without this methodology would have been quite challenging. Creating interactive diagrams became a little more confusion to me. The tenstep heuristic method for developing sequence diagrams helped me understand it much clearer, but I will definitely need to practice and will become better with experience. This knowledge will allow me to be able to take on a diverse projects which will help me to move forward in my career. 58 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Individual Experience & Lessons – Podoksik I have grouped and formulized my previous understanding about how to design and analyze the problem domain. Working with a talented team was an excellent way to see how others analyze and a design a the same problem domain. It allows me to look at thing in many different ways. Even it is not my first experience with objectoriented systems; still it was a challenging, but beneficial experience. Beginning with creating the problem statement and use case diagram and following through with the rest of the project design was very time consuming but also very rewarding. This helped me to organize and scope the significant amount of the sparse knowledge I had about systems analysis and design of the project. The Taxonomic Class Methodology was very helpful in creating class diagram and the examples were very useful in view to our problem domain. Ten step heuristics for sequence diagrams were really good methodology for building interaction domain. The most important part for me was realizing interaction diagram technology. A lot of practice will definitely bring needed skills for becoming a good system architect. This knowledge will allow me to be able to take on diverse projects which will help me to move forward in my career. 59 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Taxonomic Class Modeling Methodology Noun Classes N1: Nouns N2: Class Elimination Rules N3: Class Categories Conference Registration System CRS Organization Conference Session Tutorial Workshop System Sponsor Organization Registration Needs Technical Program Exposition Subset Activities Combination Registrant Attendance Reception Lunch Banquet Special Event Sightseeing Tour Information Name Mailing Address Phone Number E-mail Company Affiliation Job Function Status Membership ID Menu Payment Marketing data Mailing lists Registration date Registration fee Refund Policies Cancellation Procedures Instructions Contact information Questions Request CER1; adopt CRS - <<singleton>> CER3 - vague PSN; adopt "Conference Offering" PSN PSN CER1 - adopt CRS; CER6 – meta CER2 – beyond scope PSN CER3 – vague; CER6 - meta PSN PSN CER3 – vague CER3 – vague; CER6 – meta CER3 – vague PSN CER3 - vague CER8 – value (type of Event) CER8 – value (type of Event) CER8 – value (type of Event) PSN CER8 – value (type of Event) CER6 - meta CER7 - attribute CER7 - attribute CER7 – attribute CER7 – attribute CER7 – attribute CER7 - attribute CER7 - attribute CER7 – attribute CER6 - meta PSN CER6 - meta CER6 – meta CER7 - attribute CER7 – attribute; adopt totalPrice PSN CER3 – vague; CER6 – meta PSN CER3 – vague CER3 - vague CER9 - derived CER3 - vague CER1 – redundant; adopt Registration & Cancellation CER8 – values (requestMethod) CER8 – values (requestMethod) CER8 – values (requestMethod) CC4 CC7 CC7 CC7 CC5 CC7 CC7 CC1 CC7 CC5 CC5 CC5 - Y Y Y Y - - - Mail Phone Fax Keep as a Class? - Y Y Y Y Y Y - 60 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik Staff Types Member Nonmember Student Quick calculator Price PSN CER3 – vague CER8 – values (status) CER8 – values (status) CER8 – values (status) CER5 – implementation construct CER7 – attribute (see Registration fee/Conference fee) CER2 – beyond scope PSN CER8 - value CER6 - meta CER3 – vague; CER6 - meta CER7 - attribute CER2 – irrelevant; nothing interesting to track CER2 – irrelevant; CER8 – value; (i.e., value of checkType) PSN PSN CER6 – meta; CER9 - derived CER7 – attribute; adopt spaceLimit CER3 - vague CER9 - derived CER6 – meta CER6 – meta CER6 - meta CER8 – values (requestMethod) CER6 - meta CER1 – redundant; adopt Registrant PSN CER3 – vague PSN CER1 – redundant; adopt Staff CER2 - irrelevant CER2 – beyond scope CER2 – beyond scope CC1 - Y - CC2 - Y - - - CC5, CC13 CC5, CC13 CC4, CC11 CC3 - Y Y Y Y - CER2 CER2 CER2 CER3 CER2 - - Ticket Proceedings Total fee Components Times Form of payment Cash Traveler's check Check Credit Card Record Seat availability Number Attendee list Billing Purchasing Financial reporting Web Modes Attendee Conference material Distribution Tutorial Notes Personnel Workstations Conference site Conference management system Papers Speakers Hall assignments Integration Conference website – – – – – beyond scope beyond scope beyond scope vague; CER6 - meta beyond scope Transformed Classes - none Discovered Classes CC1 People: none CC2 Places: none CC3 Physical Things: Workshop Notes CC4 Organizations: none CC5 Events/Transactions: none CC6 Transaction Line Items: Registration Line Item CC7 Concepts/Intangibles: none CC8 Specification: none 61 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik CC9 Interaction: none CC10 Rules/Policies: none CC11 Containers: none CC12 Contained: none CC13 Financial: none CC14 Lookup/Reference: none 62 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik SQD 10-step Heuristics 10-step Heuristic – Process Cancellation SQD - Alsheimer # Step Include 1. 2. 3. 4. Actor Primary Boundary Object Use-case Controller Secondary Control Object(s) 5. Secondary Boundary Object(s) 6. Domain Classes 7. Block Labels Staff CancellationWindow CancellationController RefundHandler EmailHandler no separate screens needed for refund or e-mail confirmation Registrant, Address, Registration, RegistrationSelection, Payment, Cancellation, Refund CancellationWindow, CancellationController, Registrant, Address, Registration, RegistrationSelection, Payment, Cancellation, Refund, RefundHandler, EmailHandler 8. 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 9. 10. Problem-Solving Operations Instance Creation Association Forming Attribute Modification Calculation Change Status Display/Reporting Interface Rearrange the sequence Message Obvious Parameters CancellationController, Cancellation, Refund Cancellation-to-Registration Refund-to-Cancellation none updateRegistrationStatus() * decrementconfOfferingNumRegistered() * decrementconfMaterialNumOrdered() getRegistrant() getAddress() *getRegistrationSelection() getPymtAmount() displayRegistrationData() displayConfirmationRequest() getPaymentData() getRefundData() processRefund() none displayRegistrationData(registrant data, registration selections, pymtAmount) updateRegistrationStatus(cancelled) processRefund(pymtAmount, ccType, ccNumber, ccExp) * = iterate until done 63 INFO 620, Fall 2003, Analysis & Design Project Alsheimer, Carfagno, Podoksik 10-step Heuristic – Process Refund SQD - Alsheimer # Step Include 1. 2. 3. 4. 5. 6. 7. 8. Actor Primary Boundary Object Use-case Controller Secondary Control Object(s) Secondary Boundary Object(s) Domain Classes Block Labels Problem-Solving Operations Instance Creation Association Forming Attribute Modification Calculation Change Status Display/Reporting Interface Rearrange the sequence Message Obvious Parameters ---RefundHandler none Refund RefundHandler, Refund, CCAS 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 9. 10. createRefund() none none updateRefund none authorizeRefund() none authorizeRefund(pymtAmount, ccType, ccNumber, ccExp) updateRefund(refundAmount, refundDate) 10-step Heuristic – Generate E-mail Confirmation SQD Alsheimer # Step Include 1. 2. 3. 4. 5. 6. 7. Actor Primary Boundary Object Use-case Controller Secondary Control Object(s) Secondary Boundary Object(s) Domain Classes Block Labels ---EmailHandler EmailSystem EmailTemplate, Registration EmailHandler, EmailTemplate, EmailSystem, Registration 8. 8.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 9. 10. Problem-Solving Operations Instance Creation Association Forming Attribute Modification Calculation Change Status Display/Reporting Interface Rearrange the sequence Message Obvious Parameters EmailTemplate none none storeEmailTemplate() updateRegistration() addEmailAddress() addRegistrantInfo() * listRegistrationSelection() addRefundData() transmitEmail() none * listRegistrationSelection(description, qty) updateRegistration(confEmailSent, emailSentDate) * = iterate until done 64