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>11. TCM File format</TITLE>
10
<META NAME="description" CONTENT="11. TCM File format">
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="usersguidenode14.html">
17
<LINK REL="previous" HREF="usersguidenode12.html">
18
<LINK REL="up" HREF="User.html">
19
<LINK REL="next" HREF="usersguidenode14.html">
22
<!--Navigation Panel-->
23
<A NAME="tex2html1163"
24
HREF="usersguidenode14.html">
25
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
26
<A NAME="tex2html1159"
28
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
29
<A NAME="tex2html1153"
30
HREF="usersguidenode12.html">
31
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A>
32
<A NAME="tex2html1161"
33
HREF="usersguidenode1.html">
34
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A>
35
<A NAME="tex2html1162"
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="tex2html1164"
40
HREF="usersguidenode14.html">Bibliography</A>
41
<B> Up:</B> <A NAME="tex2html1160"
42
HREF="User.html">Toolkit for Conceptual Modeling</A>
43
<B> Previous:</B> <A NAME="tex2html1154"
44
HREF="usersguidenode12.html">10. Frequently Asked Questions</A>
47
<!--End of Navigation Panel-->
48
<!--Table of Child-Links-->
49
<A NAME="CHILD_LINKS"><strong>Subsections</strong></A>
51
<LI><A NAME="tex2html1165"
52
HREF="usersguidenode13.html#SECTION001310000000000000000">11.1 Introduction</A>
53
<LI><A NAME="tex2html1166"
54
HREF="usersguidenode13.html#SECTION001320000000000000000">11.2 Elements of a TCM document</A>
55
<LI><A NAME="tex2html1167"
56
HREF="usersguidenode13.html#SECTION001330000000000000000">11.3 Storage, Document and Page Information</A>
58
<LI><A NAME="tex2html1168"
59
HREF="usersguidenode13.html#SECTION001330100000000000000">11.3.0.1 Storage section</A>
60
<LI><A NAME="tex2html1169"
61
HREF="usersguidenode13.html#SECTION001330200000000000000">11.3.0.2 Document section</A>
62
<LI><A NAME="tex2html1170"
63
HREF="usersguidenode13.html#SECTION001330300000000000000">11.3.0.3 Page section</A>
64
<LI><A NAME="tex2html1171"
65
HREF="usersguidenode13.html#SECTION001330400000000000000">11.3.0.4 Scale section</A>
67
<LI><A NAME="tex2html1172"
68
HREF="usersguidenode13.html#SECTION001340000000000000000">11.4 Diagram Editor File Format</A>
70
<LI><A NAME="tex2html1173"
71
HREF="usersguidenode13.html#SECTION001340100000000000000">11.4.0.1 Node sections</A>
72
<LI><A NAME="tex2html1174"
73
HREF="usersguidenode13.html#SECTION001340200000000000000">11.4.0.2 Edge sections</A>
74
<LI><A NAME="tex2html1175"
75
HREF="usersguidenode13.html#SECTION001340300000000000000">11.4.0.3 View sections</A>
76
<LI><A NAME="tex2html1176"
77
HREF="usersguidenode13.html#SECTION001340400000000000000">11.4.0.4 Node shape sections</A>
78
<LI><A NAME="tex2html1177"
79
HREF="usersguidenode13.html#SECTION001340500000000000000">11.4.0.5 Line sections</A>
81
<LI><A NAME="tex2html1178"
82
HREF="usersguidenode13.html#SECTION001350000000000000000">11.5 Table Editor File Format</A>
84
<LI><A NAME="tex2html1179"
85
HREF="usersguidenode13.html#SECTION001350100000000000000">11.5.0.1 Table section</A>
86
<LI><A NAME="tex2html1180"
87
HREF="usersguidenode13.html#SECTION001350200000000000000">11.5.0.2 Row sections</A>
88
<LI><A NAME="tex2html1181"
89
HREF="usersguidenode13.html#SECTION001350300000000000000">11.5.0.3 Column sections</A>
91
<!--End of Table of Child-Links-->
94
<H1><A NAME="SECTION001300000000000000000"> </A> <A NAME="FileFormat"> </A><A NAME="10510"> </A><A NAME="10511"> </A>
99
<H1><A NAME="SECTION001310000000000000000">
100
11.1 Introduction</A>
102
Each TCM document is stored in a separate Unix file
103
as plain text. This chapter contains a specification of the TCM
104
file format of documents that are generated by the TCM version that
105
is described in this manual (<A NAME="10513"> </A>file format
106
version 1.31). The TCM editors read also older file formats,
107
down to file format version 1.0, but they only generate the
108
latest file format of that TCM tool.
109
Older file format versions are not described here.
110
Each file can be converted to the latest format by reading
111
it in with an editor of the latest version and then saving it
115
You can see and even modify a document file within TCM. With
116
Document Source from the Document menu, the contents of the
117
file, from which the TCM document was loaded, is read into a text
118
edit dialog. You can then view and edit these file contents
119
and save it back to the file (or to another file). You can
120
see the updates when you append or load that file again.
124
<H1><A NAME="SECTION001320000000000000000">
125
11.2 Elements of a TCM document</A>
127
A document is stored as a number of <B>sections</B><A NAME="10518"> </A>
128
consisting of a number of <B>fields</B>. The order of fields<A NAME="10520"> </A>
129
within a section is significant. The order of the sections in
130
a diagram file is not significant except that the file should
131
start with first the Storage section and then the Document and Page
132
sections. The order of the row and column sections of a table is
133
significant as is explained in section <A HREF="usersguidenode13.html#TableFormat">C.5</A>.
136
A section starts with a keyword indicating the kind of section and,
137
when there is possibly more than one section of a certain keyword in the same
138
file, it has an identifier which makes the section unique within
139
the file. The rest of the section is enclosed by curly braces.
140
Sections are separated by white space. <B>white space</B> is a sequence
141
of one or more spaces, tabs, carriage-return or newline characters.
144
A field is an attribute-value pair enclosed by curly<A NAME="10523"> </A>
145
braces. The order of the fields in a section is significant.
146
Attribute values are of one of the types listed in figure <A HREF="usersguidenode13.html#attrval">C.1</A>.
147
Fields within a section are separated by white space.
148
The attribute name and the value within a field are also
149
separated by white space. Section names and attribute names
153
It is possible to include comment text in a TCM file.
154
Comments in a file start with a hash (#). The text in the same line
155
after the hash is comment text and is ignored.
159
<DIV ALIGN="CENTER"><A NAME="attrval"> </A><A NAME="10528"> </A>
161
<CAPTION><STRONG>Figure C.1:</STRONG>
162
The value types of attributes stored in a file.</CAPTION>
166
<!-- MATH: $\includegraphics{p/valuetypes.eps}$ -->
168
WIDTH="503" HEIGHT="895" ALIGN="BOTTOM" BORDER="0"
169
SRC="usersguideimg229.gif"
170
ALT="\includegraphics{p/valuetypes.eps}"></DIV></TD></TR>
175
When a file is read, TCM checks the syntax and checks
176
the semantics, i.e. that all required fields are present, that
177
the attribute values have the correct type and it checks references
178
(such as that an edge section has subject fields referring to existing
179
subject sections). TCM reports errors that are found together with
180
a line number in the file where the error is encountered.
181
The errors are displayed in the error log pop-up-window.
185
<H1><A NAME="SECTION001330000000000000000">
186
11.3 Storage, Document and Page Information</A>
188
Each TCM document in a file starts with the Storage section
189
with information about the file such as the file format number.
190
This is followed by the Document section in which you can find
191
general information about the document, like the name and the
192
author. Then you have the Page section with some information about
193
the page layout and then the Scale section that contains (only) the
194
scale of the diagram.
198
<H3><A NAME="SECTION001330100000000000000"> </A><A NAME="10534"> </A>
200
11.3.0.1 Storage section
205
{ Format <rational> } # File format, e.g. 1.26.
206
{ GeneratedFrom <word> }# Tool name and version e.g. TGD-version-1.84.
207
{ WrittenBy <word> } # Unix login name that has generated this file.
208
{ WrittenOn <string> } # Writing date/time (in Unix ctime format).
211
<H3><A NAME="SECTION001330200000000000000"> </A><A NAME="10538"> </A>
213
11.3.0.2 Document section
217
{ Type <string> } # Document type: e.g. "Generic Diagram".
218
{ Name <word> } # Document name, e.g. mydocument.gd.
219
{ Author <word> } # Unix login name of document creator.
220
{ CreatedOn <string> } # Creation time
221
# e.g. "Wed Sep 24 15:42:47 MET DST 1997".
222
{ Annotation <string> }# Free annotation text about this document.
223
{ Hierarchy <bool> } # For diagram types that allow hierarchic
224
# documents only: Is this document hierarchic?
228
<H3><A NAME="SECTION001330300000000000000"> </A><A NAME="10542"> </A>
230
11.3.0.3 Page section
234
{ PageOrientation <word> } # Portrait or Landscape
235
{ PageSize <word> } # PageSize: A4, A3, Letter, Legal,...
236
{ ShowHeaders <bool> } # Show a header on every page?
237
{ ShowFooters <bool> } # Show a footer on every page?
238
{ ShowNumbers <bool> } # Show a page number on every page?
242
<H3><A NAME="SECTION001330400000000000000"> </A><A NAME="10546"> </A>
244
11.3.0.4 Scale section
248
{ ScaleValue <rational> } # The scale of the diagram. Normally 1.00.
254
<H1><A NAME="SECTION001340000000000000000">
255
11.4 Diagram Editor File Format</A>
260
<DIV ALIGN="CENTER"><A NAME="nodetype"> </A><A NAME="10553"> </A>
262
<CAPTION><STRONG>Figure C.2:</STRONG>
263
Node types and the tools in which they occur.</CAPTION>
267
<!-- MATH: $\includegraphics{p/nodetype.eps}$ -->
269
WIDTH="587" HEIGHT="1045" ALIGN="BOTTOM" BORDER="0"
270
SRC="usersguideimg230.gif"
271
ALT="\includegraphics{p/nodetype.eps}"></DIV></TD></TR>
277
<DIV ALIGN="CENTER"><A NAME="edgetype"> </A><A NAME="10560"> </A>
279
<CAPTION><STRONG>Figure C.3:</STRONG>
280
Edge types and the tools in which they occur.</CAPTION>
284
<!-- MATH: $\includegraphics{p/edgetype.eps}$ -->
286
WIDTH="571" HEIGHT="650" ALIGN="BOTTOM" BORDER="0"
287
SRC="usersguideimg231.gif"
288
ALT="\includegraphics{p/edgetype.eps}"></DIV></TD></TR>
294
<DIV ALIGN="CENTER"><A NAME="nodeshapetype"> </A><A NAME="10567"> </A>
296
<CAPTION><STRONG>Figure C.4:</STRONG>
297
Node shape types and the tools in which they occur.</CAPTION>
301
<!-- MATH: $\includegraphics{p/nodeshapetype.eps}$ -->
303
WIDTH="578" HEIGHT="848" ALIGN="BOTTOM" BORDER="0"
304
SRC="usersguideimg232.gif"
305
ALT="\includegraphics{p/nodeshapetype.eps}"></DIV></TD></TR>
311
<DIV ALIGN="CENTER"><A NAME="linetype"> </A><A NAME="10574"> </A>
313
<CAPTION><STRONG>Figure C.5:</STRONG>
314
Line types and the tools in which they occur.</CAPTION>
318
<!-- MATH: $\includegraphics{p/linetype.eps}$ -->
320
WIDTH="320" HEIGHT="375" ALIGN="BOTTOM" BORDER="0"
321
SRC="usersguideimg233.gif"
322
ALT="\includegraphics{p/linetype.eps}"></DIV></TD></TR>
328
<DIV ALIGN="CENTER"><A NAME="FileFormatCRD"> </A><A NAME="10581"> </A>
330
<CAPTION><STRONG>Figure C.6:</STRONG>
331
Diagram file format in the form of a class-diagram.</CAPTION>
335
<!-- MATH: $\includegraphics{p/fileformat.eps}$ -->
337
WIDTH="585" HEIGHT="761" ALIGN="BOTTOM" BORDER="0"
338
SRC="usersguideimg234.gif"
339
ALT="\includegraphics{p/fileformat.eps}"></DIV></TD></TR>
344
A stored diagram contains a section for each node, edge, view and
345
shape (in no particular order) which follow after the three obligatory
346
storage, document and page sections. Each node type, edge type and shape
347
type section starts with a keyword. A view has the keyword <TT>View</TT>.
348
In figures <A HREF="usersguidenode13.html#nodetype">C.2</A> to <A HREF="usersguidenode13.html#linetype">C.5</A> you
349
can see which keywords (and accessory sections) are generated
350
and read by which tool. After the node, edge, view or shape
351
keyword there is an identifier which is unique within
352
the file. These identifiers are used for referring from one section
354
Figure <A HREF="usersguidenode13.html#FileFormatCRD">C.6</A> gives an overview of the global structure
355
of the diagram file format in which file format section types are
356
represented as object classes. The CRD does not show the significant
357
order of the fields in a section. On the other hand, the CRD shows
358
specializations and other relationships between classes and
359
also some cardinality constraints which can not be made explicit in
360
the file format sections. Specific node sections would be subclasses
361
of class Node, specific edge sections would be subclasses of class Edge
362
and specific Shape sections would be subclasses of classes NodeShape
367
<H3><A NAME="SECTION001340100000000000000"> </A><A NAME="10590"> </A>
369
11.4.0.1 Node sections
371
You can see what node types exist in figure <A HREF="usersguidenode13.html#nodetype">C.2</A>.
372
Each node has a name, annotation and parent field. Some node
373
types have additional fields which are mentioned below.<PRE>
374
<NodeType> <id> # e.g. EntityType 123456.
376
{ Name <string> } # name label of the node.
377
{ Annotation <string> } # annotation text of the node.
378
{ Parent <id> } # parent node (always 0 in this TCM version).
379
{ Index <string> } # index label of the node.
380
# possibly other node attributes
385
The parent field is not used in the current TCM
386
version but it will be used for hierarchical diagrams.
387
In hierarchical diagrams the parent identifier refers to an existing node
388
section. That would mean that a node in a diagram is further specified as a
389
sub-diagram. The newly created nodes and edges in that sub-diagram have that
390
node as parent. Nodes and edges in the top-level diagram have parent
391
0 (which means they have no parent).
392
Furthermore, in sub-diagrams, shapes representing higher level nodes may
393
also occur. In the generic editor, TGD, these structures will be almost
394
unconstrained. In data flow diagram editors (TDFD and TEFD) and
395
data view editors (TERD and TCRD) these structures are more constrained,
396
for instance only data processes respectively subject areas can be
397
parent nodes and flows respectively relationships have to be balanced.
398
The parent relationship can also used in the tree editors (TFRT, TGTT)
399
but here the entire hierarchy is presented in one view.
402
When the parent relationship is not used in some editor then the entire
403
diagram is treated as a top-level diagram and the parents of the subjects
405
In the current version of TCM there are only top-level diagrams
406
so the parent fields are always 0.
409
Other attributes of node types are:
411
<LI>DataProcess (TDFD, TEFD)<PRE>
412
{ ProcessGroup <bool> } # is data process a process group?
413
# possibly other data process attributes #
415
In this version of TCM, the process group field is always False (because
416
hierarchical DFDs are not implemented yet). When the data process would be
417
a process group <A NAME="tex2html249"
418
HREF="#foot10708"><SUP>11.1</SUP></A> then it is parent of a number of children
419
(processes, stores, flows and/or split-merge nodes.). When the data process
420
is not a process group then it is a primitive process and then the process
421
has the following attributes:<PRE>
422
{ Persistence <persistence> } # Instantaneous or Continuing
423
{ Minispec <string> } # Mini specification text
424
# possibly other leaf node data process attributes #
426
In this version of TCM it is possible to set the persistence (by default it
427
is instantaneous) and to edit a minispec text, but they are further not used.
428
When the persistence is instantaneous then the data process section contains
430
{ ActivationMechanism <activation> } # only when Instantaneous
431
# possibly other discrete leaf node data process attributes #
433
The activation mechanism can be set in the current
434
DFD editors (by default it is unspecified). When the instantaneous
435
data process is activated by a stimulus, the following stimulus field is
437
{ Stimulus <string> } # input edge name;
438
# only if activated by stimulus
440
Otherwise when it is activated by time, a TimeExpression field is given instead:<PRE>
441
{ TimeExpression <string> } # only when activated by time
443
The activation mechanism can also be Trigger. The trigger
444
edge is then not given in this section but there should be
445
an input edge labeled `T' to this process.
448
So it is possible to set the activation mechanism and specify a
449
stimulus or time expression and this information is written to file
450
but it is further not used in the current version of TCM.
453
<LI>DataStore (TDFD, TEFD)<PRE>
454
{ AtomicSubjects <number> } # number of entities/relationships
455
{ AtomicSubject <string> } # entities/relationships (>= 1 fields)
457
In a future version of TDFD and TEFD you will be able to specify the
458
contents of data stores. For the moment the number of atomic subjects is
462
<LI>InitialState (TSTD)<PRE>
463
{ ControlProcess <string> }# the control process.
464
{ Actions <number> } # number of actions of initial state.
465
{ Action <string> } # initial action (>= 1 action fields).
467
In the current version of TSTD the name of the control process can
468
not be specified. So the control process field contains an empty string.
469
The number of actions specifies how many initial action fields follow.
470
Actions are arbitrary single line strings (they cannot contain
474
<LI>ClassNode (TCRD), SSDClassNode (TSSD, TESD)<PRE>
475
{ Attributes <number> } # number of attributes of class.
476
{ Attribute <string> } # attribute string (>= 1 fields).
477
{ Operations <number> } # number of operations of class.
478
{ Operation <string> } # operation string (>= 1 fields).
480
The number of attributes specifies how many attribute fields follow
481
and the number of operations specifies how many operation fields follow.
482
Each attribute and each operation is a single-line string.
483
The class nodes in TSSD have after the operations also the following
485
{ Stereotype <string> } # class stereotype string.
486
{ Properties <string> } # class properties string.
490
<LI>SSDObjectNode (TSSD)<PRE>
491
{ Attributes <number> } # number of attributes of object node.
492
{ Attribute <string> } # attribute string (>= 1 fields).
494
Object nodes in TSSD do not have operations.
495
<LI>PSProcess (TPSD)<PRE>
496
{ Operator <string> } # process operator, e.g. "*"
497
{ IsRoot <bool> } # is it a root process ?
498
{ IsAction <bool> } # is it an action (leaf) process ?
499
{ Sequence <number> } # sequence number in process tree.
501
The process operator is always a string of length 1 (when the process
502
has no operator the string is a single space).
508
<H3><A NAME="SECTION001340200000000000000"> </A><A NAME="10621"> </A>
510
11.4.0.2 Edge sections
512
For which edge types are generated by which tools see figure <A HREF="usersguidenode13.html#edgetype">C.3</A>.
515
<EdgeType> <id> # e.g. BinaryRelationship 654321
517
{ Name <string> } # name of edge.
518
{ Annotation <string> } # annotation of edge.
519
{ Parent <id> } # parent node.
520
{ Subject1 <id> } # 'departure' subject
521
{ Subject2 <id> } # 'arrival' subject
522
# possibly other edge attributes #
525
Edge types also have a parent field which is intended
526
to be used for hierarchical editors that are still to be build.
527
For the moment the Parent identifier is always 0.
528
The Subject1 and Subject2 identifiers should refer to existing
529
subject sections in this file. It is in principle possible
530
that and edge (line) connects another edge (line).
531
At this moment this feature of edge-edge connections is
532
only available in TGD and in a limited form in TSSD (for
533
association link edges and connection of notes).
536
The other attributes of edge types:
538
<LI>BinaryRelationship (TERD,TCRD),
539
SSDBinaryAssociationEdge (TSSD,TESD), SSDAggregationEdge (TSSD),
540
SSDCompositionEdge (TSSD), UCDBinaryAssociationEdge (TUCD)<PRE>
541
{ Constraint1 <string> } # first cardinality constraint.
542
{ Constraint2 <string> } # second cardinality constraint.
543
{ RoleName1 <string> } # first role name.
544
{ RoleName2 <string> } # second role name.
548
<LI>ClassLinkEdge, ObjectLinkEdge (TCBD) <PRE>
549
{ Constraint1 <string> } # first cardinality constraint.
550
{ Constraint2 <string> } # second cardinality constraint.
551
{ RoleName1 <string> } # first role name.
552
{ RoleName2 <string> } # second role name.
553
{ Messages <number> } # number of messages of edge.
554
{ Message <string> } # message string (>= 1 message fields)
555
{ Direction <direction> } # message direction (ToShape, FromShape) (>= 1)
556
{ Flow <flow type> } # flow type (FlatFlow, NestedFlow, Asynchronous) (>= 1)
560
<LI>Function (TERD, TCRD), ComponentFunction (TCRD),
561
ConnectionStart (TSND), ConnectionEnd (TSND)<PRE>
562
{ Constraint <string> } # cardinality constraint.
566
<LI>SSDObjectLinkEdge (TSSD)<PRE>
567
{ RoleName1 <string> } # first role name.
568
{ RoleName2 <string> } # second role name.
572
<LI>SSDParticipantLinkEdge (TSSD, TESD)<PRE>
573
{ Constraint <string> } # cardinality constraint.
574
{ RoleName <string> } # role name.
578
<LI>Transition (TSTD)<PRE>
579
{ Event <string> } # event string (including condition).
580
{ Actions <number> } # number of actions in transition.
581
{ Action <string> } # action string (>= 1 action fields).
583
The actions field specifies how many action fields follow.
584
Each action string is a single line text string.
587
<LI>DataFlow (TDFD, TEFD), BidirectionalDataFlow (TDFD, TEFD),
588
ContinuousDataFlow (TEFD)<PRE>
589
{ Components <number> } # number of sub-flows
590
{ Component <id> } # sub-flow (>= 1 component fields)
592
When the components field is greater than zero then it has for each
593
component a distinct field.
594
This component field should refer to an existing data flow edge section.
595
In the current version of TCM it is not yet possible to specify
596
the components of a data flow. Therefore the components field is
597
always 0. When the flow has no components then it has a certain
601
{ ContentType <contenttype> } # AtomicSubject, Attribute,
602
# DataType or Unspecified
604
This field is only present when components is 0. This field is by default
605
unspecified. It is not possible to set this field in the current
606
version of TDFD or TEFD. When the ContentType is not unspecified then
607
according to the content type it has <I>one</I> of these three fields:<PRE>
608
{ AtomicSubject <string> } # entity type/relationship name.
609
{ Attribute <attribute> } # attribute of an atomic subject.
610
{ DataType <datatype> } # values of a simple data type.
612
But again, these fields cannot be filled in by the current version of TCM.
613
Therefore data flow sections have no component fields and they have
614
Unspecified as content type.
617
<LI>EventFlow (TEFD), ContinuousEventFlow (TEFD)<PRE>
618
{ Components <number> } # number of sub-flows
619
{ Component <id> } # sub-flow (>= 1 component fields)
621
</UL>When components > 0 then it has for each component a distinct field.
622
This component field should refer to an existing event flow edge.
623
In the current version of TEFD it is not possible to specify
624
the components of an event flow. Therefore the components fields is
629
<H3><A NAME="SECTION001340300000000000000"> </A><A NAME="10649"> </A>
631
11.4.0.3 View sections
633
A view is a set of shapes that represents a sub-diagram. Sub-diagrams
634
are hierarchical and are defined by a parent relationship between nodes.
635
Which shapes exactly may occur in the view is determined by the diagram
636
technique. For instance, a view in a DFD shows the refinement of
637
a data process and a view in an ERD shows the refinement of a subject
638
area. The current version of TCM has no hierarchical sub-diagrams implemented.
639
So there is one single view that contains all the shapes of
645
{ Index <word> } # index of hierarchical view.
646
{ Parent <id> } # the parent node of the view.
649
The index of a view is the same kind of unique index that is used for
650
data and control processes. The top-level view has index 0. The
651
children of the top-level view are numbered 1 to <I>n</I>, the children of
652
non-top-level view x have index <I>x</I>.1 to <I>x</I>.<I>n</I>. Each view, except the
653
top-level view, has a parent node. The parent field should refer to
654
an existing node section. The top-level view has as parent 0.
655
The diagrams of the current version of TCM have only a top-level view.
656
The indexes of the individual nodes are stored separately in the node
657
section. The reason is that not all nodes need to have an index, and
658
in some editors a different naming scheme could be used (for instance,
659
in TGD, nodes can have an arbitrary index label and in TDFD, data stores
660
do not have an index label).
663
The shapes that are contained in the view are not listed in the view
664
section itself. But all shape sections have a reference to the view
665
section in which they are contained.
669
<H3><A NAME="SECTION001340400000000000000"> </A><A NAME="10653"> </A>
671
11.4.0.4 Node shape sections
673
See figure <A HREF="usersguidenode13.html#nodeshapetype">C.4</A> for which node shape types are
674
made by which tool.<PRE>
675
<NodeShapeType> <id> # e.g. Box 214365
677
{ View <id> } # view in which the shape occurs.
678
{ Subject <id> } # the node that the shape represents.
679
{ Position <number> <number> } # center (x,y) position of shape.
680
{ Size <number> <number> } # width and height of shape.
681
{ Color <color> } # the line color of the shape.
682
{ LineWidth <number> } # the line width of the shape.
683
{ LineStyle <linestyle> } # the line style of the shape.
684
{ FillStyle <fillstyle> } # the way the shape is filled.
685
{ FillColor <color> } # the fill color when the shape not unfilled.
686
{ FixedName <bool> } # string of name-textshape is fixed?
687
{ Font <xlfd> } # text font of text strings.
688
{ TextAlignment <alignment> } # multi-line text alignment.
689
{ TextColor <color> } # the color of the text in the shape.
690
{ NameUnderlined <bool> } # name-textshape is underlined?
693
Each node shape is contained in an existing view and represents
694
an existing node. The name label of the node shape is not given
695
in the node shape section but it is equal to the name of the node
696
subject, but some other attributes of the labels, i.e. the font and
697
text alignment are specified in this section.
700
Node shapes have a (line) color, a text color, and a fill color (only visible
701
with a fill style that is not unfilled). By default the line color and
702
text color are black, the shape is unfilled and the line width is 1.
705
The node shapes SSDSingleClassBox, SSDDoubleClassBox and SSDTripleClassBox
706
in TSSD and TESD have additionally the following two attributes to
707
indicate whether the stereotype and properties labels of the subject
708
should be shown: <PRE>
709
{ ShowStereotype <bool> }
710
{ ShowProperties <bool> }
715
<H3><A NAME="SECTION001340500000000000000"> </A><A NAME="10660"> </A>
717
11.4.0.5 Line sections
719
See figure <A HREF="usersguidenode13.html#linetype">C.5</A> for which line type is made by which tool.<PRE>
720
<LineType> <id> # e.g. Arrow 563412
722
{ View <id> } # diagram in which the shape occurs.
723
{ Subject <id> } # edge that the line represents.
724
{ FromShape <id> } # 'departure' shape.
725
{ ToShape <id> } # 'arrival' shape.
726
{ Curved <bool> } # straight (False) or curved (True)
727
{ End1 <line-end> } # type of line end at departure side.
728
{ End2 <line-end> } # type of line end at arrival side.
729
{ Points <number> } # number of line points
730
{ Point <number> <number> } # line point (>=2 points).
731
{ NamePosition <number> <number> }# position of name label.
732
{ Color <color> } # the color of the line (default=black).
733
{ LineWidth <number> } # the width of the line (default=1).
734
{ LineStyle <linestyle> } # the style (solid, dashed etc.).
735
{ FixedName <bool> } # string of name-textshape is fixed?
736
{ Font <xlfd> } # text font of text labels.
737
{ TextAlignment <alignment> } # multi-line text alignment.
738
{ TextColor <color> } # the color of the text (default=black).
739
{ NameUnderlined <bool> } # name-textshape is underlined?
740
# possibly other line attributes
743
Each line is contained in an existing view and represents
744
an existing edge and connects two existing (not necessarily different)
745
shapes, called FromShape and ToShape.
746
Both at the beginning point as at the end point of the line there is
747
some <B>line end</B><A NAME="10665"> </A> which can be some kind of arrow head or
748
a little circle, diamond or triangle or the line end is just Empty.
749
The Points field in the line section specifies how many
750
point fields will follow. A line has at least two points. Each point
751
has a distinct Point field.
752
The name position field gives the coordinates of the name label.
753
The text of this label can be found in the edge section of the subject,
754
in its Name field. Because the labels of a line can be positioned at free will,
755
whereas node shape labels can not, only line sections have a
756
distinct name position field. For the rest, line sections have a number
757
of fields that also occur in node shape section, like for the colors, text
758
alignment and line width. Extra attributes for some specific line types are:
762
<LI>T1Arrow (TSND), T1Line (TERD, TCRD, TSND)<PRE>
763
{ T1Position <number> <number> } # position of an extra label.
765
<LI>SSDRCLine (TSSD, TESD)<PRE>
766
{ T1Position <number> <number> } # position of 1st extra label.
767
{ T2Position <number> <number> } # position of 2nd extra label.
769
<LI>SSDR2Line (TSSD)<PRE>
770
{ T1Position <number> <number> } # position of 1st extra label.
771
{ T2Position <number> <number> } # position of 2nd extra label.
772
{ NameDirection <namedirection>} # direction to read the name.
776
<LI>C2R2Line (TERD, TCRD, TSSD, TESD, TUCD)<PRE>
777
{ T1Position <number> <number> } # position of 1st extra label.
778
{ T2Position <number> <number> } # position of 2nd extra label.
779
{ T3Position <number> <number> } # position of 3rd extra label.
780
{ T4Position <number> <number> } # position of 4th extra label.
781
{ NameDirection <namedirection>} # direction to read the name.
783
These labels can also be positioned at free will and therefore their
784
positions are saved separately.
787
<LI>C2R2MListLine (TCBD)<PRE>
788
{ T1Position <number> <number> } # position of 1st extra label.
789
{ T2Position <number> <number> } # position of 2nd extra label.
790
{ T3Position <number> <number> } # position of 3rd extra label.
791
{ T4Position <number> <number> } # position of 4th extra label.
792
{ NameDirection <namedirection>} # direction to read the name.
793
{ Messages <number> } # number of message labels.
794
{ TnPosition <number> <number> } # position of xth message label.
795
(>= 1 message label fields)
797
These labels can also be positioned at free will and therefore their
798
positions are saved separately.
801
<LI>TransitionArrow (TSTD)<PRE>
802
{ AnchorPoint <number> <number> } # connection point with separator.
803
{ Separator <direction> } # relative position of separator
804
{ LineNumber <number> } # line segment to which separator
805
# belongs (number>=1).
807
The transition arrow is the presentation of a transition edge in a STD.
808
The separator field indicates whether the separator is above, below,
809
to the left or to the right of the transition arrow. When it is to
810
the left or right, the anchor point is the point where the
811
separator line is connected to the arrow. When it is above or below,
812
the anchor point is simply the middle of the separator line. Note
813
that the length of the separator line is determined by the lengths
814
of the event and action labels and it is not stored separately.
815
The line number indicates the line segment to which the
816
separator line belongs. The highest numbered line segment has
817
the arrow head of the transition.
821
<H1><A NAME="SECTION001350000000000000000"> </A> <A NAME="TableFormat"> </A><A NAME="10682"> </A>
823
11.5 Table Editor File Format
827
Like diagrams, the table editor file format starts first with a
828
Storage section and then a Document section and a Page section.
829
Directly after the Page section follows the Table section with
830
some attributes of the entire table.
834
<H3><A NAME="SECTION001350100000000000000"> </A><A NAME="10684"> </A>
836
11.5.0.1 Table section
839
{ TopLeft <number> <number> } # top-left (x,y) of entire table.
840
{ NumberOfRows <number> } # nr. of rows in table (cells per column).
841
{ NumberOfColumns <number> } # nr. of columns in table (cells per row).
842
{ MarginWidth <number> } # min. distance text and column line.
843
{ MarginHeight <number> } # min. distance text and line.
846
In an earlier version of TCM other attributes where stored as well such
847
as DefaultLineStyle, DefaultRowAlignment, DefaultColumnAlignment etc. but they are now treated as attributes of the table editor itself
848
not of a table stored in a file.
852
<H3><A NAME="SECTION001350200000000000000"> </A><A NAME="10688"> </A>
854
11.5.0.2 Row sections
856
After the Table section follow the row sections in consecutive
857
order (they are numbered from 0 to NumberOfRows-1).
858
Each row section starts with the following three attributes:<PRE>
860
{ Height <number> } # all cells in row have the same height.
861
{ Alignment <alignment> } # all texts in row have the same alignment.
862
{ NumberOfCells <number> } # a row having n cells has n+1 lines
863
... rest of the row attributes.
866
The NumberOfCells of a row has to be equal to the NumberOfColumns field in
867
the table section. This field indicates how many cells the rows contain.
868
The rest of the row attributes consist of the attributes of the cells
869
and lines (line pieces) in a row.
870
The line pieces to the left and to the right of the cells in a row are seen
871
as part of the row too. For each line piece a separate line style and width field
872
are stored. About the cell itself, the cell text string, the fonts
873
and some annotation text is stored. So for every cell the following information
878
{ LineStyle <linestyle> } # Line style of the line piece
879
{ LineWidth <number> } # Line width of the line piece
880
{ Text <string> } # texts in a cell.
881
{ Font <xlfd> } # XLFD font description.
882
{ Annotation <string> } # annotation text of this cell.
888
The size of the cell is determined by the sizes of its row and column.
889
Text alignment of a cell is determined by the combined row and
890
column alignment. In a row section, the two line fields and the three
891
cell fields alternate and, because the number of line pieces is the
892
number of cells plus one, the row always end with two extra fields
893
for the line style and line width of the last line piece.
897
<H3><A NAME="SECTION001350300000000000000"> </A><A NAME="10694"> </A>
899
11.5.0.3 Column sections
901
After the Table section follow the column sections (numbered from 0 to NumberOfColumns-1):<PRE>
902
Column <number> {
903
{ Width <number> } # all cells in column have the same width.
904
{ Alignment <alignment> } # all texts in column have the same alignment.
905
{ NumberOfCells <number> } # a column having n cells has n+1 lines
911
The NumberOfCells of a column has to be equal to the NumberOfRows field in
912
the table section. Because the cell texts are already specified in the row
913
sections, a column section only needs the line style and width fields for
914
horizontal line pieces. There are NumberOfCells+1 line style and width fields
915
in a column. Therefore the rest of the column section consists of
916
NumberOfRows+1 times the following two attributes:
920
{ LineStyle <linestyle> } # line style of a line piece
921
{ LineWidth <number> } # line width of a line piece
927
<A NAME="biblio"> </A></FONT>
928
<BR><HR><H4>Footnotes</H4>
930
<DT><A NAME="foot10708">... group </A><A NAME="foot10708"
931
HREF="usersguidenode13.html#tex2html249"><SUP>11.1</SUP></A>
932
<DD>A process group is
933
also called a <I>compound process</I>
934
or a <I>decomposed process</I>.
937
<!--Navigation Panel-->
938
<A NAME="tex2html1163"
939
HREF="usersguidenode14.html">
940
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
941
<A NAME="tex2html1159"
943
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
944
<A NAME="tex2html1153"
945
HREF="usersguidenode12.html">
946
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A>
947
<A NAME="tex2html1161"
948
HREF="usersguidenode1.html">
949
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents_motif.gif"></A>
950
<A NAME="tex2html1162"
951
HREF="usersguidenode15.html">
952
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index_motif.gif"></A>
954
<B> Next:</B> <A NAME="tex2html1164"
955
HREF="usersguidenode14.html">Bibliography</A>
956
<B> Up:</B> <A NAME="tex2html1160"
957
HREF="User.html">Toolkit for Conceptual Modeling</A>
958
<B> Previous:</B> <A NAME="tex2html1154"
959
HREF="usersguidenode12.html">10. Frequently Asked Questions</A>
960
<!--End of Navigation Panel-->
962
<I>Henk van de Zandschulp</I>
963
<BR><I>2003-01-20</I>