~ubuntu-branches/ubuntu/utopic/tcm/utopic

« back to all changes in this revision

Viewing changes to doc/usersguide/usersguidenode7.html

  • Committer: Bazaar Package Importer
  • Author(s): Otavio Salvador
  • Date: 2003-07-03 20:08:21 UTC
  • Revision ID: james.westby@ubuntu.com-20030703200821-se4xtqx25e5miczi
Tags: upstream-2.20
ImportĀ upstreamĀ versionĀ 2.20

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
2
<!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998)
 
3
originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds
 
4
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 
5
* with significant contributions from:
 
6
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 
7
<HTML>
 
8
<HEAD>
 
9
<TITLE>5. Behavior View Editors</TITLE>
 
10
<META NAME="description" CONTENT="5. Behavior View Editors">
 
11
<META NAME="keywords" CONTENT="User">
 
12
<META NAME="resource-type" CONTENT="document">
 
13
<META NAME="distribution" CONTENT="global">
 
14
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 
15
<LINK REL="STYLESHEET" HREF="User.css">
 
16
<LINK REL="next" HREF="usersguidenode8.html">
 
17
<LINK REL="previous" HREF="usersguidenode6.html">
 
18
<LINK REL="up" HREF="User.html">
 
19
<LINK REL="next" HREF="usersguidenode8.html">
 
20
</HEAD>
 
21
<BODY >
 
22
<!--Navigation Panel-->
 
23
<A NAME="tex2html927"
 
24
 HREF="usersguidenode8.html">
 
25
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A> 
 
26
<A NAME="tex2html923"
 
27
 HREF="User.html">
 
28
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A> 
 
29
<A NAME="tex2html917"
 
30
 HREF="usersguidenode6.html">
 
31
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> 
 
32
<A NAME="tex2html925"
 
33
 HREF="usersguidenode1.html">
 
34
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A> 
 
35
<A NAME="tex2html926"
 
36
 HREF="usersguidenode15.html">
 
37
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A> 
 
38
<BR>
 
39
<B> Next:</B> <A NAME="tex2html928"
 
40
 HREF="usersguidenode8.html">6. Architectural View Editors</A>
 
41
<B> Up:</B> <A NAME="tex2html924"
 
42
 HREF="User.html">Toolkit for Conceptual Modeling</A>
 
43
<B> Previous:</B> <A NAME="tex2html918"
 
44
 HREF="usersguidenode6.html">4. Data View Editors</A>
 
45
<BR>
 
46
<BR>
 
47
<!--End of Navigation Panel-->
 
48
<!--Table of Child-Links-->
 
49
<A NAME="CHILD_LINKS"><strong>Subsections</strong></A>
 
50
<UL>
 
51
<LI><A NAME="tex2html929"
 
52
 HREF="usersguidenode7.html#SECTION00710000000000000000">5.1 The State Transition Diagram Editor (TSTD)</A>
 
53
<UL>
 
54
<LI><A NAME="tex2html930"
 
55
 HREF="usersguidenode7.html#SECTION00711000000000000000">5.1.1 Nodes and Edges</A>
 
56
<LI><A NAME="tex2html931"
 
57
 HREF="usersguidenode7.html#SECTION00712000000000000000">5.1.2 States</A>
 
58
<LI><A NAME="tex2html932"
 
59
 HREF="usersguidenode7.html#SECTION00713000000000000000">5.1.3 Transitions, Events and Actions</A>
 
60
<LI><A NAME="tex2html933"
 
61
 HREF="usersguidenode7.html#SECTION00714000000000000000">5.1.4 Constraint Checking</A>
 
62
</UL>
 
63
<LI><A NAME="tex2html934"
 
64
 HREF="usersguidenode7.html#SECTION00720000000000000000">5.2 The Activity Diagram Editor (TATD)</A>
 
65
<UL>
 
66
<LI><A NAME="tex2html935"
 
67
 HREF="usersguidenode7.html#SECTION00721000000000000000">5.2.1 Nodes and Edges</A>
 
68
<LI><A NAME="tex2html936"
 
69
 HREF="usersguidenode7.html#SECTION00722000000000000000">5.2.2 States</A>
 
70
<LI><A NAME="tex2html937"
 
71
 HREF="usersguidenode7.html#SECTION00723000000000000000">5.2.3 Transitions</A>
 
72
<LI><A NAME="tex2html938"
 
73
 HREF="usersguidenode7.html#SECTION00724000000000000000">5.2.4 Constraint Checking</A>
 
74
</UL>
 
75
<LI><A NAME="tex2html939"
 
76
 HREF="usersguidenode7.html#SECTION00730000000000000000">5.3 The Process Structure Diagram Editor (TPSD)</A>
 
77
<UL>
 
78
<LI><A NAME="tex2html940"
 
79
 HREF="usersguidenode7.html#SECTION00731000000000000000">5.3.1 Nodes and Edges</A>
 
80
<LI><A NAME="tex2html941"
 
81
 HREF="usersguidenode7.html#SECTION00732000000000000000">5.3.2 The Process Tree</A>
 
82
<LI><A NAME="tex2html942"
 
83
 HREF="usersguidenode7.html#SECTION00733000000000000000">5.3.3 Constraint Checking</A>
 
84
</UL>
 
85
<LI><A NAME="tex2html943"
 
86
 HREF="usersguidenode7.html#SECTION00740000000000000000">5.4 The Recursive Process Graph Editor (TRPG)</A>
 
87
<UL>
 
88
<LI><A NAME="tex2html944"
 
89
 HREF="usersguidenode7.html#SECTION00741000000000000000">5.4.1 Nodes and Edges</A>
 
90
<LI><A NAME="tex2html945"
 
91
 HREF="usersguidenode7.html#SECTION00742000000000000000">5.4.2 Constraint Checking</A>
 
92
</UL>
 
93
<LI><A NAME="tex2html946"
 
94
 HREF="usersguidenode7.html#SECTION00750000000000000000">5.5 The Collaboration Diagram Editor (TCBD)</A>
 
95
<UL>
 
96
<LI><A NAME="tex2html947"
 
97
 HREF="usersguidenode7.html#SECTION00751000000000000000">5.5.1 Nodes and Edges</A>
 
98
<LI><A NAME="tex2html948"
 
99
 HREF="usersguidenode7.html#SECTION00752000000000000000">5.5.2 Interactions</A>
 
100
<LI><A NAME="tex2html949"
 
101
 HREF="usersguidenode7.html#SECTION00753000000000000000">5.5.3 Constraint Checking</A>
 
102
</UL>
 
103
<LI><A NAME="tex2html950"
 
104
 HREF="usersguidenode7.html#SECTION00760000000000000000">5.6 The StateChart Diagram Editor (TSCD)</A>
 
105
<UL>
 
106
<LI><A NAME="tex2html951"
 
107
 HREF="usersguidenode7.html#SECTION00761000000000000000">5.6.1 Nodes and Edges</A>
 
108
<LI><A NAME="tex2html952"
 
109
 HREF="usersguidenode7.html#SECTION00762000000000000000">5.6.2 And-states</A>
 
110
</UL></UL>
 
111
<!--End of Table of Child-Links-->
 
112
<HR>
 
113
 
 
114
<H1><A NAME="SECTION00700000000000000000">&#160;</A> <A NAME="BehaviorViewEditing">&#160;</A><A NAME="5297">&#160;</A>
 
115
<BR>
 
116
5. Behavior View Editors
 
117
</H1>
 
118
 
 
119
<P>
 
120
Behavior view editors manipulate various kind of diagrams to
 
121
represent system or object behavior.
 
122
 
 
123
<P>
 
124
 
 
125
<H1><A NAME="SECTION00710000000000000000">&#160;</A>
 
126
<A NAME="5299">&#160;</A><A NAME="5300">&#160;</A> 
 
127
<A NAME="5301">&#160;</A>
 
128
<BR>
 
129
5.1 The State Transition Diagram Editor (TSTD)
 
130
</H1>
 
131
 
 
132
<P>
 
133
 
 
134
<H2><A NAME="SECTION00711000000000000000">
 
135
5.1.1 Nodes and Edges</A>
 
136
</H2>
 
137
 
 
138
<P>
 
139
TSTD follows the notational convention of Mealy machines.
 
140
In short, a <B>Mealy machine</B><A NAME="5304">&#160;</A>
 
141
is a finite state machine in which each transition can have one 
 
142
or more actions. See figure&nbsp;<A HREF="usersguidenode7.html#STRepresentations">5.1</A> for the 
 
143
shapes and subjects.
 
144
 
 
145
<P>
 
146
<BR>
 
147
<DIV ALIGN="CENTER"><A NAME="STRepresentations">&#160;</A><A NAME="5345">&#160;</A>
 
148
<TABLE WIDTH="50%">
 
149
<CAPTION><STRONG>Figure 5.1:</STRONG>
 
150
State transition diagram nodes and edges.</CAPTION>
 
151
<TR><TD>
 
152
<DIV ALIGN="CENTER">
 
153
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
154
<TR><TD ALIGN="CENTER">
 
155
<BR><HR><P></P>
 
156
<DIV ALIGN="CENTER">
 
157
 
 
158
<!-- MATH: $\includegraphics{p/arrowbox.eps}$ -->
 
159
<IMG
 
160
 WIDTH="117" HEIGHT="86" ALIGN="BOTTOM" BORDER="0"
 
161
 SRC="usersguideimg102.gif"
 
162
 ALT="\includegraphics{p/arrowbox.eps}">
 
163
<BR> </DIV>
 
164
<BR><HR>
 
165
<BR></TD>
 
166
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Initial state<A NAME="5318">&#160;</A><A NAME="5319">&#160;</A></TD>
 
167
<TD ALIGN="CENTER">
 
168
<BR><HR><P></P>
 
169
<DIV ALIGN="CENTER">
 
170
 
 
171
<!-- MATH: $\includegraphics{p/box.eps}$ -->
 
172
<IMG
 
173
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
174
 SRC="usersguideimg32.gif"
 
175
 ALT="\includegraphics{p/box.eps}">
 
176
<BR> </DIV>
 
177
<BR><HR>
 
178
<BR></TD>
 
179
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>State<A NAME="5327">&#160;</A></TD>
 
180
</TR>
 
181
<TR><TD ALIGN="CENTER"><P>
 
182
<HR><P></P>
 
183
<DIV ALIGN="CENTER">
 
184
 
 
185
<!-- MATH: $\includegraphics{p/hexagon.eps}$ -->
 
186
<IMG
 
187
 WIDTH="116" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
188
 SRC="usersguideimg42.gif"
 
189
 ALT="\includegraphics{p/hexagon.eps}">
 
190
<BR> </DIV>
 
191
<BR><HR>
 
192
<BR></TD>
 
193
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision point<A NAME="5335">&#160;</A></TD>
 
194
<TD ALIGN="CENTER">&nbsp;</TD>
 
195
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
196
</TR>
 
197
<TR><TD ALIGN="CENTER"><A NAME="5336">&#160;</A>
 
198
<P>
 
199
<HR><P></P> 
 
200
<DIV ALIGN="CENTER">
 
201
 
 
202
<!-- MATH: $\includegraphics{p/transition.eps}$ -->
 
203
<IMG
 
204
 WIDTH="84" HEIGHT="70" ALIGN="BOTTOM" BORDER="0"
 
205
 SRC="usersguideimg103.gif"
 
206
 ALT="\includegraphics{p/transition.eps}"></DIV>
 
207
<BR><HR>
 
208
<BR></TD>
 
209
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Transition<A NAME="5343">&#160;</A></TD>
 
210
<TD ALIGN="CENTER">&nbsp;</TD>
 
211
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
212
</TR>
 
213
</TABLE></DIV></TD></TR>
 
214
</TABLE>
 
215
</DIV>
 
216
<BR>
 
217
<P>
 
218
 
 
219
<H2><A NAME="SECTION00712000000000000000">
 
220
5.1.2 States</A>
 
221
</H2>
 
222
 
 
223
<P>
 
224
There are tree kinds of nodes: <B>initial states</B>, (normal)
 
225
<B>states</B> and <B>decision points</B>. 
 
226
All nodes should have mutually unique names.
 
227
Nameless states, also called <B>transitory states</B>, are not permitted.<A NAME="5354">&#160;</A> 
 
228
<B>Non-deterministic</B> state transition diagrams are permitted.
 
229
 
 
230
<P>
 
231
An initial state can have one or more initialization actions.
 
232
You can add an action by selecting the initial state, and click
 
233
on or near the arrow on top of the box. When an edit cursor
 
234
appears at the right side of the arrow, you can type in the actions. 
 
235
Each line of text will be considered as a separate action. If you stop 
 
236
editing, the actions will be placed at the right side of the arrow and
 
237
the texts become left aligned. The arrow will be resized to accommodate
 
238
the height of the texts and on top of the actions a horizontal separator 
 
239
line will be drawn. Only when the initial state
 
240
has actions then the separator line is drawn.
 
241
Note that these actions are in this notational convention
 
242
part of the initial state <I>node</I>, whereas the other actions (and events) 
 
243
of a diagram are as a notational convention part of an <I>edge</I>.
 
244
 
 
245
<P>
 
246
 
 
247
<H2><A NAME="SECTION00713000000000000000">&#160;</A><A NAME="5359">&#160;</A><A NAME="5360">&#160;</A><A NAME="5361">&#160;</A>
 
248
<BR>
 
249
5.1.3 Transitions, Events and Actions
 
250
</H2>
 
251
Transitions are drawn as arrows. They do not have a single editable name 
 
252
label like most of the other line or arrow types in TCM.
 
253
Instead they have a distinct event label and an arbitrary number of 
 
254
action labels. The action labels each occupy exactly one line of text; 
 
255
the event label can contain multiple lines.
 
256
The event and the actions are separated by a horizontal <B>separator 
 
257
line</B><A NAME="5363">&#160;</A>. When a transition is created, a separator 
 
258
line will also be created and it will be positioned near
 
259
where a name label would normally be positioned. When the transition 
 
260
line segment near the separator is drawn vertically, the separator is 
 
261
by default connected to the right side of that line segment. When the 
 
262
segment is drawn horizontally, the separator is by default positioned 
 
263
somewhat above the line. See figure&nbsp;<A HREF="usersguidenode7.html#DefaultSTDSeparators">5.2</A> for the 
 
264
two default positions.
 
265
 
 
266
<P>
 
267
<BR>
 
268
<DIV ALIGN="CENTER"><A NAME="DefaultSTDSeparators">&#160;</A><A NAME="5368">&#160;</A>
 
269
<TABLE WIDTH="50%">
 
270
<CAPTION><STRONG>Figure 5.2:</STRONG>
 
271
Default STD separator positions.</CAPTION>
 
272
<TR><TD>
 
273
<DIV ALIGN="CENTER">
 
274
 
 
275
<!-- MATH: $\includegraphics{p/defaultseparators.eps}$ -->
 
276
<IMG
 
277
 WIDTH="314" HEIGHT="209" ALIGN="BOTTOM" BORDER="0"
 
278
 SRC="usersguideimg104.gif"
 
279
 ALT="\includegraphics{p/defaultseparators.eps}"></DIV></TD></TR>
 
280
</TABLE>
 
281
</DIV>
 
282
<BR>
 
283
<P>
 
284
If you click for editing a bit above the separator line, an 
 
285
edit cursor appears and you can enter an event string.
 
286
When you stop editing, the event string will be positioned above
 
287
the separator line and the separator line will be resized, if necessary. 
 
288
 
 
289
<P>
 
290
If you click for editing a bit below the separator, an edit cursor
 
291
appears there and you can enter a list of actions. Each line of text will
 
292
become a separate action. If you stop editing, the actions will become 
 
293
left aligned and, if necessary, the separator line will be resized. 
 
294
When the transition line segment is horizontal and the separator is
 
295
positioned above the segment, all labels are moved up so that they are all 
 
296
positioned above the line. See figure&nbsp;<A HREF="usersguidenode7.html#STDEventAndActions">5.3</A> for an example
 
297
diagram with actions and events.
 
298
 
 
299
<P>
 
300
<BR>
 
301
<DIV ALIGN="CENTER"><A NAME="STDEventAndActions">&#160;</A><A NAME="5376">&#160;</A>
 
302
<TABLE WIDTH="50%">
 
303
<CAPTION><STRONG>Figure 5.3:</STRONG>
 
304
STD with events and actions.</CAPTION>
 
305
<TR><TD>
 
306
<DIV ALIGN="CENTER">
 
307
 
 
308
<!-- MATH: $\includegraphics{p/stdeventactions.eps}$ -->
 
309
<IMG
 
310
 WIDTH="339" HEIGHT="841" ALIGN="BOTTOM" BORDER="0"
 
311
 SRC="usersguideimg105.gif"
 
312
 ALT="\includegraphics{p/stdeventactions.eps}"></DIV></TD></TR>
 
313
</TABLE>
 
314
</DIV>
 
315
<BR>
 
316
<P>
 
317
It is possible to drag the separator line together with the 
 
318
event and action labels. There are two different sorts of 
 
319
movements possible. You are advised to experiment with this.
 
320
These movements are:
 
321
<DL COMPACT>
 
322
<DT>1.
 
323
<DD><B>Move it to another line segment</B>. You do this by selecting
 
324
the transition and click for editing on the desired transition segment. 
 
325
The separator line and the existing event and action labels are
 
326
moved to that line segment.  When you stop editing, the separator will 
 
327
remain in that line segment.
 
328
Summarizing: to move it to a different segment, empty the selection
 
329
and then double click the desired segment.
 
330
<DT>2.
 
331
<DD><B>Move within a line segment</B>. Drag with button-1
 
332
the separator or one of the labels to the desired position. The final
 
333
position is determined by the direction of the transition line segment.
 
334
<UL>
 
335
<LI>If the line segment is more or less horizontal, you can freely 
 
336
move the separator and labels from left to right. But you can only move 
 
337
the separator up and down to two predefined positions: either 
 
338
all labels are positioned entirely above the line segment or 
 
339
all labels are positioned entirely below the line segment.
 
340
<P>
 
341
<LI>If the line segment is more or less vertical, you can freely 
 
342
move the separator and labels up and down the segment, but you 
 
343
can only move the separator left and right to two predefined positions: 
 
344
either all labels are entirely positioned at the left side of 
 
345
the line segment or all labels are entirely positioned at the 
 
346
right of the line segment.
 
347
</UL></DL>
 
348
<P>
 
349
The automatic positioning of labels looks best when the segments 
 
350
are horizontal or vertical. When the transition arrow segments are 
 
351
diagonal or curved, then label
 
352
positioning still works but sometimes the result does not look
 
353
as great as figure&nbsp;<A HREF="usersguidenode7.html#STDEventAndActions">5.3</A>.
 
354
 
 
355
<P>
 
356
 
 
357
<H2><A NAME="SECTION00714000000000000000">
 
358
5.1.4 Constraint Checking</A>
 
359
</H2>
 
360
 
 
361
<P>
 
362
TSTD checks the following constraints that are summarized in
 
363
figure&nbsp;<A HREF="usersguidenode7.html#STConstraints">5.4</A>. 
 
364
 
 
365
<P>
 
366
<BR>
 
367
<DIV ALIGN="CENTER"><A NAME="STConstraints">&#160;</A><A NAME="5392">&#160;</A>
 
368
<TABLE WIDTH="50%">
 
369
<CAPTION><STRONG>Figure 5.4:</STRONG>
 
370
Immediately checked and soft constraints on STDs.</CAPTION>
 
371
<TR><TD>
 
372
<DIV ALIGN="CENTER">
 
373
 
 
374
<!-- MATH: $\includegraphics{p/STconstraints.eps}$ -->
 
375
<IMG
 
376
 WIDTH="584" HEIGHT="403" ALIGN="BOTTOM" BORDER="0"
 
377
 SRC="usersguideimg106.gif"
 
378
 ALT="\includegraphics{p/STconstraints.eps}"></DIV></TD></TR>
 
379
</TABLE>
 
380
</DIV>
 
381
<BR>
 
382
<P>
 
383
 
 
384
<H1><A NAME="SECTION00720000000000000000">&#160;</A>
 
385
<A NAME="5397">&#160;</A><A NAME="5398">&#160;</A> 
 
386
<A NAME="5399">&#160;</A>
 
387
<BR>
 
388
5.2 The Activity Diagram Editor (TATD)
 
389
</H1>
 
390
 
 
391
<P>
 
392
 
 
393
<H2><A NAME="SECTION00721000000000000000">
 
394
5.2.1 Nodes and Edges</A>
 
395
</H2>
 
396
 
 
397
<P>
 
398
An activity diagram is a special case of a state diagram in which most 
 
399
states are action states or subactivity states, and most transitions are 
 
400
completion transitions. The purpose of an activity diagram is to focus on
 
401
flows driven by internal processing (as opposed to external events).
 
402
See figure&nbsp;<A HREF="usersguidenode7.html#ATRepresentations">5.5</A> for the shapes and subjects.
 
403
 
 
404
<P>
 
405
<BR>
 
406
<DIV ALIGN="CENTER"><A NAME="ATRepresentations">&#160;</A><A NAME="5477">&#160;</A>
 
407
<TABLE WIDTH="50%">
 
408
<CAPTION><STRONG>Figure 5.5:</STRONG>
 
409
Activity diagram nodes and edges.</CAPTION>
 
410
<TR><TD>
 
411
<DIV ALIGN="CENTER">
 
412
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
413
<TR><TD ALIGN="CENTER">
 
414
<BR><HR><P></P>
 
415
<DIV ALIGN="CENTER">
 
416
 
 
417
<!-- MATH: $\includegraphics{p/ellipsedbox.eps}$ -->
 
418
<IMG
 
419
 WIDTH="88" HEIGHT="44" ALIGN="BOTTOM" BORDER="0"
 
420
 SRC="usersguideimg43.gif"
 
421
 ALT="\includegraphics{p/ellipsedbox.eps}">
 
422
<BR> </DIV>
 
423
<BR><HR>
 
424
<BR></TD>
 
425
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Action state<A NAME="5414">&#160;</A><A NAME="5415">&#160;</A></TD>
 
426
<TD ALIGN="CENTER">
 
427
<BR><HR><P></P>
 
428
<DIV ALIGN="CENTER">
 
429
 
 
430
<!-- MATH: $\includegraphics{p/roundedbox.eps}$ -->
 
431
<IMG
 
432
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
433
 SRC="usersguideimg38.gif"
 
434
 ALT="\includegraphics{p/roundedbox.eps}">
 
435
<BR> </DIV>
 
436
<BR><HR>
 
437
<BR></TD>
 
438
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Inactive state<A NAME="5423">&#160;</A><A NAME="5424">&#160;</A></TD>
 
439
</TR>
 
440
<TR><TD ALIGN="CENTER"><P>
 
441
<HR><P></P>
 
442
<DIV ALIGN="CENTER">
 
443
 
 
444
<!-- MATH: $\includegraphics{p/solidhorizontalbar.eps}$ -->
 
445
 
 
446
<BR> </DIV>
 
447
<BR><HR>
 
448
<BR></TD>
 
449
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Horizontal synchronization bar <A NAME="5432">&#160;</A>
 
450
<A NAME="5433">&#160;</A></TD>
 
451
<TD ALIGN="CENTER">
 
452
<BR><HR><P></P>
 
453
<DIV ALIGN="CENTER">
 
454
 
 
455
<!-- MATH: $\includegraphics{p/solidverticalbar.eps}$ -->
 
456
<IMG
 
457
 WIDTH="4" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
458
 SRC="usersguideimg45.gif"
 
459
 ALT="\includegraphics{p/solidverticalbar.eps}">
 
460
<BR> </DIV>
 
461
<BR><HR>
 
462
<BR></TD>
 
463
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Vertical synchronization bar <A NAME="5441">&#160;</A>
 
464
<A NAME="5442">&#160;</A></TD>
 
465
</TR>
 
466
<TR><TD ALIGN="CENTER"><P>
 
467
<HR><P></P>
 
468
<DIV ALIGN="CENTER">
 
469
 
 
470
<!-- MATH: $\includegraphics{p/blackdot.eps}$ -->
 
471
<IMG
 
472
 WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
 
473
 SRC="usersguideimg37.gif"
 
474
 ALT="\includegraphics{p/blackdot.eps}">
 
475
<BR> </DIV>
 
476
<BR><HR>
 
477
<BR></TD>
 
478
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Start state<A NAME="5450">&#160;</A><A NAME="5451">&#160;</A></TD>
 
479
<TD ALIGN="CENTER">
 
480
<BR><HR><P></P>
 
481
<DIV ALIGN="CENTER">
 
482
 
 
483
<!-- MATH: $\includegraphics{p/blackdotellipse.eps}$ -->
 
484
<IMG
 
485
 WIDTH="24" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
 
486
 SRC="usersguideimg44.gif"
 
487
 ALT="\includegraphics{p/blackdotellipse.eps}">
 
488
<BR> </DIV>
 
489
<BR><HR>
 
490
<BR></TD>
 
491
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>End state<A NAME="5459">&#160;</A><A NAME="5460">&#160;</A></TD>
 
492
</TR>
 
493
<TR><TD ALIGN="CENTER"><P>
 
494
<HR><P></P>
 
495
<DIV ALIGN="CENTER">
 
496
 
 
497
<!-- MATH: $\includegraphics{p/minidiamond.eps}$ -->
 
498
<IMG
 
499
 WIDTH="20" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
 
500
 SRC="usersguideimg107.gif"
 
501
 ALT="\includegraphics{p/minidiamond.eps}">
 
502
<BR> </DIV>
 
503
<BR><HR>
 
504
<BR></TD>
 
505
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision <A NAME="5468">&#160;</A></TD>
 
506
<TD ALIGN="CENTER">&nbsp;</TD>
 
507
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
508
</TR>
 
509
<TR><TD ALIGN="CENTER"><P>
 
510
<HR><P></P> 
 
511
<DIV ALIGN="CENTER">
 
512
 
 
513
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
 
514
<IMG
 
515
 WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
 
516
 SRC="usersguideimg59.gif"
 
517
 ALT="\includegraphics{p/arrow.eps}"></DIV>
 
518
<BR><HR>
 
519
<BR></TD>
 
520
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Control flow<A NAME="5475">&#160;</A></TD>
 
521
<TD ALIGN="CENTER">&nbsp;</TD>
 
522
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
523
</TR>
 
524
</TABLE></DIV></TD></TR>
 
525
</TABLE>
 
526
</DIV>
 
527
<BR>
 
528
<P>
 
529
 
 
530
<H2><A NAME="SECTION00722000000000000000">
 
531
5.2.2 States</A>
 
532
</H2>
 
533
 
 
534
<P>
 
535
There are four kinds of nodes: <B>start and end states</B>, (active and wait)
 
536
<B>states</B>,  <B>decisions</B> and <B>synchronizations</B>. 
 
537
Nameless states and non-deterministic activity diagrams are not permitted.
 
538
 
 
539
<P>
 
540
A decision, represented by a small diamond, can be used as a 
 
541
decision point (one incoming arrow and two or more outgoing arrows), as a 
 
542
merge point (two or more incoming arrows and one outgoing arrow), 
 
543
or as a combined merge/decision point.
 
544
See figure&nbsp;<A HREF="usersguidenode7.html#ATDecisionMerge">5.6</A> for an example of decision and merge.
 
545
 
 
546
<P>
 
547
<BR>
 
548
<DIV ALIGN="CENTER"><A NAME="ATDecisionMerge">&#160;</A><A NAME="5490">&#160;</A>
 
549
<TABLE WIDTH="50%">
 
550
<CAPTION><STRONG>Figure 5.6:</STRONG>
 
551
Example decision and merge.</CAPTION>
 
552
<TR><TD>
 
553
<DIV ALIGN="CENTER">
 
554
 
 
555
<!-- MATH: $\includegraphics{p/decisionmerge.eps}$ -->
 
556
<IMG
 
557
 WIDTH="516" HEIGHT="141" ALIGN="BOTTOM" BORDER="0"
 
558
 SRC="usersguideimg108.gif"
 
559
 ALT="\includegraphics{p/decisionmerge.eps}"></DIV></TD></TR>
 
560
</TABLE>
 
561
</DIV>
 
562
<BR>
 
563
<P>
 
564
Synchronizations, represented by horizontal or vertical synchronization
 
565
bars, should have one incoming and two or more outgoing control flows 
 
566
or two or more incoming flows and one outgoing flow.
 
567
Via the Update Node Shape Type option in the edit menu it is 
 
568
possible to convert between these two synchronization representations.
 
569
<A NAME="5494">&#160;</A><A NAME="5495">&#160;</A>
 
570
 
 
571
<P>
 
572
See figure&nbsp;<A HREF="usersguidenode7.html#ATDExample">5.7</A> for an example diagram with horizontal 
 
573
synchronization bars.
 
574
 
 
575
<P>
 
576
<BR>
 
577
<DIV ALIGN="CENTER"><A NAME="ATDExample">&#160;</A><A NAME="5500">&#160;</A>
 
578
<TABLE WIDTH="50%">
 
579
<CAPTION><STRONG>Figure 5.7:</STRONG>
 
580
ATD with action states, synchronization bars and a decision.</CAPTION>
 
581
<TR><TD>
 
582
<DIV ALIGN="CENTER">
 
583
 
 
584
<!-- MATH: $\includegraphics{p/atdexample.eps}$ -->
 
585
<IMG
 
586
 WIDTH="599" HEIGHT="645" ALIGN="BOTTOM" BORDER="0"
 
587
 SRC="usersguideimg109.gif"
 
588
 ALT="\includegraphics{p/atdexample.eps}"></DIV></TD></TR>
 
589
</TABLE>
 
590
</DIV>
 
591
<BR>
 
592
<P>
 
593
 
 
594
<H2><A NAME="SECTION00723000000000000000">&#160;</A><A NAME="5505">&#160;</A>
 
595
<BR>
 
596
5.2.3 Transitions
 
597
</H2>
 
598
Transitions are drawn as arrows, which have a single editable name 
 
599
label like most of the other line or arrow types in TCM.
 
600
Restrictions on transitions can be found in figure&nbsp;<A HREF="usersguidenode7.html#ATConstraints">5.8</A>. 
 
601
 
 
602
<P>
 
603
 
 
604
<H2><A NAME="SECTION00724000000000000000">
 
605
5.2.4 Constraint Checking</A>
 
606
</H2>
 
607
 
 
608
<P>
 
609
TATD checks the following constraints that are summarized in
 
610
figure&nbsp;<A HREF="usersguidenode7.html#ATConstraints">5.8</A>. 
 
611
 
 
612
<P>
 
613
<BR>
 
614
<DIV ALIGN="CENTER"><A NAME="ATConstraints">&#160;</A><A NAME="5512">&#160;</A>
 
615
<TABLE WIDTH="50%">
 
616
<CAPTION><STRONG>Figure 5.8:</STRONG>
 
617
Immediately checked and soft constraints on ATDs.</CAPTION>
 
618
<TR><TD>
 
619
<DIV ALIGN="CENTER">
 
620
 
 
621
<!-- MATH: $\includegraphics{p/ATconstraints.eps}$ -->
 
622
<IMG
 
623
 WIDTH="600" HEIGHT="643" ALIGN="BOTTOM" BORDER="0"
 
624
 SRC="usersguideimg110.gif"
 
625
 ALT="\includegraphics{p/ATconstraints.eps}"></DIV></TD></TR>
 
626
</TABLE>
 
627
</DIV>
 
628
<BR>
 
629
<P>
 
630
 
 
631
<H1><A NAME="SECTION00730000000000000000">&#160;</A>
 
632
<A NAME="5517">&#160;</A><A NAME="5518">&#160;</A> 
 
633
<A NAME="5519">&#160;</A>
 
634
<BR>
 
635
5.3 The Process Structure Diagram Editor (TPSD)
 
636
</H1>
 
637
 
 
638
<P>
 
639
 
 
640
<H2><A NAME="SECTION00731000000000000000">&#160;</A><A NAME="5521">&#160;</A><A NAME="5522">&#160;</A>
 
641
<BR>
 
642
5.3.1 Nodes and Edges
 
643
</H2>
 
644
TPSD has just one special type of node, called Process and 
 
645
one type of edge called Empty edge (see figure&nbsp;<A HREF="usersguidenode7.html#PSRepresentations">5.9</A>). 
 
646
The process node is represented by a box. In the 
 
647
top right corner of the process node box, a process operator can be specified. 
 
648
You edit this operator by selecting the box and then click in the
 
649
top right corner. You go into edit mode then and the operator is typed in as 
 
650
a single character. See figure&nbsp;<A HREF="usersguidenode7.html#PSOperators">5.10</A> for the different operators.
 
651
 
 
652
<P>
 
653
<BR>
 
654
<DIV ALIGN="CENTER"><A NAME="PSRepresentations">&#160;</A><A NAME="5545">&#160;</A>
 
655
<TABLE WIDTH="50%">
 
656
<CAPTION><STRONG>Figure 5.9:</STRONG>
 
657
Process structure diagram nodes and edges.</CAPTION>
 
658
<TR><TD>
 
659
<DIV ALIGN="CENTER">
 
660
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
661
<TR><TD ALIGN="CENTER">
 
662
<BR><HR><P></P> 
 
663
<DIV ALIGN="CENTER">
 
664
 
 
665
<!-- MATH: $\includegraphics{p/box.eps}$ -->
 
666
<IMG
 
667
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
668
 SRC="usersguideimg32.gif"
 
669
 ALT="\includegraphics{p/box.eps}"></DIV>
 
670
<BR><HR>
 
671
<BR></TD>
 
672
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process<A NAME="5536">&#160;</A></TD>
 
673
<TD ALIGN="CENTER">
 
674
<BR><HR><P></P> 
 
675
<DIV ALIGN="CENTER">
 
676
 
 
677
<!-- MATH: $\includegraphics{p/predefinedline.eps}$ -->
 
678
<IMG
 
679
 WIDTH="93" HEIGHT="1" ALIGN="BOTTOM" BORDER="0"
 
680
 SRC="usersguideimg68.gif"
 
681
 ALT="\includegraphics{p/predefinedline.eps}"></DIV>
 
682
<BR><HR>
 
683
<BR></TD>
 
684
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Empty edge<A NAME="5543">&#160;</A></TD>
 
685
</TR>
 
686
</TABLE></DIV></TD></TR>
 
687
</TABLE>
 
688
</DIV>
 
689
<BR>
 
690
<P>
 
691
<BR>
 
692
<DIV ALIGN="CENTER"><A NAME="PSOperators">&#160;</A><A NAME="5593">&#160;</A>
 
693
<TABLE WIDTH="50%">
 
694
<CAPTION><STRONG>Figure 5.10:</STRONG>
 
695
Process structure operators.</CAPTION>
 
696
<TR><TD>
 
697
<DIV ALIGN="CENTER">
 
698
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
699
<TR><TD ALIGN="CENTER">Box</TD>
 
700
<TD ALIGN="CENTER">Operator</TD>
 
701
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>Description</TD>
 
702
</TR>
 
703
<TR><TD ALIGN="CENTER"><P>
 
704
<HR><P></P> 
 
705
<DIV ALIGN="CENTER">
 
706
 
 
707
<!-- MATH: $\includegraphics{p/box.eps}$ -->
 
708
<IMG
 
709
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
710
 SRC="usersguideimg32.gif"
 
711
 ALT="\includegraphics{p/box.eps}">
 
712
<BR>
 
713
</DIV>
 
714
<BR><HR>
 
715
<BR></TD>
 
716
<TD ALIGN="CENTER">&nbsp;</TD>
 
717
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>sequence, the default.</TD>
 
718
</TR>
 
719
<TR><TD ALIGN="CENTER"><A NAME="5560">&#160;</A>
 
720
<P>
 
721
<HR><P></P> 
 
722
<DIV ALIGN="CENTER">
 
723
 
 
724
<!-- MATH: $\includegraphics{p/iterationbox.eps}$ -->
 
725
<IMG
 
726
 WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
727
 SRC="usersguideimg111.gif"
 
728
 ALT="\includegraphics{p/iterationbox.eps}">
 
729
<BR>
 
730
</DIV>
 
731
<BR><HR>
 
732
<BR></TD>
 
733
<TD ALIGN="CENTER"><code>*</code></TD>
 
734
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>iteration.</TD>
 
735
</TR>
 
736
<TR><TD ALIGN="CENTER"><A NAME="5568">&#160;</A>
 
737
<P>
 
738
<HR><P></P> 
 
739
<DIV ALIGN="CENTER">
 
740
 
 
741
<!-- MATH: $\includegraphics{p/choicebox.eps}$ -->
 
742
<IMG
 
743
 WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
744
 SRC="usersguideimg112.gif"
 
745
 ALT="\includegraphics{p/choicebox.eps}">
 
746
<BR>
 
747
</DIV>
 
748
<BR><HR>
 
749
<BR></TD>
 
750
<TD ALIGN="CENTER"><code>o</code></TD>
 
751
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>choice.</TD>
 
752
</TR>
 
753
<TR><TD ALIGN="CENTER"><A NAME="5576">&#160;</A>
 
754
<P>
 
755
<HR><P></P> 
 
756
<DIV ALIGN="CENTER">
 
757
 
 
758
<!-- MATH: $\includegraphics{p/quitbox.eps}$ -->
 
759
<IMG
 
760
 WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
761
 SRC="usersguideimg113.gif"
 
762
 ALT="\includegraphics{p/quitbox.eps}">
 
763
<BR>
 
764
</DIV>
 
765
<BR><HR>
 
766
<BR></TD>
 
767
<TD ALIGN="CENTER"><code>!</code></TD>
 
768
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>for premature termination.</TD>
 
769
</TR>
 
770
<TR><TD ALIGN="CENTER"><A NAME="5584">&#160;</A>
 
771
<P>
 
772
<HR><P></P> 
 
773
<DIV ALIGN="CENTER">
 
774
 
 
775
<!-- MATH: $\includegraphics{p/admitbox.eps}$ -->
 
776
<IMG
 
777
 WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
778
 SRC="usersguideimg114.gif"
 
779
 ALT="\includegraphics{p/admitbox.eps}">
 
780
<BR>
 
781
</DIV>
 
782
<BR><HR>
 
783
<BR></TD>
 
784
<TD ALIGN="CENTER"><code>?</code></TD>
 
785
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>for premature termination.</TD>
 
786
</TR>
 
787
</TABLE></DIV></TD></TR>
 
788
</TABLE>
 
789
</DIV>
 
790
<BR>
 
791
<P>
 
792
 
 
793
<H2><A NAME="SECTION00732000000000000000">&#160;</A><A NAME="5598">&#160;</A><A NAME="5599">&#160;</A>
 
794
<BR>
 
795
5.3.2 The Process Tree
 
796
</H2>
 
797
 
 
798
<P>
 
799
TPSD is a bit different from the other existing TCM diagram editors
 
800
because in TPSD the layout (representation) is 
 
801
significant for the meaning of the diagram. So TPSD 
 
802
has to make sure that there is always a one-one relationship 
 
803
between each node instance and its representing shape instance. 
 
804
Therefore, duplicate shapes cannot be made in TPSD.
 
805
During editing, TPSD enforces that the graph is a set of undirected 
 
806
trees. It has the constraint that an edge can only be added to the 
 
807
graph when the resulting graph would not contain a cycle. 
 
808
This constraint is also implemented for the tree editors 
 
809
(chapter&nbsp;<A HREF="usersguidenode10.html#TreeEditing">8</A>).
 
810
 
 
811
<P>
 
812
In TPSD, the highest box in the drawing area represents the 
 
813
root of the tree, which is called the <B>main root</B>.<A NAME="5602">&#160;</A><A NAME="5603">&#160;</A>
 
814
This is the process node whose representing box has the smallest y-coordinate. 
 
815
The <B>main tree</B><A NAME="5605">&#160;</A> is the tree that is connected to the main root.
 
816
 
 
817
<P>
 
818
Each process node has a set of children that is ordered from left to right. 
 
819
The ordering of the children is determined by the position of
 
820
the shapes in the drawing area&nbsp;<A NAME="tex2html99"
 
821
 HREF="#foot5606"><SUP>5.1</SUP></A>.
 
822
 
 
823
<P>
 
824
The <B>Update Sequence Labels</B><A NAME="5608">&#160;</A> commands 
 
825
in a submenu of the TPSD View menu make it possible to show the process 
 
826
sequence numbers in the lower right corners of the boxes.
 
827
The <B>show no sequence labels</B> command makes all the sequence numbers invisible.
 
828
The <B>update action sequences</B> command draws the sequence numbers of all
 
829
actions. <B>Actions</B><A NAME="5612">&#160;</A> are the leaf nodes of the tree,
 
830
excluding the ``quit'' boxes. 
 
831
See figure&nbsp;<A HREF="usersguidenode7.html#ProcessExample">5.11</A> for a PSD with numbered actions.
 
832
The <B>update process sequences</B> command draws sequence numbers in all process nodes. 
 
833
Each parent receives a sequence number that is one higher than the highest 
 
834
number amongst its children.
 
835
Note that the sequence numbers are not updated automatically when you edit the diagram.
 
836
The labels are only recalculated and updated when you perform an update 
 
837
sequence labels command again. However, when you save the PSD to file,
 
838
updating sequence labels is called implicitly.
 
839
 
 
840
<P>
 
841
<BR>
 
842
<DIV ALIGN="CENTER"><A NAME="ProcessExample">&#160;</A><A NAME="5619">&#160;</A>
 
843
<TABLE WIDTH="50%">
 
844
<CAPTION><STRONG>Figure 5.11:</STRONG>
 
845
Example PSD with numbered actions.</CAPTION>
 
846
<TR><TD>
 
847
<DIV ALIGN="CENTER">
 
848
 
 
849
<!-- MATH: $\includegraphics{p/processexample.eps}$ -->
 
850
<IMG
 
851
 WIDTH="394" HEIGHT="347" ALIGN="BOTTOM" BORDER="0"
 
852
 SRC="usersguideimg115.gif"
 
853
 ALT="\includegraphics{p/processexample.eps}"></DIV></TD></TR>
 
854
</TABLE>
 
855
</DIV>
 
856
<BR>
 
857
<P>
 
858
 
 
859
<H2><A NAME="SECTION00733000000000000000">
 
860
5.3.3 Constraint Checking</A>
 
861
</H2>
 
862
 
 
863
<P>
 
864
The Check Diagram command in the Diagram menu checks that 
 
865
the tree is a syntactically correct JSD process structure diagram.
 
866
Because of the immediately enforced constraints, Check Diagram assumes
 
867
that there are no duplicate nodes and no cycles. 
 
868
In figure&nbsp;<A HREF="usersguidenode7.html#PSConstraints">5.12</A> all immediately and soft constraints are
 
869
summarized.
 
870
 
 
871
<P>
 
872
Note that, if the box of a child has a smaller y-coordinate (is higher) 
 
873
than its parent, then a warning is given because that is an indication 
 
874
of a poor layout.
 
875
 
 
876
<P>
 
877
<BR>
 
878
<DIV ALIGN="CENTER"><A NAME="PSConstraints">&#160;</A><A NAME="5627">&#160;</A>
 
879
<TABLE WIDTH="50%">
 
880
<CAPTION><STRONG>Figure 5.12:</STRONG>
 
881
Immediately checked and soft constraints on PSDs.</CAPTION>
 
882
<TR><TD>
 
883
<DIV ALIGN="CENTER">
 
884
 
 
885
<!-- MATH: $\includegraphics{p/PSconstraints.eps}$ -->
 
886
<IMG
 
887
 WIDTH="468" HEIGHT="649" ALIGN="BOTTOM" BORDER="0"
 
888
 SRC="usersguideimg116.gif"
 
889
 ALT="\includegraphics{p/PSconstraints.eps}"></DIV></TD></TR>
 
890
</TABLE>
 
891
</DIV>
 
892
<BR>
 
893
<P>
 
894
 
 
895
<H1><A NAME="SECTION00740000000000000000">&#160;</A>
 
896
<A NAME="5632">&#160;</A><A NAME="5633">&#160;</A> 
 
897
<A NAME="5634">&#160;</A>
 
898
<A NAME="5635">&#160;</A>
 
899
<BR>
 
900
5.4 The Recursive Process Graph Editor (TRPG)
 
901
</H1>
 
902
 
 
903
<P>
 
904
 
 
905
<H2><A NAME="SECTION00741000000000000000">
 
906
5.4.1 Nodes and Edges</A>
 
907
</H2>
 
908
 
 
909
<P>
 
910
See figure&nbsp;<A HREF="usersguidenode7.html#RPRepresentations">5.13</A> for the TRPG shapes and subjects.
 
911
There are two node types and three node shape types. Process graph roots 
 
912
have their name label written on top of a downwards pointing arrow. 
 
913
In general the process graph roots are named after the process 
 
914
graph document, but in upper case letters. By default a process graph
 
915
is named <TT>UNTITLED</TT>. Process graph nodes have two node shape representations.
 
916
They can be small unnamed circles or larger rounded boxes which can
 
917
contain a name label. Process graph nodes are connected by event edges.
 
918
See figure&nbsp;<A HREF="usersguidenode7.html#RPGExample">5.14</A> for an example recursive process graph.
 
919
 
 
920
<P>
 
921
<BR>
 
922
<DIV ALIGN="CENTER"><A NAME="RPRepresentations">&#160;</A><A NAME="5679">&#160;</A>
 
923
<TABLE WIDTH="50%">
 
924
<CAPTION><STRONG>Figure 5.13:</STRONG>
 
925
Recursive process graph nodes and edges.</CAPTION>
 
926
<TR><TD>
 
927
<DIV ALIGN="CENTER">
 
928
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
929
<TR><TD ALIGN="CENTER">
 
930
<BR><HR><P></P> 
 
931
<DIV ALIGN="CENTER">
 
932
 
 
933
<!-- MATH: $\includegraphics{p/arrowdot.eps}$ -->
 
934
<IMG
 
935
 WIDTH="18" HEIGHT="59" ALIGN="BOTTOM" BORDER="0"
 
936
 SRC="usersguideimg117.gif"
 
937
 ALT="\includegraphics{p/arrowdot.eps}">
 
938
<BR> </DIV>
 
939
<BR><HR>
 
940
<BR></TD>
 
941
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph root</TD>
 
942
<TD ALIGN="CENTER"><A NAME="5652">&#160;</A><A NAME="5653">&#160;</A>
 
943
<P>
 
944
<HR><P></P> 
 
945
<DIV ALIGN="CENTER">
 
946
 
 
947
<!-- MATH: $\includegraphics{p/dot.eps}$ -->
 
948
<IMG
 
949
 WIDTH="19" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
 
950
 SRC="usersguideimg118.gif"
 
951
 ALT="\includegraphics{p/dot.eps}">
 
952
<BR> </DIV>
 
953
<BR><HR>
 
954
<BR></TD>
 
955
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph node</TD>
 
956
</TR>
 
957
<TR><TD ALIGN="CENTER"><A NAME="5661">&#160;</A><A NAME="5662">&#160;</A>
 
958
<P>
 
959
<HR><P></P> 
 
960
<DIV ALIGN="CENTER">
 
961
 
 
962
<!-- MATH: $\includegraphics{p/rpgroundedbox.eps}$ -->
 
963
<IMG
 
964
 WIDTH="82" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"
 
965
 SRC="usersguideimg119.gif"
 
966
 ALT="\includegraphics{p/rpgroundedbox.eps}">
 
967
<BR> </DIV>
 
968
<BR><HR>
 
969
<BR></TD>
 
970
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph node</TD>
 
971
<TD ALIGN="CENTER">&nbsp;</TD>
 
972
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
973
</TR>
 
974
<TR><TD ALIGN="CENTER"><P>
 
975
<HR><P></P> 
 
976
<DIV ALIGN="CENTER">
 
977
 
 
978
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
 
979
<IMG
 
980
 WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
 
981
 SRC="usersguideimg59.gif"
 
982
 ALT="\includegraphics{p/arrow.eps}"></DIV>
 
983
<BR><HR>
 
984
<BR></TD>
 
985
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Event<A NAME="5676">&#160;</A><A NAME="5677">&#160;</A></TD>
 
986
<TD ALIGN="CENTER">&nbsp;</TD>
 
987
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
988
</TR>
 
989
<TR><TD ALIGN="CENTER"><P></TD>
 
990
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
991
<TD ALIGN="CENTER">&nbsp;</TD>
 
992
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
993
</TR>
 
994
</TABLE></DIV></TD></TR>
 
995
</TABLE>
 
996
</DIV>
 
997
<BR>
 
998
<P>
 
999
<BR>
 
1000
<DIV ALIGN="CENTER"><A NAME="RPGExample">&#160;</A><A NAME="5686">&#160;</A>
 
1001
<TABLE WIDTH="50%">
 
1002
<CAPTION><STRONG>Figure 5.14:</STRONG>
 
1003
Example recursive process graph.</CAPTION>
 
1004
<TR><TD>
 
1005
<DIV ALIGN="CENTER">
 
1006
 
 
1007
<!-- MATH: $\includegraphics{p/rpgexample.eps}$ -->
 
1008
<IMG
 
1009
 WIDTH="445" HEIGHT="341" ALIGN="BOTTOM" BORDER="0"
 
1010
 SRC="usersguideimg120.gif"
 
1011
 ALT="\includegraphics{p/rpgexample.eps}"></DIV></TD></TR>
 
1012
</TABLE>
 
1013
</DIV>
 
1014
<BR>
 
1015
<P>
 
1016
 
 
1017
<H2><A NAME="SECTION00742000000000000000">
 
1018
5.4.2 Constraint Checking</A>
 
1019
</H2>
 
1020
 
 
1021
<P>
 
1022
TRPG checks the immediately enforced and soft constraints
 
1023
that are summarized in figure&nbsp;<A HREF="usersguidenode7.html#RPConstraints">5.15</A>.
 
1024
 
 
1025
<P>
 
1026
<BR>
 
1027
<DIV ALIGN="CENTER"><A NAME="RPConstraints">&#160;</A><A NAME="5695">&#160;</A>
 
1028
<TABLE WIDTH="50%">
 
1029
<CAPTION><STRONG>Figure 5.15:</STRONG>
 
1030
Immediately checked and soft constraints on RPGs.</CAPTION>
 
1031
<TR><TD>
 
1032
<DIV ALIGN="CENTER">
 
1033
 
 
1034
<!-- MATH: $\includegraphics{p/RPconstraints.eps}$ -->
 
1035
<IMG
 
1036
 WIDTH="466" HEIGHT="287" ALIGN="BOTTOM" BORDER="0"
 
1037
 SRC="usersguideimg121.gif"
 
1038
 ALT="\includegraphics{p/RPconstraints.eps}"></DIV></TD></TR>
 
1039
</TABLE>
 
1040
</DIV>
 
1041
<BR>
 
1042
<P>
 
1043
 
 
1044
<H1><A NAME="SECTION00750000000000000000">&#160;</A>
 
1045
<A NAME="5700">&#160;</A><A NAME="5701">&#160;</A> 
 
1046
<A NAME="5702">&#160;</A>
 
1047
<BR>
 
1048
5.5 The Collaboration Diagram Editor (TCBD)
 
1049
</H1>
 
1050
 
 
1051
<P>
 
1052
 
 
1053
<H2><A NAME="SECTION00751000000000000000">
 
1054
5.5.1 Nodes and Edges</A>
 
1055
</H2>
 
1056
 
 
1057
<P>
 
1058
Collaboration diagrams describe the interactions among classes and 
 
1059
associations. These interactions are modeled as exchanges of messages 
 
1060
between classes through their associations.
 
1061
See figure&nbsp;<A HREF="usersguidenode7.html#CBRepresentations">5.16</A> for the shapes and subjects.
 
1062
 
 
1063
<P>
 
1064
<BR>
 
1065
<DIV ALIGN="CENTER"><A NAME="CBRepresentations">&#160;</A><A NAME="5773">&#160;</A>
 
1066
<TABLE WIDTH="50%">
 
1067
<CAPTION><STRONG>Figure 5.16:</STRONG>
 
1068
Collaboration diagram nodes and edges.</CAPTION>
 
1069
<TR><TD>
 
1070
<DIV ALIGN="CENTER">
 
1071
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
1072
<TR><TD ALIGN="CENTER">
 
1073
<BR><HR><P></P>
 
1074
<DIV ALIGN="CENTER">
 
1075
 
 
1076
<!-- MATH: $\includegraphics{p/stickman_class.eps}$ -->
 
1077
<IMG
 
1078
 WIDTH="33" HEIGHT="82" ALIGN="BOTTOM" BORDER="0"
 
1079
 SRC="usersguideimg122.gif"
 
1080
 ALT="\includegraphics{p/stickman_class.eps}">
 
1081
<BR> </DIV>
 
1082
<BR><HR>
 
1083
<BR></TD>
 
1084
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (Stickman/Class) <A NAME="5717">&#160;</A></TD>
 
1085
<TD ALIGN="CENTER">
 
1086
<BR><HR><P></P>
 
1087
<DIV ALIGN="CENTER">
 
1088
 
 
1089
<!-- MATH: $\includegraphics{p/stickman_object.eps}$ -->
 
1090
<IMG
 
1091
 WIDTH="33" HEIGHT="84" ALIGN="BOTTOM" BORDER="0"
 
1092
 SRC="usersguideimg123.gif"
 
1093
 ALT="\includegraphics{p/stickman_object.eps}">
 
1094
<BR> </DIV>
 
1095
<BR><HR>
 
1096
<BR></TD>
 
1097
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (Stickman/Object) <A NAME="5725">&#160;</A></TD>
 
1098
</TR>
 
1099
<TR><TD ALIGN="CENTER"><P>
 
1100
<HR><P></P>
 
1101
<DIV ALIGN="CENTER">
 
1102
 
 
1103
<!-- MATH: $\includegraphics{p/UCactorbox.eps}$ -->
 
1104
<IMG
 
1105
 WIDTH="106" HEIGHT="46" ALIGN="BOTTOM" BORDER="0"
 
1106
 SRC="usersguideimg124.gif"
 
1107
 ALT="\includegraphics{p/UCactorbox.eps}">
 
1108
<BR> </DIV>
 
1109
<BR><HR>
 
1110
<BR></TD>
 
1111
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (ClassBox) <A NAME="5733">&#160;</A></TD>
 
1112
<TD ALIGN="CENTER">
 
1113
<BR><HR><P></P>
 
1114
<DIV ALIGN="CENTER">
 
1115
 
 
1116
<!-- MATH: $\includegraphics{p/actor_objectbox.eps}$ -->
 
1117
<IMG
 
1118
 WIDTH="111" HEIGHT="51" ALIGN="BOTTOM" BORDER="0"
 
1119
 SRC="usersguideimg125.gif"
 
1120
 ALT="\includegraphics{p/actor_objectbox.eps}">
 
1121
<BR> </DIV>
 
1122
<BR><HR>
 
1123
<BR></TD>
 
1124
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (ObjectBox) <A NAME="5741">&#160;</A></TD>
 
1125
</TR>
 
1126
<TR><TD ALIGN="CENTER"><P>
 
1127
<HR><P></P>
 
1128
<DIV ALIGN="CENTER">
 
1129
 
 
1130
<!-- MATH: $\includegraphics{p/box.eps}$ -->
 
1131
<IMG
 
1132
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
1133
 SRC="usersguideimg32.gif"
 
1134
 ALT="\includegraphics{p/box.eps}">
 
1135
<BR> </DIV>
 
1136
<BR><HR>
 
1137
<BR></TD>
 
1138
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Class <A NAME="5749">&#160;</A></TD>
 
1139
<TD ALIGN="CENTER">
 
1140
<BR><HR><P></P> 
 
1141
<DIV ALIGN="CENTER">
 
1142
 
 
1143
<!-- MATH: $\includegraphics{p/objbox.eps}$ -->
 
1144
<IMG
 
1145
 WIDTH="88" HEIGHT="44" ALIGN="BOTTOM" BORDER="0"
 
1146
 SRC="usersguideimg91.gif"
 
1147
 ALT="\includegraphics{p/objbox.eps}">
 
1148
<BR> </DIV>
 
1149
<BR><HR>
 
1150
<BR></TD>
 
1151
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Object <A NAME="5757">&#160;</A></TD>
 
1152
</TR>
 
1153
<TR><TD ALIGN="CENTER"><P>
 
1154
<HR><P></P> 
 
1155
<DIV ALIGN="CENTER">
 
1156
 
 
1157
<!-- MATH: $\includegraphics{p/CBclasslink.eps}$ -->
 
1158
<IMG
 
1159
 WIDTH="125" HEIGHT="41" ALIGN="BOTTOM" BORDER="0"
 
1160
 SRC="usersguideimg126.gif"
 
1161
 ALT="\includegraphics{p/CBclasslink.eps}"></DIV>
 
1162
<BR><HR>
 
1163
<BR></TD>
 
1164
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Class link <A NAME="5764">&#160;</A></TD>
 
1165
<TD ALIGN="CENTER">
 
1166
<BR><HR><P></P> 
 
1167
<DIV ALIGN="CENTER">
 
1168
 
 
1169
<!-- MATH: $\includegraphics{p/CBobjectlink.eps}$ -->
 
1170
<IMG
 
1171
 WIDTH="125" HEIGHT="41" ALIGN="BOTTOM" BORDER="0"
 
1172
 SRC="usersguideimg127.gif"
 
1173
 ALT="\includegraphics{p/CBobjectlink.eps}"></DIV>
 
1174
<BR><HR>
 
1175
<BR></TD>
 
1176
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Object link<A NAME="5771">&#160;</A></TD>
 
1177
</TR>
 
1178
<TR><TD ALIGN="CENTER"><P></TD>
 
1179
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
1180
<TD ALIGN="CENTER">&nbsp;</TD>
 
1181
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
1182
</TR>
 
1183
</TABLE></DIV></TD></TR>
 
1184
</TABLE>
 
1185
</DIV>
 
1186
<BR>
 
1187
<P>
 
1188
 
 
1189
<H2><A NAME="SECTION00752000000000000000">
 
1190
5.5.2 Interactions</A>
 
1191
</H2>
 
1192
 
 
1193
<P>
 
1194
Interactions are drawn as any other line type in TCM.
 
1195
In addition to the standard line types, interactions also have an arbitrary number 
 
1196
of message labels located at the opposite side of the name area of the link.
 
1197
 
 
1198
<P>
 
1199
On creation of an interaction an initial dummy message will be created, consisting of a 
 
1200
default message text ("<code>edit this</code>") followed by a message arrow.
 
1201
See figure&nbsp;<A HREF="usersguidenode7.html#DefaultCBDInteraction">5.17</A> for an example of a default interaction.
 
1202
 
 
1203
<P>
 
1204
<BR>
 
1205
<DIV ALIGN="CENTER"><A NAME="DefaultCBDInteraction">&#160;</A><A NAME="5782">&#160;</A>
 
1206
<TABLE WIDTH="50%">
 
1207
<CAPTION><STRONG>Figure 5.17:</STRONG>
 
1208
Default interaction.</CAPTION>
 
1209
<TR><TD>
 
1210
<DIV ALIGN="CENTER">
 
1211
 
 
1212
<!-- MATH: $\includegraphics{p/interactionexample.eps}$ -->
 
1213
<IMG
 
1214
 WIDTH="301" HEIGHT="47" ALIGN="BOTTOM" BORDER="0"
 
1215
 SRC="usersguideimg128.gif"
 
1216
 ALT="\includegraphics{p/interactionexample.eps}"></DIV></TD></TR>
 
1217
</TABLE>
 
1218
</DIV>
 
1219
<BR>
 
1220
<P>
 
1221
The order of the interaction may be described with a sequence of numbers, 
 
1222
usually starting with number 1.
 
1223
 
 
1224
<P>
 
1225
The message text can be edited as usual. 
 
1226
The message direction can be changed either by:
 
1227
 
 
1228
<P>
 
1229
<UL>
 
1230
<LI>clicking on it with the left-button: this will toggle the message direction.
 
1231
<LI>by adding a "direction prefix" add the end of the message text :
 
1232
 
 
1233
<P>
 
1234
<UL>
 
1235
<LI>'<code>&gt;</code>' : Add message direction from "left shape" towards "right shape".
 
1236
<LI>'<code>&lt;</code>' : Add message direction from "right shape" towards "left shape".
 
1237
<LI>'<code>^</code>' : Add message direction from "upper shape" towards "down shape".
 
1238
<LI>'<code>v</code>' : Add message direction from "down shape" towards "upper shape".
 
1239
</UL>
 
1240
<P>
 
1241
In this way message directions can be added easy without having to switch 
 
1242
between keyboard and mouse alternately.
 
1243
E.g. adding two messages to an interaction: <BR>
 
1244
<code>"1.2: create() &gt; [CR] 1.3: respond() &lt;"</code> <BR>
 
1245
will result in:
 
1246
 
 
1247
<P>
 
1248
<code>1.2: create() </code>  
 
1249
<!-- MATH: $\rightarrow$ -->
 
1250
<IMG
 
1251
 WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
 
1252
 SRC="usersguideimg129.gif"
 
1253
 ALT="$\rightarrow$">
 
1254
<BR>
 
1255
<code>1.3: respond() </code> 
 
1256
<!-- MATH: $\leftarrow$ -->
 
1257
<IMG
 
1258
 WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
 
1259
 SRC="usersguideimg130.gif"
 
1260
 ALT="$\leftarrow$">
 
1261
 
 
1262
<P>
 
1263
</UL>
 
1264
<P>
 
1265
 
 
1266
<H2><A NAME="SECTION00753000000000000000">
 
1267
5.5.3 Constraint Checking</A>
 
1268
</H2>
 
1269
 
 
1270
<P>
 
1271
TCBD checks the immediately enforced and soft constraints
 
1272
that are summarized in figure&nbsp;<A HREF="usersguidenode7.html#CBConstraints">5.18</A>.
 
1273
 
 
1274
<P>
 
1275
<BR>
 
1276
<DIV ALIGN="CENTER"><A NAME="CBConstraints">&#160;</A><A NAME="5802">&#160;</A>
 
1277
<TABLE WIDTH="50%">
 
1278
<CAPTION><STRONG>Figure 5.18:</STRONG>
 
1279
Immediately checked and soft constraints on CBDs.</CAPTION>
 
1280
<TR><TD>
 
1281
<DIV ALIGN="CENTER">
 
1282
 
 
1283
<!-- MATH: $\includegraphics{p/CBconstraints.eps}$ -->
 
1284
<IMG
 
1285
 WIDTH="534" HEIGHT="109" ALIGN="BOTTOM" BORDER="0"
 
1286
 SRC="usersguideimg131.gif"
 
1287
 ALT="\includegraphics{p/CBconstraints.eps}"></DIV></TD></TR>
 
1288
</TABLE>
 
1289
</DIV>
 
1290
<BR>
 
1291
<P>
 
1292
 
 
1293
<H1><A NAME="SECTION00760000000000000000">&#160;</A>
 
1294
<A NAME="5807">&#160;</A><A NAME="5808">&#160;</A> 
 
1295
<A NAME="5809">&#160;</A>
 
1296
<BR>
 
1297
5.6 The StateChart Diagram Editor (TSCD)
 
1298
</H1>
 
1299
 
 
1300
<P>
 
1301
Statechart diagrams describe all the possible states a particular object 
 
1302
can get into and how the object's state changes as a result of events 
 
1303
that reach the object.
 
1304
 
 
1305
<P>
 
1306
In contrast to most editors, TSCD starts in the hierarchical document mode.
 
1307
To select a node, click near any visible part in the node, for example
 
1308
on the inner side of the border.
 
1309
 
 
1310
<P>
 
1311
 
 
1312
<H2><A NAME="SECTION00761000000000000000">
 
1313
5.6.1 Nodes and Edges</A>
 
1314
</H2>
 
1315
 
 
1316
<P>
 
1317
See figure&nbsp;<A HREF="usersguidenode7.html#SCRepresentations">5.19</A> for the shapes and subjects.
 
1318
 
 
1319
<P>
 
1320
<BR>
 
1321
<DIV ALIGN="CENTER"><A NAME="SCRepresentations">&#160;</A><A NAME="5897">&#160;</A>
 
1322
<TABLE WIDTH="50%">
 
1323
<CAPTION><STRONG>Figure 5.19:</STRONG>
 
1324
Statechart diagram nodes and edges.</CAPTION>
 
1325
<TR><TD>
 
1326
<DIV ALIGN="CENTER">
 
1327
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
 
1328
<TR><TD ALIGN="CENTER"><P>
 
1329
<HR><P></P>
 
1330
<DIV ALIGN="CENTER">
 
1331
 
 
1332
<!-- MATH: $\includegraphics{p/roundedbox.eps}$ -->
 
1333
<IMG
 
1334
 WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
1335
 SRC="usersguideimg38.gif"
 
1336
 ALT="\includegraphics{p/roundedbox.eps}">
 
1337
<BR> </DIV>
 
1338
<BR><HR>
 
1339
<BR></TD>
 
1340
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>State<A NAME="5824">&#160;</A></TD>
 
1341
<TD ALIGN="CENTER">
 
1342
<BR><HR><P></P>
 
1343
<DIV ALIGN="CENTER">
 
1344
 
 
1345
<!-- MATH: $\includegraphics{p/minidiamond.eps}$ -->
 
1346
<IMG
 
1347
 WIDTH="20" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
 
1348
 SRC="usersguideimg107.gif"
 
1349
 ALT="\includegraphics{p/minidiamond.eps}">
 
1350
<BR> </DIV>
 
1351
<BR><HR>
 
1352
<BR></TD>
 
1353
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision pseudostate<A NAME="5832">&#160;</A><A NAME="5833">&#160;</A></TD>
 
1354
</TR>
 
1355
<TR><TD ALIGN="CENTER"><P>
 
1356
<HR><P></P>
 
1357
<DIV ALIGN="CENTER">
 
1358
 
 
1359
<!-- MATH: $\includegraphics{p/roundedfolderbox.eps}$ -->
 
1360
<IMG
 
1361
 WIDTH="224" HEIGHT="135" ALIGN="BOTTOM" BORDER="0"
 
1362
 SRC="usersguideimg132.gif"
 
1363
 ALT="\includegraphics{p/roundedfolderbox.eps}">
 
1364
<BR> </DIV>
 
1365
<BR><HR>
 
1366
<BR></TD>
 
1367
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>And-state <A NAME="5841">&#160;</A><A NAME="5842">&#160;</A></TD>
 
1368
<TD ALIGN="CENTER">
 
1369
<BR><HR><P></P>
 
1370
<DIV ALIGN="CENTER">
 
1371
 
 
1372
<!-- MATH: $\includegraphics{p/blackdot.eps}$ -->
 
1373
<IMG
 
1374
 WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
 
1375
 SRC="usersguideimg37.gif"
 
1376
 ALT="\includegraphics{p/blackdot.eps}">
 
1377
<BR> </DIV>
 
1378
<BR><HR>
 
1379
<BR></TD>
 
1380
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Default state<A NAME="5850">&#160;</A><A NAME="5851">&#160;</A></TD>
 
1381
</TR>
 
1382
<TR><TD ALIGN="CENTER"><P>
 
1383
<HR><P></P>
 
1384
<DIV ALIGN="CENTER">
 
1385
 
 
1386
<!-- MATH: $\includegraphics{p/solidhorizontalbar.eps}$ -->
 
1387
 
 
1388
<BR> </DIV>
 
1389
<BR><HR>
 
1390
<BR></TD>
 
1391
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Horizontal synchronization pseudostate <A NAME="5859">&#160;</A>
 
1392
<A NAME="5860">&#160;</A> 
 
1393
<A NAME="5861">&#160;</A></TD>
 
1394
<TD ALIGN="CENTER">
 
1395
<BR><HR><P></P>
 
1396
<DIV ALIGN="CENTER">
 
1397
 
 
1398
<!-- MATH: $\includegraphics{p/solidverticalbar.eps}$ -->
 
1399
<IMG
 
1400
 WIDTH="4" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
 
1401
 SRC="usersguideimg45.gif"
 
1402
 ALT="\includegraphics{p/solidverticalbar.eps}">
 
1403
<BR> </DIV>
 
1404
<BR><HR>
 
1405
<BR></TD>
 
1406
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Vertical synchronization pseudostate <A NAME="5869">&#160;</A>
 
1407
<A NAME="5870">&#160;</A>
 
1408
<A NAME="5871">&#160;</A></TD>
 
1409
</TR>
 
1410
<TR><TD ALIGN="CENTER"><P>
 
1411
<HR><P></P>
 
1412
<DIV ALIGN="CENTER">
 
1413
 
 
1414
<!-- MATH: $\includegraphics{p/blackdotellipse.eps}$ -->
 
1415
<IMG
 
1416
 WIDTH="24" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
 
1417
 SRC="usersguideimg44.gif"
 
1418
 ALT="\includegraphics{p/blackdotellipse.eps}">
 
1419
<BR> </DIV>
 
1420
<BR><HR>
 
1421
<BR></TD>
 
1422
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Final state<A NAME="5879">&#160;</A><A NAME="5880">&#160;</A></TD>
 
1423
<TD ALIGN="CENTER">&nbsp;</TD>
 
1424
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
1425
</TR>
 
1426
<TR><TD ALIGN="CENTER"><P>
 
1427
<HR><P></P> 
 
1428
<DIV ALIGN="CENTER">
 
1429
 
 
1430
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
 
1431
<IMG
 
1432
 WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
 
1433
 SRC="usersguideimg59.gif"
 
1434
 ALT="\includegraphics{p/arrow.eps}"></DIV>
 
1435
<BR><HR>
 
1436
<BR></TD>
 
1437
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Transition <A NAME="5887">&#160;</A></TD>
 
1438
<TD ALIGN="CENTER">
 
1439
<BR><HR><P></P> 
 
1440
<DIV ALIGN="CENTER">
 
1441
 
 
1442
<!-- MATH: $\includegraphics{p/dashedemptyline.eps}$ -->
 
1443
<IMG
 
1444
 WIDTH="81" HEIGHT="1" ALIGN="BOTTOM" BORDER="0"
 
1445
 SRC="usersguideimg133.gif"
 
1446
 ALT="\includegraphics{p/dashedemptyline.eps}"></DIV>
 
1447
<BR><HR>
 
1448
<BR></TD>
 
1449
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>And-line <A NAME="5894">&#160;</A><A NAME="5895">&#160;</A></TD>
 
1450
</TR>
 
1451
<TR><TD ALIGN="CENTER"><P></TD>
 
1452
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
1453
<TD ALIGN="CENTER">&nbsp;</TD>
 
1454
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>&nbsp;</TD>
 
1455
</TR>
 
1456
</TABLE></DIV></TD></TR>
 
1457
</TABLE>
 
1458
</DIV>
 
1459
<BR>
 
1460
<P>
 
1461
 
 
1462
<H2><A NAME="SECTION00762000000000000000">&#160;</A> <A NAME="5902">&#160;</A><A NAME="5903">&#160;</A>
 
1463
<BR>
 
1464
5.6.2 And-states
 
1465
</H2>
 
1466
 
 
1467
<P>
 
1468
Drawing an <I>and-</I>state requires special attention.
 
1469
An <I>and-</I>state is divided into substates by dashed lines.
 
1470
You can draw <I>and</I> lines using the middle mouse button,
 
1471
like you would draw edges between different nodes.
 
1472
TSCD includes a feature that automatically adds intermediary points to the and 
 
1473
line<A NAME="tex2html109"
 
1474
 HREF="#foot5907"><SUP>5.2</SUP></A>
 
1475
Unfortunately, TSCD is not able to move or resize the <I>and</I> line with its 
 
1476
intermediary points automatically
 
1477
when you move or resize the <I>and-</I>state node.
 
1478
To move an <I>and-</I>state, always also select the <I>and</I> lines.
 
1479
After resizing an <I>and-</I>state,
 
1480
you have to readjust the intermediary points in the <I>and</I> lines.
 
1481
 
 
1482
<P>
 
1483
See figure&nbsp;<A HREF="usersguidenode7.html#SCExample">5.20</A> for an example diagram with an <I>and-</I>state.
 
1484
 
 
1485
<P>
 
1486
<BR>
 
1487
<DIV ALIGN="CENTER"><A NAME="SCExample">&#160;</A><A NAME="5931">&#160;</A>
 
1488
<TABLE WIDTH="50%">
 
1489
<CAPTION><STRONG>Figure 5.20:</STRONG>
 
1490
SCD with an <I>and-</I>state and <I>and</I> line.</CAPTION>
 
1491
<TR><TD>
 
1492
<DIV ALIGN="CENTER">
 
1493
 
 
1494
<!-- MATH: $\includegraphics{p/statechart.eps}$ -->
 
1495
<IMG
 
1496
 WIDTH="519" HEIGHT="278" ALIGN="BOTTOM" BORDER="0"
 
1497
 SRC="usersguideimg134.gif"
 
1498
 ALT="\includegraphics{p/statechart.eps}"></DIV></TD></TR>
 
1499
</TABLE>
 
1500
</DIV>
 
1501
<BR>
 
1502
<P>
 
1503
<BR><HR><H4>Footnotes</H4>
 
1504
<DL>
 
1505
<DT><A NAME="foot5606">... area&nbsp;</A><A NAME="foot5606"
 
1506
 HREF="usersguidenode7.html#tex2html99"><SUP>5.1</SUP></A>
 
1507
<DD>More precisely: the order
 
1508
of the children is determined by the x-coordinates of the end points on 
 
1509
the parent side of the edges between the parent and
 
1510
the children. This sounds a bit complex, but this includes the common left
 
1511
to right ordering with straight edges.
 
1512
 
 
1513
<DT><A NAME="foot5907">...
 
1514
line</A><A NAME="foot5907"
 
1515
 HREF="usersguidenode7.html#tex2html109"><SUP>5.2</SUP></A>
 
1516
<DD>This
 
1517
        is needed because a line from a node to itself always has to have at 
 
1518
least two intermediary points.
 
1519
        The intermediary points help in determining where on the border the and 
 
1520
line needs to be attached.
 
1521
 
 
1522
</DL><HR>
 
1523
<!--Navigation Panel-->
 
1524
<A NAME="tex2html927"
 
1525
 HREF="usersguidenode8.html">
 
1526
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A> 
 
1527
<A NAME="tex2html923"
 
1528
 HREF="User.html">
 
1529
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A> 
 
1530
<A NAME="tex2html917"
 
1531
 HREF="usersguidenode6.html">
 
1532
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> 
 
1533
<A NAME="tex2html925"
 
1534
 HREF="usersguidenode1.html">
 
1535
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A> 
 
1536
<A NAME="tex2html926"
 
1537
 HREF="usersguidenode15.html">
 
1538
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A> 
 
1539
<BR>
 
1540
<B> Next:</B> <A NAME="tex2html928"
 
1541
 HREF="usersguidenode8.html">6. Architectural View Editors</A>
 
1542
<B> Up:</B> <A NAME="tex2html924"
 
1543
 HREF="User.html">Toolkit for Conceptual Modeling</A>
 
1544
<B> Previous:</B> <A NAME="tex2html918"
 
1545
 HREF="usersguidenode6.html">4. Data View Editors</A>
 
1546
<!--End of Navigation Panel-->
 
1547
<ADDRESS>
 
1548
<I>Henk van de Zandschulp</I>
 
1549
<BR><I>2003-01-20</I>
 
1550
</ADDRESS>
 
1551
</BODY>
 
1552
</HTML>