essentials of interaction diagrams lecture 23 & 24

39
Essentials of interaction diagrams Lecture 23 & 24

Post on 21-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Essentials of interaction diagrams Lecture 23 & 24

Essentials of interaction diagrams

Lecture 23 & 24

Page 2: Essentials of interaction diagrams Lecture 23 & 24

2

Outline

• Collaborations• Interaction on collaboration diagrams• Sequence diagrams• Messages from an object to itself• Suppressing detailed behaviour • Creation and deletion of objects• Timing

Page 3: Essentials of interaction diagrams Lecture 23 & 24

3

Important UML models• We have now seen the two most important

UML models:– The use case model, which describes the tasks

which the system must help to perform– The class model, which describes the classes

which are intended to achieve this and relationship between them

• UML’s interaction diagrams allow us to record in detail how objects interact to perform a task

Page 4: Essentials of interaction diagrams Lecture 23 & 24

4

• Use case diagrams show the interaction of users of the system with the functionality of the system.

• A use case is a functional component of the system that accomplishes a specific task, and is represented by an ellipse.

• An actor, depicted as a stickman figure, is a user of the system performing a specific role.

• Use case diagrams are used early in the development process to refine the functional specifications, identify user interface requirements, and to define the scope of the project.

Actor

UseCase

Use Case Diagrams

Page 5: Essentials of interaction diagrams Lecture 23 & 24

5

Use Case Diagram Example

On-line Registration System

Student

viewCourseSchedule

makeClassSelection

courseAvailability

checkConflicts

verifyPrereqs

«uses»

«uses»

«uses»

confirmEnrollment

Registrar

Actor

UseCase

Page 6: Essentials of interaction diagrams Lecture 23 & 24

6

Class Diagrams• A Class diagram shows the static structure of the system.

• It defines model elements such as classes, interfaces, and user-defined data types, their internal structure, and their relationships to each other.

• Relationships, or associations, are shown as lines connecting elements, and are annotated to describe the relationships and their cardinality (1..1, 1..*, 0..*, etc.).

• Inheritance (generalize/specialize), aggregation (comprises), and composition (has) relationships are also captured in this diagram.

• Class attributes and their data types are identified here, as are the operations and their return types.

• Visibility is indicated by +, #, or - for public, protected, or private.

• The class diagram plays a vital role in the transition from design to construction as it contains sufficient detail to begin the coding process.

• It is often used to partition responsibilities among the project team members, and to guide and measure the construction process.

Page 7: Essentials of interaction diagrams Lecture 23 & 24

7

Class Diagram Example

+Person()+setName() : void+setSsn() : void+setDob() : void+setSpouse() : void+setChildren() : Set+getName() : String+getSsn() : String+getDob() : Date+getSpouse() : Person+getChildren() : Set+getAge() : int

#name : String#ssn : String#dob : Date#spouse : Person#children : Set

Person+setMajor() : void+setClassStanding() : void+computeGpa() : void

-major : String-classStanding : String-gpa : float

Student

+Professor()+setRank() : void+setTenureDate() : void+setDepartment() : void+getRank() : String+getTenureDate() : Date+getDepartment() : String

-rank : String-tenureDate : Date-department : String

Professor

+CourseOffering()+setSectionNo() : void+setCourse() : void+setInstructor() : void+setSchedule() : void+setLocation() : void+setMaxEnrollment() : void+get...()+calcAvailable() : int

-sectionNo : int-course : Course-instructor : Professor-schedule : String-location : String-maxEnrollment : int-enrollment : int-prerequisites : Set

CourseOffering

-teaches0..*

-is taught by

1..1

-is taken by

0..*

-takes

0..*«extends»

«extends»

Page 8: Essentials of interaction diagrams Lecture 23 & 24

8

Collaborations• UML provides two sorts of interaction diagram,

– sequence and – collaboration diagrams.

• Collectively, the objects which interact to perform some task, together with the links between them, are known as a collaboration– Objects

• Each object is shown as rectangle, which is labelled objectName: className

– Links• Links between objects are shown like associations in the class

model.

– Actors• Actors can be shown as on a use case diagram

Page 9: Essentials of interaction diagrams Lecture 23 & 24

9

A simple collaboration, showing no interaction

• A collaboration, without any interaction shown, is rather like an instance of part of the class model. It shows objects, links and actors

Page 10: Essentials of interaction diagrams Lecture 23 & 24

10

Interaction on collaboration diagrams

• Each labelled arrow represents a message sent from the object at the tail of the arrow to the object at the point of the arrow.

• Furthermore, the target object must understand the message• That is, the class of the object at the point of the arrow must

provide the appropriate operation

Page 11: Essentials of interaction diagrams Lecture 23 & 24

11

Sequence diagrams• A sequence diagram shows the objects and

actor which take part in a collaboration at the top of dashed lines.

• Sequence diagrams are applicable to modeling real-time interactive systems or complex scenarios.

StudentRecord StudentScheduleEnrollment courseOffering

StudentId

create studentSchedule

verifyPrerequisites

display studentSchedule

selectCourse

addCourse

prereqs met

prereqs not met

password verified

prerequisites

deny enrollment

getPrerequisites

checkEnrollment

space available

Student

prompt for password

password

display studentSchedule

select another course?

Course Enrollment

Page 12: Essentials of interaction diagrams Lecture 23 & 24

12

Interaction shown on a sequence diagram

Page 13: Essentials of interaction diagrams Lecture 23 & 24

13

• The vertical dimension of a sequence diagram represents time

• The horizontal dimension represents the different objects or roles that participate in the interactive sequence.

• An object’s lifeline is shown as a narrow vertical bar.

Page 14: Essentials of interaction diagrams Lecture 23 & 24

14

• Time is assumed to pass as we move from top to bottom of the diagram.• Messages between objects are shown as solid line arrows, and their

returns are shown as dashed line arrows.

Page 15: Essentials of interaction diagrams Lecture 23 & 24

15

• List all the pairs of classes that can communicate directly with each other.

• For each class, list all the methods that need to be included, based on this sequence diagram

resourcemanager

Res. Mgr. Win: UI :Worker :Skill :SkillLevel

find worker

find skill

assign skillto worker

find workerby name

find skill by name

[worker does not currently have skill]assign skill to worker

Homework

Page 16: Essentials of interaction diagrams Lecture 23 & 24

16

Messages from an object to itself• An object may, and frequently does, send a message

to itself• On a collaboration diagram you show a link from the

object to itself, and messages pass along that link in the usual way

• On a sequence diagram, you show a message arrow from the object’s lifeline back to itself.

• In pure object oriented programming, – every function invocation is the result of a message, and – objects may send messages to themselves so often that an

interaction diagram becomes cluttered

• You might choose to omit messages from an object to itself, counting such things as internal computation within the object.

Page 17: Essentials of interaction diagrams Lecture 23 & 24

17

Suppressing detailed behaviour

• It is often sensible to describe interaction at a higher level, rather than showing every message between every pair of objects.

• To do this we define a (full) sub-collaboration of a collaboration– Collaboration is a collection of objects and links

between them– Sub-collaboration is a subset of the objects,

together with the links connecting those objects.

Page 18: Essentials of interaction diagrams Lecture 23 & 24

18

Using a package to simplify a collaboration

Page 19: Essentials of interaction diagrams Lecture 23 & 24

19

Creation and deletion of objects

• The set of objects involved in an interaction is not always static; objects may be created and deleted during an interaction.

• Collaboration diagram– These show which objects are created and destroyed during

an interaction by adding the constraints {new} {destroyed}. – If the object is both created and destroyed in the same

interaction, it can be labelled {transit}

• Sequence diagram – These show an object being created by putting its object box

part-way down the page, at the point it is created– Destruction of an object is shown by its activation ending

with a large X.

Page 20: Essentials of interaction diagrams Lecture 23 & 24

20

Collaboration diagram

Page 21: Essentials of interaction diagrams Lecture 23 & 24

21

Sequence diagram

Page 22: Essentials of interaction diagrams Lecture 23 & 24

22

Timing• The major advantage of sequence diagrams

over collaboration diagrams is their ability to represent the passage of time graphically.

• So far we have let the diagram indicate only the relative ordering messages.

• Sometimes, however, the actual times are important.

• A system in which actual times are important is called a real-time systems.

Page 23: Essentials of interaction diagrams Lecture 23 & 24

23

Showing timing constraints on a sequence diagram

Page 24: Essentials of interaction diagrams Lecture 23 & 24

Essentials of state and activity diagram

Page 25: Essentials of interaction diagrams Lecture 23 & 24

25

So far we have discussed:• How to describe the requirements of a system

using use cases• How to model the static structure of a system

using a class model• How to model objects interact to satisfy the

requirements using interaction diagrams

We have not discussed, how model an object’s “decision” about what to do when it receives a

message.

Page 26: Essentials of interaction diagrams Lecture 23 & 24

26

Outline

• State Diagram• Designing classes with state diagrams• Activity diagram

Page 27: Essentials of interaction diagrams Lecture 23 & 24

27

State Diagrams• Let us start with a very simple example

• in which an object receives a message and what it does depends on the values of its attributes and links.

• In our library system an object of class Copy may have a Boolean attribute onShelf

• which is intended to record whether the object describes a copy of a book

– which is currently in the library, – or one which is currently on loan.

• The interface of a class Copy specifies that the object should be willing to accept the message borrow().

Page 28: Essentials of interaction diagrams Lecture 23 & 24

28

State diagram of class Copy

• The value of the copy’s attribute onShelf is important for understanding the behaviour of the object, – at level of what messages it sends after receiving message itself

• We can name two significantly different states of a Copy object – “on the shelf” and “on loan”

• We can record the messages that cause it to move between the states as the events that cause transition between states.

Page 29: Essentials of interaction diagrams Lecture 23 & 24

29

Unexpected messages• In previous figure we have not shown arrows to

represent – the receipt of message borrow() in state “on loan” or – the message return() in state “on shelf”

• Under normal circumstances, such messages should not arrive: if they do it’s a bug.

• So the code of class Copy will have to do something if these “wrong” messages do arrive

In fact our convention is a departure from UML, which specifies that an event, such as the arrival of message, that does not trigger a transition is simply ignored

Page 30: Essentials of interaction diagrams Lecture 23 & 24

30

State, transitions, eventsThe most important elements of a state diagram, namely:• States

– Shown as boxes with rounded corners

• Transitions between states– Shown as arrows

• Events that cause transitions between states– Shown by writing the message on the transition arrow

• Start marker– Shown as a black blob with an (unlabeled) arrow into the initial

state of the diagram

• Stop marker– Shown by a black blob with a ring round it

• and means that the object has reached the end of its life.

Page 31: Essentials of interaction diagrams Lecture 23 & 24

31

Actions• The state diagrams were useful for

understanding how an object’s reaction to a message depends on its state.

• An object sending a message in response to being sent one itself – is an example of an action being an object’s

reaction to an event.

• An event is something done to the object• such as it being sent a message

• An action is something that the object does• such as it sending a message

Page 32: Essentials of interaction diagrams Lecture 23 & 24

32

State diagram of class Copy with action

• Analysing the notation:– The slash (/) shows that what follows is an action– book followed by a dot identifies the object to

which a message is being sent– returned(self) is an example of a message

including a parameter, where self is reference to itself

Page 33: Essentials of interaction diagrams Lecture 23 & 24

33

State diagram of class Copy with- entry action

- exit action

• We can show our intention directly, by writing the action inside the state, as a reaction to the special event (e.g entry or exit)

Page 34: Essentials of interaction diagrams Lecture 23 & 24

34

Guards• Sometimes the occurrence of the same event

in the same state may or may not cause a change of state, – depending on the exact values of the object’s

attributes

• We can show this using the same conditional notation that is used in generic interaction diagrams

Several actions in one diagram.

Page 35: Essentials of interaction diagrams Lecture 23 & 24

35

State diagram for class Book

• The borrowed() message cause a state change out of state borrowable – only if this is the last copy on the shelf;– otherwise, the book object remains borrowable.

Page 36: Essentials of interaction diagrams Lecture 23 & 24

36

Activity diagram• Activity diagrams describe how activities are

coordinated.– For example, an activity diagram may be used (like an

interaction diagram) to show how an operation could be implemented

• An activity diagram is particularly useful – when you know that an operation has to achieve a number

of different things, and – you want to model what the essential dependencies

between them are, before you decide in what order to do them

• Activity diagrams are much better at showing this clearly than interaction diagrams.

Page 37: Essentials of interaction diagrams Lecture 23 & 24

37

• At the UML semantics level, activity diagrams are state diagrams extended for convenience with some extra notation

• Elements of activity diagrams– Activity– Transition– Synchronization bar– Decision diamond– Start and stop markers

Page 38: Essentials of interaction diagrams Lecture 23 & 24

38

Business level activity diagram of the library

Page 39: Essentials of interaction diagrams Lecture 23 & 24

39

The main differences between activity diagrams and state diagrams:

• Activity diagrams do not normally include events

• Activity is intended to proceed, following the flow described by diagram, without getting stuck