14
System Design System Design Zhen Jiang Zhen Jiang West Chester University West Chester University [email protected] [email protected]

System Design Zhen Jiang West Chester University [email protected]

Embed Size (px)

Citation preview

Page 1: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

System Design System Design

Zhen JiangZhen Jiang

West Chester UniversityWest Chester University

[email protected]@wcupa.edu

Page 2: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

RequirementRequirement

A flight is defined by a number and a date, and defines a route from an origin airport to a destination airport. A planes is assigned to a flight and it contains a set of numbered seats.

Page 3: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Use casesUse cases

• Customers make reservations for specific seats in specific flights.

• A route is the way followed by a flight from its origin airport to its destination airport. There may be several flights that share the same origin and destination airports. A route includes one or more spans.

• A span (segment) is a part of a route to get from a start airport to a termination airport as part of a specific flight. The start (or termination) airport is called origin (or destination) airport of this span.

• For each flight there are several connecting flights (different flights that leave from an intermediate stop closely after its arrival).

Page 4: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Use casesUse cases• A ticket includes a one-ticket route (one-way ticket) or a

two-ticket route (round-trip ticket). Using a round-trip ticket, a passenger can go to an airport and come back using the same route. If the passenger returns using a different route, she needs a set of one-way tickets. Such a round-trip is a special case of one-way trip where its source and destination are the same. Stops are not indicated in the ticket unless the flight number changes, which indicates a plane change.

• For the convenience of customers we may keep information on relevant facilities; for origins we keep aspects such as parking, for destinations we keep hotels near the airport, for intermediate stops we keep lists of hotels close to the airport, restaurants, etc. This information also may also include details of the cities nearby.

Page 5: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Use casesUse cases

• An airlink is any direct flight between two airports. All airlinks are spans of some flight. A basic airlink has no stops. A route is a set of connected basic airlinks connecting all the airports through which it passes

Page 6: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Use casesUse cases

Airport A

Airport C a span of Flight 12

Flight 12 (one stop at C)

Flight13 Airport D

Flight 14

Flight 16

Flight 17

Routes

Routes from A to D

Airport B

Connecting Flights of Flight 12

Flight 14

Airport E

Flight 13

Flight 18

Flight 15 (nonstop)

Page 7: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

Passenger TicketSeries

book

TicketRoute

TicketUnit

id(/account#):String

creditInfo: String

ticketseries#: Stringbookdate: String

1

type: {one-way, round-trip}trip_source: Stringtrip_destination: String

ticket#: Stringorigin: Stringdestination: Stringflight$#: Stringclass: {A, B, C}seat#: String

1..2

1..*

1..*

1..*

Page 8: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

TicketSeries TicketUnit

Flight

Seat

Span

{available seat#}

ticketseries#: Stringbookdate: String

origin: Stringdestination: String

ticket#: String

flight#: Stringschedule: List<departure time,

arrival time, stop>

seat#: String

{connecting flights haveconnecting schedule}

1..*

{available series tickets}

{connected spans}

Assignment Pattern

association as classdependence of constraints

Page 9: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

1..*

Flight

flight#: Stringschedule: List<departure time, arrival time, stop>

Seat

Seat#: String

Plane

type: Stringno#: StringseatCapacity: InfoList oclassInfo: InfoList

1

*

assigned_to

a plane has afixed numberof seats in aclass

Page 10: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

Airport

FlightSpan

origin: Stringdestination: String

flight#: Stringschedule: List<departure time,

arrival time, stop>

name: Stringcity: String

{connecting condition}

1..*

1

1..*

1

other_linka_connected_by

a_connecting

1..*

1

f_connecting

{connecting flights haveconnecting schedule} {connection between

different spans}s_connecting

Connection Pattern Connection Pattern

Connection Pattern

Page 11: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

Airlink

Route

Flight

Span

dependence of constraint

origin: Stringdestination: String

flight#: Stringschedule: List<departure time,

arrival time, stop>

airline_link#: String

origin: Stringdestination: String

{connectionbetween basicairlinks in a route}

{connection of airlinks betweendifferent routes}

1..* 1..*

1 1subsetbasic

1..*

1

{connecting flights must haveconnecting schedule}

{connection betweendifferent spans}

Airlink

Path

airline_link#: String

origin: Stringdestination: String

1..* 1..*

1 1

subsetbasic

(a) (b)

Page 12: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternsDesign Patterns

AirportRoleAirport

Origin Intermediate Destination

name: Stringcity: String

departure_time: Dateparking_lot: Integer

arrival_time: Datedeparture_time: Datehotels: String

arrival_time: Datenearby_hotel: String

roleType: {route_t,span_t}

0..*

core

roles

Page 13: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Analysis PatternAnalysis Pattern

shanghai

Tokyo

Hongkong

Los Angeles (LAX)

Dallas (DAL)

Miami (MIA)

New York (NY)

Customer A booked in Dallas, on 8/29/00.: round-trip, Dallas Los Angeles 9/4/00.

Customer B booked in Shanghai, on 7/8/00.: one-way, Shanghai Miami 9/6/00,New York Los Angeles 9/11/00.

Customer B changed his reservation.: one-way, Shanghai Dallas 9/6/00.

Customer B booked for his friend.: one-way, Hongkong Dallas 9/4/00.

858 <W3:00pm, W7:00pm>

368 <W4:30pm, W12:30pm>

898 <M9:00am, M9:00am>

804 <F9:00pm, S6:30am>

803 <M8:00pm, M11:30pm><F6:00am, F2:30pm>

Page 14: System Design Zhen Jiang West Chester University zjiang@wcupa.edu

Design PatternDesign Pattern

AirportRole

Airlink

Airport

Route

Plane

Passenger TicketSeriesbook

TicketRoute

TicketUnit

Flight Seat

Span

assigned_to

association as classimplied relationship or dependence

{available seat#}

Origin Intermediate Destination

id(/account#): StringcreditInfo: String

ticketseries#: Stringbookdate: String

1 *

type: {one-way, round-trip}trip_source: Stringtrip_destination: String

origin: Stringdestination: String

ticket#: String

flight#: Stringschedule: List<departure time,

arrival time, stop>

seat#: String

type: Stringno#: StringseatCapacity: InfoListclassInfo: InfoList

{a plane has afixed number of seats ina class

name: Stringcity: String

departure_time: Dateparking_lot: Integer

arrival_time: Datedeparture_time: Datehotels: String

arrival_time: Datenearby_hotel: String

roleType: {route_t,span_t}

airline_link#: String

origin: Stringdestination: String

0..*

coreroles

{connecting condition}

1..*

1

1..*

1

other_linka_connected_by

a_connecting

{two connectingairlinks?}

{connectionbetween basicairlinks in a route}

{connection of airlinks betweendifferent routes}

1..* 1..*

1 1subset

basic

1..*

1

1..* 1

*

1..*

1

f_connecting 1..*

{connecting flights haveconnecting schedule}

1..2

1..*

1..*

{available series tickets}

{connection betweendifferent spans}

s_connecting