SlideShare a Scribd company logo
1 of 151
Download to read offline
Object Modeling with UML:
           Behavioral Modeling
 Gunnar Övergaard, Bran Selic and Conrad Bock

                          January 2000


  © 1999 OMG and Tutorial Contributors: EDS, IBM, Enea Data, IntelliCorp,
  Klasse Objecten, ObjectTime Ltd., Rational Software, Unisys
Overview
• Tutorial series
• UML Quick Tour
• Behavioral Modeling
  „ Part 1: Interactions and Collaborations
        „   Gunnar Övergaard, Rational Software
   „   Part 2: Statecharts
        „   Bran Selic, ObjecTime Limited
   „   Part 3: Activity Graphs
        „   Conrad Bock, IntelliCorp




                            Behavioral Modeling with UML   2
Tutorial Series
• Introduction to UML
  „   November 1999, Cambridge, US
• Behavioral Modeling with UML
  „   January 2000, Mesa, Arizona, US
• Advanced Modeling with UML
  „   March 2000, Denver, US
• Metadata Integration with UML, XMI and MOF
  „   June 2000, Oslo, Norway


                     Behavioral Modeling with UML   3
Tutorial Goals
• What you will learn:
  „   what the UML is and what is it not
  „   UML’s basic constructs, rules and diagram techniques
  „   how the UML can model large, complex systems
  „   how the UML can specify systems in an implementation-
      independent manner
  „   how UML, XMI and MOF can facilitate metadata
      integration
• What you will not learn:
  „   Object Modeling
  „   Development Methods or Processes
  „   Metamodeling



                      Behavioral Modeling with UML            4
UML Quick Tour
• The UML is a graphical language for
  „ specifying
  „ visualizing
  „ constructing
  „ documenting

  the artifacts of software systems
• Added to the list of OMG adopted technologies in
  November 1997 as UML 1.1
• Most recent minor revision is UML 1.3 (November
  1999)


                  Behavioral Modeling with UML       5
UML Goals
• Define an easy-to-learn but semantically rich visual
    modeling language
•   Unify the Booch, OMT, and Objectory modeling
    languages
•   Include ideas from other modeling languages
•   Incorporate industry best practices
•   Address contemporary software development issues
    „   scale, distribution, concurrency, executability, etc.
• Provide flexibility for applying different processes
• Enable model interchange and define repository
    interfaces


                         Behavioral Modeling with UML           6
OMG UML Evolution
  2001
  (planned m ajor revision)                 <<docum ent>>
                                               UM L 2.0


                                                   << refine>>
                                                                                   Other relevant
                                                                                   standards TBA

  Q3 2000                             <<docum ent>>
  (planned m inor revision)                                          << inform alLiaison>>
                                         UM L 1.4

                                                                               ISO Publicly
                                              << refine>>
                                                                                 Available
                                                                              Specifications
                                                                                  (PAS)
                                  <<docum ent>>
  Q3 1999                                                        << form alLiaison> >
                                     UM L 1.3


                                        << refine>>


                                                                       E ditorial revision
                              <<docum ent>>
                                                                       with no significant
  Q2 1998                        UM L 1.2
                                                                       technical changes.

                                  << refine>>


  Q3 1997                                                              U nification of m ajor
  (OM G Adopted         <<docum ent>>                                  m odeling languages,
  Technology)              UM L 1.1                                    including B ooch, O M T
                                                                       and O bjectory




                                Behavioral Modeling with UML                                        7
OMG UML 1.3 Specification
• UML Summary
• UML Semantics
• UML Notation Guide
• UML Standard Profiles
  „  Software Development Processes
  „ Business Modeling
• UML CORBAfacility Interface Definition
• UML XML Metadata Interchange DTD
• Object Constraint Language



                Behavioral Modeling with UML   8
Tutorial Focus: the Language
• language = syntax + semantics
  „ syntax = language elements (e.g. words) are
    assembled into expressions (e.g. phrases, clauses)
  „ semantics = the meanings of the syntactic
    expressions
• UML Notation Guide – defines UML’s graphic
  syntax
• UML Semantics – defines UML’s semantics



                    Behavioral Modeling with UML         9
Unifying Concepts
• classifier-instance dichotomy
  „   e.g. an object is an instance of a class OR
      a class is the classifier of an object
• specification-realization dichotomy
  „   e.g. an interface is a specification of a class OR
      a class is a realization of an interface
• analysis-time vs. design-time vs. run-time
  „ modeling phases (“process creep”)
  „ usage guidelines suggested, not enforced



                       Behavioral Modeling with UML        10
Language Architecture
• Metamodel architecture
• Package structure




               Behavioral Modeling with UML   11
Metamodel Architecture
                                              M eta-M etam odel Lay er
           <<m e ta m ode l>>
                                              (M 3): S pec ifies m eta-
             MOF Me ta -
                                              m etac las s es for the
             m e ta m ode l
                                              UM L m etam odel



                                              M etam odel Lay er (M 2):
                                              S pec ifies m etac las s es
           <<m e ta m ode l>>
                                              for the UM L
           UML Me ta m ode l
                                              m etam odel, s uc h as
                                              Clas s



                                              M odel Lay er (M 1): S pec ifies
                                              c las s es for the UM L us er
             Use r Mode l                     m odels , s uc h as
                                              P as s enger, Tic k et,
                                              TravelA genc y




                                              Us er O bjec ts Lay er (M 0):
    :Foo         :B ar          :B az         Us er objec ts that are
                                              ins tanc es of UM L us er
                                              m odel c las s es , s uc h as
                                              ins tanc es of P as s enger,
                                              Tic k et, TravelA genc y




               Behavioral Modeling with UML                                      12
Package Structure


                          <<m etam odel>>
                               UM L


     Behavioral                                 M odel
     Elem ents                               M anagem ent




                                                            dependency


                          Foundation
                                                            package




                  Behavioral Modeling with UML                           13
Package Structure


Behavioral Elements


Collaborations   Use Cases          State Machines   Activity Graphs

                                                                                    Model
                                                                                    Management
                             Common
                             Behavior




                                                                       Foundation




                             Behavioral Modeling with UML                                        14
Behavioral Modeling
• Part 1: Interactions and Collaborations
     Gunnar Övergaard, Rational Software
     gunnaro@it.kth.se

• Part 2: Statecharts
• Part 3: Activity Diagrams




                      Behavioral Modeling with UML   15
Interactions
• What are interactions?
• Core concepts
• Diagram tour
• When to model interactions
• Modeling tips
• Example: A Booking System




                    Behavioral Modeling with UML   16
What are interactions?
• Interaction: a collection of communications
  between instances, including all ways to affect
  instances, like operation invocation, as well as
  creation and destruction of instances
• The communications are partially ordered (in
  time)




                   Behavioral Modeling with UML      17
Interactions: Core Elements

Construct                Description                   Syntax
Instance      An entity with a unique identity and
(object,      to which a set of operations can be        name

data value,   applied (signals be sent) and which      attr values

component     has a state that stores the effects of
instance      the operations (the signals).
etc.)

Action        A specification of an executable          textual
              statement.
              A few different kinds of actions are
              predefined, e.g. CreateAction,
              CallAction, DestroyAction, and
              UninterpretedAction.



                    Behavioral Modeling with UML                     18
Interaction: Core Elements (cont’d)

Construct             Description                 Syntax
Stimulus    A communication between two
            instances.

Operation   A declaration of a service that can   textual
            be requested from an instance to
            effect behavior.

Signal      A specification of an asynchronous     «Signal»
                                                    Name
            stimulus communicated between
                                                  parameters
            instances.




                  Behavioral Modeling with UML                 19
Interaction: Core Relationships



Construct                Description                Syntax
Link            A connection between instances.

Attribute Link A named slot in an instance, which   textual
               holds the value of an attribute.




                    Behavioral Modeling with UML              20
Example: Instance


                                                                  triangle : Polygon
underlined name



                       triangle : Polygon
              center : Point = (2,2)                                   triangle
              vertices : Point* = ((0,0), (4, 0), (2,4))
              borderColor : Color = black
              fillColor : Color = white



                                                                       : Polygon
attribute links




                                        Behavioral Modeling with UML                   21
Example: Instances and Links


                           : Family




                 husband                     wife
  Joe : Person                                      Jill : Person




                    Behavioral Modeling with UML                    22
Operation and Method



       Triangle
                                                   foreach v in vertices do
 + move (in dist : Point)                                      v.x := v.x + dist.x;
 + scale (in factor : Real)                                    v.y := v.y + dist.y


                                                   foreach v in vertices do
                                                               v.x := factor * v.x;
                                                               v.y := factor * v.y




                              Behavioral Modeling with UML                            23
Interaction Diagram Tour

• Show interactions between instances in the
  model
   „ graph of instances (possibly including links)
     and stimuli
   „ existing instances
   „ creation and deletion of instances
• Kinds
  „ sequence diagram (temporal focus)
  „ collaboration diagram (structural focus)




                  Behavioral Modeling with UML       24
Interaction Diagrams
 Sequence Diagram                      Collaboration Diagram
 x       y       z                              1.1: a
                                                1.2: c
     a                                    x              y

             b
                                                             1.1.1: b
     c
                                                         z




                 Behavioral Modeling with UML                           25
Sequence Diagram

object symbol    name : Class                 other

      lifeline
                                                                stimulus

                                   name (…)

   activation                                         new (…)
                                                                  : Class

                                                                            delete




                                return                create




                      Behavioral Modeling with UML                             26
Arrow Label

predecessor guard-condition sequence-expression return-value := message-name argument-list

                                        move (5, 7)

                                     3.7.4: move (5, 7)

                   A3, B4 / [ x < 0 ] C3.1: res := getLocation (fig)

                               3.7 *[1..5]: move (5, 7)                           iteration
            predecessor      guard      sequence number
                                             return value   message name   argument list

                              3.7 [ z > 0 ]: move (5, 7)                          condition




                               Behavioral Modeling with UML                                   27
Different Kinds of Arrows
                           Procedure call or other
                           kind of nested flow of
                           control

                           Flat flow of control

                           Explicit asynchronous
                           flow of control

                           Return



       Behavioral Modeling with UML                  28
Example: Different Arrows

          Nested Flow                             Flat Flow                     Asynchronous Flow
teller         : Order     : Article     caller     exchange           callee   appl   err handl   alarm
                                            lift receiver

         getValue                            dial tone                             unknown

                         price                                                                 alarm
                                             dial digit

                                             dial digit
         getName                             ringing tone   ringing signal

                                                             lift receiver




                                       Behavioral Modeling with UML                                    29
Recursion, Condition, etc.

  calculator                       filter                          value

                                            [ x > 0] getValue ()

                  [ x < 0] transform ()
                                                  getValue ()




               iterate ()




                            Behavioral Modeling with UML                   30
Collaboration Diagram
                        object symbol                         link symbol                                      standard
                                                                                                               stereotype
                      redisplay ()                                             window
stimulus
                                            : Controller                                       : Window

                                                                  standard        standard              window «parameter»
           1: displayPositions (window)                           stereotype      constraint             1.1.3.1 add (self)
                                          wire                                                          contents {new}
1.1 *[i := 1..n]: drawSegment (i)
                                                                            «local» line       {new}
                                            wire :Wire                                         : Line
   standard                                                       1.1.2: create (r0, r1)
                               «self»
   stereotype                                                     1.1.3: display (window)
                                                                                                              standard
              1.1.1a: r0 := position ()                      1.1.1b: r1 := position ()                        constraint

                            left : Bead                    right : Bead




                                                 Behavioral Modeling with UML                                             31
When to Model Interactions

• To specify how the instances are to interact
  with each other.
• To identify the interfaces of the classifiers.
• To distribute the requirements.




                   Behavioral Modeling with UML    32
Interaction Modeling Tips
• Set the context for the interaction.
• Include only those features of the instances that are
  relevant.
• Express the flow from left to right and from top to bottom.
• Put active instances to the left/top and passive ones to the
  right/bottom.
• Use sequence diagrams
    „   to show the explicit ordering between the stimuli
    „   when modeling real-time
• Use collaboration diagrams
   „ when structure is important
   „ to concentrate on the effects on the instances




                          Behavioral Modeling with UML           33
Example: A Booking System




           Behavioral Modeling with UML   34
Use Case Description: Change Flt Itinerary


• Actors: traveler, client account db, airline reservation system
• Preconditions: Traveler has logged in
• Basic course:
   T Traveler selects ‘change flight itinerary’ option
   T System retrieves traveler’s account and flight itinerary from client account database
   T System asks traveler to select itinerary segment she wants to change; traveler selects
     itinerary segment.
   T System asks traveler for new departure and destination information; traveler provides
     information.
   T If flights are available then …
   T …
   T System displays transaction summary.
• Alternative course:
   T If no flights are available then…



                                Behavioral Modeling with UML                                  35
Sequence Diagram: Change Flight Itinerary

Traveler                  : Booking System        Client Account DBMS     Airline Reservation System
       change flight itinerary
                                      get customer account

                                             get itinerary
           present itinerary

       select segment

           present detailed info

       update information
                                                                    available flight


                                                 :
                                                 :




                                     Behavioral Modeling with UML                                  36
Collaboration Diagram: Change Flt Itinerary


          1: change flight itinerary
          5: select segment                                            2: get customer account
                                                                       3: get itinerary
          7: update information
                                            : Booking System
         4: present itinerary
Traveler 6: present detailed info                                                       Client Account DBMS

                                                         8: available flight




                                         Airline Reservation System




                                       Behavioral Modeling with UML                                    37
Collaboration
• What is a collaboration?
• Core concepts
• Diagram tour
• When to model collaborations
• Modeling tips
• Example: A Booking System




                     Behavioral Modeling with UML   38
What is a collaboration?

• Collaboration: a collaboration defines the
  roles a set of instances play when performing
  a particular task, like an operation or a use
  case.
• Interaction:an interaction specifies a
  communication pattern to be performed by
  instances playing the roles of a collaboration.



                 Behavioral Modeling with UML   39
Collaborations: Core Elements

Construct               Description                  Syntax
Collaboration   A collaboration describes how an
                operation or a classifier, like a
                use case, is realized by a set of
                classifiers and associations used
                in a specific way.
                The collaboration defines a set of    Name

                roles to be played by instances
                and links, as well as a set of
                interactions that define the
                communication patterns between
                the instances when they play the
                roles.



                   Behavioral Modeling with UML               40
Collaborations: Core Elements (cont’d)

Construct               Description                     Syntax
Classifier   A classifier role is a specific role
Role         played by a participant in a                / Name
             collaboration. It specifies a restricted
             view of a classifier, defined by what
             is required in the collaboration.

Message      A message specifies one
                                                         label
             communication between instances.
             It is a part of the communication
             pattern given by an interaction.




                    Behavioral Modeling with UML                  41
Collaborations: Core Relationships

Construct                Description                    Syntax
Association      An association role is a specific
Role             usage of an association needed
                 in a collaboration.

Generalization   A generalization is a taxonomic
                 relationship between a more
                 general element and a more
                 specific element. The more
                 specific element is fully consistent
                 with the more general element.




                     Behavioral Modeling with UML                42
Classifier-Instance-Role Trichotomy

• An Instance is an entity
                                                   id
  with behavior and a state,
  and has a unqiue identity.                                  «originates from»


• A Classifier is a description                                       ClassName

  of an Instance.                                   «conforms to»

• A Classifier Role defines a
                                            / RoleName
                                                                «view of»
  usage (an abstraction) of an
  Instance.




                    Behavioral Modeling with UML                                  43
Classifier-Instance-Role Trichotomy (cont’d)

            Classifier                                           ClassifierRole
         Attribute-1                                             Attribute-1
         Attribute-2                                             Attribute-2
         Attribute-3
                             «originates from»   «conforms to»
                                                                 Operation-1 (…)
         Operation-1 (…)                                         Operation-3 (…)
         Operation-2 (…)
         Operation-3 (…)
                                       Instance
                                    AttributeValue-1
                                    AttributeValue-2
                                    AttributeValue-3


The attribute values of an Instance corresponds to the attributes of its Classifier.
All attributes required by the ClassifierRole have corresponding attribute
values in the Instance.
All operations defined in the Instance’s Classifier can be applied to the Instance.
All operations required by the ClassifierRole are applicable to the Instance.
                              Behavioral Modeling with UML                         44
Different Ways to Name a Role
               / ClassifierRoleName : ClassifierName


  A role name is preceeded by a ‘/’         A classifier name is preceeded by a ‘:’

Example:        / Parent : Person               / Parent              : Person


           instanceName / ClassifierRoleName : ClassifierName


Example:       : Person               Charlie               Charlie : Person


               Charlie / Parent                 Charlie / Parent : Person




                          Behavioral Modeling with UML                                45
Association and Association Role
                 Class         Association             Class
                                                      0..5
       Class-1                                                 Class-2
                    {changeable}

«view of»                                 «view of»                  «view of»

                         {frozen}                      3..4
        / Role-1                                               / Role-2

             ClassifierRole         AssociationRole ClassifierRole


      An Association Role specifies the required
      properties of a Link used in a Collaboration.
      The properties of an AssociationEnd may be
      restricted by a AssociationEndRole.

                            Behavioral Modeling with UML                         46
Example: A School

          / Teacher : Person                                / Student : Person
                                  1 tutor     student *
           position : Text                                      program : Text


 faculty member *                1 lecturer                                participant *
        faculty 1                              given course *              taken course *
             : Faculty                                              : Course




                             Behavioral Modeling with UML                                   47
Role Model vs. Class Model
         The Classes give the complete description while the
         Roles specify one usage.

                    Role Model                                            Class Model

                                                                                   Resulting multiplicity
                                                              Extra attribute

/ Teacher : Person 1        * / Student : Person                                        Person       0..1
                                                      Resulting multiplicity
  position : Text                program : Text                                    name : Text
                                                                                   position : Text
   *                                          *                                *   program : Text    *
                    1

                                                               0..1                 1            *
   1                                  *       *                                     *            *
  : Faculty                        : Course                     Faculty                 Course




                                      Behavioral Modeling with UML                                   48
A Collaboration and Its Roles

A Collaboration
and how its roles
are mapped onto                             CollaborationName

a collection of
Classifiers and
Associations.           roleName-1
                                                    roleName-2
                                                                   roleName-3


                             Classifier-1                  Classifier-2




                    Behavioral Modeling with UML                                49
Patterns in UML
Constraint that must              Handler.reading = length (Subject.queue)
be fulfilled in each instance     Handler.range = {0..Subject.capacity}
of this pattern.



                                                  Observer


                        Subject                                                    Handler


                     CallQueue                                               SlidingBarIcon

                 queue : List of Call                                        reading : Real
                 source : Object                                             color : Color
                 waitAlarm : Alarm                                           range : Interval
                 capacity : Integer




                                Behavioral Modeling with UML                                    50
Generalization Between Collaborations

                 Subject                                  Handler
     CallQueue                      Observer                        SlidingBarIcon




                 Subject                                  Manager
 ManagedQueue                      Supervisor                       Controller




All roles defined in the parent are present in the child.
Some of the parent’s roles may be overridden in the child.
An overridden role is usually the parent of the new role.


                           Behavioral Modeling with UML                              51
Collaboration Diagram Tour
• Show Classifier Roles and Association
  Roles, possibly together with extra
  constraining elements
• Kinds
  „ Instance level – Instances and Links
  „ Specification level – Roles

• Static Diagrams are used for showing
  Collaborations explicitly



                 Behavioral Modeling with UML   52
Collaboration Diagram at Specification Level


           / Teacher : Person 1 tutor       student * / Student : Person

             position : Text                           program : Text
 faculty member *                                                       * participant
                               1 lecturer

       faculty 1                            given course *              * taken course

              : Faculty                                      : Course




                          Behavioral Modeling with UML                                   53
Collaboration Diagram at Instance Level

                                                                     student
                                  tutor                                        Alice / Student
faculty member
                 John / Teacher
                                                                                          participant
 faculty                          tutor                    Bob / Student
                                             student
     : Faculty                                         participant

                                                       taken course                   taken course
faculty
                                  lecturer        given course
                 Sara / Teacher                                        English : Course
faculty member




                              Behavioral Modeling with UML                                              54
Collaborations including Interactions

   Sequence Diagram                       Collaboration Diagram
   x       y        z                             1.1: a
                                                  1.2: c
       a                                     x             y

               b
                                                               1.1.1: b
       c
                                                           z




                   Behavioral Modeling with UML                           55
Collaboration Diagram with Constraining Elements



    / Generator                      : Printer Device

    Constraining Element
    (A Generalization is not
    an AssociationRole )


                        : Laser Printer              : Line Printer




                      Behavioral Modeling with UML                    56
Static Diagram With Collaboration and Classifiers


                Subject                                  Handler
    CallQueue                      Observer                        SlidingBarIcon




                Subject                                  Manager
ManagedQueue                      Supervisor                       Controller




                          Behavioral Modeling with UML                              57
When to Model Collaborations
• Use Collaborations as a tool to find the
  Classifiers.
• Trace a Use Case / Operation onto Classifiers.
• Map the specification of a Subsystem onto its
  realization (Tutorial 3).




                   Behavioral Modeling with UML    58
Collaboration Modeling Tips
• A collaboration should consist of both structure
  and behavior relevant for the task.
• A role is an abstraction of an instance, it is not a
  class.
• Look for
   „ initiators (external)
   „ handlers (active)

   „ managed entities (passive)




                     Behavioral Modeling with UML    59
Example: A Booking System




           Behavioral Modeling with UML   60
Use Case Description: Change Flt Itinerary


• Actors: traveler, client account db, airline reservation system
• Preconditions: Traveler has logged in
• Basic course:
   T Traveler selects ‘change flight itinerary’ option
   T System retrieves traveler’s account and flight itinerary from client account database
   T System asks traveler to select itinerary segment she wants to change; traveler selects
     itinerary segment.
   T System asks traveler for new departure and destination information; traveler provides
     information.
   T If flights are available then …
   T …
   T System displays transaction summary.
• Alternative course:
   T If no flights are available then…



                                Behavioral Modeling with UML                                  61
Booking System: Change Flt Itinerary Collaboration

                                                                                 4: get customer account
        1: change flight itinerary                                               7: get itinerary

: Traveler              / Flight Itenerary Form                   / DBMS Protocol              : Client Account DBMS
             10: present                       9: display                  3: get customer account
                      2: create modifier                                   6: get itinerary
                                             / Flight Itinerary Modifier
                      5: create                                                    8: create

                              / Account                                     / Itinerary


                                                  / ARS Protocol




                                           : Airline Reservation System




                                              Behavioral Modeling with UML                                       62
Wrap Up: Interactions & Collaborations

• Instances, Links and Stimuli are used for
  expressing the dynamics in a model.
• Collaboration is a tool for
   „   identification of classifiers
   „   specification of the usage of instances
   „   expressing a mapping between different levels of
       abstraction
• Different kinds of diagrams focus on time or on
  structure



                      Behavioral Modeling with UML        63
Behavioral Modeling
• Part 1: Interactions and Collaborations
• Part 2: Statecharts
  Bran Selic, ObjecTime Limited
  bran@objectime.com

• Part 3: Activity Diagrams




                        Behavioral Modeling with UML   64
Overview
• Basic State Machine Concepts

• Statecharts and Objects

• Advanced Modeling Concepts

• Case Study

• Wrap Up




                  Behavioral Modeling with UML   65
Automata
• A machine whose output behavior is not only a
  direct consequence of the current input, but of
  some past history of its inputs
• Characterized by an internal state which
  represents this past experience

             ON ON
             ON ON



            OFF
            OFF



                     Behavioral Modeling with UML   66
State Machine (Automaton) Diagram
• Graphical rendering of automata behavior
                                          on

                 Lamp On


                                  on

               off
                                          off
                 Lamp Off



                     Behavioral Modeling with UML   67
Outputs and Actions
• As the automaton changes state it can generate
  outputs:
                      on                                             on
           Lamp                                        Lamp On
            On                                         print(”on”)

                  on/print(”on”)                                on

     off                                           off
                      off                                            off
           Lamp                                          Lamp
            Off                                           Off

  Mealy automaton                            Moore automaton

                        Behavioral Modeling with UML                       68
Extended State Machines
• Addition of variables (“extended state”)
                                                     on
         ctr :: Integer
         ctr Integer
                              Lamp On


                                            on/ctr := ctr + 1

                          off
                                                     off
                              Lamp Off



                          Behavioral Modeling with UML          69
A Bit of Theory
• An extended (Mealy) state machine is defined by:
  „ a set of input signals (input alphabet)
  „ a set of output signals (output alphabet)

  „ a set of states

  „ a set of transitions
      „ triggering signal
      „ action

  „ a set of extended state variables
  „ an initial state designation

  „ a set of final states (if terminating automaton)

                        Behavioral Modeling with UML   70
Basic UML Statechart Diagram
               “top” state
                                          State
   Initial
   Initial
pseudostate
pseudostate   top
                                                  Trigger

                       Ready
Transition

                               stop /ctr := 0

                        Done
  Final
                                                     Action
                                                     Action
  state
                               stop



               Behavioral Modeling with UML                   71
What Kind of Behavior?
• In general, state machines are suitable for
  describing event-driven, discrete behavior
  „   inappropriate for modeling continuous behavior




       threshold




                                                    time



                     Behavioral Modeling with UML          72
Event-Driven Behavior
• Event = a type of observable occurrence
  „   interactions:
       „ synchronous object operation invocation (call event)
       „ asynchronous signal reception (signal event)

  „   occurrence of time instants (time event)
       „ interval expiry
       „ calendar/clock time

  „   change in value of some entity (change event)
• Event Instance = an instance of an event (type)
  „   occurs at a particular time instant and has no
      duration
                        Behavioral Modeling with UML            73
The Behavior of What?
• In principle, anything that manifests event-
  driven behavior
  „   NB: there is no support currently in UML for
      modeling continuous behavior
• In practice:
  „ the behavior of individual objects
  „ object interactions

• The dynamic semantics of UML state machines
  are currently mainly specified for the case of
  active objects
                      Behavioral Modeling with UML   74
• Basic State Machine Concepts

• Statecharts and Objects

• Advanced Modeling Concepts

• Case Study

• Wrap Up




                  Behavioral Modeling with UML   75
Object Behavior - General Model
• Simple server model:
                                                      Initialize
                                                       Initialize
         Handling depends on
         Handling depends on                           Object
                                                        Object
         specific request type
          specific request type
                                                      Wait for
                                                       Wait for
                                                      Request
                                                      Request

                    void:offHook ();                  Handle
                                                       Handle
                     {busy = true;
                      obj.reqDialtone();              Request
                                                      Request
                     …
                      };



                                                      Terminate
                                                      Terminate
                                                       Object
                                                        Object

                       Behavioral Modeling with UML                 76
Object Behavior and State Machines
• Direct mapping:
                                                        on
        Initialize
         Object                            Lamp
                                            On
        Wait for
         Event                                      on/print(”on”)
         Handle
         Event
                                     off
                                                        off
                                           Lamp
                                            Off
        Terminate
         Object
                                                stop


                     Behavioral Modeling with UML                    77
Object and Threads
• Passive objects: depend on external power
  (thread of execution)
• Active objects: self-powered (own thread
  of execution)
          Initialize
           Initialize                                  Initialize
                                                        Initialize
           Object
            Object                                      Object
                                                         Object

          Wait for
           Wait for                                    Wait for
                                                        Wait for
          Request
           Request                                     Request
                                                        Request

          Handle
           Handle                                      Handle
                                                        Handle
          Request
           Request                                     Request
                                                        Request




         Terminate
          Terminate                                    Terminate
                                                        Terminate
           Object
            Object                                       Object
                                                          Object

                        Behavioral Modeling with UML                 78
Passive Objects: Dynamic Semantics
                             Initialize
                              Initialize
                              Object
                               Object

                             Wait for
                              Wait for
                             Request
                              Request

                             Handle
                              Handle
                             Request
                              Request




                            Terminate
                             Terminate
                              Object
                               Object



• Encapsulation does not protect the object from
  concurrency conflicts!
  „   Explicit synchronization is still required
                     Behavioral Modeling with UML   79
Active Objects and State Machines
• Objects that encapsulate own thread of execution

                     anActiveObject

                                   poll/defer
               #currentEvent : Event
                        created

               + start ( )
       start                     start/^master.ready()   ready
               + poll ( )
               + stop ( )
                             ready
                                              stop/


               poll/^master.ack()




                        Behavioral Modeling with UML             80
Active Objects: Dynamic Semantics

                                                  ActiveObject:




• Run-to-completion model: serialized event
 handling
  „ eliminates internal concurrency
  „ minimal context switching overhead
                   Behavioral Modeling with UML                   81
The Run-to-Completion Model
• A high priority event for (another) active object
  will preempt an active object that is handling a
  low-priority event
                              Active1
                              Active1              Active2
                                                   Active2


                     lo
                     hi
                                              hi




                   Behavioral Modeling with UML              82
• Basic State Machine Concepts

• Statecharts and Objects

• Advanced Modeling Concepts

• Case Study

• Wrap Up




                  Behavioral Modeling with UML   83
State Entry and Exit Actions
• A dynamic assertion mechanism



                  LampOn
                                        e2
                entry/lamp.on();
                exit/lamp.off();

                    e1




                Behavioral Modeling with UML   84
Order of Actions: Simple Case
• Exit actions prefix transition actions
• Entry action postfix transition actions

      LampOn                                                      LampOff
                            off/printf(“to off”);
  entry/lamp.on();                                            entry/lamp.off();
  exit/printf(“exiting”);                                     exit/printf(“exiting”);


 Resulting action sequence:                                off/printf(“needless”);
       printf(“exiting”);
       printf(“exiting”);
       printf(“to off”);
       printf(“to                                printf(“exiting”);
                                                 printf(“exiting”);
       lamp.off();                               printf(“needless”);
                                                 printf(“needless”);
                                                 lamp.off();
                            Behavioral Modeling with UML                                85
Internal Transitions

• Self-transitions that bypass entry and exit actions

  Internal transition
     triggered by
    an “off” event                    LampOff
                                 entry/lamp.off();
                                 exit/printf(“exiting”);
                                 off/null;




                        Behavioral Modeling with UML       86
State (“Do”) Activities
• Forks a concurrent thread that executes until:
  „ the action completes or
  „ the state is exited through an outgoing transition

                                                        “do” activity
                       Error
          entry/printf(“error!”)
          do/while (true) alarm.ring();




                         Behavioral Modeling with UML                   87
Guards
• Conditional execution of transitions
  „ guards (Boolean predicates) must be side-effect free
bid [value < 100] /reject
                                          bid [value >= 200] /sell
                            Selling                                     Happy




                               bid [(value >= 100) & (value < 200)] /sell




                       Unhappy

                                 Behavioral Modeling with UML                   88
Static Conditional Branching
• Merely a graphical shortcut for convenient
  rendering of decision trees

                     Selling                                        Happy

                           bid

                                 [value >= 200] /sell
   [value < 100] /reject

                           [(value >= 100) & (value < 200)] /sell


                   Unhappy

                             Behavioral Modeling with UML                   89
Dynamic Conditional Branching
• Choice pseudostate: guards are evaluated at the
  instant when the decision point is reached

                      Selling                                      Happy

                           bid /gain := calculatePotentialGain(value)

                              [gain >= 200] /sell
    [gain < 100] /reject

                            [(gain >= 100) & (gain < 200)] /sell
  Dynamic
  Dynamic
 choicepoint
 choicepoint
                    Unhappy

                            Behavioral Modeling with UML                   90
Hierarchical State Machines
• Graduated attack on complexity
  „ states decomposed into state machines

          LampOff
          LampOff
                          flash/                 LampFlashing
     entry/lamp.off()
                                                         FlashOn
                                                         FlashOn
   off/                                              entry/lamp.on()

                                                                 1sec/
                                             1sec/
                on/     on/
                                                         FlashOff
                                                         FlashOff
          LampOn
                              on/
          LampOn                                     entry/lamp.off()
     entry/lamp.on()


                          Behavioral Modeling with UML                   91
“Stub” Notation
• Notational shortcut: no semantic significance


         LampOff
         LampOff
                         flash/                 LampFlashing
    entry/lamp.off()


  off/                                                  FlashOn



               on/     on/
         LampOn
                             on/                        FlashOff
         LampOn
    entry/lamp.on()


                         Behavioral Modeling with UML              92
Group Transitions
• Higher-level transitions                     Default transition to
                                                Default transition to
                                              the initial pseudostate
                                              the initial pseudostate


         LampOff
         LampOff
                       flash/                   LampFlashing
    entry/lamp.off()
                                                        FlashOn
                                                        FlashOn
  off/                                              entry/lamp.on()

                                                                1sec/
                                            1sec/
               on/
                                                        FlashOff
                                                        FlashOff
         LampOn
                           on/
         LampOn                                     entry/lamp.off()
    entry/lamp.on()

                        Group transition
                        Group transition
                         Behavioral Modeling with UML                   93
Completion Transitions
• Triggered by a completion event
  „ generated automatically when an immediately nested
    state machine terminates
                                              completion
              Committing                 transition (no trigger)
                  Phase1
                  Phase1



                                               CommitDone
                  Phase2
                  Phase2




                    Behavioral Modeling with UML                   94
Triggering Rules
• Two or more transitions may have the same
 event trigger
  „ innermost transition takes precedence
  „ if no transition is triggered, event is discarded


                     LampFlashing
                           FlashOn
                           FlashOn

                                     on/
                    off/
        on/
                            FlashOff
                            FlashOff


                     Behavioral Modeling with UML       95
Order of Actions: Complex Case
• Same approach as for the simple case

          S1                                          S2
      exit/exS1                                   entry/enS2

                                                    initS2
         S11           E/actE                         S21
     exit/exS11                                   entry/enS21


            Actions execution sequence:
   exS11 Ö exS1 Ö actE ÖenS2 Ö initS2 Ö enS21


                   Behavioral Modeling with UML                 96
History
• Return to a previously visited hierarchical state
  „   deep and shallow history options

                                  Diagnosing
suspend/
                    Diagnostic1
                    Diagnostic1                      Diagnostic2
                                                     Diagnostic2

                         Step11
                         Step11                          Step21
                                                         Step21


 resume/                 Step12
                         Step12                          Step22
                                                         Step22
             H*
             H*




                      Behavioral Modeling with UML                 97
Orthogonality
• Multiple simultaneous perspectives on the same entity
    age
                                                    financialStatus


     Child

                                                        Poor

     Adult


                                                         Rich
    Retiree




                     Behavioral Modeling with UML                     98
Orthogonal Regions
• Combine multiple simultaneous descriptions
    age
                                                  financialStatus


    Child

                                                      Poor

    Adult
                      age     financialStatus


                Child                                  Rich
   Retiree

                                     Poor
                Adult



                Retiree              Rich


                   Behavioral Modeling with UML                     99
Orthogonal Regions - Semantics
• All mutually orthogonal regions detect the same
  events and respond to them “simultaneously”
  „   usually reduces to interleaving of some kind

                legalStatus              financialStatus


               LawAbiding
               LawAbiding                      Poor
                                               Poor



                      robBank/                         robBank/

                 Outlaw
                 Outlaw                        Rich
                                               Rich


                        Behavioral Modeling with UML              100
Interactions Between Regions
• Typically through shared variables or awareness
  of other regions’ state changes
                                 sane : Boolean
                                 sane : Boolean
                                 flying : Boolean
                                 flying : Boolean
       Catch22
       Catch22
     sanityStatus                           flightStatus

                    Crazy
                    Crazy                                  Flying
                                                           Flying
             entry/sane := false;
             entry/sane := false;                 entry/flying := true;
                                                  entry/flying := true;

                             (flying)/                               (sane)/

     request
    Grounding/                                (~sane)/
                    Sane
                    Sane                              Grounded
                                                      Grounded
             entry/sane := true;
             entry/sane := true;                  entry/flying := false;
                                                  entry/flying := false;


                            Behavioral Modeling with UML                       101
Transition Forks and Joins
• For transitions into/out of orthogonal regions:


                                                         age


            Child
            Child          Adult
                           Adult             Retiree
                                             Retiree




              Staff
              Staff                         Manager
                                            Manager
             Member
             Member


                                                     employee



                      Behavioral Modeling with UML              102
Common Misuse of Orthogonality
• Using regions to model independent objects
    Person1                                      Person2




                Person1            Person2

                 Child                 Child



                 Adult                 Adult



                 Retiree              Retiree


                  Behavioral Modeling with UML             103
• Basic State Machine Concepts

• Statecharts and Objects

• Advanced Modeling Concepts

• Case Study

• Wrap Up




                  Behavioral Modeling with UML   104
Case Study: Protocol Handler
• A multi-line packet switch that uses the
  alternating-bit protocol as its link protocol
                                                       AB protocol
                                                       AB protocol
                       AB
       End user      sender
                   line card 1
                         .             unreliable
                                                              AB
       End user                                             receiver
                         .             telecom lines
                         .                                     AB
                                                             sender

                       AB                                   SWITCH
                     receiver
        End user   line card N

                         Behavioral Modeling with UML                  105
Alternating Bit Protocol (1)
• A simple one-way point-to-point packet protocol
                                                            AB protocol
                                                            AB protocol

           packetizer     Sender          Receiver      unpacker
                   data(1)
                                   pktA
                                                  data(1)

                                                 ack
                                  ackA
                   ack

                   data(2)
                                   pktB
                                                  data(2)

                                                 ack
                                  ackB
                   ack
                                   …etc.


                         Behavioral Modeling with UML                     106
Alternating Bit Protocol (2)
• State machine specification
           Sender SM                                              Receiver SM

            AcceptPktA                                                RcvdPktA

                                  ackB/^ack                                               pktA/^data
     data/^pktA                                              ack/^ackA
                  timeout/^pktB                                               timeout/^ackB

WaitAckA                     WaitAckB                 WaitPktB                         WaitPktA

     timeout/^pktA                                           timeout/^ackA
     ackA/^ack                    data/^pktB                     pktB/^data
                                                                                              ack/^ackB

            AcceptPktB                                                RcvdPktB



                                  Behavioral Modeling with UML                                     107
Additional Considerations
• Support (control) infrastructure


                                          operator    System
          AB                              interface   operator
        receiver
                   AB lines
                   manager
          AB
        sender                               DB
                                          interface
                    SWITCH


                                           DBase


                   Behavioral Modeling with UML                  108
Control
The set of (additional) mechanisms and actions
required to bring a system into the desired
operational state and to maintain it in that state
in the face of various planned and unplanned
disruptions
 • For software systems this includes:
   „ system/component start-up and shut-down
   „ failure detection/reporting/recovery
   „ system administration, maintenance, and
     provisioning
   „ (on-line) software upgrade
                 Behavioral Modeling with UML    109
Retrofitting Control Behavior

                         Hardware
JustCreated
                           Audit
                                                  Analysing
                                                   Failure
                         ReadyToGo
GettingData
                          AcceptPktA
                                                              Failed



              WaitAckA                 WaitAckB




                          AcceptPktB

                   Behavioral Modeling with UML                        110
The Control Automaton
• In isolation, the same control behavior
  appears much simpler
                JustCreated



                GettingData
                                                Analysing
                                                 Failure
                 Hardware
                   Audit


                ReadyToGo                         Failed



                Operational
                 Behavioral Modeling with UML               111
Exploiting Inheritance
• Abstract control classes can capture the common
  control behavior


                      AbstractController




        Sender          Receiver                    . . .




                     Behavioral Modeling with UML           112
Exploiting Hierarchical States

                     Analysing               AbstractController
JustCreated
                      Failure


GettingData
                        Failed

 Hardware
   Audit
                                                  Sender

ReadyToGo
                     Operational




              Behavioral Modeling with UML                   113
• Basic State Machine Concepts

• Statecharts and Objects

• Advanced Modeling Concepts

• Case Study

• Wrap Up




                  Behavioral Modeling with UML   114
Wrap Up: Statecharts
• UML uses an object-oriented variant of Harel’s
  statecharts
   „   adjusted to software modeling needs
• Used to model event-driven (reactive) behavior
   „ well-suited to the server model inherent in the object
     paradigm
• Primary use for modeling the behavior of active
  event-driven objects
   „ systems modeled as networks of collaborating state
     machines
   „ run-to-completion paradigm significantly simplifies
     concurrency management
                      Behavioral Modeling with UML       115
Wrap Up: Statecharts (cont’d)
• Includes a number of sophisticated features that
  realize common state-machine usage patterns:
  „ entry/exit actions
  „ state activities

  „ dynamic and static conditional branching

• Also, provides hierarchical modeling for dealing
  with very complex systems
  „ hierarchical states
  „ hierarchical transitions

  „ Orthogonality

                     Behavioral Modeling with UML   116
Behavioral Modeling
• Part 1: Interactions and Collaborations
• Part 2: Statecharts
• Part 3: Activity Diagrams
  Conrad Bock, Intellicorp
  bock@intellicorp.com




                     Behavioral Modeling with UML   117
Activity Diagram Applications
• Intended for applications that need control
  flow or object/data flow models …
• ... rather than event-driven models like state
  machines.
• For example: business process modeling
  and workflow.
• The difference in the three models is how
  step in a process is initiated, especially with
  respect to how the step gets its inputs.

                 Behavioral Modeling with UML       118
Control Flow
       • Each step is taken when the previous one finishes
         …
       • …regardless of whether inputs are available,
         accurate, or complete (“pull”).
       • Emphasis is on order in which steps are taken.
                   Start
                                                             Weather Info

                              Analyze Weather Info
                               Analyze Weather Info



Not UML
            Chart Course
             Chart Course                                  Cancel Trip
Notation!                                                   Cancel Trip



                            Behavioral Modeling with UML                    119
Object/Data Flow
      • Each step is taken when all the required input
        objects/data are available …
      • … and only when all the inputs are available
        (“push”).
      • Emphasis is on objects flowing between steps.
             Design Product
              Design Product                                  Acquire Capital
                                                               Acquire Capital


                                         Procure
                                          Procure
                                         Materials
                                          Materials


                         Build                            Build
                                                           Build
                          Build
                     Subassembly 11                   Subassembly 22
                                                       Subassembly
                      Subassembly



Not UML                                    Final
                                            Final
                                         Assembly
                                          Assembly
Notation
                               Behavioral Modeling with UML                      120
State Machine
            • Each step is taken when events are
              detected by the machine …
            • … using inputs given by the event.
            • Emphasis is on reacting to environment.
                                Ready To Start
                                 Ready To Start
       Coin
     Deposited

                               Ready For Order
                                Ready For Order
     Selection
                                                                Cancel Button
      Made
                                                                  Pressed

                 Dispense                             Return
                                                       Return
                  Dispense                            Change
                 Product
                  Product                              Change

Not UML
Notation
                             Behavioral Modeling with UML                       121
Activity Diagrams Based on State Machines

• Currently activity graphs are modeled as a
  kind of state machine.

• Modeler doesn't normally need to be
  aware of this sleight-of-hand ...

• ... but will notice that quot;statequot; is used in the
  element names.

• Activity graphs will become independent
  of state machines in UML 2.0.
                 Behavioral Modeling with UML       122
Kinds of Steps in Activity Diagrams

• Action (State)                  Action




• Subactivity (State)             Subactivity



• Just like their state machine counterparts
  (simple state and submachine state) except
  that ...
• ... transitions coming out of them are taken
  when the step is finished, rather than being
  triggered by a external event, ...
• ... and they support dynamic concurrency.

               Behavioral Modeling with UML      123
Action (State)

                           Action


• An action is used for anything that does not
  directly start another activity graph, like invoking
  an operation on an object, or running a user-
  specified action.

• However, an action can invoke an operation that
  has another activity graph as a method (possible
  polymorphism).


                  Behavioral Modeling with UML           124
Subactivity (State)
                        Subactivity


• A subactivity (state) starts another activity graph
  without using an operation.

• Used for functional decomposition, non-
  polymorphic applications, like many workflow
  systems.

• The invoked activity graph can be used by many
  subactivity states.

                  Behavioral Modeling with UML          125
Example

POEmployee.sortMail                              Deliver Mail




                                               Deliver Mail
  POEmployee

  sortMail()                    Check Out                        Put Mail
                                  Truck                         In Boxes




                      Behavioral Modeling with UML                          126
Activity Graph as Method

POEmployee.sortMail                            POEmployee.deliverMail



POEmployee
                                        PO Employee Deliver Mail Method
sortMail()
                 «realize»
deliverMail()                         Check Out                   Put Mail
                                        Truck                    In Boxes



   • Application is completely OO when all action
       states invoke operations, and all activity graphs
       are methods for operations.
                             Behavioral Modeling with UML                    127
Dynamic concurrency
                       Action/Subactivity            *
• Applies to actions and subactivities.
• Not inherited from state machines.
• Invokes an action or subactivity any number of times in
  parallel, as determined by an expression evaluated at
  runtime. Expression also determines arguments.
• Upper right-hand corner shows a multiplicity restricting the
  number of parallel invocations.
• Outgoing transition triggered when all invocations are done.
• Currently no standard notation for concurrency expression
  or how arguments are accessed by actions. Attach a note as
  workaround for expression. Issue for UML 1.4.
                      Behavioral Modeling with UML             128
Object Flow (State)
                             Class
                            [State]


• A special sort of step (state) that represents the
  availability of a particular kind of object, perhaps
  in a particular state.

• No action or subactivity is invoked and control
  passes immediately to the next step (state).

• Places constraints on input and output parameters
  of steps before and after it.
                   Behavioral Modeling with UML          129
Object Flow (State)
                            Order
   Take Order                                   Fill Order
                           [Taken]



• Take Order must have an output parameter
  giving an order, or one of its subtypes.

• Fill Order must have an input parameter taking
  an order, or one of its supertypes.

• Dashed lines used with object flow have the
  same semantics as any other state transition.

                 Behavioral Modeling with UML                130
Coordinating Steps

• Inherited from state machines


• Initial state


• Final state


• Fork and join



                  Behavioral Modeling with UML   131
Coordinating Steps
    • Decision point and merge (       )
       are inherited from state machines.
    • For modeling conventional flow
       chart decisions.

Calculate       [cost < $50]                     Charge
  Cost                                           Account
              [cost >= $50]




                           Get
                       Authorization


                  Behavioral Modeling with UML             132
Coordinating Steps
          • Synch state (       ) is inherited from state
            machines but used mostly in activity graphs.
          • Provides communication capability between
            parallel processes.
State machine
notation                                      Put
                Build                                                   Install
                Frame                          On                       Walls
                                              Roof

   Install
                                                                                  Inspect
 Foundation                                                     *
                                  *


                     Install                   Install
                                                                      Install
                   Electricity               Electricity
                                                                    Electricity
                 in Foundation               In Frame
                                                                     Outside




                                 Behavioral Modeling with UML                       133
Convenience Features (Synch State)
                • Forks and joins do not require
                  composite states.
                • Synch states may be omitted for the
                  common case (unlimited bound and
                  one incoming and outgoing
                  transition).
Activity diagram
notation                                   Put
                    Build                                               Install
                    Frame                   On
                                                                        Walls
                                           Roof

     Install                                                                      Inspect
   Foundation



                         Install                    Install           Install
                       Electricity                Electricity       Electricity
                     in Foundation                In Frame           Outside


                                     Behavioral Modeling with UML                   134
Convenience Features (Synch State)
• Object flow states can be synch states


     A 11               A 12                 A 13


                        O bj
                        [S 2]


     A 21               A 22                 A 23




              Behavioral Modeling with UML          135
Convenience Features
• Fork transitions can have guards.
                                     Evaluate             Revise
               [ priority = 1]
                                      Impact               Plan

    Register                                                          Release
      Bug                                                               Fix
                                          Fix              Test
                                          Bug              Fix



• Instead of doing this:
                     [ priority = 1]        Evaluate        Revise
                                             Impact          Plan

      Register                                                         Release
                                 [else]
        Bug                                                              Fix


                                            Fix                Test
                                            Bug                Fix


                                    Behavioral Modeling with UML                 136
Convenience Features
      • Partitions are a grouping mechanism.
      • Swimlanes are the notation for partitions.
      • They do not provide domain-specific semantics.
      • Tools can generate swimlane presentation from
          domain-specific information without partitions.

Management
                                    Evaluate              Revise
                                     Impact                Plan
                 [ priority = 1]

Support
          Register                                                 Release
            Bug                                                      Fix


Engineering
                                      Fix                  Test
                                      Bug                  Fix


                                   Behavioral Modeling with UML              137
Convenience Features
• Signal send icon
                                                         Wake Up
         Signal



• … translates to a transition                      Turn on Coffee Pot
  with a send action.
                                                         Get Cups        Coffee
                                                                          Pot
• Signal receipt icon
        Signal
                                                      Coffee Done
• … translates to a wait state
  (an state with no action and
  a signal trigger event).                            Drink Coffee




                     Behavioral Modeling with UML                        138
partition

                                   Submission Team                            Task Force            Revision Task Force


                                                                                                  initial state
                            action state       control flow


                                                                             Begin

                                                                                                  fork of control
Case Study

                                       Develop
                                     technology                           Issue RFP
                                    specification

                                                          RFP
                                                        [issued]
                            conditional
                            fork                                               join of control


                                      Submit
                                    specification
                                       draft                                   object flow

                                                      Specification
                                [optional]                                     input value
                                                         [initial
                                                       proposal]
                                   Collaborate with
                                     competitive
Communications of the ACM




                                     submitters
                                                                       Evaluate initial
                                                                        submissions
Kobryn, “UML 2001”




                                      Finalize
October 1999
Adapted from




                                    specification
                                                      Specification
                                                         [final
                                                       proposal]
                                                                   Behavioral Modeling with UML                           139
Collaborate with
                              competitive
                              submitters                          Evaluate initial
                                                                   submissions



                               Finalize
                             specification
                                               Specification
                                                  [final
                                                proposal]
Case Study

                                                                  Evaluate final
                                                                  submissions




                                                                     Vote to
                                                                   recommend
                                                                                                              guard


                              Specification                    [YES]            [NO]
                               [adopted]
                                                                                                              decision


                                                                                                                    Revise
                                                                                                                 specification
                               Implement
                              specification
Communications of the ACM




                                                                                              Specification
                                                                                                [revised]
                                                                     Enhance
                                                                                                                 Recommend
                                                                   specification
                                                                                                                   revision
Kobryn, “UML 2001”

October 1999
Adapted from




                                                                       [else]    [Enhanced]

                                                                                                              final state
                                                         Behavioral Modeling with UML                                            140
When to Use Activity Diagrams
• Use activity diagrams when the behavior
  you are modeling ...
   „   does not depend much on external events.
   „   mostly has steps that run to completion,
       rather than being interrupted by events.
   „   requires object/data flow between steps.
   „   is being constructed at a stage when you are
       more concerned with which activities happen,
       rather than which objects are responsible for
       them (except partitions possibly).


                 Behavioral Modeling with UML          141
Activity Diagram Modeling Tips
• Control flow and object flow are not
  separate. Both are modeled with state
  transitions.

• Dashed object flow lines are also
  control flow.

• You can mix state machine and
  control/object flow constructs on the
  same diagram (though you probably do
  not want to).
                  Behavioral Modeling with UML   142
Activity Diagram Modeling Tips

From UML      Customer     Telesales         Accounting   Warehouse
User Guide:

              Request
              Return
                           Get Return
                            Number

              Ship Item

                                                           Receive
                                                            Item

                 Item
              [returned]
                                                           Restock
                                                            Item



                                                Credit      Item
                                               Account    [available]




                           Behavioral Modeling with UML                 143
Customer      Telesales          Accounting   Warehouse



                          Request
                          Return
                                       Get Return
                                        Number

                          Ship Item
Activity Modeling Tips




                                                                        Receive
                            Item                                         Item
                         [returned]




                                                                        Restock
                                                                         Item




                                                             Credit
                                                            Account       Item
                                                                        [available]




                                      Behavioral Modeling with UML                    144
Activity Diagram Modeling Tips

• Activity diagrams inherit from state machines the
  requirement for well-structured nesting of
  composite states.

• This means you should either model as if
  composite states were there by matching all
  forks/decisions with a correspond join/merges …

• … or check that the diagram can be translated to
  one that is well-nested.

• This insures that diagram is executable under state
  machine semantics.

                   Behavioral Modeling with UML         145
Activity Diagram Modeling Tips

Well-nested:




                 Behavioral Modeling with UML   146
Activity Diagram Modeling Tips

Not well-nested:




Apply structured coding principles. (Be careful with goto’s!)



                        Behavioral Modeling with UML            147
Activity Diagram Modeling Tips

Can be translated to well-nested
diagram on earlier slide:




                          Behavioral Modeling with UML   148
Wrap Up: Activity Diagrams
• Use Activity Diagrams for applications that are
  primarily control and data-driven, like business
  modeling …
• … rather than event-driven applications like embedded
  systems.
• Activity diagrams are a kind of state machine until
  UML 2.0 …
• … so control and object/data flow do not have separate
  semantics.
• UML 1.3 has new features for business modeling that
  increase power and convenience. Check it out and
  give feedback!
                     Behavioral Modeling with UML       149
Preview - Next Tutorial
• Advanced Modeling with UML
  „ Model management
  „ Standard elements and profiles

  „ Object Constraint Language (OCL)




                  Behavioral Modeling with UML   150
Further Info
• Web:
  „ OMG UML Resource Page
        „   www.omg.org/uml/
   „   UML Tutorial 1 (OMG Document omg/99-11-04)
        „   www.omg.org/cgi-bin/doc?omg/99-11-04
   „   UML Tutorial 2 (OMG Document number TBA)
• Email
   „ Gunnar Övergaard: gunnaro@it.kth.se
   „ Bran Selic: bran@objectime.com
   „ Conrad Bock: bock@intellicorp.com

• Conferences & workshops
  „ UML World 2000, NYC, March ‘00
  „ UML ’00, York, England, Oct. ‘00

                           Behavioral Modeling with UML   151

More Related Content

Viewers also liked

ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2Sisir Ghosh
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Umlguest514814
 
System Analysis & Design - 2
System Analysis & Design - 2System Analysis & Design - 2
System Analysis & Design - 2Gagan Deep
 
System Analysis and Design - Unified Modeling Language (UML)
System Analysis and Design - Unified Modeling Language (UML)System Analysis and Design - Unified Modeling Language (UML)
System Analysis and Design - Unified Modeling Language (UML)Dudy Ali
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2wahab13
 

Viewers also liked (20)

Ch03lect2 ud
Ch03lect2 udCh03lect2 ud
Ch03lect2 ud
 
Ch05lect1 ud
Ch05lect1 udCh05lect1 ud
Ch05lect1 ud
 
Ch08lect2 ud
Ch08lect2 udCh08lect2 ud
Ch08lect2 ud
 
Ch08lect3 ud
Ch08lect3 udCh08lect3 ud
Ch08lect3 ud
 
Ch09lect1 ud
Ch09lect1 udCh09lect1 ud
Ch09lect1 ud
 
Ch08lect1 ud
Ch08lect1 udCh08lect1 ud
Ch08lect1 ud
 
Ch09lect2 ud
Ch09lect2 udCh09lect2 ud
Ch09lect2 ud
 
Ch02lect1 ud
Ch02lect1 udCh02lect1 ud
Ch02lect1 ud
 
Ch01lect1 ud
Ch01lect1 udCh01lect1 ud
Ch01lect1 ud
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2
 
Ch06lect1 ud
Ch06lect1 udCh06lect1 ud
Ch06lect1 ud
 
Ch10lect2 ud
Ch10lect2 udCh10lect2 ud
Ch10lect2 ud
 
Ch11lect1 ud
Ch11lect1 udCh11lect1 ud
Ch11lect1 ud
 
Ch10lect1 ud
Ch10lect1 udCh10lect1 ud
Ch10lect1 ud
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 
System Analysis & Design - 2
System Analysis & Design - 2System Analysis & Design - 2
System Analysis & Design - 2
 
Ch05lect2 ud
Ch05lect2 udCh05lect2 ud
Ch05lect2 ud
 
System Analysis and Design - Unified Modeling Language (UML)
System Analysis and Design - Unified Modeling Language (UML)System Analysis and Design - Unified Modeling Language (UML)
System Analysis and Design - Unified Modeling Language (UML)
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2
 
UML 2.0 Changes
UML 2.0 ChangesUML 2.0 Changes
UML 2.0 Changes
 

Similar to Object Modeling with UML: Behavioral Modeling

Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Ricardo Quintero
 
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorialSidi yazid
 
OMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityOMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityBrian Elvesæter
 
Light Maturity Models (LMM): An Agile Application
Light Maturity Models (LMM): An Agile ApplicationLight Maturity Models (LMM): An Agile Application
Light Maturity Models (LMM): An Agile ApplicationLuigi Buglione
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!Ed Seidewitz
 
Action Languages for UML execution: Where we are and where we are heading
Action Languages for UML execution: Where we are and where we are headingAction Languages for UML execution: Where we are and where we are heading
Action Languages for UML execution: Where we are and where we are headingFederico Ciccozzi
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML WorkshopEd Seidewitz
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
XML Metadata Interchange (XMI)
XML Metadata Interchange (XMI)XML Metadata Interchange (XMI)
XML Metadata Interchange (XMI)elliando dias
 
UML with Action Semantics
UML with Action SemanticsUML with Action Semantics
UML with Action Semanticselliando dias
 
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Ed Seidewitz
 
Model-driven Development of Model Transformations
Model-driven Development of Model TransformationsModel-driven Development of Model Transformations
Model-driven Development of Model TransformationsPieter Van Gorp
 
IRJET- American Sign Language Classification
IRJET- American Sign Language ClassificationIRJET- American Sign Language Classification
IRJET- American Sign Language ClassificationIRJET Journal
 

Similar to Object Modeling with UML: Behavioral Modeling (20)

Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial
 
Uml2 David Kemp 20060716
Uml2 David Kemp 20060716Uml2 David Kemp 20060716
Uml2 David Kemp 20060716
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 
OMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise InteroperabilityOMG Specifications for Enterprise Interoperability
OMG Specifications for Enterprise Interoperability
 
Light Maturity Models (LMM): An Agile Application
Light Maturity Models (LMM): An Agile ApplicationLight Maturity Models (LMM): An Agile Application
Light Maturity Models (LMM): An Agile Application
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!
 
Action Languages for UML execution: Where we are and where we are heading
Action Languages for UML execution: Where we are and where we are headingAction Languages for UML execution: Where we are and where we are heading
Action Languages for UML execution: Where we are and where we are heading
 
XML Bible
XML BibleXML Bible
XML Bible
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Ooad with uml
Ooad with umlOoad with uml
Ooad with uml
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML Workshop
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
XML Metadata Interchange (XMI)
XML Metadata Interchange (XMI)XML Metadata Interchange (XMI)
XML Metadata Interchange (XMI)
 
UML with Action Semantics
UML with Action SemanticsUML with Action Semantics
UML with Action Semantics
 
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
 
Model-driven Development of Model Transformations
Model-driven Development of Model TransformationsModel-driven Development of Model Transformations
Model-driven Development of Model Transformations
 
IRJET- American Sign Language Classification
IRJET- American Sign Language ClassificationIRJET- American Sign Language Classification
IRJET- American Sign Language Classification
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Recently uploaded

IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 

Recently uploaded (20)

IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 

Object Modeling with UML: Behavioral Modeling

  • 1. Object Modeling with UML: Behavioral Modeling Gunnar Övergaard, Bran Selic and Conrad Bock January 2000 © 1999 OMG and Tutorial Contributors: EDS, IBM, Enea Data, IntelliCorp, Klasse Objecten, ObjectTime Ltd., Rational Software, Unisys
  • 2. Overview • Tutorial series • UML Quick Tour • Behavioral Modeling „ Part 1: Interactions and Collaborations „ Gunnar Övergaard, Rational Software „ Part 2: Statecharts „ Bran Selic, ObjecTime Limited „ Part 3: Activity Graphs „ Conrad Bock, IntelliCorp Behavioral Modeling with UML 2
  • 3. Tutorial Series • Introduction to UML „ November 1999, Cambridge, US • Behavioral Modeling with UML „ January 2000, Mesa, Arizona, US • Advanced Modeling with UML „ March 2000, Denver, US • Metadata Integration with UML, XMI and MOF „ June 2000, Oslo, Norway Behavioral Modeling with UML 3
  • 4. Tutorial Goals • What you will learn: „ what the UML is and what is it not „ UML’s basic constructs, rules and diagram techniques „ how the UML can model large, complex systems „ how the UML can specify systems in an implementation- independent manner „ how UML, XMI and MOF can facilitate metadata integration • What you will not learn: „ Object Modeling „ Development Methods or Processes „ Metamodeling Behavioral Modeling with UML 4
  • 5. UML Quick Tour • The UML is a graphical language for „ specifying „ visualizing „ constructing „ documenting the artifacts of software systems • Added to the list of OMG adopted technologies in November 1997 as UML 1.1 • Most recent minor revision is UML 1.3 (November 1999) Behavioral Modeling with UML 5
  • 6. UML Goals • Define an easy-to-learn but semantically rich visual modeling language • Unify the Booch, OMT, and Objectory modeling languages • Include ideas from other modeling languages • Incorporate industry best practices • Address contemporary software development issues „ scale, distribution, concurrency, executability, etc. • Provide flexibility for applying different processes • Enable model interchange and define repository interfaces Behavioral Modeling with UML 6
  • 7. OMG UML Evolution 2001 (planned m ajor revision) <<docum ent>> UM L 2.0 << refine>> Other relevant standards TBA Q3 2000 <<docum ent>> (planned m inor revision) << inform alLiaison>> UM L 1.4 ISO Publicly << refine>> Available Specifications (PAS) <<docum ent>> Q3 1999 << form alLiaison> > UM L 1.3 << refine>> E ditorial revision <<docum ent>> with no significant Q2 1998 UM L 1.2 technical changes. << refine>> Q3 1997 U nification of m ajor (OM G Adopted <<docum ent>> m odeling languages, Technology) UM L 1.1 including B ooch, O M T and O bjectory Behavioral Modeling with UML 7
  • 8. OMG UML 1.3 Specification • UML Summary • UML Semantics • UML Notation Guide • UML Standard Profiles „ Software Development Processes „ Business Modeling • UML CORBAfacility Interface Definition • UML XML Metadata Interchange DTD • Object Constraint Language Behavioral Modeling with UML 8
  • 9. Tutorial Focus: the Language • language = syntax + semantics „ syntax = language elements (e.g. words) are assembled into expressions (e.g. phrases, clauses) „ semantics = the meanings of the syntactic expressions • UML Notation Guide – defines UML’s graphic syntax • UML Semantics – defines UML’s semantics Behavioral Modeling with UML 9
  • 10. Unifying Concepts • classifier-instance dichotomy „ e.g. an object is an instance of a class OR a class is the classifier of an object • specification-realization dichotomy „ e.g. an interface is a specification of a class OR a class is a realization of an interface • analysis-time vs. design-time vs. run-time „ modeling phases (“process creep”) „ usage guidelines suggested, not enforced Behavioral Modeling with UML 10
  • 11. Language Architecture • Metamodel architecture • Package structure Behavioral Modeling with UML 11
  • 12. Metamodel Architecture M eta-M etam odel Lay er <<m e ta m ode l>> (M 3): S pec ifies m eta- MOF Me ta - m etac las s es for the m e ta m ode l UM L m etam odel M etam odel Lay er (M 2): S pec ifies m etac las s es <<m e ta m ode l>> for the UM L UML Me ta m ode l m etam odel, s uc h as Clas s M odel Lay er (M 1): S pec ifies c las s es for the UM L us er Use r Mode l m odels , s uc h as P as s enger, Tic k et, TravelA genc y Us er O bjec ts Lay er (M 0): :Foo :B ar :B az Us er objec ts that are ins tanc es of UM L us er m odel c las s es , s uc h as ins tanc es of P as s enger, Tic k et, TravelA genc y Behavioral Modeling with UML 12
  • 13. Package Structure <<m etam odel>> UM L Behavioral M odel Elem ents M anagem ent dependency Foundation package Behavioral Modeling with UML 13
  • 14. Package Structure Behavioral Elements Collaborations Use Cases State Machines Activity Graphs Model Management Common Behavior Foundation Behavioral Modeling with UML 14
  • 15. Behavioral Modeling • Part 1: Interactions and Collaborations Gunnar Övergaard, Rational Software gunnaro@it.kth.se • Part 2: Statecharts • Part 3: Activity Diagrams Behavioral Modeling with UML 15
  • 16. Interactions • What are interactions? • Core concepts • Diagram tour • When to model interactions • Modeling tips • Example: A Booking System Behavioral Modeling with UML 16
  • 17. What are interactions? • Interaction: a collection of communications between instances, including all ways to affect instances, like operation invocation, as well as creation and destruction of instances • The communications are partially ordered (in time) Behavioral Modeling with UML 17
  • 18. Interactions: Core Elements Construct Description Syntax Instance An entity with a unique identity and (object, to which a set of operations can be name data value, applied (signals be sent) and which attr values component has a state that stores the effects of instance the operations (the signals). etc.) Action A specification of an executable textual statement. A few different kinds of actions are predefined, e.g. CreateAction, CallAction, DestroyAction, and UninterpretedAction. Behavioral Modeling with UML 18
  • 19. Interaction: Core Elements (cont’d) Construct Description Syntax Stimulus A communication between two instances. Operation A declaration of a service that can textual be requested from an instance to effect behavior. Signal A specification of an asynchronous «Signal» Name stimulus communicated between parameters instances. Behavioral Modeling with UML 19
  • 20. Interaction: Core Relationships Construct Description Syntax Link A connection between instances. Attribute Link A named slot in an instance, which textual holds the value of an attribute. Behavioral Modeling with UML 20
  • 21. Example: Instance triangle : Polygon underlined name triangle : Polygon center : Point = (2,2) triangle vertices : Point* = ((0,0), (4, 0), (2,4)) borderColor : Color = black fillColor : Color = white : Polygon attribute links Behavioral Modeling with UML 21
  • 22. Example: Instances and Links : Family husband wife Joe : Person Jill : Person Behavioral Modeling with UML 22
  • 23. Operation and Method Triangle foreach v in vertices do + move (in dist : Point) v.x := v.x + dist.x; + scale (in factor : Real) v.y := v.y + dist.y foreach v in vertices do v.x := factor * v.x; v.y := factor * v.y Behavioral Modeling with UML 23
  • 24. Interaction Diagram Tour • Show interactions between instances in the model „ graph of instances (possibly including links) and stimuli „ existing instances „ creation and deletion of instances • Kinds „ sequence diagram (temporal focus) „ collaboration diagram (structural focus) Behavioral Modeling with UML 24
  • 25. Interaction Diagrams Sequence Diagram Collaboration Diagram x y z 1.1: a 1.2: c a x y b 1.1.1: b c z Behavioral Modeling with UML 25
  • 26. Sequence Diagram object symbol name : Class other lifeline stimulus name (…) activation new (…) : Class delete return create Behavioral Modeling with UML 26
  • 27. Arrow Label predecessor guard-condition sequence-expression return-value := message-name argument-list move (5, 7) 3.7.4: move (5, 7) A3, B4 / [ x < 0 ] C3.1: res := getLocation (fig) 3.7 *[1..5]: move (5, 7) iteration predecessor guard sequence number return value message name argument list 3.7 [ z > 0 ]: move (5, 7) condition Behavioral Modeling with UML 27
  • 28. Different Kinds of Arrows Procedure call or other kind of nested flow of control Flat flow of control Explicit asynchronous flow of control Return Behavioral Modeling with UML 28
  • 29. Example: Different Arrows Nested Flow Flat Flow Asynchronous Flow teller : Order : Article caller exchange callee appl err handl alarm lift receiver getValue dial tone unknown price alarm dial digit dial digit getName ringing tone ringing signal lift receiver Behavioral Modeling with UML 29
  • 30. Recursion, Condition, etc. calculator filter value [ x > 0] getValue () [ x < 0] transform () getValue () iterate () Behavioral Modeling with UML 30
  • 31. Collaboration Diagram object symbol link symbol standard stereotype redisplay () window stimulus : Controller : Window standard standard window «parameter» 1: displayPositions (window) stereotype constraint 1.1.3.1 add (self) wire contents {new} 1.1 *[i := 1..n]: drawSegment (i) «local» line {new} wire :Wire : Line standard 1.1.2: create (r0, r1) «self» stereotype 1.1.3: display (window) standard 1.1.1a: r0 := position () 1.1.1b: r1 := position () constraint left : Bead right : Bead Behavioral Modeling with UML 31
  • 32. When to Model Interactions • To specify how the instances are to interact with each other. • To identify the interfaces of the classifiers. • To distribute the requirements. Behavioral Modeling with UML 32
  • 33. Interaction Modeling Tips • Set the context for the interaction. • Include only those features of the instances that are relevant. • Express the flow from left to right and from top to bottom. • Put active instances to the left/top and passive ones to the right/bottom. • Use sequence diagrams „ to show the explicit ordering between the stimuli „ when modeling real-time • Use collaboration diagrams „ when structure is important „ to concentrate on the effects on the instances Behavioral Modeling with UML 33
  • 34. Example: A Booking System Behavioral Modeling with UML 34
  • 35. Use Case Description: Change Flt Itinerary • Actors: traveler, client account db, airline reservation system • Preconditions: Traveler has logged in • Basic course: T Traveler selects ‘change flight itinerary’ option T System retrieves traveler’s account and flight itinerary from client account database T System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. T System asks traveler for new departure and destination information; traveler provides information. T If flights are available then … T … T System displays transaction summary. • Alternative course: T If no flights are available then… Behavioral Modeling with UML 35
  • 36. Sequence Diagram: Change Flight Itinerary Traveler : Booking System Client Account DBMS Airline Reservation System change flight itinerary get customer account get itinerary present itinerary select segment present detailed info update information available flight : : Behavioral Modeling with UML 36
  • 37. Collaboration Diagram: Change Flt Itinerary 1: change flight itinerary 5: select segment 2: get customer account 3: get itinerary 7: update information : Booking System 4: present itinerary Traveler 6: present detailed info Client Account DBMS 8: available flight Airline Reservation System Behavioral Modeling with UML 37
  • 38. Collaboration • What is a collaboration? • Core concepts • Diagram tour • When to model collaborations • Modeling tips • Example: A Booking System Behavioral Modeling with UML 38
  • 39. What is a collaboration? • Collaboration: a collaboration defines the roles a set of instances play when performing a particular task, like an operation or a use case. • Interaction:an interaction specifies a communication pattern to be performed by instances playing the roles of a collaboration. Behavioral Modeling with UML 39
  • 40. Collaborations: Core Elements Construct Description Syntax Collaboration A collaboration describes how an operation or a classifier, like a use case, is realized by a set of classifiers and associations used in a specific way. The collaboration defines a set of Name roles to be played by instances and links, as well as a set of interactions that define the communication patterns between the instances when they play the roles. Behavioral Modeling with UML 40
  • 41. Collaborations: Core Elements (cont’d) Construct Description Syntax Classifier A classifier role is a specific role Role played by a participant in a / Name collaboration. It specifies a restricted view of a classifier, defined by what is required in the collaboration. Message A message specifies one label communication between instances. It is a part of the communication pattern given by an interaction. Behavioral Modeling with UML 41
  • 42. Collaborations: Core Relationships Construct Description Syntax Association An association role is a specific Role usage of an association needed in a collaboration. Generalization A generalization is a taxonomic relationship between a more general element and a more specific element. The more specific element is fully consistent with the more general element. Behavioral Modeling with UML 42
  • 43. Classifier-Instance-Role Trichotomy • An Instance is an entity id with behavior and a state, and has a unqiue identity. «originates from» • A Classifier is a description ClassName of an Instance. «conforms to» • A Classifier Role defines a / RoleName «view of» usage (an abstraction) of an Instance. Behavioral Modeling with UML 43
  • 44. Classifier-Instance-Role Trichotomy (cont’d) Classifier ClassifierRole Attribute-1 Attribute-1 Attribute-2 Attribute-2 Attribute-3 «originates from» «conforms to» Operation-1 (…) Operation-1 (…) Operation-3 (…) Operation-2 (…) Operation-3 (…) Instance AttributeValue-1 AttributeValue-2 AttributeValue-3 The attribute values of an Instance corresponds to the attributes of its Classifier. All attributes required by the ClassifierRole have corresponding attribute values in the Instance. All operations defined in the Instance’s Classifier can be applied to the Instance. All operations required by the ClassifierRole are applicable to the Instance. Behavioral Modeling with UML 44
  • 45. Different Ways to Name a Role / ClassifierRoleName : ClassifierName A role name is preceeded by a ‘/’ A classifier name is preceeded by a ‘:’ Example: / Parent : Person / Parent : Person instanceName / ClassifierRoleName : ClassifierName Example: : Person Charlie Charlie : Person Charlie / Parent Charlie / Parent : Person Behavioral Modeling with UML 45
  • 46. Association and Association Role Class Association Class 0..5 Class-1 Class-2 {changeable} «view of» «view of» «view of» {frozen} 3..4 / Role-1 / Role-2 ClassifierRole AssociationRole ClassifierRole An Association Role specifies the required properties of a Link used in a Collaboration. The properties of an AssociationEnd may be restricted by a AssociationEndRole. Behavioral Modeling with UML 46
  • 47. Example: A School / Teacher : Person / Student : Person 1 tutor student * position : Text program : Text faculty member * 1 lecturer participant * faculty 1 given course * taken course * : Faculty : Course Behavioral Modeling with UML 47
  • 48. Role Model vs. Class Model The Classes give the complete description while the Roles specify one usage. Role Model Class Model Resulting multiplicity Extra attribute / Teacher : Person 1 * / Student : Person Person 0..1 Resulting multiplicity position : Text program : Text name : Text position : Text * * * program : Text * 1 0..1 1 * 1 * * * * : Faculty : Course Faculty Course Behavioral Modeling with UML 48
  • 49. A Collaboration and Its Roles A Collaboration and how its roles are mapped onto CollaborationName a collection of Classifiers and Associations. roleName-1 roleName-2 roleName-3 Classifier-1 Classifier-2 Behavioral Modeling with UML 49
  • 50. Patterns in UML Constraint that must Handler.reading = length (Subject.queue) be fulfilled in each instance Handler.range = {0..Subject.capacity} of this pattern. Observer Subject Handler CallQueue SlidingBarIcon queue : List of Call reading : Real source : Object color : Color waitAlarm : Alarm range : Interval capacity : Integer Behavioral Modeling with UML 50
  • 51. Generalization Between Collaborations Subject Handler CallQueue Observer SlidingBarIcon Subject Manager ManagedQueue Supervisor Controller All roles defined in the parent are present in the child. Some of the parent’s roles may be overridden in the child. An overridden role is usually the parent of the new role. Behavioral Modeling with UML 51
  • 52. Collaboration Diagram Tour • Show Classifier Roles and Association Roles, possibly together with extra constraining elements • Kinds „ Instance level – Instances and Links „ Specification level – Roles • Static Diagrams are used for showing Collaborations explicitly Behavioral Modeling with UML 52
  • 53. Collaboration Diagram at Specification Level / Teacher : Person 1 tutor student * / Student : Person position : Text program : Text faculty member * * participant 1 lecturer faculty 1 given course * * taken course : Faculty : Course Behavioral Modeling with UML 53
  • 54. Collaboration Diagram at Instance Level student tutor Alice / Student faculty member John / Teacher participant faculty tutor Bob / Student student : Faculty participant taken course taken course faculty lecturer given course Sara / Teacher English : Course faculty member Behavioral Modeling with UML 54
  • 55. Collaborations including Interactions Sequence Diagram Collaboration Diagram x y z 1.1: a 1.2: c a x y b 1.1.1: b c z Behavioral Modeling with UML 55
  • 56. Collaboration Diagram with Constraining Elements / Generator : Printer Device Constraining Element (A Generalization is not an AssociationRole ) : Laser Printer : Line Printer Behavioral Modeling with UML 56
  • 57. Static Diagram With Collaboration and Classifiers Subject Handler CallQueue Observer SlidingBarIcon Subject Manager ManagedQueue Supervisor Controller Behavioral Modeling with UML 57
  • 58. When to Model Collaborations • Use Collaborations as a tool to find the Classifiers. • Trace a Use Case / Operation onto Classifiers. • Map the specification of a Subsystem onto its realization (Tutorial 3). Behavioral Modeling with UML 58
  • 59. Collaboration Modeling Tips • A collaboration should consist of both structure and behavior relevant for the task. • A role is an abstraction of an instance, it is not a class. • Look for „ initiators (external) „ handlers (active) „ managed entities (passive) Behavioral Modeling with UML 59
  • 60. Example: A Booking System Behavioral Modeling with UML 60
  • 61. Use Case Description: Change Flt Itinerary • Actors: traveler, client account db, airline reservation system • Preconditions: Traveler has logged in • Basic course: T Traveler selects ‘change flight itinerary’ option T System retrieves traveler’s account and flight itinerary from client account database T System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. T System asks traveler for new departure and destination information; traveler provides information. T If flights are available then … T … T System displays transaction summary. • Alternative course: T If no flights are available then… Behavioral Modeling with UML 61
  • 62. Booking System: Change Flt Itinerary Collaboration 4: get customer account 1: change flight itinerary 7: get itinerary : Traveler / Flight Itenerary Form / DBMS Protocol : Client Account DBMS 10: present 9: display 3: get customer account 2: create modifier 6: get itinerary / Flight Itinerary Modifier 5: create 8: create / Account / Itinerary / ARS Protocol : Airline Reservation System Behavioral Modeling with UML 62
  • 63. Wrap Up: Interactions & Collaborations • Instances, Links and Stimuli are used for expressing the dynamics in a model. • Collaboration is a tool for „ identification of classifiers „ specification of the usage of instances „ expressing a mapping between different levels of abstraction • Different kinds of diagrams focus on time or on structure Behavioral Modeling with UML 63
  • 64. Behavioral Modeling • Part 1: Interactions and Collaborations • Part 2: Statecharts Bran Selic, ObjecTime Limited bran@objectime.com • Part 3: Activity Diagrams Behavioral Modeling with UML 64
  • 65. Overview • Basic State Machine Concepts • Statecharts and Objects • Advanced Modeling Concepts • Case Study • Wrap Up Behavioral Modeling with UML 65
  • 66. Automata • A machine whose output behavior is not only a direct consequence of the current input, but of some past history of its inputs • Characterized by an internal state which represents this past experience ON ON ON ON OFF OFF Behavioral Modeling with UML 66
  • 67. State Machine (Automaton) Diagram • Graphical rendering of automata behavior on Lamp On on off off Lamp Off Behavioral Modeling with UML 67
  • 68. Outputs and Actions • As the automaton changes state it can generate outputs: on on Lamp Lamp On On print(”on”) on/print(”on”) on off off off off Lamp Lamp Off Off Mealy automaton Moore automaton Behavioral Modeling with UML 68
  • 69. Extended State Machines • Addition of variables (“extended state”) on ctr :: Integer ctr Integer Lamp On on/ctr := ctr + 1 off off Lamp Off Behavioral Modeling with UML 69
  • 70. A Bit of Theory • An extended (Mealy) state machine is defined by: „ a set of input signals (input alphabet) „ a set of output signals (output alphabet) „ a set of states „ a set of transitions „ triggering signal „ action „ a set of extended state variables „ an initial state designation „ a set of final states (if terminating automaton) Behavioral Modeling with UML 70
  • 71. Basic UML Statechart Diagram “top” state State Initial Initial pseudostate pseudostate top Trigger Ready Transition stop /ctr := 0 Done Final Action Action state stop Behavioral Modeling with UML 71
  • 72. What Kind of Behavior? • In general, state machines are suitable for describing event-driven, discrete behavior „ inappropriate for modeling continuous behavior threshold time Behavioral Modeling with UML 72
  • 73. Event-Driven Behavior • Event = a type of observable occurrence „ interactions: „ synchronous object operation invocation (call event) „ asynchronous signal reception (signal event) „ occurrence of time instants (time event) „ interval expiry „ calendar/clock time „ change in value of some entity (change event) • Event Instance = an instance of an event (type) „ occurs at a particular time instant and has no duration Behavioral Modeling with UML 73
  • 74. The Behavior of What? • In principle, anything that manifests event- driven behavior „ NB: there is no support currently in UML for modeling continuous behavior • In practice: „ the behavior of individual objects „ object interactions • The dynamic semantics of UML state machines are currently mainly specified for the case of active objects Behavioral Modeling with UML 74
  • 75. • Basic State Machine Concepts • Statecharts and Objects • Advanced Modeling Concepts • Case Study • Wrap Up Behavioral Modeling with UML 75
  • 76. Object Behavior - General Model • Simple server model: Initialize Initialize Handling depends on Handling depends on Object Object specific request type specific request type Wait for Wait for Request Request void:offHook (); Handle Handle {busy = true; obj.reqDialtone(); Request Request … }; Terminate Terminate Object Object Behavioral Modeling with UML 76
  • 77. Object Behavior and State Machines • Direct mapping: on Initialize Object Lamp On Wait for Event on/print(”on”) Handle Event off off Lamp Off Terminate Object stop Behavioral Modeling with UML 77
  • 78. Object and Threads • Passive objects: depend on external power (thread of execution) • Active objects: self-powered (own thread of execution) Initialize Initialize Initialize Initialize Object Object Object Object Wait for Wait for Wait for Wait for Request Request Request Request Handle Handle Handle Handle Request Request Request Request Terminate Terminate Terminate Terminate Object Object Object Object Behavioral Modeling with UML 78
  • 79. Passive Objects: Dynamic Semantics Initialize Initialize Object Object Wait for Wait for Request Request Handle Handle Request Request Terminate Terminate Object Object • Encapsulation does not protect the object from concurrency conflicts! „ Explicit synchronization is still required Behavioral Modeling with UML 79
  • 80. Active Objects and State Machines • Objects that encapsulate own thread of execution anActiveObject poll/defer #currentEvent : Event created + start ( ) start start/^master.ready() ready + poll ( ) + stop ( ) ready stop/ poll/^master.ack() Behavioral Modeling with UML 80
  • 81. Active Objects: Dynamic Semantics ActiveObject: • Run-to-completion model: serialized event handling „ eliminates internal concurrency „ minimal context switching overhead Behavioral Modeling with UML 81
  • 82. The Run-to-Completion Model • A high priority event for (another) active object will preempt an active object that is handling a low-priority event Active1 Active1 Active2 Active2 lo hi hi Behavioral Modeling with UML 82
  • 83. • Basic State Machine Concepts • Statecharts and Objects • Advanced Modeling Concepts • Case Study • Wrap Up Behavioral Modeling with UML 83
  • 84. State Entry and Exit Actions • A dynamic assertion mechanism LampOn e2 entry/lamp.on(); exit/lamp.off(); e1 Behavioral Modeling with UML 84
  • 85. Order of Actions: Simple Case • Exit actions prefix transition actions • Entry action postfix transition actions LampOn LampOff off/printf(“to off”); entry/lamp.on(); entry/lamp.off(); exit/printf(“exiting”); exit/printf(“exiting”); Resulting action sequence: off/printf(“needless”); printf(“exiting”); printf(“exiting”); printf(“to off”); printf(“to printf(“exiting”); printf(“exiting”); lamp.off(); printf(“needless”); printf(“needless”); lamp.off(); Behavioral Modeling with UML 85
  • 86. Internal Transitions • Self-transitions that bypass entry and exit actions Internal transition triggered by an “off” event LampOff entry/lamp.off(); exit/printf(“exiting”); off/null; Behavioral Modeling with UML 86
  • 87. State (“Do”) Activities • Forks a concurrent thread that executes until: „ the action completes or „ the state is exited through an outgoing transition “do” activity Error entry/printf(“error!”) do/while (true) alarm.ring(); Behavioral Modeling with UML 87
  • 88. Guards • Conditional execution of transitions „ guards (Boolean predicates) must be side-effect free bid [value < 100] /reject bid [value >= 200] /sell Selling Happy bid [(value >= 100) & (value < 200)] /sell Unhappy Behavioral Modeling with UML 88
  • 89. Static Conditional Branching • Merely a graphical shortcut for convenient rendering of decision trees Selling Happy bid [value >= 200] /sell [value < 100] /reject [(value >= 100) & (value < 200)] /sell Unhappy Behavioral Modeling with UML 89
  • 90. Dynamic Conditional Branching • Choice pseudostate: guards are evaluated at the instant when the decision point is reached Selling Happy bid /gain := calculatePotentialGain(value) [gain >= 200] /sell [gain < 100] /reject [(gain >= 100) & (gain < 200)] /sell Dynamic Dynamic choicepoint choicepoint Unhappy Behavioral Modeling with UML 90
  • 91. Hierarchical State Machines • Graduated attack on complexity „ states decomposed into state machines LampOff LampOff flash/ LampFlashing entry/lamp.off() FlashOn FlashOn off/ entry/lamp.on() 1sec/ 1sec/ on/ on/ FlashOff FlashOff LampOn on/ LampOn entry/lamp.off() entry/lamp.on() Behavioral Modeling with UML 91
  • 92. “Stub” Notation • Notational shortcut: no semantic significance LampOff LampOff flash/ LampFlashing entry/lamp.off() off/ FlashOn on/ on/ LampOn on/ FlashOff LampOn entry/lamp.on() Behavioral Modeling with UML 92
  • 93. Group Transitions • Higher-level transitions Default transition to Default transition to the initial pseudostate the initial pseudostate LampOff LampOff flash/ LampFlashing entry/lamp.off() FlashOn FlashOn off/ entry/lamp.on() 1sec/ 1sec/ on/ FlashOff FlashOff LampOn on/ LampOn entry/lamp.off() entry/lamp.on() Group transition Group transition Behavioral Modeling with UML 93
  • 94. Completion Transitions • Triggered by a completion event „ generated automatically when an immediately nested state machine terminates completion Committing transition (no trigger) Phase1 Phase1 CommitDone Phase2 Phase2 Behavioral Modeling with UML 94
  • 95. Triggering Rules • Two or more transitions may have the same event trigger „ innermost transition takes precedence „ if no transition is triggered, event is discarded LampFlashing FlashOn FlashOn on/ off/ on/ FlashOff FlashOff Behavioral Modeling with UML 95
  • 96. Order of Actions: Complex Case • Same approach as for the simple case S1 S2 exit/exS1 entry/enS2 initS2 S11 E/actE S21 exit/exS11 entry/enS21 Actions execution sequence: exS11 Ö exS1 Ö actE ÖenS2 Ö initS2 Ö enS21 Behavioral Modeling with UML 96
  • 97. History • Return to a previously visited hierarchical state „ deep and shallow history options Diagnosing suspend/ Diagnostic1 Diagnostic1 Diagnostic2 Diagnostic2 Step11 Step11 Step21 Step21 resume/ Step12 Step12 Step22 Step22 H* H* Behavioral Modeling with UML 97
  • 98. Orthogonality • Multiple simultaneous perspectives on the same entity age financialStatus Child Poor Adult Rich Retiree Behavioral Modeling with UML 98
  • 99. Orthogonal Regions • Combine multiple simultaneous descriptions age financialStatus Child Poor Adult age financialStatus Child Rich Retiree Poor Adult Retiree Rich Behavioral Modeling with UML 99
  • 100. Orthogonal Regions - Semantics • All mutually orthogonal regions detect the same events and respond to them “simultaneously” „ usually reduces to interleaving of some kind legalStatus financialStatus LawAbiding LawAbiding Poor Poor robBank/ robBank/ Outlaw Outlaw Rich Rich Behavioral Modeling with UML 100
  • 101. Interactions Between Regions • Typically through shared variables or awareness of other regions’ state changes sane : Boolean sane : Boolean flying : Boolean flying : Boolean Catch22 Catch22 sanityStatus flightStatus Crazy Crazy Flying Flying entry/sane := false; entry/sane := false; entry/flying := true; entry/flying := true; (flying)/ (sane)/ request Grounding/ (~sane)/ Sane Sane Grounded Grounded entry/sane := true; entry/sane := true; entry/flying := false; entry/flying := false; Behavioral Modeling with UML 101
  • 102. Transition Forks and Joins • For transitions into/out of orthogonal regions: age Child Child Adult Adult Retiree Retiree Staff Staff Manager Manager Member Member employee Behavioral Modeling with UML 102
  • 103. Common Misuse of Orthogonality • Using regions to model independent objects Person1 Person2 Person1 Person2 Child Child Adult Adult Retiree Retiree Behavioral Modeling with UML 103
  • 104. • Basic State Machine Concepts • Statecharts and Objects • Advanced Modeling Concepts • Case Study • Wrap Up Behavioral Modeling with UML 104
  • 105. Case Study: Protocol Handler • A multi-line packet switch that uses the alternating-bit protocol as its link protocol AB protocol AB protocol AB End user sender line card 1 . unreliable AB End user receiver . telecom lines . AB sender AB SWITCH receiver End user line card N Behavioral Modeling with UML 105
  • 106. Alternating Bit Protocol (1) • A simple one-way point-to-point packet protocol AB protocol AB protocol packetizer Sender Receiver unpacker data(1) pktA data(1) ack ackA ack data(2) pktB data(2) ack ackB ack …etc. Behavioral Modeling with UML 106
  • 107. Alternating Bit Protocol (2) • State machine specification Sender SM Receiver SM AcceptPktA RcvdPktA ackB/^ack pktA/^data data/^pktA ack/^ackA timeout/^pktB timeout/^ackB WaitAckA WaitAckB WaitPktB WaitPktA timeout/^pktA timeout/^ackA ackA/^ack data/^pktB pktB/^data ack/^ackB AcceptPktB RcvdPktB Behavioral Modeling with UML 107
  • 108. Additional Considerations • Support (control) infrastructure operator System AB interface operator receiver AB lines manager AB sender DB interface SWITCH DBase Behavioral Modeling with UML 108
  • 109. Control The set of (additional) mechanisms and actions required to bring a system into the desired operational state and to maintain it in that state in the face of various planned and unplanned disruptions • For software systems this includes: „ system/component start-up and shut-down „ failure detection/reporting/recovery „ system administration, maintenance, and provisioning „ (on-line) software upgrade Behavioral Modeling with UML 109
  • 110. Retrofitting Control Behavior Hardware JustCreated Audit Analysing Failure ReadyToGo GettingData AcceptPktA Failed WaitAckA WaitAckB AcceptPktB Behavioral Modeling with UML 110
  • 111. The Control Automaton • In isolation, the same control behavior appears much simpler JustCreated GettingData Analysing Failure Hardware Audit ReadyToGo Failed Operational Behavioral Modeling with UML 111
  • 112. Exploiting Inheritance • Abstract control classes can capture the common control behavior AbstractController Sender Receiver . . . Behavioral Modeling with UML 112
  • 113. Exploiting Hierarchical States Analysing AbstractController JustCreated Failure GettingData Failed Hardware Audit Sender ReadyToGo Operational Behavioral Modeling with UML 113
  • 114. • Basic State Machine Concepts • Statecharts and Objects • Advanced Modeling Concepts • Case Study • Wrap Up Behavioral Modeling with UML 114
  • 115. Wrap Up: Statecharts • UML uses an object-oriented variant of Harel’s statecharts „ adjusted to software modeling needs • Used to model event-driven (reactive) behavior „ well-suited to the server model inherent in the object paradigm • Primary use for modeling the behavior of active event-driven objects „ systems modeled as networks of collaborating state machines „ run-to-completion paradigm significantly simplifies concurrency management Behavioral Modeling with UML 115
  • 116. Wrap Up: Statecharts (cont’d) • Includes a number of sophisticated features that realize common state-machine usage patterns: „ entry/exit actions „ state activities „ dynamic and static conditional branching • Also, provides hierarchical modeling for dealing with very complex systems „ hierarchical states „ hierarchical transitions „ Orthogonality Behavioral Modeling with UML 116
  • 117. Behavioral Modeling • Part 1: Interactions and Collaborations • Part 2: Statecharts • Part 3: Activity Diagrams Conrad Bock, Intellicorp bock@intellicorp.com Behavioral Modeling with UML 117
  • 118. Activity Diagram Applications • Intended for applications that need control flow or object/data flow models … • ... rather than event-driven models like state machines. • For example: business process modeling and workflow. • The difference in the three models is how step in a process is initiated, especially with respect to how the step gets its inputs. Behavioral Modeling with UML 118
  • 119. Control Flow • Each step is taken when the previous one finishes … • …regardless of whether inputs are available, accurate, or complete (“pull”). • Emphasis is on order in which steps are taken. Start Weather Info Analyze Weather Info Analyze Weather Info Not UML Chart Course Chart Course Cancel Trip Notation! Cancel Trip Behavioral Modeling with UML 119
  • 120. Object/Data Flow • Each step is taken when all the required input objects/data are available … • … and only when all the inputs are available (“push”). • Emphasis is on objects flowing between steps. Design Product Design Product Acquire Capital Acquire Capital Procure Procure Materials Materials Build Build Build Build Subassembly 11 Subassembly 22 Subassembly Subassembly Not UML Final Final Assembly Assembly Notation Behavioral Modeling with UML 120
  • 121. State Machine • Each step is taken when events are detected by the machine … • … using inputs given by the event. • Emphasis is on reacting to environment. Ready To Start Ready To Start Coin Deposited Ready For Order Ready For Order Selection Cancel Button Made Pressed Dispense Return Return Dispense Change Product Product Change Not UML Notation Behavioral Modeling with UML 121
  • 122. Activity Diagrams Based on State Machines • Currently activity graphs are modeled as a kind of state machine. • Modeler doesn't normally need to be aware of this sleight-of-hand ... • ... but will notice that quot;statequot; is used in the element names. • Activity graphs will become independent of state machines in UML 2.0. Behavioral Modeling with UML 122
  • 123. Kinds of Steps in Activity Diagrams • Action (State) Action • Subactivity (State) Subactivity • Just like their state machine counterparts (simple state and submachine state) except that ... • ... transitions coming out of them are taken when the step is finished, rather than being triggered by a external event, ... • ... and they support dynamic concurrency. Behavioral Modeling with UML 123
  • 124. Action (State) Action • An action is used for anything that does not directly start another activity graph, like invoking an operation on an object, or running a user- specified action. • However, an action can invoke an operation that has another activity graph as a method (possible polymorphism). Behavioral Modeling with UML 124
  • 125. Subactivity (State) Subactivity • A subactivity (state) starts another activity graph without using an operation. • Used for functional decomposition, non- polymorphic applications, like many workflow systems. • The invoked activity graph can be used by many subactivity states. Behavioral Modeling with UML 125
  • 126. Example POEmployee.sortMail Deliver Mail Deliver Mail POEmployee sortMail() Check Out Put Mail Truck In Boxes Behavioral Modeling with UML 126
  • 127. Activity Graph as Method POEmployee.sortMail POEmployee.deliverMail POEmployee PO Employee Deliver Mail Method sortMail() «realize» deliverMail() Check Out Put Mail Truck In Boxes • Application is completely OO when all action states invoke operations, and all activity graphs are methods for operations. Behavioral Modeling with UML 127
  • 128. Dynamic concurrency Action/Subactivity * • Applies to actions and subactivities. • Not inherited from state machines. • Invokes an action or subactivity any number of times in parallel, as determined by an expression evaluated at runtime. Expression also determines arguments. • Upper right-hand corner shows a multiplicity restricting the number of parallel invocations. • Outgoing transition triggered when all invocations are done. • Currently no standard notation for concurrency expression or how arguments are accessed by actions. Attach a note as workaround for expression. Issue for UML 1.4. Behavioral Modeling with UML 128
  • 129. Object Flow (State) Class [State] • A special sort of step (state) that represents the availability of a particular kind of object, perhaps in a particular state. • No action or subactivity is invoked and control passes immediately to the next step (state). • Places constraints on input and output parameters of steps before and after it. Behavioral Modeling with UML 129
  • 130. Object Flow (State) Order Take Order Fill Order [Taken] • Take Order must have an output parameter giving an order, or one of its subtypes. • Fill Order must have an input parameter taking an order, or one of its supertypes. • Dashed lines used with object flow have the same semantics as any other state transition. Behavioral Modeling with UML 130
  • 131. Coordinating Steps • Inherited from state machines • Initial state • Final state • Fork and join Behavioral Modeling with UML 131
  • 132. Coordinating Steps • Decision point and merge ( ) are inherited from state machines. • For modeling conventional flow chart decisions. Calculate [cost < $50] Charge Cost Account [cost >= $50] Get Authorization Behavioral Modeling with UML 132
  • 133. Coordinating Steps • Synch state ( ) is inherited from state machines but used mostly in activity graphs. • Provides communication capability between parallel processes. State machine notation Put Build Install Frame On Walls Roof Install Inspect Foundation * * Install Install Install Electricity Electricity Electricity in Foundation In Frame Outside Behavioral Modeling with UML 133
  • 134. Convenience Features (Synch State) • Forks and joins do not require composite states. • Synch states may be omitted for the common case (unlimited bound and one incoming and outgoing transition). Activity diagram notation Put Build Install Frame On Walls Roof Install Inspect Foundation Install Install Install Electricity Electricity Electricity in Foundation In Frame Outside Behavioral Modeling with UML 134
  • 135. Convenience Features (Synch State) • Object flow states can be synch states A 11 A 12 A 13 O bj [S 2] A 21 A 22 A 23 Behavioral Modeling with UML 135
  • 136. Convenience Features • Fork transitions can have guards. Evaluate Revise [ priority = 1] Impact Plan Register Release Bug Fix Fix Test Bug Fix • Instead of doing this: [ priority = 1] Evaluate Revise Impact Plan Register Release [else] Bug Fix Fix Test Bug Fix Behavioral Modeling with UML 136
  • 137. Convenience Features • Partitions are a grouping mechanism. • Swimlanes are the notation for partitions. • They do not provide domain-specific semantics. • Tools can generate swimlane presentation from domain-specific information without partitions. Management Evaluate Revise Impact Plan [ priority = 1] Support Register Release Bug Fix Engineering Fix Test Bug Fix Behavioral Modeling with UML 137
  • 138. Convenience Features • Signal send icon Wake Up Signal • … translates to a transition Turn on Coffee Pot with a send action. Get Cups Coffee Pot • Signal receipt icon Signal Coffee Done • … translates to a wait state (an state with no action and a signal trigger event). Drink Coffee Behavioral Modeling with UML 138
  • 139. partition Submission Team Task Force Revision Task Force initial state action state control flow Begin fork of control Case Study Develop technology Issue RFP specification RFP [issued] conditional fork join of control Submit specification draft object flow Specification [optional] input value [initial proposal] Collaborate with competitive Communications of the ACM submitters Evaluate initial submissions Kobryn, “UML 2001” Finalize October 1999 Adapted from specification Specification [final proposal] Behavioral Modeling with UML 139
  • 140. Collaborate with competitive submitters Evaluate initial submissions Finalize specification Specification [final proposal] Case Study Evaluate final submissions Vote to recommend guard Specification [YES] [NO] [adopted] decision Revise specification Implement specification Communications of the ACM Specification [revised] Enhance Recommend specification revision Kobryn, “UML 2001” October 1999 Adapted from [else] [Enhanced] final state Behavioral Modeling with UML 140
  • 141. When to Use Activity Diagrams • Use activity diagrams when the behavior you are modeling ... „ does not depend much on external events. „ mostly has steps that run to completion, rather than being interrupted by events. „ requires object/data flow between steps. „ is being constructed at a stage when you are more concerned with which activities happen, rather than which objects are responsible for them (except partitions possibly). Behavioral Modeling with UML 141
  • 142. Activity Diagram Modeling Tips • Control flow and object flow are not separate. Both are modeled with state transitions. • Dashed object flow lines are also control flow. • You can mix state machine and control/object flow constructs on the same diagram (though you probably do not want to). Behavioral Modeling with UML 142
  • 143. Activity Diagram Modeling Tips From UML Customer Telesales Accounting Warehouse User Guide: Request Return Get Return Number Ship Item Receive Item Item [returned] Restock Item Credit Item Account [available] Behavioral Modeling with UML 143
  • 144. Customer Telesales Accounting Warehouse Request Return Get Return Number Ship Item Activity Modeling Tips Receive Item Item [returned] Restock Item Credit Account Item [available] Behavioral Modeling with UML 144
  • 145. Activity Diagram Modeling Tips • Activity diagrams inherit from state machines the requirement for well-structured nesting of composite states. • This means you should either model as if composite states were there by matching all forks/decisions with a correspond join/merges … • … or check that the diagram can be translated to one that is well-nested. • This insures that diagram is executable under state machine semantics. Behavioral Modeling with UML 145
  • 146. Activity Diagram Modeling Tips Well-nested: Behavioral Modeling with UML 146
  • 147. Activity Diagram Modeling Tips Not well-nested: Apply structured coding principles. (Be careful with goto’s!) Behavioral Modeling with UML 147
  • 148. Activity Diagram Modeling Tips Can be translated to well-nested diagram on earlier slide: Behavioral Modeling with UML 148
  • 149. Wrap Up: Activity Diagrams • Use Activity Diagrams for applications that are primarily control and data-driven, like business modeling … • … rather than event-driven applications like embedded systems. • Activity diagrams are a kind of state machine until UML 2.0 … • … so control and object/data flow do not have separate semantics. • UML 1.3 has new features for business modeling that increase power and convenience. Check it out and give feedback! Behavioral Modeling with UML 149
  • 150. Preview - Next Tutorial • Advanced Modeling with UML „ Model management „ Standard elements and profiles „ Object Constraint Language (OCL) Behavioral Modeling with UML 150
  • 151. Further Info • Web: „ OMG UML Resource Page „ www.omg.org/uml/ „ UML Tutorial 1 (OMG Document omg/99-11-04) „ www.omg.org/cgi-bin/doc?omg/99-11-04 „ UML Tutorial 2 (OMG Document number TBA) • Email „ Gunnar Övergaard: gunnaro@it.kth.se „ Bran Selic: bran@objectime.com „ Conrad Bock: bock@intellicorp.com • Conferences & workshops „ UML World 2000, NYC, March ‘00 „ UML ’00, York, England, Oct. ‘00 Behavioral Modeling with UML 151