Object-Oriented Software
Engineering:
                 Using UML, Patterns and Java, 3rd
                               Edition
                    Bernd Bruegge, Allen Dutoit
                     Exercise: Modeling with UML
                              Modeling with UML
1) Model an ATM
Draw a use case diagram for an ATM (cash terminal). The system includes two
actors: a customer, who draws money from his account either on the money
chip on his bank card or in cash, and a security man, who fills money into the
ATM.
Use cases should include: DrawCash, LoadMoneyChip, CheckAccountBallance, FillATM. Also
include the following exceptional cases: OutOfMoney, TransactionAborted (i.e.,
customer selected the cancel button without completing the transaction) and
MoneyChipOutOfOrder.
Remark: It is possible to use inheritance between use cases!
Write the flow of events and specify all fields for the use case    CheckAccountBalance
that you drew before. Specify relationships.
Solution:
                                                                                   1/7
                      Object-Oriented Software
                             Engineering:
                  Using UML, Patterns and Java, 3rd
                                Edition
                     Bernd Bruegge, Allen Dutoit
                      Exercise: Modeling with UML
Use case name          CheckAccountBalance
Participating Actors   Initiated by Customer
Flow of events         1. The Customer inserts his bank card into the
                       ATM.
                                  2. The ATM welcomes the Customer
                                  and opens the main menu.
                                  3. The ATM waits for the selection from
                                  the Customer.
                       4. The Customer selects the
                       “CheckAccountBalance” function by pressing the
                       appropriate button.
                                  5. The ATM system shows the enter
                                  PIN screen to the Customer.
                       7. The Customer enters his correct PIN and
                       confirms it.
                                  5. The ATM system shows the actual
                                  balance of the Customer’s account.
Entry condition        The ATM is working and Customer is in front of
                       the terminal.
Exit condition         The Customer can view his account balance.
Quality                The ATM stays online for the whole period of the
requirements           CheckAccountBalance use case.
                                    Figure 1
2) Model a book
Draw a class diagram representing a book defined by the following statement:
“A book is composed of a number of parts, which in turn are composed of a
number of chapters. Chapters are composed of sections.” First, focus only on
classes and associations.
Add multiplicity to the class diagram you produced.
Refine the class diagram to include the following attributes:
    Book includes a publisher, publication date, and an ISBN
    Part includes a title and a number
                                                                            2/7
                       Object-Oriented Software
                              Engineering:
                   Using UML, Patterns and Java, 3rd
                                 Edition
                      Bernd Bruegge, Allen Dutoit
                       Exercise: Modeling with UML
         Chapter includes a title, a number, and an abstract
         Section includes a title and a number
Consider the refined class diagram. Note that the Part, Chapter, and Section
classes all include a title and a number attribute. Use inheritance to factor out
these two attributes .
Solution:
1.)
                                         Book
                                            1
                                            *
                                         Part
                                            1
                                            *
                                        Chapter
                                             1
                                             *
                                        Section
2.)
3.)
                                                                              3/7
                    Object-Oriented Software
                           Engineering:
                Using UML, Patterns and Java, 3rd
                              Edition
                   Bernd Bruegge, Allen Dutoit
                    Exercise: Modeling with UML
3) Happy Hour Message
Draw a sequence diagram for the HappyHourMessage scenario in the figure below.
Draw only the first five messages exchanged.
Solution:
Scenario name          HappyHourMessage
Participating actor    bob, alice: BarFlies
                       john: Friend
instances
Flow of events             1. Bob and Alice are sitting in their favorite
                              pub and it’s happy hour.
                              They want to invite their common friend
                              John who likes cocktails and didn’t know
                              about the newly scheduled happy hour.
                              Alice takes out her “mobile phone” and
                              activates the “SMS” function.
                           2. Alice enters John’s cell phone number and
                              writes the message about the happy hour
                              into the “SMS text field”. She sends the
                              message and waits for John’s answer.
                           3. John, who is still at work, is alerted by a
                              sound of his cell phone that a new “SMS”
                              has arrived. He reads the lines from Alice
                              and answers that he will come
                              immediately. He quits working and leaves
                              the office.
                           4. Alice receives John’s answer at her
                              “mobile phone”.
                                              Figure 2
                                                                             4/7
                   Object-Oriented Software
                          Engineering:
               Using UML, Patterns and Java, 3rd
                             Edition
                  Bernd Bruegge, Allen Dutoit
                   Exercise: Modeling with UML
Solution:
4) Model an online bookstore
Consider the process of ordering a book via Internet. Draw an activity diagram
representing each step of the process, from the moment you open the shop’s
web page to the point when you start reading the book, including login or
registration. Include activities that others need to perform.
Add additional exception handling to the activity diagram you have
developed. Model the following three exceptions:
   1. The order got lost in the Internet
   2. The wrong book is packaged
   3. The ordered book is no longer available
Solution:
                                                                           5/7
    Object-Oriented Software
           Engineering:
Using UML, Patterns and Java, 3rd
              Edition
   Bernd Bruegge, Allen Dutoit
    Exercise: Modeling with UML
                                    6/7
    Object-Oriented Software
           Engineering:
Using UML, Patterns and Java, 3rd
              Edition
   Bernd Bruegge, Allen Dutoit
    Exercise: Modeling with UML
                                    7/7