about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/31 - UML Behavioral Diagrams: Sequence - lang_en_vs5.srt
blob: cbeb4d847afbf59fc7a19ccdb4ff58669218099e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
1
00:00:00,080 --> 00:00:02,400
Now that we have seen use cases, the next behavioral

2
00:00:02,400 --> 00:00:05,540
diagram I want to discuss is the sequence diagram. So

3
00:00:05,540 --> 00:00:08,070
what is a sequence diagram? It is an interaction diagram

4
00:00:08,070 --> 00:00:12,710
that emphasizes how objects communicate and the time ordering of

5
00:00:12,710 --> 00:00:15,940
the messages between objects. To illustrate sequence diagrams in a

6
00:00:15,940 --> 00:00:18,600
practical way, and hopefully in a clear way, I will

7
00:00:18,600 --> 00:00:21,960
introduce them by creating an actual sequence diagram using an

8
00:00:21,960 --> 00:00:25,160
example taken from our course management system. So let's see what

9
00:00:25,160 --> 00:00:28,050
are the steps needed to build such a sequence diagram. The first

10
00:00:28,050 --> 00:00:30,900
thing we want to do is place the objects that participate in

11
00:00:30,900 --> 00:00:34,460
the interaction at the top of the diagram along the x-axis, and

12
00:00:34,460 --> 00:00:36,410
you also want to place them in a specific way. You want

13
00:00:36,410 --> 00:00:39,770
to place objects that initiate the interaction at the left, and place

14
00:00:39,770 --> 00:00:42,260
increasingly more subordinate objects to the

15
00:00:42,260 --> 00:00:44,430
right. So basically, this should reflect

16
00:00:44,430 --> 00:00:47,660
the way the events will flow for the majority of the interactions

17
00:00:47,660 --> 00:00:50,202
in the system. Next thing you want to do is to add

18
00:00:50,202 --> 00:00:53,910
what is called the object lifeline. It's a vertical line that

19
00:00:53,910 --> 00:00:57,300
shows the existence of objects over a period of time. And

20
00:00:57,300 --> 00:01:00,660
it's normally represented with a dashed line, except for the outermost

21
00:01:00,660 --> 00:01:03,190
object for which it is a solid line. Now that you

22
00:01:03,190 --> 00:01:06,450
have your object lifeline you can start placing messages that these

23
00:01:06,450 --> 00:01:09,285
objects send and receive. You want to put them along the

24
00:01:09,285 --> 00:01:12,860
y-axis in order of increasing time, from top to bottom. And

25
00:01:12,860 --> 00:01:15,550
you can also put a number on the message to further

26
00:01:15,550 --> 00:01:18,230
clarify the sequence. So in this case what we're showing

27
00:01:18,230 --> 00:01:21,550
is that the student will send the fill in info

28
00:01:21,550 --> 00:01:24,330
message to the registration form. And this is the first

29
00:01:24,330 --> 00:01:27,960
message in the sequence diagram, the first interaction. Then the student

30
00:01:27,960 --> 00:01:30,900
might submit the form and this is also a message

31
00:01:30,900 --> 00:01:33,370
that goes to the registration form. At this point, when

32
00:01:33,370 --> 00:01:36,440
the submission takes place, the registration form will send the

33
00:01:36,440 --> 00:01:39,990
message, so it will invoke some functionality in the registration manager.

34
00:01:39,990 --> 00:01:43,560
Specifically you will invoke the add course functionality

35
00:01:43,560 --> 00:01:46,400
and pass Joe, the name of the student and

36
00:01:46,400 --> 00:01:49,410
Math 101 which is the specific course for which

37
00:01:49,410 --> 00:01:53,180
Joe is registering. Then the registration manager will ask

38
00:01:53,180 --> 00:01:56,780
the Math 101 course whether it accepts registrations,

39
00:01:56,780 --> 00:01:59,780
and the interaction will continue. So that Math 101

40
00:01:59,780 --> 00:02:02,820
will actually check for a specific offering, if everything

41
00:02:02,820 --> 00:02:05,070
goes fine, you will receive an ack, you'll send

42
00:02:05,070 --> 00:02:07,180
back the act to the registration manager and so

43
00:02:07,180 --> 00:02:10,650
on. Until at the end, Joe will be registered for

44
00:02:10,650 --> 00:02:13,390
Math 101. As you can see, it is very

45
00:02:13,390 --> 00:02:17,600
easy to see how the interaction occurs between these different

46
00:02:17,600 --> 00:02:21,010
objects at run time, dynamically. So what the behavior

47
00:02:21,010 --> 00:02:24,070
of the system is for this specific scenario. So the

48
00:02:24,070 --> 00:02:26,780
last notational element that I want to add to this

49
00:02:26,780 --> 00:02:30,350
diagram is the focus of control. Which is this tall

50
00:02:30,350 --> 00:02:32,880
thin rectangle, that shows the period of time

51
00:02:32,880 --> 00:02:35,190
that an object is performing an action, either

52
00:02:35,190 --> 00:02:37,270
directly or indirectly. So if we look at

53
00:02:37,270 --> 00:02:39,240
the registration form, this is telling us that

54
00:02:39,240 --> 00:02:41,670
the registration form is active for this amount

55
00:02:41,670 --> 00:02:43,170
of time. And the same thing we can

56
00:02:43,170 --> 00:02:45,520
do for the registration manager, the Math 101

57
00:02:45,520 --> 00:02:49,170
course offering, and the Math 101 specific section.