Business and IT modeling
Car Rental example
Alar Krist
Alar.Krist@Swedbank.ee
5118398
1
Simplified description of a car rental business
The essence of the car rental business: customers rent cars
• We have many offices in many countries
• We have many cars
• we group cars by car types (small, medium, big)
• We assign rental price to each car type
• Customer can make bookings for car types (not for concrete cars)
• Customer visits an office and rents a free car
or customer makes a rental agreement for a car
• Customer returns the car to an office
• Clerk creates an invoice to customer
• Customer pays the invoice by card or by cash
2
Simplified process model (BPMN diagram)
3
Business Process Simplified main process
customer
wants to book
Book a car
type
Register
rental
agreement
Drive by
rented car
Return a car Billing
Rental
finished
successfully
Cancel
booking
Booking
cancelled
More advanced process model with events (BPMN diagram)
4
Business Process Advanced main process with events
customer
wants to book
Book a car
type
Register
rental
agreement
Drive by
rented car
Return a car Billing
Rental
finished
successfully
Waiting a
next event
Cancel
booking
Booking
cancelled
Automaatne
broneeringu
tyhistamine
Customer wants
to cancel a
booking
Customer step in
to a office ad
wants to rent a car
Customer is not
coming for start
date to a rental
office
ended by
car
accident
Use case diagram
5
uc Use case diagram
Customer
Car ental office
worker
Book a car
type
Cancel
booking
Automated
cancelling
booking
Register rental
agreemenrt
Register return
of a car
Billing
IT system
Attribute level BIM– business decision: what detail information is needed
6
class Car rental detail BIM
Office
- address
- code
- opening times
- e mail addresses
- name
- country
- phones
Booking
- booking number
- planned rental time
- planned return time
Rental agreement
- agreement number
- start date
- planned return time
- start mileage
Return
- actual return time
- end mileage
Car type
- code
- name
- price of a day
Car
- color
- mark
- model
- registry number
- VIN Customer
- name
- address
- country
- personl ID number
- licence number
- ID card number
- passport number
- mobile phone number
- e mail addresses
Bill
- bill number
- bill creation date
- total amount
- currency
- VAT
- due date
1
R3 - concludes
0..*
1
is based on
0..1
1
has planned
rental office
0..*
0..*
books
1
1
has actual
return office
0..*
1
makes
0..*
1
R5 - has planned
retur office
0..*
0..1
may
based on
0..1
1
is made to
0..*
1
has planned
return office
0..*
1
R1 - groups
0..*
1
R2 - makes
0..*
1
is based
on
0..1
1
rents
0..*
1
R4 - has actual
rental office
0..*
Sub set of a physical data model (UML class diagram)
7
dm Booking
Autotyyp
autotyyp_kood: LONG
nimi: VARCHAR2(50)
Broneering
Broneering_id: LONG
klient_ID: LONG
autotyyp_kood: LONG
valjasoiduaeg: DATE
tagastusaeg: DATE
klient
klient_ID: LONG
Nimi: VARCHAR2(50)
FK_Broneering_klient
0..*
(klient_ID = klient_ID)
«FK»
PK_klient
1
FK_Bronering_Auto
0..*
(autotyyp_kood = autotyyp_kood)
«FK»
PK_Auto
1
Architecture model – UML general component diagram
(sub systems and main data flows)
8
cmp Comp diagram - main
ESB
Org sub
system
CRM sub
system
Rental sub
system
Car sub
system
Accounting sub
system
customer
«ask &
get»
Office
«ask &
get»
invoice
«Messaging»
invoice
«Messaging»
car
«ask &
get»
Architecture model – UML detail component diagram
(internal components of sub systems and data flows)
9
cmp Comp diagram - detail
ESB
Org sub
system
Org DB
ORG
appl
ORG UI
CRM sub
system
CRM
DB
CRM
appl
CRM UI
Rental sub
system
Rental
DB
Rental
Appl
Rental
UI
Car sub
system
Car DB
Car
Appl
Car UI
Accounting sub
system
Accounting
DB
Accounting
Appl
Accounting
UI
Office
«Sql»
Office
«html»
GL accounts, GL entries,
Incoming payments
«html»
Booking,
Rental,
Return
«Sql»
Customer
«Sql»
Invoice
«Messaging»
Office
«ask & get»
Car
«html»
Customer
«html»
Car
«ask &
get»
Invoice, incoming
payment, GL entry
«Sql»
Car
«Sql»
Customer
«ask & get»
Booking,
Rental, Return
«html»
Invoice
«Messaging»
Architecture model – UML deployment diagram
(nodes where to deploy components)
10
deployment Deployment diagram - nodes
«Linux Ora RDBMS»
DB server 1
«Linux Ora RDBMS»
DB server 2
«Windows Microsoft .Net & Sql»
Appl and DB server 3
«Linux Ora Weblogic»
Appl serer 1
«Linux Ora Weblogic (Java)»
Appl serev 2
Employee browser Customer browser Employee browser Accountant browser
Architecture model – UML deployment diagram
(nodes and deployed components)
11
deployment Deployment diagram
«Linux Ora RDBMS»
DB server 1
«Linux Ora RDBMS»
DB server 2
«Windows Microsoft .Net & Sql»
Appl and DB server 3
«Linux Ora Weblogic»
Appl serer 1
«Linux Ora Weblogic (Java)»
Appl serev 2
Employee browser Customer browser Employee browser Accountant browser
ORG UI
ORG appl
Org DB
CRM UI
CRM appl
CRM DB
Rental UI
Rental
Appl
Rental DB
Car UI
Car
Appl
Car DB
Accounting
UI
Accounting
Appl
Accounting
DB
ESB
Invoice, incoming
payment, GL entry
«Sql»
Customer
«html»
GL accounts, GL entries,
Incoming payments
«html»
Office
«html»
Car
«html»
Car
«ask & get»
Invoice
«Messaging»
Booking, Rental, Return
«html»
Customer
«Sql»
Invoice
«Messaging»
Office
«Sql» Car
«Sql»
Booking, Rental, Return
«Sql»
Customer
«ask & get»
Office
«ask & get»
Architecture model – UML class diagram 1
Sub systems, its main data entities, main functionalityand data flows
12
class Class diagram for components
ORG
- Org unit (office)
- Employee
- Org structure
+ create org unit()
+ create employee()
+ change org unit()
+ show list of offices()
+ provide office()
CRM
- Customer
- Relations
+ create customer()
+ update customer()
+ show customers()
+ provide customer()
Rental
- Booking
- Rental
- Return
- Invoice
+ ask office()
+ ask customer()
+ ask car type()
+ ask car()
+ book a car type()
+ cancel booking()
+ make rental agreement()
+ register return a car()
+ generate invoice()
+ post invoice message()
Car
- Car type
- Car
- Car event
+ create car type()
+ create car()
+ update car()
+ show car types()
+ show cars()
+ provide car type()
+ provide car()
Accounting
- Invoice
- Payment
- Acc entry
+ get invoice message()
ESB
- messages
- routing rules
+ get message()
+ route message()
+ transform message()
+ provide message()
office
«ask & get»
invoice
«Messaging»
car type
«ask & get»
car
«ask & get»
customer
«ask & get»
invoice
«Messaging»

KODUL.19938_Car rental modeling examples.ppt

  • 1.
    Business and ITmodeling Car Rental example Alar Krist Alar.Krist@Swedbank.ee 5118398 1
  • 2.
    Simplified description ofa car rental business The essence of the car rental business: customers rent cars • We have many offices in many countries • We have many cars • we group cars by car types (small, medium, big) • We assign rental price to each car type • Customer can make bookings for car types (not for concrete cars) • Customer visits an office and rents a free car or customer makes a rental agreement for a car • Customer returns the car to an office • Clerk creates an invoice to customer • Customer pays the invoice by card or by cash 2
  • 3.
    Simplified process model(BPMN diagram) 3 Business Process Simplified main process customer wants to book Book a car type Register rental agreement Drive by rented car Return a car Billing Rental finished successfully Cancel booking Booking cancelled
  • 4.
    More advanced processmodel with events (BPMN diagram) 4 Business Process Advanced main process with events customer wants to book Book a car type Register rental agreement Drive by rented car Return a car Billing Rental finished successfully Waiting a next event Cancel booking Booking cancelled Automaatne broneeringu tyhistamine Customer wants to cancel a booking Customer step in to a office ad wants to rent a car Customer is not coming for start date to a rental office ended by car accident
  • 5.
    Use case diagram 5 ucUse case diagram Customer Car ental office worker Book a car type Cancel booking Automated cancelling booking Register rental agreemenrt Register return of a car Billing IT system
  • 6.
    Attribute level BIM–business decision: what detail information is needed 6 class Car rental detail BIM Office - address - code - opening times - e mail addresses - name - country - phones Booking - booking number - planned rental time - planned return time Rental agreement - agreement number - start date - planned return time - start mileage Return - actual return time - end mileage Car type - code - name - price of a day Car - color - mark - model - registry number - VIN Customer - name - address - country - personl ID number - licence number - ID card number - passport number - mobile phone number - e mail addresses Bill - bill number - bill creation date - total amount - currency - VAT - due date 1 R3 - concludes 0..* 1 is based on 0..1 1 has planned rental office 0..* 0..* books 1 1 has actual return office 0..* 1 makes 0..* 1 R5 - has planned retur office 0..* 0..1 may based on 0..1 1 is made to 0..* 1 has planned return office 0..* 1 R1 - groups 0..* 1 R2 - makes 0..* 1 is based on 0..1 1 rents 0..* 1 R4 - has actual rental office 0..*
  • 7.
    Sub set ofa physical data model (UML class diagram) 7 dm Booking Autotyyp autotyyp_kood: LONG nimi: VARCHAR2(50) Broneering Broneering_id: LONG klient_ID: LONG autotyyp_kood: LONG valjasoiduaeg: DATE tagastusaeg: DATE klient klient_ID: LONG Nimi: VARCHAR2(50) FK_Broneering_klient 0..* (klient_ID = klient_ID) «FK» PK_klient 1 FK_Bronering_Auto 0..* (autotyyp_kood = autotyyp_kood) «FK» PK_Auto 1
  • 8.
    Architecture model –UML general component diagram (sub systems and main data flows) 8 cmp Comp diagram - main ESB Org sub system CRM sub system Rental sub system Car sub system Accounting sub system customer «ask & get» Office «ask & get» invoice «Messaging» invoice «Messaging» car «ask & get»
  • 9.
    Architecture model –UML detail component diagram (internal components of sub systems and data flows) 9 cmp Comp diagram - detail ESB Org sub system Org DB ORG appl ORG UI CRM sub system CRM DB CRM appl CRM UI Rental sub system Rental DB Rental Appl Rental UI Car sub system Car DB Car Appl Car UI Accounting sub system Accounting DB Accounting Appl Accounting UI Office «Sql» Office «html» GL accounts, GL entries, Incoming payments «html» Booking, Rental, Return «Sql» Customer «Sql» Invoice «Messaging» Office «ask & get» Car «html» Customer «html» Car «ask & get» Invoice, incoming payment, GL entry «Sql» Car «Sql» Customer «ask & get» Booking, Rental, Return «html» Invoice «Messaging»
  • 10.
    Architecture model –UML deployment diagram (nodes where to deploy components) 10 deployment Deployment diagram - nodes «Linux Ora RDBMS» DB server 1 «Linux Ora RDBMS» DB server 2 «Windows Microsoft .Net & Sql» Appl and DB server 3 «Linux Ora Weblogic» Appl serer 1 «Linux Ora Weblogic (Java)» Appl serev 2 Employee browser Customer browser Employee browser Accountant browser
  • 11.
    Architecture model –UML deployment diagram (nodes and deployed components) 11 deployment Deployment diagram «Linux Ora RDBMS» DB server 1 «Linux Ora RDBMS» DB server 2 «Windows Microsoft .Net & Sql» Appl and DB server 3 «Linux Ora Weblogic» Appl serer 1 «Linux Ora Weblogic (Java)» Appl serev 2 Employee browser Customer browser Employee browser Accountant browser ORG UI ORG appl Org DB CRM UI CRM appl CRM DB Rental UI Rental Appl Rental DB Car UI Car Appl Car DB Accounting UI Accounting Appl Accounting DB ESB Invoice, incoming payment, GL entry «Sql» Customer «html» GL accounts, GL entries, Incoming payments «html» Office «html» Car «html» Car «ask & get» Invoice «Messaging» Booking, Rental, Return «html» Customer «Sql» Invoice «Messaging» Office «Sql» Car «Sql» Booking, Rental, Return «Sql» Customer «ask & get» Office «ask & get»
  • 12.
    Architecture model –UML class diagram 1 Sub systems, its main data entities, main functionalityand data flows 12 class Class diagram for components ORG - Org unit (office) - Employee - Org structure + create org unit() + create employee() + change org unit() + show list of offices() + provide office() CRM - Customer - Relations + create customer() + update customer() + show customers() + provide customer() Rental - Booking - Rental - Return - Invoice + ask office() + ask customer() + ask car type() + ask car() + book a car type() + cancel booking() + make rental agreement() + register return a car() + generate invoice() + post invoice message() Car - Car type - Car - Car event + create car type() + create car() + update car() + show car types() + show cars() + provide car type() + provide car() Accounting - Invoice - Payment - Acc entry + get invoice message() ESB - messages - routing rules + get message() + route message() + transform message() + provide message() office «ask & get» invoice «Messaging» car type «ask & get» car «ask & get» customer «ask & get» invoice «Messaging»