During software development, a number of stakeholders must reach a common understanding of the behavior and structure of the software. These are for example users and sponsors (or their representatives), analysts, designers and programmers. An important function of conceptual models is to facilitate this understanding.
The notations for software specifications that are supported by TCM are explained in appendix A. A more detailed analysis of the nature and use of some of these techniques and heuristics in various existing methods for software specification is presented in the book . The UML diagram techniques are discussed in . Bibliographic references can be found on page .
This manual is the successor of  and . This version of the TCM software (henceforth called ``TCM'') is a collection of document editors, i.e. diagram, table and tree editors, each for a different graphical notation system. Currently, TCM has the following editors:
Entity-relationship diagrams are used in structured analysis and an extension of them, class diagrams (static structure diagrams), are used in the UML. This tool is intended for entity relationship diagrams (ERDs) that are used in Entity Relationship (ER) modeling based on the subset of the UML static structure diagrams. The ERD part of the UML class diagram technique is explained in [17,18,19]. The ER notation that TCM supports is explained in appendix A.1.1.
All editors look very similar and have many operations in common. All diagram editors have almost the same set of edit commands and all table editors have almost the same set of edit commands. TCM supports constraint checking for single documents (e.g. name duplication, 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). As of version 2.10 TCM support hierarchic graphs, so that it can handle for example hierarchic statecharts. Features to be added later include constraint checking across documents and executable models.
Figure 1.1 gives an overview of how the different document editors in TCM can be used in various methods for software specification. Each of these methods uses a subset of the notations available in TCM and defines a number of consistency rules across notations. Thus, each method allows the specification of a model of the required software product and uses different notations to specify different views upon this model. The consistency rules guarantee that there is a model that is being specified. Views that are inconsistent according to these rules, do not represent a model. The consistency rules of ER, DF and JSD are defined in  and the consistency rules of YSM are defined in . The current TCM version does not yet implement all the consistency rules of these methods. The implementation of consistency rules of these methods is planned for TCM version 3.0 as is described in .
The same applies to object oriented (OO) methods, in particular those using UML. TCM currently contains a number of tools for drawing diagrams for OO models, albeit sometimes incomplete or in a bit different notation than the standard. However, in the future we want to build support for integrated OO modeling with UML into TCM as well.
In TCM there is and will be no consistency checking for other methods such as the ISAC  and Information Engineering  methods. But tools for TCM can be used to draw the diagrams.
If you want to try TCM for the very first time, you first have the read section 1.4 to get started. You probably do not have to read much more of this manual for carrying on. The user interface is designed to be as intuitive as possible and to be proof against users who are trying things at random. The most important commands that you need are explained in the on-line help windows.
This manual is intended to be a reference manual for the user in the first place, hence the amount of details. You certainly need not read it all to be able to use TCM. Chapter 2 describes the common features between all TCM editors, such as saving documents, loading documents, printing documents etc. Chapter 3 describes how you edit a diagram abstracting from a particular diagram editor. In chapters 4, 5 and 6 you find all the material specific to the different diagram editors, grouped by data view editors, behavior view editors and function view editors, respectively. These chapters are organized in the same order as the list of diagram editors in section 1.1.2. Chapter 7 describes how you can edit tables in general and it explains the (small) differences between the four table editors. Chapter 8 describes how to edit a tree document in general and it explains the differences between the two tree editors. In appendix A a mini tutorial is given to the notations and methods supported by the TCM tools. In appendix B, there is a list of frequently asked questions (FAQ). In appendix C there is a specification and explanation of the TCM file format.
You can search for information in this manual either top down, via the table of contents, or bottom up, via the index pages at the end.
Currently, TCM runs on Solaris 2.x (Sparc and x86), SunOS 4.x (Sparc), Linux (x86), OSF/1 (Digital Unix on DEC Alpha), IRIX 6.x (SGI), AIX 4.x (RS6000), HP-UX 10.x and even on Windows, running the CYGWIN/XFree86 environment. Also TCM has been reported to run under FreeBSD and Darwin (Mac OS X). There is also a distribution with the source code. Each distribution contains binaries of the TCM software and recent user documentation. The source code distribution contains no binaries but the source code, the user manual and technical documentation (developer's guide, source code documentation, specifications etc.). Solaris Sparc and Linux x.86 are the platforms on which we develop and for which the most recent binaries are available. The source code of TCM is publically available, under the GNU public license. See the file COPYING in the TCM ftp distribution directory.
TCM has as home page http://www.cs.utwente.nl/~tcm.
This page contains supplementary information about TCM.
It is possible to download the TCM software via the page
http://www.cs.utwente.nl/~tcm/software.html. You can find a HTML version of the recent version of the user manual in http://www.cs.utwente.nl/~tcm/usersguide/index.html. The user manual is also contained as PostScript and PDF file in the doc subdirectory of each software distribution. There you can also find the manual as a set of HTML files. If you plan to upgrade TCM, see the file CHANGELOG on the ftp site for the most important changes between the consecutive versions.
For Linux we have made some distributions in which the Motif library is already linked with the TCM executables. These statically linked distributions carry the name statmotif as part of their name. For using these distributions you don't need Motif, Open Motif or Lesstif at all.
For up-to-date system specific information see http://www.cs.utwente.nl/~tcm/software.html and read also the file INSTALL in one of the software distributions before you install and use TCM.
Most TCM distributions are in the form of a Unix tar file compressed with the gzip program 1.1. To install a binary distribution (a tar.gz file) unzip and untar the TCM distribution by for instance: tar xzvfp 'distribution'.tar.gz. If your tar-program does not know the z(unzip) option then unzip the file explicitly by e.g. gunzip. A new directory named tcm-'version'/ will be created in the current directory containing the TCM binaries and documentation in subdirectories.
For an explanation of the TCM (environment) variables mentioned below see section 1.4.5. Every user of TCM should set the TCM_HOME environment variable to the directory where TCM is installed. It is recommended that they add TCM_BIN to their PATH and add TCM_MAN to their MANPATH environment variable. TCM will not work when TCM_HOME is not set. Do not forget to export these variables. It is a good idea to set the variables in your .profile or .login startup script of your Unix shell.
The distributions for Solaris contain shared object libraries. If you have one of these distributions and you have TCM installed in a directory other than /opt/tcm, each user should include this directory in the LD_LIBRARY_PATH variable by for instance: LD_LIBRARY_PATH=TCM_LIB:$LD_LIBRARY_PATH. Users of Linux do not need to set LD_LIBRARY_PATH. To configure amongst others the path names of some external Unix programs that are used by TCM you can modify the TCM_CONFIG/tcm.conf file.
For Linux we have also provided the software in the form of RPM packages. These distributions work with Redhat 6 and 7 and almost certainly with any other Linux system that has support for RPM. Install the distribution by:
rpm --install tcm-<version>.i386.rpmOr upgrade an existing distribution by:
rpm --upgrade tcm-<version>.i386.rpmBy default TCM is installed in /opt/tcm. With the rpm option -prefix <dir> you can install it in a different directory. Some of the documentation will be installed by default in
This is not treated in this document. See the INSTALL file contained in the source distribution for how you can compile TCM quick and easy. The source code also contains an extensive developer's guide that explains all ins and outs of compiling and porting TCM on your system.
To kill the tcm startup program issue Quit from the File menu. The processes of the running editors are independent from the running startup program, so when you quit a startup program, all other programs continue to run.
The Unix manual pages in the TCM distribution give an up-to-date overview of all arguments, environment variables and files that are used by TCM. Here we will give some explanation of the most important ones. TCM has the following command line arguments:
All editors additionally have some optional command line arguments to generate printable output directly from an existing document file. When these options are given, no windows are created, but the X display is used however, so you should run X Windows with an opened display. These options are:
Table editors additionally have the following optional command line arguments:
Depending on whether you find TCM precompiled into your (Linux) distribution (e.g. Debian and SuSE Linux) or whether you have to install it yourself TCM may use the environment variables listed below.
If no TCM specific environment variables have been set at all the values as found in the precompiled TCM distribution will be used.
The TCM tools depend on the following files and programs:
Some settings in tcm.conf are commented out such as the name of the printer, the Unix commands to print a file, to view or remove a print request. The reason is that TCM normally determines these settings itself but in case the commands are not found or the wrong ones are chosen then they can be set explicitly in tcm.conf.
The TCM editors depend on the following Unix environment variables.
The tools will not start when TCM_HOME is not set. When TCM_HOME is set to the wrong directory, the configuration and help files can not be read, which will be reported upon start up.
As of version 2.20 TCM also runs on Windows systems under the CYGWIN/XFree86 environment. See the README.cygwin and the INSTALL.cygwin file in the software distribution before you install and use TCM under CYGWIN. In order to run TCM under CYGWIN all executables in the CYGWIN distribution will have the .exe extension. Also some scripts in TCM_BIN are added or adapted.
The user interface of TCM complies for a large part with the OSF/Motif Style Guide . The user interface is built from the OSF/Motif widget set . The result is that user interaction through menus, dialogs, buttons, scroll bars and text areas work in the same way as other Motif applications and environments such as for instance Netscape for X Windows and CDE (common desktop environment). Only the drawing of diagrams and tables itself is quite different and this part does not make use of Motif. In any case, the TCM editors should be well-behaved under all popular X Window managers, e.g. kde, gnome, fvwm, mwm, etc. In  you find the specification of the user interaction with Motif applications in general, so it is not necessary to repeat that in this manual. TCM looks optimal on a full color display and a resolution of at least an XVGA screen (1024x756). It should still be usable though on a black and white display and/or an SVGA screen (800x600). For more detailed information about the other system requirements of TCM regarding Motif, X Windows and Unix see appendix B.
Before you ask questions that were already asked and answered before: Appendix B contains a collection of frequently asked questions (FAQ).