This chapter explains how diagrams and other documents that can be handled in the Organizer, may be managed in a project including several project members. The functionality of SDT related to management of diagrams in a project environment is provided by the Organizer, and this chapter requires some knowledge about this tool. A reference manual for the Organizer can be found in The Organizer.
Software development projects are typically staffed by a large number of software engineers, each working simultaneously on different parts of the same system. This requires careful coordination and version control of the different parts of the system. Normally, stable (well-defined) versions of a system are stored in a central storage area (in this chapter named the original area) accessible for each user. The original area is typically either:
In addition, each project member may have his own work area where he temporarily stores the parts of the system he is currently working on. Furthermore, a project may also use a reference area which contains one or more packages of information that are shared between different projects.
This way of working is supported by the Organizer tool. It allows the members of a project to work independently, but in a coordinated and structured way. In particular, the tool supports:
To facilitate the management of more complex projects, SDT can be integrated to control systems that are used to manage versions and revisions. Example of such systems are RCS and ClearCase. The Organizer can easily be customized in order to extend the menus commands with support for "check-in", "check-out" and "update" operations. The extensions are defined in textual files that contain the definitions of the names of the menus and commands, what operations they will call in the control system, what objects are the subject of the operation, etc.
The rest of this chapter is organized as follows:
The Organizer provides the ability to manage the diagrams and other documents that build up a project, without the need for an external version or revision control system.
Important is that one diagram is represented by one file, and the mapping between diagrams and files are kept in the system file. The system file is the file that is opened when issuing the Open command in the Organizer. The system file has by default the extension .sdt
.
A diagram may be bound to a physical file using the Organizer by:
Diagrams may be bound automatically when the diagram is saved for the first time. The name of the physical file will by default be <diagram name>.<ext>
, where <diagram name> is the name of the diagram and <ext> is a suggested extension of three letters indicating what type of diagram is contained in the file. See Save for information on default file names and extensions.
demonblock.sbk
Diagrams and files may be bound manually, on demand, via the command Connect. A file selection dialog appears and the selected diagram may be connected to an existing file. Another possibility is to look for the diagram file in a certain directory.
Figure 64 : Connecting a diagram to an existing file
|
When connecting a diagram, there is a possibility to automatically connect all diagrams in a possible substructure, the Expand Substructure option. The names of the files are not important when mapping files automatically, using this feature, since the diagram name is stored in the file. What is important though, is the extension of the file name which must correspond to the type of diagram stored in the file.
Two settings in the Organizer are related to where diagrams are stored. The two settings are:
The source directory and the target directory may be changed in the Organizer by using the Set Directories command. In the Set Directories dialog there is also an option to either show the absolute path to files, or to show the path relative the Source directory. For a complete description of the functionality of this command, please see the Set Directories.
Figure 65 : Specifying the Source and Target directories
|
This affects the way paths to files are stored in the system file:
One way to manage the diagrams in a project is to have the original area managed by some external configuration or version control system, e.g. RCS (Revision Control System), which is available on most computer systems. In that case, every member of the project has his own work area. In each work area, there is a system file (or perhaps multiple system files, each one containing a different part of the system). All diagrams in the system file are bound to files in the users' work area. The relationship between files in the users' work area and files in the original area is managed by the external configuration or version control system.
The rest of this section describes how to use RCS as a version control system. How to instead use ClearCase is described in Using ClearCase Together with an SDT System.
The control is based on the following mechanisms:
Note: The following instructions and descriptions only addresses a UNIX system with the UNIX version of RCS. |
When handling of files managed by RCS is to be introduced for an existing SDT system, the following approach can be used:
The work area has three directories:
demonblock gameblock system demonblock: demon.spr demonblock.sbk gameblock: game.spr gameblock.sbk main.spr system: demongame.msc demongame.ssy systemlevel.msc
The original area for the Demon Game system (created in a different place in the file system) will then have the following structure:
RCS demonblock gameblock system demongame/RCS: demongame/demonblock: RCS demongame/demonblock/RCS: demongame/gameblock: RCS demongame/gameblock/RCS: demongame/system: RCS demongame/system/RCS:
setenv rcsroot <directoryname>
) and load the RCS menu-set into the Organizer (run $telelogic/sdt/examples/RCS/sdtrcs.mnu
). A new menu titled RCS appears in the Organizer menu bar.RCS demonblock gameblock system RCS: demonblock: RCS demonblock/RCS: demon.spr,v demonblock.sbk,v gameblock: RCS gameblock/RCS: game.spr,v gameblock.sbk,v main.spr,v system: RCS system/RCS: demongame.msc,v demongame.ssy,v systemlevel.msc,v
If the system is developed by a group of developers it is useful to partition it and assign Control Unit Files, for the different partitions. For the DemonGame example, let us assume that the DemonBlock is developed by one developer and the GameBlock by another. The procedure here is to create:
.scu
files)..scu
files. It is wise to have the control unit file located in the same directory as the corresponding object file.The DemonGame original area with checked in control unit files:
RCS demonblock gameblock system alfa/RCS: demongame.scu,v alfa/demonblock: RCS alfa/demonblock/RCS: DemonBlock.scu,v demon.spr,v demonblock.sbk,v alfa/gameblock: RCS alfa/gameblock/RCS: GameBlock.scu,v game.spr,v gameblock.sbk,v main.spr,v alfa/system: RCS alfa/system/RCS: DemonGame.scu,v demongame.ssy,v demongame.msc,v systemlevel.msc,v
When a user has made changes in files that have been checked out and locked and wants to make these changes global for the complete project, the following steps should be performed.
Say that a new process diagram is added to the GameBlock:
gameblock.sbk
and GameBlock.scu
. GameBlock.scu
will automatically be updated with the new process diagram file name. Note also that all changes will be local to the partition of the diagram system that represents the GameBlock and that no global update of the system file is needed.If a user is notified that there have been changes to the system, the following should be done in order to update the users' local system:
Say that we have an original area with its RCS directories containing the checked in diagrams and the control unit files. A developer that is new to the project wants to make a complete update of a system in his work area to get an up-to-date view.
rcsroot
should be defined to point to the original area.$telelogic/sdt/examples/RCS/sdtrcs.mnu
), the Source Directory is set to the work area, and the top level control unit file is associated with the SDT symbol (using the Organizer CM Group command). DemonGame.scu
in the work area top directory.Presently there is one global link file (the master link file) that holds the link information for a given system. A group of developers can coordinate changes to this file with the help of the RCS check out and lock facility, where only one developer can update the file at a time. A local link file is used for temporary storage of changes made to the endpoint and link information, until the user decides to make his changes global. Say we have checked in the first version of the link file into the original area. In order to modify the link file, the procedure would follow these guidelines:
There is a possibility for several users to work simultaneously on the same SDL diagram by utilizing the commands Split and Join, available in the Tools menu of the Organizer.
By the Split command, a diagram with several pages can be saved in several files, with disjoint sets of pages, thus enabling several users to edit them independently. The Join command simply merges two SDL diagrams of the same kind.
This section describes one way of using SDT and ClearCase in an integrated way. For a more general description of using a configuration or version control system, please see How to Manage the Diagrams in a Project.
When handling of files by ClearCase is to be applied on a system being developed by SDT, the following approach can be used.
$telelogic/sdt/examples/ClearCase/sdtcc.mnu
SourceDirectory.
The system file for the diagram system can be checked in but it is not suitable for version control since the Organizer wants to update it in situations unrelated to revision changes. The system file should be regarded as one developer's personal view of the system being developed. On the other hand, the top level control unit file should be checked in and is suitable to be put under revision control.
The top level control unit file allows to load the system into the Organizer if a user starts from scratch. Say that there is a checked in diagram system in a ClearCase VOB. A developer that wants to start working on that diagram system has to do the following.
$telelogic/sdt/examples/ClearCase/sdtcc.mnu
The main difference to SDT 2.3 is how diagrams are mapped to files. In SDT 2.3, the binding of a diagram to a file was done automatically when the diagram was accessed. A search list was consulted and the first file found according to the search list was bound to the diagram. In SDT 3.X, the binding of a diagram to a file is explicit and stored separately in the system file. Search lists are no longer supported in SDT.