State & Activity Diagram © copyright 2001 SNU OOPSLA Lab.

Slides:



Advertisements
Similar presentations
State Charts Mehran Najafi. Reactive Systems A reactive, event-driven, object is one whose behavior is best characterized by its response to events dispatched.
Advertisements

Nested state diagrams:Problems with flat state diagram
UML State chart/machine diagram State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
1 Chapter 4 Dynamic Modeling and Analysis (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
1 Chapter 4 Dynamic Modeling and Analysis (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis H.K. Tsang, Clarence.
Interaction Diagrams Activity Diagram State Machine Diagram
SE 555 Software Requirements & Specification 1 Activity Diagrams.
1 CS 691z/791z Topics in Software Engineering Chapter 13: Activity Diagrams & Chapter 19: Basic Statecharts [Arlow and Neustadt, 2002] March 8, 2007.
1 CS/CPE 426 Senior Projects Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 24, 2009.
THE OBJECT-ORIENTED DESIGN WORKFLOW Statechart Diagrams.
State Change Modelling. Aim: To introduce the concept and techniques for describing the changes in state that may occur to an object in its lifetime.
Advanced Behavioral Modeling
SE-565 Software System Requirements More UML Diagrams.
Software Engineering EKT 420. What is Activity Diagram Activity diagrams are graphical representations of workflows of stepwise activities and actions.
State and Sequence Diagrams Modelling dynamic information So far we have seen: Use Case Diagrams – requirements capture, interface.
Interaction Modeling. Sequence Models  There are two kinds of sequence models: scenarios and sequence diagrams  A scenario is a sequence of events that.
Behavioral Modeling Khalid Ishaq Behavioral Modeling with UML1 © OMG and Contributors: Crossmeta, EDS, IBM, Enea Data, Hewlett-Packard, IntelliCorp,
B EHAVIORAL M ODELING WITH UML Hoang Huu Hanh, PhD
Lecture 4 Finite State Machine CS6133 Software Specification and Verification.
Chapter 10 State Machine Diagrams
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
CS 325: Software Engineering March 3, 2015 Activity Modeling for Transformational Systems Trtansformational Systems UML Activity Diagrams.
מידול התנהגותי 1. Today’s Session Sequence Diagrams State Machines 2.
Use Case Diagrams. Use cases modeling Overview Motivation Communication between developers and users Users don’t know system, developers don’t know users’
Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,
1 CSC 450 Slides adapted from slides created by Robert B. France State Models.
1 ECE 355: Software Engineering CHAPTER 2 Unit 4 (Part 3) Presentation material based on past ECE 355 notes by Prof. K. Czarneszki.
Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,
Miguel Garzón, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher with material from: K.E. Wiegers, D. Leffingwell & D. Widrig, M. Jackson,
Activity diagrams. Introduction ● Activity diagrams are a behavioural model that represent the dynamics of the system. ● An activity diagram is essentially.
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
Information System Design IT60105
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour UML Sequence Diagram.
Software Engineering Design & Modeling Statechart Diagram.
UML Discussion on State Machines Perfectly static system is intensely uninteresting Because nothing ever happens.
UNIFIED MODELING LANGUAGE(UML) BY Touseef Tahir Lecturer CS COMSATS Institute of Information Technology, Lahore.
CSCI-383 Object-Oriented Programming & Design Lecture 12.
Chapter 11 Activity Diagrams. 2 “Activity diagrams are a technique to describe procedural logic, business processes, and work flows” - M. Fowler An activity.
Object Oriented Analysis & Design & UML (Unified Modeling Language)1 Part VI: Design Continuous Activity Diagams State Diagrams.
CS212: Object Oriented Analysis and Design Lecture 34: UML Activity and Collaboration diagram.
States.
CS3773 Software Engineering Lecture 06 UML State Machines.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 10: Statecharts.
Chapter 3: Introducing the UML
1 A Case Study in UML-RT: Three Architectural Design Patterns Bran Selic VP Advanced Technology ObjecTime Limited Kanata, Ontario, CANADA Rev.4.
Modeling Object Lifecycles and State-Dependent Behavior ©SoftMoore ConsultingSlide 1.
Miguel Garzón, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher with material from: K.E. Wiegers, D. Leffingwell & D. Widrig, M. Jackson,
State Modeling. Introduction A state model describes the sequences of operations that occur in response to external stimuli. As opposed to what the operations.
® IBM Software Group © 2009 IBM Corporation Module 11: Creating State Machine Diagrams Essentials of Modeling with IBM Rational Software Architect V7.5.
UML Chapter 17.
Behavioral Modeling with UML
Object-Oriented Analysis and Design
State Machine Model.
Marlon Dumas Institute of Computer Science
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Activity and State Transition Diagram
State Machine Diagrams
Business System Development
UML Activity Diagrams & State Charts
States.
CS/CPE 426 Senior Projects
BPMN - Business Process Modeling Notations
CS/CPE 426 Senior Projects
Marlon Dumas Institute of Computer Science
CHAPTER 2 Object-Oriented Modeling Using UML (Continued)
CS 791Z State Machines & Advanced State Machines
Appendix 3 Object-Oriented Analysis and Design
Behavioral Diagrams P. P. Mahale
Presentation transcript:

State & Activity Diagram © copyright 2001 SNU OOPSLA Lab.

Contents – Part1. State Diagram Basic State Machine Concepts Statecharts and Objects Advanced Modeling Concepts Case Study

Next slides are … Basic State Machine Concepts Statecharts and Objects Advanced Modeling Concepts Case Study

ONON 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 experienceONON ONON ONON OFFOFF

off on State Machine (Automaton) Diagram Graphical rendering of automata behavior Lamp On Lamp Off off on

Outputs and Actions As the automaton changes state it can generate outputs: on off Lamp On print(”on”) print(”on”) Lamp Off off on Moore automaton on off Lamp On Lamp Off off print(”on”) on/print(”on”) Mealy automaton

Extended State Machines Addition of variables ( “ extended state ” ) off on Lamp On Lamp Off off on/ctr := ctr + 1 ctr : Integer

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)

top Basic UML Statechart Diagram ReadyReady stop /ctr := 0stop StateState TriggerTrigger ActionAction InitialpseudostateInitialpseudostate TransitionTransition FinalstateFinalstate DoneDone “top” state

What Kind of Behavior? In general, state machines are suitable for describing event-driven, discrete behavior inappropriate for modeling continuous behavior time threshold

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

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

Next slides are … Basic State Machine Concepts Statecharts and Objects Advanced Modeling Concepts Case Study

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

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

What is a State A state diagram may have a starting point (solid circle) and several end points (bull ’ s eyes). A state is shown as a rounded rectangle. Each state has a name, optionally state variables (i.e., attributes of the state-owning class), and optionally activities. Standard events in the activity compartment include entry, exit, and do. Name State variables Activities

State Transition Transitions between states are shown as arrows. Fork and join using the synch. bar are allowed. A transition can be labeled with an event that causes it. When an event occurs, the transition from one state to another fires. If no event is specified, the transition will fire when internal actions of the source state are executed.

State Transition Syntax: event-name ( parameters ) [guard condition] / action expressions An event can be one of the following cases: A message is received from another object (or the object itself) A specified time has passed; e.g., after(2 seconds) There has been a change in some state; e.g., when(quantity < 10) When a guard condition is specified, the event must occur and the condition be true for the transition to fire. Action expressions are written in terms of operations and attributes of the owning class (the classifier) and/or with parameters of the event.

State Diagram

Object Behavior - General Model Simple server model: Handle Request Initialize Object Terminate Object void:offHook (); {busy = true; obj.reqDialtone(); … }; Handling depends on specific request type Handling depends on specific request type

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

Handle Request Initialize Object Terminate Object Wait for Request Handle Request Initialize Object Terminate Object Wait for Request Object and Threads Passive objects: depend on external power (thread of execution) Active objects: self-powered (own thread of execution)

Passive Objects: Dynamic Semantics Encapsulation does not protect the object from concurrency conflicts! Explicit synchronization is still required Handle Request Initialize Object Terminate Object Wait for Request

anActiveObject #currentEvent : Event + start ( ) + poll ( ) + stop ( ) Active Objects and State Machines Objects that encapsulate own thread of execution created ready start/^master.ready() poll/^master.ack() stop/ poll/defer ready created start start/^master.ready() ready

Active Objects: Dynamic Semantics Run-to-completion model: serialized event handling eliminates internal concurrency minimal context switching overhead ActiveObject:

Active1Active1Active2Active2 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 hi lo

Next slides are … Basic State Machine Concepts Statecharts and Objects Advanced Modeling Concepts Case Study

State Entry and Exit Actions A dynamic assertion mechanismLampOnLampOn entry/lamp.on(); exit/lamp.off();e1 e2

Resulting action sequence: printf(“exiting”); printf(“to off”); lamp.off(); Resulting action sequence: printf(“exiting”); printf(“to off”); lamp.off(); Order of Actions: Simple Case Exit actions prefix transition actions Entry action postfix transition actions printf(“exiting”);printf(“needless”);lamp.off();printf(“exiting”);printf(“needless”);lamp.off(); off/printf(“needless”); off/printf(“to off”); LampOffLampOff entry/lamp.off(); exit/printf(“exiting”);LampOnLampOnentry/lamp.on(); exit/printf(“exiting”);

Internal Transitions Self-transitions that bypass entry and exit actionsLampOffLampOffentry/lamp.off(); exit/printf(“exiting”); off/null; Internal transition triggered by an “off” event Internal transition triggered by an “off” event

ErrorError entry/printf(“error!”) State ( “ Do ” ) Activities Forks a concurrent thread that executes until: the action completes or the state is exited through an outgoing transition do/while (true) alarm.ring(); “do” activity

Guards Conditional execution of transitions guards (Boolean predicates) must be side-effect freeSellingSellingUnhappyUnhappy HappyHappy bid /sell bid [(value >= 100) & (value < 200)] /sell bid /sell bid [value >= 200] /sell bid /reject bid [value < 100] /reject

Static Conditional Branching Merely a graphical shortcut for convenient rendering of decision trees /sell [(value >= 100) & (value < 200)] /sell /sell [value >= 200] /sell /reject [value < 100] /rejectSellingSellingUnhappyUnhappy HappyHappy bid bid

bid /gain := calculatePotentialGain(value)SellingSellingUnhappyUnhappy HappyHappy Dynamic Conditional Branching Choice pseudostate: guards are evaluated at the instant when the decision point is reached /sell [(gain >= 100) & (gain < 200)] /sell /sell [gain >= 200] /sell /reject [gain < 100] /reject DynamicchoicepointDynamicchoicepoint

Hierarchical State Machines Graduated attack on complexity states decomposed into state machines LampFlashingLampFlashing flash/ 1sec/ FlashOffFlashOff entry/lamp.off()FlashOnFlashOnentry/lamp.on() off/ LampOffLampOffentry/lamp.off() LampOnLampOn entry/lamp.on() on/

“ Stub ” Notation Notational shortcut: no semantic significance LampFlashingLampFlashing flash/ on/ FlashOn FlashOff off/ LampOffLampOffentry/lamp.off() LampOnLampOn entry/lamp.on() on/ on/

LampFlashingLampFlashing 1sec/ FlashOffFlashOff entry/lamp.off()FlashOnFlashOnentry/lamp.on() off/ LampOffLampOffentry/lamp.off() LampOnLampOn entry/lamp.on() on/ Group Transitions Higher-level transitions flash/ on/ Default transition to the initial pseudostate Default transition to the initial pseudostate Group transition

Completion Transitions Triggered by a completion event generated automatically when an immediately nested state machine terminates CommittingCommitting Phase1Phase1 Phase2Phase2 CommitDoneCommitDone completion transition (no trigger) completion

LampFlashingLampFlashing off/ FlashOffFlashOff FlashOnFlashOn Triggering Rules Two or more transitions may have the same event trigger innermost transition takes precedence event is discarded whether or not it triggers a transition on/

Deferred Events Events can be retained if they do not trigger a transition off/ LampOnLampOn entry/lamp.on() on/ LampOffLampOff entry/lamp.off() off/defer Deferred event

Order of Actions: Complex Case Same approach as for the simple case S1exit/exS1S1exit/exS1 S11exit/exS11S11exit/exS11 S2entry/enS2S2entry/enS2 S21entry/enS21S21entry/enS21 initS2 E/actE Actions execution sequence: exS11  exS1  actE  enS2  initS2  enS21

suspend/ History Return to a previously visited hierarchical state deep and shallow history options DiagnosingDiagnosing Diagnostic1Diagnostic1Step11Step11Step12Step12 Diagnostic2Diagnostic2Step21Step21Step22Step22 resume/H*H*

Orthogonality Multiple simultaneous perspectives on the same entity Child Adult Retiree age Poor Rich financialStatus

Orthogonal Regions Combine multiple simultaneous descriptions Child Adult Retiree age Poor Rich financialStatus Poor RichfinancialStatusChild Adult Retireeage

OutlawOutlaw LawAbidingLawAbidingPoorPoor RichRich financialStatuslegalStatus Orthogonal Regions - Semantics All mutually orthogonal regions detect the same events and respond to them “ simultaneously ” usually reduces to interleaving of some kind robBank/robBank/

Catch22Catch22sanityStatusflightStatus Interactions Between Regions Typically through shared variables or awareness of other regions ’ state changes (flying)/ Crazy entry/sane := false; Crazy Sane entry/sane := true; Sane requestGrounding/Flying entry/flying := true; Flying Grounded entry/flying := false; Grounded (sane)/ (~sane)/ sane : Boolean flying : Boolean

Transition Forks and Joins For transitions into/out of orthogonal regions: StaffMemberStaffMember employee ChildChildAdultAdultRetireeRetiree age ManagerManager

Common Misuse of Orthogonality Using regions to model independent objects Child Adult Retiree Child Adult Retiree Person1Person2 Person1Person2

Next slides are … Basic State Machine Concepts Statecharts and Objects Advanced Modeling Concepts Case Study

line card 1 line card N End user unreliable telecom lines Case Study: Protocol Handler A multi-line packet switch that uses the alternating-bit protocol as its link protocol SWITCH AB sender AB receiver End user AB sender AB receiver AB protocol

packetizerunpacker ReceiverSender Alternating Bit Protocol (1) A simple one-way point-to-point packet protocol data(1) ackA pktA data(1) ack data(2) ackB pktB data(2) ack …etc. AB protocol

Alternating Bit Protocol (2) State machine specification ackB/^ack data/^pktA ackA/^ackdata/^pktB timeout/^pktB timeout/^pktA Sender SM AcceptPktA WaitAckA AcceptPktB WaitAckB pktA/^data ack/^ackA pktB/^data ack/^ackB timeout/^ackB timeout/^ackA RcvdPktA WaitPktB RcvdPktB WaitPktA Receiver SM

Additional Considerations Support (control) infrastructure SWITCH AB receiver ABsender operator interface DBinterface System operator DBase AB lines manager

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

Retrofitting Control Behavior AcceptPktA WaitAckA AcceptPktB WaitAckB Failed JustCreated Hardware Audit GettingData ReadyToGo Analysing Failure

The Control Automaton In isolation, the same control behavior appears much simpler Failed JustCreated Hardware Audit GettingData ReadyToGo Analysing Failure Operational

Exploiting Inheritance Abstract control classes can capture the common control behavior AbstractController SenderReceiver...

Failed JustCreated Hardware Audit GettingData ReadyToGo Analysing Failure Operational Exploiting Hierarchical States AbstractController Sender

Activity Diagrams

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.

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. Not UML Notation! Chart Course Cancel Trip Analyze Weather Info Weather Info Start

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 Procure Materials Procure Materials Acquire Capital Build Subassembly 1 Build Subassembly 1 Build Subassembly 2 Build Subassembly 2 Final Assembly Final Assembly Not UML Notation

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 Coin Deposited Ready For Order Selection Made Dispense Product Dispense Product Return Change Return Change Cancel Button Pressed Not UML Notation

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 "state" is used in the element names. Activity graphs will become independent of state machines in UML 2.0. Activity Diagrams Based on State Machines

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. Action Action (State) Subactivity Subactivity (State) Kinds of Steps in Activity Diagrams

Action (State) 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). Action

Subactivity (State) 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. Subactivity

Example POEmployee.sortMail Deliver Mail POEmployee sortMail() Check Out Truck Put Mail In Boxes Deliver Mail

POEmployee sortMail() Activity Graph as Method Application is completely OO when all action states invoke operations All activity graphs are methods for operations. POEmployee.sortMail POEmployee.deliverMail deliverMail() «realize» Check Out Truck Put Mail In Boxes PO Employee Deliver Mail Method

Dynamic concurrency 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 2.0. Action/Subactivity *

Object Flow (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. Class [State]

Object Flow (State) 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. Order [Taken] Take OrderFill Order

Coordinating Steps Initial state Final state Fork and join Inherited from state machines

Decision point and merge ( ) are inherited from state machines. For modeling conventional flow chart decisions. Coordinating Steps Calculate Cost Charge Account Get Authorization [cost < $50] [cost >= $50]

Synch state ( ) is inherited from state machines but used mostly in activity graphs. Provides communication capability between parallel processes. Coordinating Steps State machine notation Inspect Install Foundation Build Frame Install Electricity in Foundation Put On Roof Install Electricity In Frame Install Electricity Outside Install Walls **

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). Build Frame Install Foundation Install Electricity in Foundation Put On Roof Install Electricity In Frame Install Electricity Outside Install Walls Inspect Activity diagram notation Convenience Features (Synch State)

Object flow states can be synch states Convenience Features (Synch State)

Convenience Features Fork transitions can have guards. Register Bug Evaluate Impact Fix Bug Revise Plan Release Fix Test Fix [ priority = 1] Register Bug Evaluate Impact Fix Bug Revise Plan Release Fix Test Fix [ priority = 1] [else] Instead of doing this:

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. Register Bug Evaluate Impact Fix Bug Revise Plan Release Fix Test Fix [ priority = 1] Management Support Engineering

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

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).

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).

Activity Diagram Modeling Tips From UML User Guide:

Activity Modeling Tips

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.

Activity Diagram Modeling Tips Well-nested:

Not well-nested: Activity Diagram Modeling Tips Apply structured coding principles. (Be careful with goto’s!)

Activity Diagram Modeling Tips Can be translated to well-nested diagram on earlier slide:

Example : Login of an online banking system

Activity diagram withdraw money (ATM)

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!