swe © solomon seifu 2010 1 models communication use caseactivity objectdeployment statesequence...
TRANSCRIPT
![Page 1: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/1.jpg)
SWE © Solomon Seifu 2010 1
Models
CommunicationUse case Activity
ObjectDeployment
State Sequence
ComponentClass Package
Behavior diagram
Interaction Timing
Interaction diagrams
Structure diagram
Lesson 3-2Behavior, Interaction & Structure
Diagrams
![Page 2: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/2.jpg)
SWE © Solomon Seifu 2010 2
SWE: UML - Sequence Diagram
A sequence diagram is a time-oriented view of the interaction between objects to accomplish a behavioral goal of the system
An interaction may be modeled at any level of abstraction within the system design, from subsystem interactions to instance-level interaction for a single operation or activity
![Page 3: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/3.jpg)
SWE © Solomon Seifu 2010 3
SWE: UML - Sequence Diagram (Cont.)
myA:A myB:B
doXdoA(param: val)
doB (myA)
A found message whose sender will not be specified
Lifeline
Execution specification. Bar indicates
focus of control.
doC
Typical synchronous message shown with a filled-arrow line
Participant
![Page 4: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/4.jpg)
SWE © Solomon Seifu 2010 4
SWE: UML - Sequence Diagram (Illustrating Reply Returns)
:A myB:B
doOneaDate = getDate
getDate
aDate
There are two ways to show the return result from a message: Using the message
syntax returnVar = message(parameter)
Using a reply (or return) message line at the end of an activation bar
![Page 5: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/5.jpg)
SWE © Solomon Seifu 2010 5
SWE: UML - Sequence Diagram (Message to “self” or “this”)
:A
doX
doY
You can show a message being sent from an object to itself by using a nested activation bar
Another activation bar superimposed
on the previous activation bar
![Page 6: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/6.jpg)
SWE © Solomon Seifu 2010 6
SWE: UML - Sequence Diagram (Creation of Instances)
Object creation notation is shown in the figure. Note the UML-mandated dashed line
The arrow is filled if it's a regular synchronous message (such as implying invoking a Java constructor), or open (stick arrow) if an asynchronous call
myA:A myB:B
doXdoY
doZ
myC:Cnew
Note that newly created objects are
placed at their creation “height”.
Creation
![Page 7: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/7.jpg)
SWE © Solomon Seifu 2010 7
SWE: UML - Sequence Diagram (Object Lifelines & Object Destruction)
In some circumstances it is desirable to show explicit destruction of an object
For example, when using C++ which does not have automatic garbage collection, or when you want to especially indicate an object is no longer usable (such as a closed database connection)
myA:A
myB:B
doXNew
…
<<destroys>>
The <<destroys>> stereotype message, with
the large X and short lifeline indicates explicit object
destruction
![Page 8: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/8.jpg)
SWE © Solomon Seifu 2010 8
SWE: UML - Sequence Diagram (Equivalent Java Code)
:A myB:B
doOnedoTwo
doThree
public class A { private B myB = new
B(); public void doOne() { myB.doTwo();
myB.doThree(); } // … }
![Page 9: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/9.jpg)
SWE © Solomon Seifu 2010 9
SWE: UML - Sequence Diagram (When to Use?)
You should use sequence diagrams when you want to look at the behavior of several objects within a single use case
Sequence diagrams are good at showing collaborations (communication) among the objects; they are not so good at precise definition of the behavior
Sequence diagrams are better when you want to emphasize the sequence of calls
![Page 10: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/10.jpg)
SWE © Solomon Seifu 2010 10
Sequence Diagram Exercise
![Page 11: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/11.jpg)
SWE © Solomon Seifu 2010 11
Sequence Diagram ExerciseAnswer
![Page 12: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/12.jpg)
SWE © Solomon Seifu 2010 12
Communication Diagram
![Page 13: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/13.jpg)
SWE © Solomon Seifu 2010 13
SWE: UML - Communication Diagram
Communication diagrams illustrate object interactions in a graph or network format, in which objects can be placed anywhere on the diagram (the essence of their wall sketching advantage), as shown in figure
myA:A
myB:B
1: doOne
1.1: doTwo
1.2: doThree
![Page 14: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/14.jpg)
SWE © Solomon Seifu 2010 14
SWE: UML - Communication Diagram
(Cont.) A link is a connection path
between two objects; it indicates that some form of navigation and visibility between the objects is possible
More formally, a link is an instance of an association. For example, there is a link or path of navigation from a myA to a myB, along which messages may flow, such as the msg2, msg3 & msg4
myA:A
myB:B
1: msg1
1.1: msg2
1.2: msg3Link line
1.2.1: msg4
![Page 15: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/15.jpg)
15
SWE: UML - Communication Diagram (Message to “self” or “this”)
A message can be sent from an object to itself as shown in the figure
This is illustrated by a link to itself, with messages flowing along the link
myA:A
1: msg1
2: doX
![Page 16: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/16.jpg)
SWE © Solomon Seifu 2010 16
SWE: UML - Creation of Instances
Any message can be used to create an instance, but the convention in the UML is to use a message named create for this purpose (some use new)
If another (less obvious) message name is used, the message may be annotated with a UML stereotype, like so: «create»
The create message may include parameters, indicating the passing of initial values. This indicates, for example, a constructor call with parameters in Java
![Page 17: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/17.jpg)
SWE © Solomon Seifu 2010 17
SWE: UML - Creation of Instances
(Cont.)
:A :B
:A :B
1: create(param)
<<create>>1: make(param)
Create message, with optional initializing parameters. This will
normally be interpreted as a constructor call
If an unobvious creation message is used, the message may be stereotyped for clarity.
![Page 18: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/18.jpg)
SWE © Solomon Seifu 2010 18
SWE: UML - Communication Diagram (When to Use?)
Communication diagrams are better when you want to emphasize the links and the messages exchanged between objects without concern to the actual sequence in time
Many people find that communication diagrams are easier to alter on a whiteboard, so they are a good approach for exploring alternatives
![Page 19: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/19.jpg)
SWE © Solomon Seifu 2010 19
Communication Diagram Exercise
![Page 20: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/20.jpg)
SWE © Solomon Seifu 2010 20
Communication Diagram Exercise Answer
![Page 21: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/21.jpg)
SWE © Solomon Seifu 2010 21
State Diagram
![Page 22: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/22.jpg)
SWE © Solomon Seifu 2010 22
SWE: UML - State Machine Diagram
State machine diagrams are a familiar technique to describe the behavior of a system
Draw a state machine diagram for a single class to show the lifetime behavior of a single object
![Page 23: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/23.jpg)
SWE © Solomon Seifu 2010 23
SWE: UML - State Machine Diagram (Notations)
• A state S
• The start state S
• A transitionS1
S2
State name
e
Event name
S or
Sor
![Page 24: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/24.jpg)
SWE © Solomon Seifu 2010 24
SWE: UML - State Machine Diagram (Transitions )
Name(parameters)[guards]{events/actions}Name – the name of eventParameters – parameters to the eventGuards – conditions that are true/falseEvents – cause transition to occur i.e. self
transition or external transitionActions – task to be executed on transition
![Page 25: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/25.jpg)
SWE © Solomon Seifu 2010 25
SWE:UML - State Machine Diagram (Transitions Guards)
A guard is some conditions that must be met for the transition to be taken
Guards can be: Variable range specification Some other constraint (pre-conditional
invariant) must be met Boolean condition
![Page 26: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/26.jpg)
SWE © Solomon Seifu 2010 26
SWE: UML - State Machine Diagram (Event, Transition & Activity)
S1
entry / g(x), h(y)
exit / m(a), n(b,y,z)
do / act(a,y,z)
S2
T1(int r)[r < 0]/f( r )
T2[IN(READY)]/g( )
Event Name
Event Parameter
Guard
Actionactivities
![Page 27: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/27.jpg)
SWE © Solomon Seifu 2010 27
SWE: UML - State Machine Diagram (Handling Transitions)
If an object is in a state S that responds to a named event E, it will act on it i.e. It transitions to the specified state if
The event triggers a named transition and The guard on the transition (if any) evaluates to TRUE Includes executing transition actions and propagating
specified events
Handle the event without changing state if the event triggers a named reaction Includes executing action list associated with reaction
![Page 28: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/28.jpg)
SWE © Solomon Seifu 2010 28
SWE: UML - State Machine Diagram
(Handling Transitions) (Cont.)
Events are quietly discarded if A transition is triggered but the transition’s
guard evaluates to FALSEThe event does not explicitly trigger a
transition, reaction, or deferment
![Page 29: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/29.jpg)
SWE © Solomon Seifu 2010 29
SWE: UML - State Machine Diagram (Actions)
Several types of actions can be defined depending on the conditions and moment they are performed: Entry Action – An action done when the state
machine enters a state Exit Action – An action done when the state
machine leaves the state Transition Action – An action performed during
the state change (neither an entry nor an exit action). It is transition dependent
![Page 30: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/30.jpg)
SWE © Solomon Seifu 2010 30
SWE: UML - State Machine Diagram
(Actions) (Cont.) Actions run to completion
Normally actions take an insignificant amount of time to perform i.e., they are instantaneous
They may be interrupted by another thread execution, but that object will complete its action list before doing anything else
Actions are implemented via An object’s operations Externally available functions Simple statements (e.g. “X += c * sqrt (d) ”)
![Page 31: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/31.jpg)
SWE © Solomon Seifu 2010 31
SWE: UML - State Machine Diagram (Action Order of Execution)
1. First, exit actions of current state
2. Next, transition actions
3. Last, entry actions of next state
![Page 32: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/32.jpg)
SWE © Solomon Seifu 2010 32
SWE: UML - State Machine Diagram (Activities)
Activities are behaviors that are executed as long as an object is in the state
Activities are not run-to-completion They may be interrupted by an incoming event
Indicated using “Do / <activity-list>” “Throughout / <activity-list>”
Examples Summing values
![Page 33: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/33.jpg)
SWE © Solomon Seifu 2010 33
SWE: UML - State Machine Diagram (What to Do on Entry & Exit?)
Entry actions are often used to perform setup needed within a state. Because an entry action cannot be evaded, any actions that occur inside the state can assume that the setup has occurred, regardless of how the state is entered
An exit action is used to perform clean up. The exit action can clean up such cases so that the state of the object remains consistent
![Page 34: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/34.jpg)
SWE © Solomon Seifu 2010 34
SWE: UML - State Machine Diagram (State Transition Table for One State)
State Entry action
Exit action
Next_State1
Next_State2
Transition_Condition1
Transition_Condition2
Entry_Action2
Entry_Action1
Exit_Action1
Exit_Action2
A state transition diagram displays the states and transitions, but the details are hidden (e.g. Actions)
State transition diagram needs to be supported by state transition table that contains full specification of states
![Page 35: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/35.jpg)
SWE © Solomon Seifu 2010 35
SWE: UML - State Machine Diagrams
(Cont.)
State A
State B
State C
Initial pseudostate
Transition
Final state
State
![Page 36: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/36.jpg)
SWE © Solomon Seifu 2010 36
SWE: UML - State Machine Diagram (When to Use?)
State diagrams are good at describing the behavior of an object across several use cases
State diagrams are not very good at describing behavior that involves a number of objects collaborating
![Page 37: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/37.jpg)
SWE © Solomon Seifu 2010 37
State Diagram Exercise
![Page 38: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/38.jpg)
SWE © Solomon Seifu 2010 38
State Diagram Exercise Answer
![Page 39: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/39.jpg)
SWE © Solomon Seifu 2010 39
Activity Diagram
![Page 40: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/40.jpg)
SWE © Solomon Seifu 2010 40
SWE: UML - Activity Diagram
Activity diagrams are a technique to describe procedural logic, business process, and work flow
In many ways, they play a role similar to flowcharts, but the principal difference between them and flowchart notation is that they support parallel behavior
![Page 41: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/41.jpg)
SWE © Solomon Seifu 2010 41
SWE: UML - Activity Diagram (Cont.)
Activity diagrams describe the workflow behavior of the system
Activity diagrams can show activities that are conditional or parallel
Activity1
Activity2 Activity3
Activity4 Activity5
Activity6
branch
merge
fork
Join
Start
End
![Page 42: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/42.jpg)
SWE © Solomon Seifu 2010 42
SWE: UML - Activity Diagram (When to Use?)
The great strength of activity diagrams lies in the fact that they support and encourage parallel behavior
This makes them a great tool for work flow and process modeling
![Page 43: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/43.jpg)
SWE © Solomon Seifu 2010 43
Activity Diagram Exercise
![Page 44: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/44.jpg)
SWE © Solomon Seifu 2010 44
Activity Diagram Exercise Answers
![Page 45: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/45.jpg)
SWE © Solomon Seifu 2010 45
Interaction Overview Diagram
![Page 46: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/46.jpg)
SWE © Solomon Seifu 2010 46
SWE: UML - Interaction Overview Diagram
Interaction overview diagrams are a grafting together of activity diagrams and sequence diagrams
UML 2.0 offers the Interaction Overview diagram as a means to combine the flow of control from an Activity diagram with the messaging specification from the Sequence diagram
![Page 47: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/47.jpg)
SWE © Solomon Seifu 2010 47
SWE: UML - Interaction Overview Diagram (Cont.)
You can think of interaction overview diagrams either as activity diagrams in which the activities are replaced by little sequence diagrams, or as a sequence diagram broken up with activity diagram notation used to show control flow. Either way, they make a bit of an odd mixture
![Page 48: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/48.jpg)
SWE © Solomon Seifu 2010 48
SWE: UML - Interaction Overview Diagram (Cont.)
Activity1
fork
Start
:A :B
merge
:C :D
![Page 49: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/49.jpg)
SWE © Solomon Seifu 2010 49
SWE: UML - Interaction Overview Diagram (When to Use?)
These are new for UML 2, and it's too early to get much sense of how well they will work out in practice. Fowler says “I'm not keen on them, as I think that they mix two styles that don't really mix that well.”
Either draw an activity diagram or use a sequence diagram, depending on what better serves your purpose
![Page 50: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/50.jpg)
SWE © Solomon Seifu 2010 50
Component Diagram
![Page 51: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/51.jpg)
SWE © Solomon Seifu 2010 51
SWE: UML - Component Diagram
The Component diagram represents pieces of software in the implementation environment
Component diagram models the implementation view. For example: An Order class could be generated as an EJB
component An OrderEntry class could be generated as an HTML
page. You can also use components to represent source
code, XML, ASP, or virtually any piece of software
![Page 52: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/52.jpg)
52
SWE: UML - Component Diagram
(Cont.) Components represent pieces that
are independently purchasable and upgradeable
Component diagram uses dependencies in the same manner that the Package diagram uses them
The successful operation of one component depends on its ability to communicate with the other component
Widget
![Page 53: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/53.jpg)
SWE © Solomon Seifu 2010 53
SWE: UML - Component Diagram
(Cont.)
Wireless Web
Browser
TraditionalWeb
Browser
JSF WithHTML
Contents ASP.NET With
HTMLContents
![Page 54: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/54.jpg)
SWE © Solomon Seifu 2010 54
SWE: UML - Component Diagram (When to Use?)
Use component diagrams when you are dividing your system into components and want to show their interrelationships through interfaces or the breakdown of components into a lower-level structure
Use component diagrams as an architecture-level artifact, either to model the business software architecture, the technical software architecture
![Page 55: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/55.jpg)
SWE © Solomon Seifu 2010 55
Deployment Diagram
![Page 56: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/56.jpg)
SWE © Solomon Seifu 2010 56
SWE: UML - Deployment Diagram
Deployment diagrams show a system's physical layout, revealing which pieces of software run on what pieces of hardware
Each node on a Deployment diagram typically represents one type of hardware, such as a disk drive, a client PC, a server, or a processor
A node may also represent a human being or organizational unit, or more precisely, the function that a person can perform
![Page 57: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/57.jpg)
SWE © Solomon Seifu 2010 57
SWE: UML - Deployment Diagram
(Cont.)
DatabaseServer
WirelessClient
MiddlewareServer
TraditionalClient
1..* 0..*1
0..*
1
0..*
The figure depicts a deployment diagram with four nodes:
- A database server, - A middleware server, and - two types of client devices
![Page 58: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/58.jpg)
SWE © Solomon Seifu 2010 58
SWE: UML - Deployment Diagram (When to Use?)
Use deployment diagram to show what is deployed where
If you have only one node, then there is no need to draw a deployment diagram
![Page 59: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/59.jpg)
SWE © Solomon Seifu 2010 59
Package Diagram
![Page 60: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/60.jpg)
SWE © Solomon Seifu 2010 60
SWE: UML - Package Diagram
UML package diagrams are often used to illustrate the logical architecture of a system; the layers, subsystems, packages (in the Java sense), etc.
A layer can be modeled as a UML package; for example, the presentation layer can be modeled as a package named UI
![Page 61: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/61.jpg)
SWE © Solomon Seifu 2010 61
SWE: UML - Package Diagram (Cont.)
A UML package diagram provides a way to group elements. A UML package can group anything: classes, other packages, use cases, and so on
A UML package is a more general concept than simply a Java package or .NET namespace, though a UML package can represent those and more
Nesting packages is very common
![Page 62: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/62.jpg)
SWE © Solomon Seifu 2010 62
SWE: UML - Package Diagram (Cont.) Each package represents a namespace, which means
that every class must have a unique name within its owning package
If one wants to create a class called Date, and a Date class is already in the System package, one can have a Date class as long as it is in a separate package (e.g. MyDate package). To make it clear which is which, one can use a fully qualified name, that is, a name that shows the owning package structure
You use double colons to show package names in UML, so the dates might be System::Date and MyDate::Util::Date.
![Page 63: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/63.jpg)
63
SWE: UML - Package Diagram (Cont.)
In diagrams, packages are shown with a tabbed folder, as shown in the figure
You can simply show the package name or show the contents too
At any point, you can use fully qualified names or simply regular names
utilDate
util
java
Date
util
Date
java::util
![Page 64: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/64.jpg)
SWE © Solomon Seifu 2010 64
SWE: UML - Packages & Dependencies
It is common to want to show dependency (a coupling) between packages so that developers can see the large-scale coupling in the system
The UML dependency line is used for this; a dashed arrowed line with the arrow pointing towards the depended-on package
![Page 65: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/65.jpg)
SWE © Solomon Seifu 2010 65
SWE: UML - Packages & Dependencies
(Cont.)
A B
C D
A depends on B and C.
B & C depend on
D
![Page 66: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/66.jpg)
SWE © Solomon Seifu 2010 66
SWE: UML - Package Diagram (When to Use?)
Package diagrams are extremely useful on larger-scale systems to get a picture of the dependencies between major elements of a system. These diagrams correspond well to common programming structures
Plotting diagrams of packages and dependencies helps you keep an application's dependencies under control
![Page 67: SWE © Solomon Seifu 2010 1 Models Communication Use caseActivity ObjectDeployment StateSequence Component Class Package Behavior diagram InteractionTiming](https://reader035.vdocument.in/reader035/viewer/2022070400/56649f135503460f94c2726b/html5/thumbnails/67.jpg)
SWE © Solomon Seifu 2010 67
SWE: UML - Timing Diagram
Timing diagrams are another form of interaction diagram, where the focus is on timing constraints: either for a single object or, more usefully, for a bunch of objects
Timing diagrams are mainly used in diagramming hardware events
Object A
Object B
On Off
State Change
OnOff Off
State Change State