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 -->
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">
22
<!--Navigation Panel-->
24
HREF="usersguidenode8.html">
25
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
28
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
30
HREF="usersguidenode6.html">
31
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A>
33
HREF="usersguidenode1.html">
34
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A>
36
HREF="usersguidenode15.html">
37
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A>
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>
47
<!--End of Navigation Panel-->
48
<!--Table of Child-Links-->
49
<A NAME="CHILD_LINKS"><strong>Subsections</strong></A>
51
<LI><A NAME="tex2html929"
52
HREF="usersguidenode7.html#SECTION00710000000000000000">5.1 The State Transition Diagram Editor (TSTD)</A>
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>
63
<LI><A NAME="tex2html934"
64
HREF="usersguidenode7.html#SECTION00720000000000000000">5.2 The Activity Diagram Editor (TATD)</A>
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>
75
<LI><A NAME="tex2html939"
76
HREF="usersguidenode7.html#SECTION00730000000000000000">5.3 The Process Structure Diagram Editor (TPSD)</A>
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>
85
<LI><A NAME="tex2html943"
86
HREF="usersguidenode7.html#SECTION00740000000000000000">5.4 The Recursive Process Graph Editor (TRPG)</A>
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>
93
<LI><A NAME="tex2html946"
94
HREF="usersguidenode7.html#SECTION00750000000000000000">5.5 The Collaboration Diagram Editor (TCBD)</A>
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>
103
<LI><A NAME="tex2html950"
104
HREF="usersguidenode7.html#SECTION00760000000000000000">5.6 The StateChart Diagram Editor (TSCD)</A>
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>
111
<!--End of Table of Child-Links-->
114
<H1><A NAME="SECTION00700000000000000000"> </A> <A NAME="BehaviorViewEditing"> </A><A NAME="5297"> </A>
116
5. Behavior View Editors
120
Behavior view editors manipulate various kind of diagrams to
121
represent system or object behavior.
125
<H1><A NAME="SECTION00710000000000000000"> </A>
126
<A NAME="5299"> </A><A NAME="5300"> </A>
127
<A NAME="5301"> </A>
129
5.1 The State Transition Diagram Editor (TSTD)
134
<H2><A NAME="SECTION00711000000000000000">
135
5.1.1 Nodes and Edges</A>
139
TSTD follows the notational convention of Mealy machines.
140
In short, a <B>Mealy machine</B><A NAME="5304"> </A>
141
is a finite state machine in which each transition can have one
142
or more actions. See figure <A HREF="usersguidenode7.html#STRepresentations">5.1</A> for the
147
<DIV ALIGN="CENTER"><A NAME="STRepresentations"> </A><A NAME="5345"> </A>
149
<CAPTION><STRONG>Figure 5.1:</STRONG>
150
State transition diagram nodes and edges.</CAPTION>
153
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
154
<TR><TD ALIGN="CENTER">
158
<!-- MATH: $\includegraphics{p/arrowbox.eps}$ -->
160
WIDTH="117" HEIGHT="86" ALIGN="BOTTOM" BORDER="0"
161
SRC="usersguideimg102.gif"
162
ALT="\includegraphics{p/arrowbox.eps}">
166
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Initial state<A NAME="5318"> </A><A NAME="5319"> </A></TD>
171
<!-- MATH: $\includegraphics{p/box.eps}$ -->
173
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
174
SRC="usersguideimg32.gif"
175
ALT="\includegraphics{p/box.eps}">
179
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>State<A NAME="5327"> </A></TD>
181
<TR><TD ALIGN="CENTER"><P>
185
<!-- MATH: $\includegraphics{p/hexagon.eps}$ -->
187
WIDTH="116" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
188
SRC="usersguideimg42.gif"
189
ALT="\includegraphics{p/hexagon.eps}">
193
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision point<A NAME="5335"> </A></TD>
194
<TD ALIGN="CENTER"> </TD>
195
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
197
<TR><TD ALIGN="CENTER"><A NAME="5336"> </A>
202
<!-- MATH: $\includegraphics{p/transition.eps}$ -->
204
WIDTH="84" HEIGHT="70" ALIGN="BOTTOM" BORDER="0"
205
SRC="usersguideimg103.gif"
206
ALT="\includegraphics{p/transition.eps}"></DIV>
209
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Transition<A NAME="5343"> </A></TD>
210
<TD ALIGN="CENTER"> </TD>
211
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
213
</TABLE></DIV></TD></TR>
219
<H2><A NAME="SECTION00712000000000000000">
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"> </A>
228
<B>Non-deterministic</B> state transition diagrams are permitted.
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>.
247
<H2><A NAME="SECTION00713000000000000000"> </A><A NAME="5359"> </A><A NAME="5360"> </A><A NAME="5361"> </A>
249
5.1.3 Transitions, Events and Actions
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"> </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 <A HREF="usersguidenode7.html#DefaultSTDSeparators">5.2</A> for the
264
two default positions.
268
<DIV ALIGN="CENTER"><A NAME="DefaultSTDSeparators"> </A><A NAME="5368"> </A>
270
<CAPTION><STRONG>Figure 5.2:</STRONG>
271
Default STD separator positions.</CAPTION>
275
<!-- MATH: $\includegraphics{p/defaultseparators.eps}$ -->
277
WIDTH="314" HEIGHT="209" ALIGN="BOTTOM" BORDER="0"
278
SRC="usersguideimg104.gif"
279
ALT="\includegraphics{p/defaultseparators.eps}"></DIV></TD></TR>
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.
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 <A HREF="usersguidenode7.html#STDEventAndActions">5.3</A> for an example
297
diagram with actions and events.
301
<DIV ALIGN="CENTER"><A NAME="STDEventAndActions"> </A><A NAME="5376"> </A>
303
<CAPTION><STRONG>Figure 5.3:</STRONG>
304
STD with events and actions.</CAPTION>
308
<!-- MATH: $\includegraphics{p/stdeventactions.eps}$ -->
310
WIDTH="339" HEIGHT="841" ALIGN="BOTTOM" BORDER="0"
311
SRC="usersguideimg105.gif"
312
ALT="\includegraphics{p/stdeventactions.eps}"></DIV></TD></TR>
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.
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.
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.
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.
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.
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 <A HREF="usersguidenode7.html#STDEventAndActions">5.3</A>.
357
<H2><A NAME="SECTION00714000000000000000">
358
5.1.4 Constraint Checking</A>
362
TSTD checks the following constraints that are summarized in
363
figure <A HREF="usersguidenode7.html#STConstraints">5.4</A>.
367
<DIV ALIGN="CENTER"><A NAME="STConstraints"> </A><A NAME="5392"> </A>
369
<CAPTION><STRONG>Figure 5.4:</STRONG>
370
Immediately checked and soft constraints on STDs.</CAPTION>
374
<!-- MATH: $\includegraphics{p/STconstraints.eps}$ -->
376
WIDTH="584" HEIGHT="403" ALIGN="BOTTOM" BORDER="0"
377
SRC="usersguideimg106.gif"
378
ALT="\includegraphics{p/STconstraints.eps}"></DIV></TD></TR>
384
<H1><A NAME="SECTION00720000000000000000"> </A>
385
<A NAME="5397"> </A><A NAME="5398"> </A>
386
<A NAME="5399"> </A>
388
5.2 The Activity Diagram Editor (TATD)
393
<H2><A NAME="SECTION00721000000000000000">
394
5.2.1 Nodes and Edges</A>
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 <A HREF="usersguidenode7.html#ATRepresentations">5.5</A> for the shapes and subjects.
406
<DIV ALIGN="CENTER"><A NAME="ATRepresentations"> </A><A NAME="5477"> </A>
408
<CAPTION><STRONG>Figure 5.5:</STRONG>
409
Activity diagram nodes and edges.</CAPTION>
412
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
413
<TR><TD ALIGN="CENTER">
417
<!-- MATH: $\includegraphics{p/ellipsedbox.eps}$ -->
419
WIDTH="88" HEIGHT="44" ALIGN="BOTTOM" BORDER="0"
420
SRC="usersguideimg43.gif"
421
ALT="\includegraphics{p/ellipsedbox.eps}">
425
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Action state<A NAME="5414"> </A><A NAME="5415"> </A></TD>
430
<!-- MATH: $\includegraphics{p/roundedbox.eps}$ -->
432
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
433
SRC="usersguideimg38.gif"
434
ALT="\includegraphics{p/roundedbox.eps}">
438
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Inactive state<A NAME="5423"> </A><A NAME="5424"> </A></TD>
440
<TR><TD ALIGN="CENTER"><P>
444
<!-- MATH: $\includegraphics{p/solidhorizontalbar.eps}$ -->
449
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Horizontal synchronization bar <A NAME="5432"> </A>
450
<A NAME="5433"> </A></TD>
455
<!-- MATH: $\includegraphics{p/solidverticalbar.eps}$ -->
457
WIDTH="4" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
458
SRC="usersguideimg45.gif"
459
ALT="\includegraphics{p/solidverticalbar.eps}">
463
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Vertical synchronization bar <A NAME="5441"> </A>
464
<A NAME="5442"> </A></TD>
466
<TR><TD ALIGN="CENTER"><P>
470
<!-- MATH: $\includegraphics{p/blackdot.eps}$ -->
472
WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
473
SRC="usersguideimg37.gif"
474
ALT="\includegraphics{p/blackdot.eps}">
478
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Start state<A NAME="5450"> </A><A NAME="5451"> </A></TD>
483
<!-- MATH: $\includegraphics{p/blackdotellipse.eps}$ -->
485
WIDTH="24" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
486
SRC="usersguideimg44.gif"
487
ALT="\includegraphics{p/blackdotellipse.eps}">
491
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>End state<A NAME="5459"> </A><A NAME="5460"> </A></TD>
493
<TR><TD ALIGN="CENTER"><P>
497
<!-- MATH: $\includegraphics{p/minidiamond.eps}$ -->
499
WIDTH="20" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
500
SRC="usersguideimg107.gif"
501
ALT="\includegraphics{p/minidiamond.eps}">
505
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision <A NAME="5468"> </A></TD>
506
<TD ALIGN="CENTER"> </TD>
507
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
509
<TR><TD ALIGN="CENTER"><P>
513
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
515
WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
516
SRC="usersguideimg59.gif"
517
ALT="\includegraphics{p/arrow.eps}"></DIV>
520
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Control flow<A NAME="5475"> </A></TD>
521
<TD ALIGN="CENTER"> </TD>
522
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
524
</TABLE></DIV></TD></TR>
530
<H2><A NAME="SECTION00722000000000000000">
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.
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 <A HREF="usersguidenode7.html#ATDecisionMerge">5.6</A> for an example of decision and merge.
548
<DIV ALIGN="CENTER"><A NAME="ATDecisionMerge"> </A><A NAME="5490"> </A>
550
<CAPTION><STRONG>Figure 5.6:</STRONG>
551
Example decision and merge.</CAPTION>
555
<!-- MATH: $\includegraphics{p/decisionmerge.eps}$ -->
557
WIDTH="516" HEIGHT="141" ALIGN="BOTTOM" BORDER="0"
558
SRC="usersguideimg108.gif"
559
ALT="\includegraphics{p/decisionmerge.eps}"></DIV></TD></TR>
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"> </A><A NAME="5495"> </A>
572
See figure <A HREF="usersguidenode7.html#ATDExample">5.7</A> for an example diagram with horizontal
573
synchronization bars.
577
<DIV ALIGN="CENTER"><A NAME="ATDExample"> </A><A NAME="5500"> </A>
579
<CAPTION><STRONG>Figure 5.7:</STRONG>
580
ATD with action states, synchronization bars and a decision.</CAPTION>
584
<!-- MATH: $\includegraphics{p/atdexample.eps}$ -->
586
WIDTH="599" HEIGHT="645" ALIGN="BOTTOM" BORDER="0"
587
SRC="usersguideimg109.gif"
588
ALT="\includegraphics{p/atdexample.eps}"></DIV></TD></TR>
594
<H2><A NAME="SECTION00723000000000000000"> </A><A NAME="5505"> </A>
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 <A HREF="usersguidenode7.html#ATConstraints">5.8</A>.
604
<H2><A NAME="SECTION00724000000000000000">
605
5.2.4 Constraint Checking</A>
609
TATD checks the following constraints that are summarized in
610
figure <A HREF="usersguidenode7.html#ATConstraints">5.8</A>.
614
<DIV ALIGN="CENTER"><A NAME="ATConstraints"> </A><A NAME="5512"> </A>
616
<CAPTION><STRONG>Figure 5.8:</STRONG>
617
Immediately checked and soft constraints on ATDs.</CAPTION>
621
<!-- MATH: $\includegraphics{p/ATconstraints.eps}$ -->
623
WIDTH="600" HEIGHT="643" ALIGN="BOTTOM" BORDER="0"
624
SRC="usersguideimg110.gif"
625
ALT="\includegraphics{p/ATconstraints.eps}"></DIV></TD></TR>
631
<H1><A NAME="SECTION00730000000000000000"> </A>
632
<A NAME="5517"> </A><A NAME="5518"> </A>
633
<A NAME="5519"> </A>
635
5.3 The Process Structure Diagram Editor (TPSD)
640
<H2><A NAME="SECTION00731000000000000000"> </A><A NAME="5521"> </A><A NAME="5522"> </A>
642
5.3.1 Nodes and Edges
644
TPSD has just one special type of node, called Process and
645
one type of edge called Empty edge (see figure <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 <A HREF="usersguidenode7.html#PSOperators">5.10</A> for the different operators.
654
<DIV ALIGN="CENTER"><A NAME="PSRepresentations"> </A><A NAME="5545"> </A>
656
<CAPTION><STRONG>Figure 5.9:</STRONG>
657
Process structure diagram nodes and edges.</CAPTION>
660
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
661
<TR><TD ALIGN="CENTER">
665
<!-- MATH: $\includegraphics{p/box.eps}$ -->
667
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
668
SRC="usersguideimg32.gif"
669
ALT="\includegraphics{p/box.eps}"></DIV>
672
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process<A NAME="5536"> </A></TD>
677
<!-- MATH: $\includegraphics{p/predefinedline.eps}$ -->
679
WIDTH="93" HEIGHT="1" ALIGN="BOTTOM" BORDER="0"
680
SRC="usersguideimg68.gif"
681
ALT="\includegraphics{p/predefinedline.eps}"></DIV>
684
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Empty edge<A NAME="5543"> </A></TD>
686
</TABLE></DIV></TD></TR>
692
<DIV ALIGN="CENTER"><A NAME="PSOperators"> </A><A NAME="5593"> </A>
694
<CAPTION><STRONG>Figure 5.10:</STRONG>
695
Process structure operators.</CAPTION>
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>
703
<TR><TD ALIGN="CENTER"><P>
707
<!-- MATH: $\includegraphics{p/box.eps}$ -->
709
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
710
SRC="usersguideimg32.gif"
711
ALT="\includegraphics{p/box.eps}">
716
<TD ALIGN="CENTER"> </TD>
717
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>sequence, the default.</TD>
719
<TR><TD ALIGN="CENTER"><A NAME="5560"> </A>
724
<!-- MATH: $\includegraphics{p/iterationbox.eps}$ -->
726
WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
727
SRC="usersguideimg111.gif"
728
ALT="\includegraphics{p/iterationbox.eps}">
733
<TD ALIGN="CENTER"><code>*</code></TD>
734
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>iteration.</TD>
736
<TR><TD ALIGN="CENTER"><A NAME="5568"> </A>
741
<!-- MATH: $\includegraphics{p/choicebox.eps}$ -->
743
WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
744
SRC="usersguideimg112.gif"
745
ALT="\includegraphics{p/choicebox.eps}">
750
<TD ALIGN="CENTER"><code>o</code></TD>
751
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>choice.</TD>
753
<TR><TD ALIGN="CENTER"><A NAME="5576"> </A>
758
<!-- MATH: $\includegraphics{p/quitbox.eps}$ -->
760
WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
761
SRC="usersguideimg113.gif"
762
ALT="\includegraphics{p/quitbox.eps}">
767
<TD ALIGN="CENTER"><code>!</code></TD>
768
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>for premature termination.</TD>
770
<TR><TD ALIGN="CENTER"><A NAME="5584"> </A>
775
<!-- MATH: $\includegraphics{p/admitbox.eps}$ -->
777
WIDTH="88" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
778
SRC="usersguideimg114.gif"
779
ALT="\includegraphics{p/admitbox.eps}">
784
<TD ALIGN="CENTER"><code>?</code></TD>
785
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=144>for premature termination.</TD>
787
</TABLE></DIV></TD></TR>
793
<H2><A NAME="SECTION00732000000000000000"> </A><A NAME="5598"> </A><A NAME="5599"> </A>
795
5.3.2 The Process Tree
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 <A HREF="usersguidenode10.html#TreeEditing">8</A>).
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"> </A><A NAME="5603"> </A>
814
This is the process node whose representing box has the smallest y-coordinate.
815
The <B>main tree</B><A NAME="5605"> </A> is the tree that is connected to the main root.
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 <A NAME="tex2html99"
821
HREF="#foot5606"><SUP>5.1</SUP></A>.
824
The <B>Update Sequence Labels</B><A NAME="5608"> </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"> </A> are the leaf nodes of the tree,
830
excluding the ``quit'' boxes.
831
See figure <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.
842
<DIV ALIGN="CENTER"><A NAME="ProcessExample"> </A><A NAME="5619"> </A>
844
<CAPTION><STRONG>Figure 5.11:</STRONG>
845
Example PSD with numbered actions.</CAPTION>
849
<!-- MATH: $\includegraphics{p/processexample.eps}$ -->
851
WIDTH="394" HEIGHT="347" ALIGN="BOTTOM" BORDER="0"
852
SRC="usersguideimg115.gif"
853
ALT="\includegraphics{p/processexample.eps}"></DIV></TD></TR>
859
<H2><A NAME="SECTION00733000000000000000">
860
5.3.3 Constraint Checking</A>
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 <A HREF="usersguidenode7.html#PSConstraints">5.12</A> all immediately and soft constraints are
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
878
<DIV ALIGN="CENTER"><A NAME="PSConstraints"> </A><A NAME="5627"> </A>
880
<CAPTION><STRONG>Figure 5.12:</STRONG>
881
Immediately checked and soft constraints on PSDs.</CAPTION>
885
<!-- MATH: $\includegraphics{p/PSconstraints.eps}$ -->
887
WIDTH="468" HEIGHT="649" ALIGN="BOTTOM" BORDER="0"
888
SRC="usersguideimg116.gif"
889
ALT="\includegraphics{p/PSconstraints.eps}"></DIV></TD></TR>
895
<H1><A NAME="SECTION00740000000000000000"> </A>
896
<A NAME="5632"> </A><A NAME="5633"> </A>
897
<A NAME="5634"> </A>
898
<A NAME="5635"> </A>
900
5.4 The Recursive Process Graph Editor (TRPG)
905
<H2><A NAME="SECTION00741000000000000000">
906
5.4.1 Nodes and Edges</A>
910
See figure <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 <A HREF="usersguidenode7.html#RPGExample">5.14</A> for an example recursive process graph.
922
<DIV ALIGN="CENTER"><A NAME="RPRepresentations"> </A><A NAME="5679"> </A>
924
<CAPTION><STRONG>Figure 5.13:</STRONG>
925
Recursive process graph nodes and edges.</CAPTION>
928
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
929
<TR><TD ALIGN="CENTER">
933
<!-- MATH: $\includegraphics{p/arrowdot.eps}$ -->
935
WIDTH="18" HEIGHT="59" ALIGN="BOTTOM" BORDER="0"
936
SRC="usersguideimg117.gif"
937
ALT="\includegraphics{p/arrowdot.eps}">
941
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph root</TD>
942
<TD ALIGN="CENTER"><A NAME="5652"> </A><A NAME="5653"> </A>
947
<!-- MATH: $\includegraphics{p/dot.eps}$ -->
949
WIDTH="19" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
950
SRC="usersguideimg118.gif"
951
ALT="\includegraphics{p/dot.eps}">
955
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph node</TD>
957
<TR><TD ALIGN="CENTER"><A NAME="5661"> </A><A NAME="5662"> </A>
962
<!-- MATH: $\includegraphics{p/rpgroundedbox.eps}$ -->
964
WIDTH="82" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"
965
SRC="usersguideimg119.gif"
966
ALT="\includegraphics{p/rpgroundedbox.eps}">
970
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Process graph node</TD>
971
<TD ALIGN="CENTER"> </TD>
972
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
974
<TR><TD ALIGN="CENTER"><P>
978
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
980
WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
981
SRC="usersguideimg59.gif"
982
ALT="\includegraphics{p/arrow.eps}"></DIV>
985
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Event<A NAME="5676"> </A><A NAME="5677"> </A></TD>
986
<TD ALIGN="CENTER"> </TD>
987
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
989
<TR><TD ALIGN="CENTER"><P></TD>
990
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
991
<TD ALIGN="CENTER"> </TD>
992
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
994
</TABLE></DIV></TD></TR>
1000
<DIV ALIGN="CENTER"><A NAME="RPGExample"> </A><A NAME="5686"> </A>
1002
<CAPTION><STRONG>Figure 5.14:</STRONG>
1003
Example recursive process graph.</CAPTION>
1005
<DIV ALIGN="CENTER">
1007
<!-- MATH: $\includegraphics{p/rpgexample.eps}$ -->
1009
WIDTH="445" HEIGHT="341" ALIGN="BOTTOM" BORDER="0"
1010
SRC="usersguideimg120.gif"
1011
ALT="\includegraphics{p/rpgexample.eps}"></DIV></TD></TR>
1017
<H2><A NAME="SECTION00742000000000000000">
1018
5.4.2 Constraint Checking</A>
1022
TRPG checks the immediately enforced and soft constraints
1023
that are summarized in figure <A HREF="usersguidenode7.html#RPConstraints">5.15</A>.
1027
<DIV ALIGN="CENTER"><A NAME="RPConstraints"> </A><A NAME="5695"> </A>
1029
<CAPTION><STRONG>Figure 5.15:</STRONG>
1030
Immediately checked and soft constraints on RPGs.</CAPTION>
1032
<DIV ALIGN="CENTER">
1034
<!-- MATH: $\includegraphics{p/RPconstraints.eps}$ -->
1036
WIDTH="466" HEIGHT="287" ALIGN="BOTTOM" BORDER="0"
1037
SRC="usersguideimg121.gif"
1038
ALT="\includegraphics{p/RPconstraints.eps}"></DIV></TD></TR>
1044
<H1><A NAME="SECTION00750000000000000000"> </A>
1045
<A NAME="5700"> </A><A NAME="5701"> </A>
1046
<A NAME="5702"> </A>
1048
5.5 The Collaboration Diagram Editor (TCBD)
1053
<H2><A NAME="SECTION00751000000000000000">
1054
5.5.1 Nodes and Edges</A>
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 <A HREF="usersguidenode7.html#CBRepresentations">5.16</A> for the shapes and subjects.
1065
<DIV ALIGN="CENTER"><A NAME="CBRepresentations"> </A><A NAME="5773"> </A>
1067
<CAPTION><STRONG>Figure 5.16:</STRONG>
1068
Collaboration diagram nodes and edges.</CAPTION>
1070
<DIV ALIGN="CENTER">
1071
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
1072
<TR><TD ALIGN="CENTER">
1074
<DIV ALIGN="CENTER">
1076
<!-- MATH: $\includegraphics{p/stickman_class.eps}$ -->
1078
WIDTH="33" HEIGHT="82" ALIGN="BOTTOM" BORDER="0"
1079
SRC="usersguideimg122.gif"
1080
ALT="\includegraphics{p/stickman_class.eps}">
1084
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (Stickman/Class) <A NAME="5717"> </A></TD>
1087
<DIV ALIGN="CENTER">
1089
<!-- MATH: $\includegraphics{p/stickman_object.eps}$ -->
1091
WIDTH="33" HEIGHT="84" ALIGN="BOTTOM" BORDER="0"
1092
SRC="usersguideimg123.gif"
1093
ALT="\includegraphics{p/stickman_object.eps}">
1097
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (Stickman/Object) <A NAME="5725"> </A></TD>
1099
<TR><TD ALIGN="CENTER"><P>
1101
<DIV ALIGN="CENTER">
1103
<!-- MATH: $\includegraphics{p/UCactorbox.eps}$ -->
1105
WIDTH="106" HEIGHT="46" ALIGN="BOTTOM" BORDER="0"
1106
SRC="usersguideimg124.gif"
1107
ALT="\includegraphics{p/UCactorbox.eps}">
1111
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (ClassBox) <A NAME="5733"> </A></TD>
1114
<DIV ALIGN="CENTER">
1116
<!-- MATH: $\includegraphics{p/actor_objectbox.eps}$ -->
1118
WIDTH="111" HEIGHT="51" ALIGN="BOTTOM" BORDER="0"
1119
SRC="usersguideimg125.gif"
1120
ALT="\includegraphics{p/actor_objectbox.eps}">
1124
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Actor (ObjectBox) <A NAME="5741"> </A></TD>
1126
<TR><TD ALIGN="CENTER"><P>
1128
<DIV ALIGN="CENTER">
1130
<!-- MATH: $\includegraphics{p/box.eps}$ -->
1132
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1133
SRC="usersguideimg32.gif"
1134
ALT="\includegraphics{p/box.eps}">
1138
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Class <A NAME="5749"> </A></TD>
1141
<DIV ALIGN="CENTER">
1143
<!-- MATH: $\includegraphics{p/objbox.eps}$ -->
1145
WIDTH="88" HEIGHT="44" ALIGN="BOTTOM" BORDER="0"
1146
SRC="usersguideimg91.gif"
1147
ALT="\includegraphics{p/objbox.eps}">
1151
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Object <A NAME="5757"> </A></TD>
1153
<TR><TD ALIGN="CENTER"><P>
1155
<DIV ALIGN="CENTER">
1157
<!-- MATH: $\includegraphics{p/CBclasslink.eps}$ -->
1159
WIDTH="125" HEIGHT="41" ALIGN="BOTTOM" BORDER="0"
1160
SRC="usersguideimg126.gif"
1161
ALT="\includegraphics{p/CBclasslink.eps}"></DIV>
1164
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Class link <A NAME="5764"> </A></TD>
1167
<DIV ALIGN="CENTER">
1169
<!-- MATH: $\includegraphics{p/CBobjectlink.eps}$ -->
1171
WIDTH="125" HEIGHT="41" ALIGN="BOTTOM" BORDER="0"
1172
SRC="usersguideimg127.gif"
1173
ALT="\includegraphics{p/CBobjectlink.eps}"></DIV>
1176
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Object link<A NAME="5771"> </A></TD>
1178
<TR><TD ALIGN="CENTER"><P></TD>
1179
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
1180
<TD ALIGN="CENTER"> </TD>
1181
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
1183
</TABLE></DIV></TD></TR>
1189
<H2><A NAME="SECTION00752000000000000000">
1190
5.5.2 Interactions</A>
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.
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 <A HREF="usersguidenode7.html#DefaultCBDInteraction">5.17</A> for an example of a default interaction.
1205
<DIV ALIGN="CENTER"><A NAME="DefaultCBDInteraction"> </A><A NAME="5782"> </A>
1207
<CAPTION><STRONG>Figure 5.17:</STRONG>
1208
Default interaction.</CAPTION>
1210
<DIV ALIGN="CENTER">
1212
<!-- MATH: $\includegraphics{p/interactionexample.eps}$ -->
1214
WIDTH="301" HEIGHT="47" ALIGN="BOTTOM" BORDER="0"
1215
SRC="usersguideimg128.gif"
1216
ALT="\includegraphics{p/interactionexample.eps}"></DIV></TD></TR>
1221
The order of the interaction may be described with a sequence of numbers,
1222
usually starting with number 1.
1225
The message text can be edited as usual.
1226
The message direction can be changed either by:
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 :
1235
<LI>'<code>></code>' : Add message direction from "left shape" towards "right shape".
1236
<LI>'<code><</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".
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() > [CR] 1.3: respond() <"</code> <BR>
1248
<code>1.2: create() </code>
1249
<!-- MATH: $\rightarrow$ -->
1251
WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
1252
SRC="usersguideimg129.gif"
1253
ALT="$\rightarrow$">
1255
<code>1.3: respond() </code>
1256
<!-- MATH: $\leftarrow$ -->
1258
WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
1259
SRC="usersguideimg130.gif"
1266
<H2><A NAME="SECTION00753000000000000000">
1267
5.5.3 Constraint Checking</A>
1271
TCBD checks the immediately enforced and soft constraints
1272
that are summarized in figure <A HREF="usersguidenode7.html#CBConstraints">5.18</A>.
1276
<DIV ALIGN="CENTER"><A NAME="CBConstraints"> </A><A NAME="5802"> </A>
1278
<CAPTION><STRONG>Figure 5.18:</STRONG>
1279
Immediately checked and soft constraints on CBDs.</CAPTION>
1281
<DIV ALIGN="CENTER">
1283
<!-- MATH: $\includegraphics{p/CBconstraints.eps}$ -->
1285
WIDTH="534" HEIGHT="109" ALIGN="BOTTOM" BORDER="0"
1286
SRC="usersguideimg131.gif"
1287
ALT="\includegraphics{p/CBconstraints.eps}"></DIV></TD></TR>
1293
<H1><A NAME="SECTION00760000000000000000"> </A>
1294
<A NAME="5807"> </A><A NAME="5808"> </A>
1295
<A NAME="5809"> </A>
1297
5.6 The StateChart Diagram Editor (TSCD)
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.
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.
1312
<H2><A NAME="SECTION00761000000000000000">
1313
5.6.1 Nodes and Edges</A>
1317
See figure <A HREF="usersguidenode7.html#SCRepresentations">5.19</A> for the shapes and subjects.
1321
<DIV ALIGN="CENTER"><A NAME="SCRepresentations"> </A><A NAME="5897"> </A>
1323
<CAPTION><STRONG>Figure 5.19:</STRONG>
1324
Statechart diagram nodes and edges.</CAPTION>
1326
<DIV ALIGN="CENTER">
1327
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
1328
<TR><TD ALIGN="CENTER"><P>
1330
<DIV ALIGN="CENTER">
1332
<!-- MATH: $\includegraphics{p/roundedbox.eps}$ -->
1334
WIDTH="89" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1335
SRC="usersguideimg38.gif"
1336
ALT="\includegraphics{p/roundedbox.eps}">
1340
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>State<A NAME="5824"> </A></TD>
1343
<DIV ALIGN="CENTER">
1345
<!-- MATH: $\includegraphics{p/minidiamond.eps}$ -->
1347
WIDTH="20" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
1348
SRC="usersguideimg107.gif"
1349
ALT="\includegraphics{p/minidiamond.eps}">
1353
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Decision pseudostate<A NAME="5832"> </A><A NAME="5833"> </A></TD>
1355
<TR><TD ALIGN="CENTER"><P>
1357
<DIV ALIGN="CENTER">
1359
<!-- MATH: $\includegraphics{p/roundedfolderbox.eps}$ -->
1361
WIDTH="224" HEIGHT="135" ALIGN="BOTTOM" BORDER="0"
1362
SRC="usersguideimg132.gif"
1363
ALT="\includegraphics{p/roundedfolderbox.eps}">
1367
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>And-state <A NAME="5841"> </A><A NAME="5842"> </A></TD>
1370
<DIV ALIGN="CENTER">
1372
<!-- MATH: $\includegraphics{p/blackdot.eps}$ -->
1374
WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
1375
SRC="usersguideimg37.gif"
1376
ALT="\includegraphics{p/blackdot.eps}">
1380
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Default state<A NAME="5850"> </A><A NAME="5851"> </A></TD>
1382
<TR><TD ALIGN="CENTER"><P>
1384
<DIV ALIGN="CENTER">
1386
<!-- MATH: $\includegraphics{p/solidhorizontalbar.eps}$ -->
1391
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Horizontal synchronization pseudostate <A NAME="5859"> </A>
1392
<A NAME="5860"> </A>
1393
<A NAME="5861"> </A></TD>
1396
<DIV ALIGN="CENTER">
1398
<!-- MATH: $\includegraphics{p/solidverticalbar.eps}$ -->
1400
WIDTH="4" HEIGHT="45" ALIGN="BOTTOM" BORDER="0"
1401
SRC="usersguideimg45.gif"
1402
ALT="\includegraphics{p/solidverticalbar.eps}">
1406
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Vertical synchronization pseudostate <A NAME="5869"> </A>
1407
<A NAME="5870"> </A>
1408
<A NAME="5871"> </A></TD>
1410
<TR><TD ALIGN="CENTER"><P>
1412
<DIV ALIGN="CENTER">
1414
<!-- MATH: $\includegraphics{p/blackdotellipse.eps}$ -->
1416
WIDTH="24" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
1417
SRC="usersguideimg44.gif"
1418
ALT="\includegraphics{p/blackdotellipse.eps}">
1422
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Final state<A NAME="5879"> </A><A NAME="5880"> </A></TD>
1423
<TD ALIGN="CENTER"> </TD>
1424
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
1426
<TR><TD ALIGN="CENTER"><P>
1428
<DIV ALIGN="CENTER">
1430
<!-- MATH: $\includegraphics{p/arrow.eps}$ -->
1432
WIDTH="94" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
1433
SRC="usersguideimg59.gif"
1434
ALT="\includegraphics{p/arrow.eps}"></DIV>
1437
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>Transition <A NAME="5887"> </A></TD>
1440
<DIV ALIGN="CENTER">
1442
<!-- MATH: $\includegraphics{p/dashedemptyline.eps}$ -->
1444
WIDTH="81" HEIGHT="1" ALIGN="BOTTOM" BORDER="0"
1445
SRC="usersguideimg133.gif"
1446
ALT="\includegraphics{p/dashedemptyline.eps}"></DIV>
1449
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94>And-line <A NAME="5894"> </A><A NAME="5895"> </A></TD>
1451
<TR><TD ALIGN="CENTER"><P></TD>
1452
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
1453
<TD ALIGN="CENTER"> </TD>
1454
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=94> </TD>
1456
</TABLE></DIV></TD></TR>
1462
<H2><A NAME="SECTION00762000000000000000"> </A> <A NAME="5902"> </A><A NAME="5903"> </A>
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.
1483
See figure <A HREF="usersguidenode7.html#SCExample">5.20</A> for an example diagram with an <I>and-</I>state.
1487
<DIV ALIGN="CENTER"><A NAME="SCExample"> </A><A NAME="5931"> </A>
1489
<CAPTION><STRONG>Figure 5.20:</STRONG>
1490
SCD with an <I>and-</I>state and <I>and</I> line.</CAPTION>
1492
<DIV ALIGN="CENTER">
1494
<!-- MATH: $\includegraphics{p/statechart.eps}$ -->
1496
WIDTH="519" HEIGHT="278" ALIGN="BOTTOM" BORDER="0"
1497
SRC="usersguideimg134.gif"
1498
ALT="\includegraphics{p/statechart.eps}"></DIV></TD></TR>
1503
<BR><HR><H4>Footnotes</H4>
1505
<DT><A NAME="foot5606">... area </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.
1513
<DT><A NAME="foot5907">...
1514
line</A><A NAME="foot5907"
1515
HREF="usersguidenode7.html#tex2html109"><SUP>5.2</SUP></A>
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.
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"
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>
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-->
1548
<I>Henk van de Zandschulp</I>
1549
<BR><I>2003-01-20</I>