Professional Documents
Culture Documents
and Design
Commercial Billiards - Center
Notation and Tool
• The Unified Modeling Language (UML)
is the industry-standard language for
specifying, visualizing, constructing, and
documenting the artifacts of software
systems.
• Rational Rose was our obvious choice for
the “tool” considering the powerful features
that the tool exhibit to visualize,
Problem Statement(1)
• The players of Billiards center can be
either members or non-members of the
billiards center
• Note: The details of members such as
name, address and phone number are
already stored in database and they are
provided with identification number.
• Non-members have to provide their name
and address before start playing.
Problem Statement(2)
• The players may request a catalog
showing table numbers and the availability
of tables in terms of hours
• They have the option to either extend the
game if there are no waiting members or
stop the game
Problem Statement(3)
• The registration system sends information
to the billing system so that the buyer can
pay the bill
• If all the play boards are occupied
incoming players are kept in the waiting
list.
• Players can book the table or cancel the
table in advance.
Project Activities
• Maintaining current players information
• Waiting list of the players who would like
to play next
• Membership provision – becoming a
member at the center
• Booking provision at the center
• Billing system to deliver the charges for
the facilities availed at the center
Constructing our model in Rational Rose
Step 1: USE CASES AND ACTORS
• ACTOR: NON-MEMBER
• Enter his details (name, address, occupation)
• Select the tables that he is wanting to play once he
is approved by the operator
• Book tables to play in advance
• Become a member if he wants to
• Pay the bill for the activity he performed
Constructing our model in Rational Rose
Step 1: USE CASES AND ACTORS
• ACTOR: OPERATOR
• Validate ID information for members, details of the non-
members depending on whether the player is a member
or non-member
• Allot tables for the players
• Maintain the membership information
• Maintain waiting list information of members
• Maintain waiting list information of non-members
• Maintain table/time information for members
• Maintain table/time for non-members
• Maintain correctness of the system (system
administration)
• Maintain booking information
• Maintain current players information
• Generate bill for the players
Constructing our model in Rational Rose
Step 1: USE CASES AND ACTORS
• ACTOR: MANAGER
• Responsible for collecting the payment from
the player and manages the overall activities of
the center.
Constructing our model in Rational Rose
Step 1: USE CASES AND ACTORS
<<include>>
Member
Allot Tables
Manager
Generate bill
Operator
Maintain membership information
Foundations NonmembersInfo
global
global
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• we have specified the “actors” and the participating
“classes” – typical to a sequence diagram.
• There are nine independent sequence diagrams that
we have come up with for this model based on the
sequences of activities performed by the member/non-
member. We will briefly describe each of them and
explicitly show them with the help of RATIONAL ROSE.
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Sequence-diagram 1: Operator obtains the respective activity
requested by the player -diagram
: Category : Activity
Member
: Operator
players
Nonmember
Member or players
get category
Nonmember
Members
booking
get activity
Nonmembers
booking
Become
members
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Collaboration diagram 1: Operator obtains the respective
activity requested by the player
1: get category
: Category
: Operator
2: get activity
: Activity
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Sequence-diagram 2: Member play/bill - diagram
: ActivityInformation : Tables : Bill
: Manager
: Mem ber
Pass ID
validate details
Free tables
are displayed
select tables
Member starts
playing
generate bill
Bill is passed
to player
pay bill
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Collaboration diagram 2: Member play/bill
7: generate bill
: Bill
: Mem ber
1: Pass ID
4: select tables
6: get total time played
8: pay bill
: Manager
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Sequence-diagram 3: Nonmember play/bill - diagram
pass details
validate details
free tables
are displayed
select tables
Player starts
to play
Extend the
get total time played
play for
non-members
generate bill
Bill is passed
to players
pay bill
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Collaboration diagram 3: Nonmember play/bill
2: validate details
1: pass details
4: select tables 3: get free tables
: ActivityInformation : Tables
8: pay bill
7: generate bill
: Bill
: Manager
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Sequence-diagram 4: Nonmember availing membership
provision - diagram
: Members
: Operator
: Nonm em ber
add entries
generate ID
1: add entries
:
Members
: Nonm em ber
: Operator
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Sequence-diagram 5: Member book/bill sequence - diagram
Members cancel
booking
pass ID
validate details
free tables
are displayed
select tables
implement booking
2: validate details
1: pas s ID
4: s elect tables
: ActivityInform ation
: Mem ber
: BookingMem bers
pass details
validate details
free tables
are displayed
select tables
implement booking
1: pass details
4: select tables
: ActivityInformation
: Nonmember
: BookingNonmembers
Player wants to
extend the play
free tables
are displayed
select tables
: ActivityInformation : Tables
: Nonmem ber
: Operator
Player wants
to extend the
play
Free tables
are displayed
select tables
2: select tables
: ActivityInformation
: Member
: Tables
Constructing our model in Rational
Rose
Step 5: SEQUENCE DIAGRAMS
• Collaboration diagram 7: Extend to play sequence – diagram
(non-member) 2: select tables
: ActivityInformation
: Nonmember
: Tables
pass id
validate details
1: pass id
3: indicate cancel booking
: ActivityInformation
: Member
: Tables
: BookingMembers
pass details
validate details
1: pass details
3: indicate cancel booking
: ActivityInformation
: Nonmember
: Tables
: BookingNonmembers
Members
BookingMembers WaitinglistMembers
Constructing our model in Rational Rose
Step 7: IDENTIFYING CLASS ATTRIBUTES AND METHODS (Design
phase has begun!!!!)
Members
name : String
address : String
id : Integer
addEntries()
deleteEntries()
modifyEntries()
getID() : Integer
BookingMembers
WaitinglistMembers
bookDate : Date
startTime : Time waitinglistNumber : Integer
endTime : Time
tablenum : Integer getWaitinglistNum() : Integer
doBooking()
cancelBooking()
Constructing our model in Rational Rose
Step 7: IDENTIFYING CLASS ATTRIBUTES AND METHODS (Design
phase has begun!!!!)
Nonmembers
BookingNonmembers WaitinglistNonmembers
Constructing our model in Rational Rose
Step 7: IDENTIFYING CLASS ATTRIBUTES AND METHODS (Design
phase has begun!!!!)
WaitinglistNonmembers
waitinglistNumber : Integer
getWaitinglistNum() : Integer
Constructing our model in Rational Rose
Step 7: IDENTIFYING CLASS ATTRIBUTES AND METHODS (Design
phase has begun!!!!)
directs
ActivityInformation
1
1
verifies generates
1
*
Tables Bill
Constructing our model in Rational Rose
Step 7: IDENTIFYING CLASS ATTRIBUTES AND METHODS (Design
phase has begun!!!!)
Bill
Activity
timePlayedByMem : Time
play : Boolean = false
timePlayedByNonmem : Time
book : Boolean = false
costOfMemTable : Float
costOfNonmemTable : Float
getActivity() : String
costOfPlay : Float
getTimePlayedByMem() : Time
getTimePlayedByNonmem() : Time
getBill()
Tables
tablenum : Integer
startTime : Time
endTime : Time ActivityInformation
id : Integer
getFreeTables() : Integer name : String
tablenum : Integer
noOfMemTablesVisited : Integer
noOfNonmemTablesVisited : Integer
Timein : Time
Category hoursToPlay : Integer
extendToPlay : Boolean
member : Boolean
nonmember : Boolean
validateDetails()
indicateTimeOver()
getCategory()
validateTablenum()
validateHours()
extendToPlay()
getTablesVisited()
Constructing our model in Rational Rose
Step 8: Discovering Inheritance
Add
[ finish game ]
Delete
Initialization
Delete
[ warranty ends ]
Delete Add
Initialization Initialization
do/ initialize booking member details do/ initialize booking details
Delete
Delete
do/ remove booked details
do/ remove booked details
Constructing our model in Rational Rose
Step 9: Analyzing Object Behavior
Add Delete
Add Delete
Interfaces
Error Handling
Foundations
Constructing our model in Rational Rose
Step 11: Designing the System Architecture
Category ActivityInformation
Tables Bill
Activity
Constructing our model in Rational Rose
Step 11: Designing the System Architecture
Members
WaitinglistMembers
BookingMembers
Constructing our model in Rational Rose
Step 11: Designing the System Architecture
Nonmembers
BookingNonmembers
WaitinglistNonmembers
Constructing our model in Rational Rose
Step 11: Designing the System Architecture
• Deployment View
Database
Operator Customer
Any Question