Next: Contents

#
Toolkit for Conceptual Modeling (TCM)
User's Guide and Reference
updated to version 2.20

| Roel J. Wieringa
Frank Dehne | Henk R. van de Zandschulp
Faculty of Mathematics and Computer Science | Department of Computer Science
Vrije Universiteit | University of Twente
De Boelelaan 1081a, 1081 HV Amsterdam | P.O. Box 217, 7500 AE Enschede
The Netherlands | The Netherlands
(till December 2000) | tcm@cs.utwente.nl

January 20, 2003

### Abstract:

The Toolkit for Conceptual Modeling (TCM) is a collection of software tools to present conceptual models of software systems in the form of diagrams, trees and tables. A conceptual model of a system is a structure used to represent the behavior or decomposition of the system. TCM is meant to be used for requirements engineering, i.e. the activity of specifying and maintaining requirements for desired systems, in which a number of techniques and heuristics for problem analysis, function refinement, behavior specification, and decomposition specification are used.

TCM contains editors for two major sets of software specification techniques: Structured Analysis (SA) and the Unified Modeling Language (UML). The first set includes amongst others editors for ER-diagrams, data and event flow diagrams and state-transition diagrams. The set of UML editors includes amongst others a class-diagram editor, a use-case diagram editor and an activity diagram editor. Furthermore, TCM contains three generic editors for generic diagrams, generic tables and generic trees and also a number of special purpose editors such as two editors for JSD and a process graph editor.

The current version of TCM supports constraint checking for single documents (e.g. name duplication and cycles in is-a relationships). TCM distinguishes built-in constraints (of which a violation cannot even be attempted) from immediate constraints (of which an attempted violation is immediately prevented) and soft constraints (against which the editor provides a warning when it checks the drawing). TCM is planned to support constraint checking across documents.

All editors have a similar user interface, and most of the time you don't need this manual. There is a simple on-line help facility. This user's guide annex reference manual is available in PostScript, PDF and in HTML format.

This document is intended to be a guide for both beginners and advanced users of TCM. Appendix A contains a mini-tutorial of the notation techniques supported by this version of TCM.

TCM runs on Unix and Linux systems with X Windows and even on Windows, running the CYGWIN/XFree86 environment. The ftp-site is ftp://ftp.cs.utwente.nl/pub/tcm. The TCM home page is http://www.cs.utwente.nl/~tcm. TCM is distributed under the GNU General Public License (GPL).

- Contents
- List of Figures
- 1. Introduction
  - 1.1 An Overview of TCM
    - 1.1.1 The Purpose of TCM
    - 1.1.2 What is Included in TCM
    - 1.1.3 Using TCM in Software Specification
  - 1.2 How to Read this Manual
  - 1.3 How to Obtain the Latest Version of TCM
  - 1.4 Installation and Getting Started
    - 1.4.1 Unix tar-files with binaries
    - 1.4.2 RPM distributions with binaries
    - 1.4.3 Source code distributions
    - 1.4.4 Starting up
    - 1.4.5 Unix options, files and variables
    - 1.4.6 Graphical User Interface
  - 1.5 Questions and Comments
- 2. Document Editing
  - 2.1 The User Interface of TCM
    - 2.1.1 Tiled buttons.
    - 2.1.2 Menu bar.
    - 2.1.3 Drawing area.
    - 2.1.4 Document Type.
    - 2.1.5 Document name.
    - 2.1.6 Modified.
    - 2.1.7 Status area.
    - 2.1.8 Directory.
    - 2.1.9 Scale value.
    - 2.1.10 Autoresizing.
    - 2.1.11 In-line editor.
    - 2.1.12 Hierarchic document.
    - 2.1.13 Arrow Buttons.
  - 2.2 Changing the Document Name
  - 2.3 Changing the Project Directory
  - 2.4 Loading and Saving Documents
  - 2.5 Editing Documents
    - 2.5.1 Editing Text in a Document
    - 2.5.2 The In-line Text Editor
    - 2.5.3 The Text Edit Dialog
  - 2.6 Viewing Documents
  - 2.7 Printing Documents
  - 2.8 The Scaler
  - 2.9 The Page Layout
  - 2.10 The Properties Menu
  - 2.11 The Search Menu
  - 2.12 Checking and Annotating Documents
  - 2.13 On-line Help
- 3. Diagram Editing
  - 3.1 Definitions
  - 3.2 Creating Nodes
  - 3.3 Creating Edges
  - 3.4 Selection Commands
  - 3.5 Editing Text
  - 3.6 Moving Shapes
  - 3.7 Resizing Shapes
  - 3.8 Deleting Subjects
  - 3.9 Cutting and Pasting Subjects
  - 3.10 Creating and Deleting Duplicates of a Node
  - 3.11 Changing Shape Properties
  - 3.12 Miscellaneous Edit Commands
  - 3.13 Undo and Redo
  - 3.14 The Generic Diagram Editor (TGD)
    - 3.14.1 Nodes and Edges
- 4. Data View Editors
  - 4.1 The classic Entity-Relationship Diagram Editor (TERD)
    - 4.1.1 Nodes and Edges
    - 4.1.2 Cardinality Constraints and Role Names
    - 4.1.3 Taxonomic Structures
    - 4.1.4 Constraint Checking
  - 4.2 The Entity-Relationship Diagram Editor (TESD)
    - 4.2.1 Nodes and Edges
    - 4.2.2 Cardinality Constraints
    - 4.2.3 Read direction arrows
    - 4.2.4 Taxonomic Structures
    - 4.2.5 Constraint Checking
  - 4.3 The Class-Relationship Diagram Editor (TCRD)
    - 4.3.1 Nodes and Edges
    - 4.3.2 Classes and Relationships
    - 4.3.3 Attributes and Operations
    - 4.3.4 Taxonomic Structures
    - 4.3.5 Constraint Checking
  - 4.4 The Static Structure Diagram Editor (TSSD)
    - 4.4.1 Nodes and Edges
    - 4.4.2 N-ary Associations
    - 4.4.3 Objects
    - 4.4.4 Taxonomic Structures
    - 4.4.5 Constraint Checking
- 5. Behavior View Editors
  - 5.1 The State Transition Diagram Editor (TSTD)
    - 5.1.1 Nodes and Edges
    - 5.1.2 States
    - 5.1.3 Transitions, Events and Actions
    - 5.1.4 Constraint Checking
  - 5.2 The Activity Diagram Editor (TATD)
    - 5.2.1 Nodes and Edges
    - 5.2.2 States
    - 5.2.3 Transitions
    - 5.2.4 Constraint Checking
  - 5.3 The Process Structure Diagram Editor (TPSD)
    - 5.3.1 Nodes and Edges
    - 5.3.2 The Process Tree
    - 5.3.3 Constraint Checking
  - 5.4 The Recursive Process Graph Editor (TRPG)
    - 5.4.1 Nodes and Edges
    - 5.4.2 Constraint Checking
  - 5.5 The Collaboration Diagram Editor (TCBD)
    - 5.5.1 Nodes and Edges
    - 5.5.2 Interactions
    - 5.5.3 Constraint Checking
  - 5.6 The StateChart Diagram Editor (TSCD)
    - 5.6.1 Nodes and Edges
    - 5.6.2 And-states
- 6. Architectural View Editors
  - 6.1 The Data Flow Diagram Editor (TDFD)
    - 6.1.1 Main window
    - 6.1.2 Nodes and Edges
    - 6.1.3 Data Flow Diagram Levels and Indexes
    - 6.1.4 Minispecs
    - 6.1.5 Splitting and Merging Flows
    - 6.1.6 Constraint Checking
  - 6.2 The Data and Event Flow Diagram Editor (TEFD)
    - 6.2.1 Nodes and Edges
    - 6.2.2 Constraint Checking
  - 6.3 The System Network Diagram Editor (TSND)
    - 6.3.1 Nodes and Edges
    - 6.3.2 Constraint Checking
  - 6.4 The Use Case Diagram Editor (TUCD)
    - 6.4.1 Nodes and Edges
    - 6.4.2 Constraint Checking
  - 6.5 The Component Diagram Editor (TCPD)
    - 6.5.1 Nodes and Edges
  - 6.6 The Deployment Diagram Editor (TDPD)
    - 6.6.1 Nodes and Edges
- 7. Table Editing
  - 7.1 Editing Tables
    - 7.1.1 Definitions
    - 7.1.2 Selection Commands
    - 7.1.3 Editing Text
    - 7.1.4 Copying and Moving Text
    - 7.1.5 Cutting and Pasting Text
    - 7.1.6 Adding Rows and Columns
    - 7.1.7 Deleting Rows and Columns
    - 7.1.8 Moving Rows and Columns
    - 7.1.9 Sorting Rows and Columns
    - 7.1.10 Resizing Rows and Columns
    - 7.1.11 Undo and Redo
    - 7.1.12 Changing Properties of a Table
    - 7.1.13 Miscellaneous Commands
  - 7.2 The Generic Table Editor (TGT)
  - 7.3 The Transaction Decomposition Table Editor (TTDT)
  - 7.4 The Transaction-Use Table Editor (TTUT)
  - 7.5 The Function-Entity type Table Editor (TFET)
- 8. Tree Editing
  - 8.1 Editing Trees
  - 8.2 Edit and View Mode
  - 8.3 The Generic Textual Tree Editor (TGTT)
  - 8.4 The Function Refinement Tree Editor (TFRT)
- 9. Mini-tutorial on Notation Techniques
  - 9.1 Structured Analysis Notations
    - 9.1.1 Entity-Relationship Diagrams (TESD)
      - 9.1.1.1 Entity types
      - 9.1.1.2 Binary relationships
      - 9.1.1.3 Cardinality properties
      - 9.1.1.4 Relationships of higher arity
      - 9.1.1.5 Attributes
      - 9.1.1.6 Associative entities
      - 9.1.1.7 Is-a relationships
    - 9.1.2 Data and Event Flow Diagrams (TEFD)
      - 9.1.2.1 The components of a DFD
      - 9.1.2.2 Hierarchical DFDs
      - 9.1.2.3 Control processes
      - 9.1.2.4 Event flows
      - 9.1.2.5 Time-Discrete and time-continuous flows
    - 9.1.3 State Transition Diagrams (TSTD)
    - 9.1.4 Transaction-Use Tables (TTUT)
    - 9.1.5 Function-Entity Type Tables (TFET)
    - 9.1.6 Function Refinement Trees (TFRT)
  - 9.2 UML Notations
    - 9.2.1 Use case diagrams (TUCD)
      - 9.2.1.1 Actors
      - 9.2.1.2 Use cases
    - 9.2.2 Static structure diagrams (TSSD)
      - 9.2.2.1 Stereotypes and properties
      - 9.2.2.2 Behavior
      - 9.2.2.3 Objects
    - 9.2.3 Activity diagrams (TATD)
      - 9.2.3.1 Activity
      - 9.2.3.2 Transition
      - 9.2.3.3 Choice nodes
      - 9.2.3.4 Fork and join nodes
      - 9.2.3.5 Initial and final state
    - 9.2.4 Statechart diagrams (TSCD)
    - 9.2.5 Collaboration diagrams (TCBD)
      - 9.2.5.1 Messages
    - 9.2.6 Component diagrams (TCPD)
    - 9.2.7 Deployment diagrams (TDPD)
  - 9.3 Miscellaneous Notations
    - 9.3.1 Classic Entity-Relationship Diagrams (TERD)
      - 9.3.1.1 Entity types
      - 9.3.1.2 Binary relationships
      - 9.3.1.3 Cardinality constraints
      - 9.3.1.4 Relationships of higher arity
      - 9.3.1.5 Value types
      - 9.3.1.6 Attributes
      - 9.3.1.7 Is-a relationships
    - 9.3.2 Class-Relationship Diagrams (TCRD)
      - 9.3.2.1 Classes
      - 9.3.2.2 Relationships
      - 9.3.2.3 Is-a relationships
    - 9.3.3 Data Flow Diagrams (TDFD)
    - 9.3.4 Process Structure Diagrams (TPSD)
    - 9.3.5 System Network Diagrams (TSND)
    - 9.3.6 Recursive Process Graphs (TRPG)
    - 9.3.7 Transaction Decomposition Tables (TTDT)
- 10. Frequently Asked Questions
  - 10.1 What is TCM?
  - 10.2 Where can I get TCM?
  - 10.3 How do I install TCM?
  - 10.4 How do I start up TCM?
  - 10.5 Where can I find the user manual of TCM?
  - 10.6 What else can I read about the methods supported in TCM?
  - 10.7 Is TCM available for my platform?
  - 10.8 What to do if I don't have Motif?
  - 10.9 Can I obtain the source code of TCM?
  - 10.10 How can I compile or port TCM for my system?
  - 10.11 What are the terms of usage?
  - 10.12 In what programming language is TCM written?
  - 10.13 How do I stay up-to-date with the developments of TCM?
  - 10.14 Why is Motif used for the GUI?
  - 10.15 Did you use other tools or widget sets to build TCM?
  - 10.16 Does TCM run under Windows, Macintosh, Java etc. ?
  - 10.17 How can I configure TCM?
  - 10.18 Can I set X Resources for TCM?
  - 10.19 Why does TCM sometimes show fewer or different colors?
  - 10.20 Why does TCM crash with ``X Error of failed request''?
  - 10.21 Why won't TCM start saying ``libBlaBla.so: can't open file''?
  - 10.22 Why does TCM complain about old versions when I load a diagram?
  - 10.23 How can I print my TCM documents?
  - 10.24 How can I include a TCM picture in my text document?
  - 10.25 Is it possible to create process decompositions in TDFD?
  - 10.26 Are there plans for consistency checks across diagrams?
  - 10.27 Is it possible for the user to define its own symbols?
  - 10.28 Do you have any plans to support specific methods?
  - 10.29 Do you have plans for code generation?
  - 10.30 Is it possible to drag and drop with TCM?
  - 10.31 What file formats does TCM generate?
  - 10.32 I want to draw an XYZ diagram, which tool should I use?
  - 10.33 Is it possible to make an editor for XYZ diagrams?
  - 10.34 How can I have more influence on the layout?
  - 10.35 How can I connect an edge with an edge?
  - 10.36 Why are there black pixels left in the drawing area?
  - 10.37 Why doesn't the BackSpace key function correctly in Linux?
  - 10.38 Why does TCM have a tea pot with a 'T' as logo?
  - 10.39 What do these ``assertion failed:'' messages mean?
  - 10.40 I have a question. What should I do now?
  - 10.41 I found a bug. What should I do now?
  - 10.42 How can I contribute to TCM?
- 11. TCM File format
  - 11.1 Introduction
  - 11.2 Elements of a TCM document
  - 11.3 Storage, Document and Page Information
    - 11.3.0.1 Storage section
    - 11.3.0.2 Document section
    - 11.3.0.3 Page section
    - 11.3.0.4 Scale section
  - 11.4 Diagram Editor File Format
    - 11.4.0.1 Node sections
    - 11.4.0.2 Edge sections
    - 11.4.0.3 View sections
    - 11.4.0.4 Node shape sections
    - 11.4.0.5 Line sections
  - 11.5 Table Editor File Format
    - 11.5.0.1 Table section
    - 11.5.0.2 Row sections
    - 11.5.0.3 Column sections
- Bibliography
- Index
- About this document ...

Next: Contents