170 likes | 184 Views
This case study details the process of a customer purchasing airline tickets using a check payment method. It includes use cases, sequence diagrams, and conceptual models for a smooth transaction flow.
E N D
Case Study: Purchase Ticket 1
Overview 2 • “Purchase Ticket by Check” Use case. • Sequence Diagrams. • Conceptual Model. • Contracts.
Purchase Ticket by Check Use case 3 Actor: Customer (initiator), clerk Purpose: Reserve seats on an airplane and capture their check payment. Overview A customer arrives at the counter requesting to purchase tickets. The clerk finds a suitable flight and reserves seats on it for him\her. The customer pays for the tickets with check. When done, the customer leaves with purchased tickets Type: Primary and Essential
Expanded Use Case Format: Use Case: Purchase Ticket by Check Use case 4 Typical course of actions:
Expanded Use Case Format: Use Case: Purchase Ticket by Check Use case 5 Typical course of actions: Alternatives: - Line 3, if there are no available flights on the specified date, the system displays flights on the day before and the day after. Line 7, if the customer asks for more tickets than seats available on the chosen flight; ask him\her to change either flight or number of tickets.
SSD: 6 clerk SubmitFlightInfo(Dep-city,Des-city,date) Available Flights. ChooseFlight(Flight_Num) Flight Info EnterRsvInfo(Passnum,Flightclass) available EnterSpeciRequst(Reqinfo) Airline notified
SSD (cont.): 7 CompleteResv(true) clerk Total amount Paid(amount ,customerId)
Conceptual Model: 8 What are the objects (concepts) the real things in my domain ? • Candidate concepts: • Customer • Ticket • Clerk • Dep_city • Des_city • Date • Flight • Flight info • Num of passengers • Passenger • Flight class • Sale transaction. • seat • Special Request: handicap access, meal • Airline • Total • Check • Travel agency • Customer ID
Conceptual Model: 9 What are the objects (concepts) the real things in my domain ? • Candidate concepts: • Customer (Concept) • Ticket (Concept) • Clerk (Concept) • Dep_city(Flight Att) • Des_city(Flight Att) • Date (Flight Att) • Flight (Concept) • Flight info • Num of passengers Attribute of ? or derived ? • Passenger ( same as customer) because passenger names not specified in this use case • Flight class (Ticket Att) • Sale transaction. (Attribute or concept ?! ) • Seat ?? • Special Request: handicap access, meal (Attribute or concept ?! ) • Airline (flight Attribute or concept ?! ) • Total (attribute of sale transaction or derived ) • Check (attribute of sale transaction or concept or payment concept) • Travel agency • Customer ID (customer Att)
Conceptual Model: 10 Customer Ticket Clerk Clerk_id Name Cus_id Name Phone numPass_name Class Handicap MealPrice Special requests R_ID handicap Meal Sale Transaction Check check_id Amount Date Time Seat Airline S_num status name Flight Num Dep-city Des-ciyt Date
Conceptual Model: 11 Customer Ticket Clerk Clerk_id Name Cus_id Name Phone num Pass_name Class Handicapmeal price 1 1 Involved in requests 1 * * Belongs to * Sale Transaction Check Seat check_id Amount Date TimeIs_complete S_num class status 1 1 Paid by * * Flight Airline includes Associates with Num Dep-city Des-ciyt Date name 1 1 1 has *
Contract CO1 12 Contract CO1: Submit Flight Info Operation: SubmitFlightInfo(Dep-city,Des-city,date) Cross Reference: Use Case: Purchase Ticket By checkPrecondition:clerk, airlines, flights, seats information registered in the system. Post conditions: None
Contract CO2 13 • Contract CO2: Choose Flight • Operation:ChooseFlight(Flight_Num) • Cross Reference: Use Case: Purchase Ticket By checkPrecondition: clerk, airlines, flights,seatsinformation registered in the system. • Post conditions: • Sale transaction ST was created (instance creation) • Customer instance C was created (instance creation) • C was associated with ST (association formed) • ST attributes were initialized (attribute modification) • ST was associated with flight F, based on flight num (association formed) • ST was associated with Clerk CK (association formed)
Contract CO3 14 Contract CO3:Enter Reservation Info Operation: EnterRsvInfo(Passnum, FC Flightclass,Flight number) Cross Reference: Use Case: Purchase Ticket By checkPrecondition:Sale transaction (ST)is running Post condition: Seat S.status =false was updated for each S with Flightclass FC based on Flight num (attribute modification)
Contract CO4 15 Contract CO4: Enter Special Requst Operation: EnterSpeciRequst(Reqinfo) Cross Reference: Use Case: Purchase Ticket By checkPrecondition:Sale transaction (ST) is running Post condition: ST.handicap , ST.meal was updated according to the customer’s special requests(attribute modification)
Contract CO5 16 • Contract CO5: Complete Reservation • Operation: CompleteResv(true) • Cross Reference: Use Case: Purchase Ticket By checkPrecondition:Sale transaction (ST) is running, all information recorded . • Post condition: • Ticket instance T(s) was created for each passenger in ST (instances creation) • Each T was associated with ST (associations formed) • Each T attributes were initialized (attributes modification) • ST.iscompletewas updated (attributes modification)
Contract CO6 17 • Contract CO6: Pay Ticket • Operation: Paid(amount ,customerID,check id) • Cross Reference: Use Case: Purchase Ticket By checkPrecondition:None • Post condition: • Check instance CHK was created (instance creation) • CHK was associated with ST (associations formed) • CHK.amount was initialized to amount (attributes modification) • CHK.id was initialized to checkid (attributes modification) • Customer id C.ID was updated (attributes modification)