Sandrila Ltd

SDL for Visio - V4.8 - 4th September 2008

SDL-2000, MSC-2000 and UML2

Sandrila SDL website

System Requirements and Installation

Requirements

Installation

  1. Create a folder 'c:\Program Files\sandrila\sdl' and unzip sandrila.zip into this folder.
  2. Start Visio.
  3. From the 'Tools' menu select 'Options -> Advanced' then select the 'File Paths' button.
    Add the path to the 'sandrila' folder e.g. : 'c:\Program Files\sandrila'
    to the Templates, Stencils and Add-ons file paths.
    Multiple paths should be separated by ';' e.g. Stencils;c:\Program Files\sandrila
    P.S. Setting the path to point to 'sandrila' will allow Visio to present SDL
    as a new drawing type on the File -> New menu.
  4. Visual Basic for Applications is used by this template for some of its operations.
    VBA and Automation Events must be enabled.
    From the menu ensure that: and for Visio 2007:
  5. Close and restart Visio.
    Now when choosing a new drawing type, 'SanDriLa' and 'SanDriLa_2000' should be visible.
    'SanDriLa' is for use with Visio 2002 or later.
    'SanDriLa_2000' is for Visio 2000.
    Choose drawing type 'SDL', the unregistered version should show the about box.
  6. You can add a shortcut to SanDriLa on the desktop and/or to the Start menu.
    The target path in the shortcut should be to the SanDriLa template e.g. :
    "C:\Program Files\sandrila\sdl\SanDriLa.vst"
    and the 'Start in' path should point to the Sandrila folder e.g. :
    "C:\Program Files\sandrila\sdl\"
    Change the shortcut icon to 'sdl.ico' or 'sdl1.ico'.
Visio 2000/2002 Options - File Paths
Visio 2000 options
Visio 2003/2007 Options - File Paths
Visio 2002 options

Registration

When you register Sandrila SDL with Sandrila Ltd you will be sent a registration key by email.

  1. Select and copy this registration key
  2. Open Sandrila SDL
  3. From the Sandrila menu and select 'Sandrila About'
  4. Click on the Registration button and paste this registration key into the 'registration key' text area.

Uninstall

  1. Remove the paths to Sandrila SDL from the Visio 'File Paths' dialog (as above).
  2. Close Visio and delete the sandrila SDL folder.

Getting Started

Sandrila SDL can be started in several ways:

You will be presented with a new, blank diagram with the System stencil and the Sandrila menu will be added to the menu bar.

Creating a System Diagram

Start Sandrila SDL, a blank System diagram will be displayed with the Z100 System Agent stencil.

Adding Blocks to a System Diagram

Drag and drop a Block shape from the stencil onto the page. The block shape will resize to the size defined in the 'SanDriLa -> Tools -> General Options -> System/Block' dialog. The Color Fill tab on the same dialog also allows a fill color to be assigned to shapes.

If the block shape is selected on the page (as indicated by the color of the shape and the various control handles being visible) then typing text will put this text into the block shape. Otherwise, double-clicking the block shape will allow the block text to be edited.

Repeat with another block on the same page.

Deleting shapes

Any shape may be deleted by selecting that shape and pressing the Delete (or Del) key.

Moving Blocks

To move a block, just drag and drop it in its new location.

Resizing Blocks

To resize a block, select the block then drag one or more of the resize handles.

Connecting Blocks with Channels

Drag and drop a Channel from the stencil onto the drawing page.

A channel has two ends, a FROM end and a TO end (the TO end being the one with the arrow). A channel represents a data flow from one block to another.

Drag the FROM end to the edge of one of the blocks, the appearance of a red blob indicates that the channel can be connected at this point. Releasing the channel end will glue the channel to the block at this location on the block. Repeat for the other channel end and the other block.

Now if either block is moved, the channel will move with the block and stay glued to the same location on the block.

Now drag the channel ends to the centre of each block, the glue type will change. Now when moving either of the blocks, the channel reroutes. It's easier to try it rather than describe it.

Channel routing

Channels can take either of two routing types: diagonal or right-angle. This routing type is selectable by right-clicking on the channel and selecting the routing style from the menu.

The default routing style is diagonal.

Selecting right-angle routing will not take effect until the channel angle passes through a 90° angle.

Naming Channels

A channel may have a name, double-click the channel to edit the name. The default channel name is 'channel'.

Connecting Channels between the Environment and Blocks

The frame of the diagram represents 'the outside world' i.e. the environment.

Drag and drop a channel, connecting one end to the frame and the other end to a block

Adding Signals to Channels

Signals represent the data being carried by a channel.

Drag and drop a signal from the stencil and place it near the TO end of a channel. Double-clicking the signal allows the signal name to be edited.

Signals are connected to the channel by the channels 'signal controls'.

Select one of the channels, you will notice 4 yellow blobs associated with that channel, these are the signal and gate controls for that channel. Ignore the gate controls for now. Placing the mouse over each control in turn will display a tip box that shows the function of that control. Drag the 'TO end signal control' over the signal just added until the red glue blob appears, then release the control. The signal is now glued to the TO end of the channel.

Moving the Channel name

A channel's name may be moved by means of its control. There are no limitations on where the name may be moved.

Moving Signals

Once a signal has been glued to a channel signal control, the signal may be moved and the association of the signal and channel will be maintained. Whenever a channel is selected, the controls will always show which signal is associated with each channel end (and it will also show the location of the channel text).

Moving Channels

Whenever a channel is moved, the channel name may move as well, though it cannot be guaranteed that the name will move to a convenient position. Hence, it may be necessary to relocate the channel name after a channel is moved.

However, any signals associated with a channel will not move with the channel. They will have to be relocated manually.

Adding Connection Points

The above method of connecting channels to blocks (and the environment) is usually quite adequate. However, sometimes fixed connection points can be more useful.

Delete the channel(s) added above, right click on each of the blocks and select 'Add connection points' from the menu. Assuming that the Visio 'View -> Connection Points' menu item is enabled, a collection of connection points will be visible around the block. A similar operation will add connection points to the environment frame.

Now when connecting a channel, the channel may be glued to one of these connection points

You may not need these connection points, they are there should you want them

Creating a Block Diagram

Upon starting Sandrila SDL, a blank System diagram will be displayed with the Z100 System Agent stencil.

From the Sandrila menu, select 'Set Diagram Type', then select Block and click OK. The diagram type will change to 'Block' and the Block stencil should be available.

Differences between System and Block diagrams

Very little really, you are just working at a lower level of your software design. Most of the shapes are the same and there are a few extra shapes.

Examples

Please see the example Block Diagrams, also use the SDL/MSC-CIF import facility to look at other block diagrams.

Creating a Process Diagram

Upon starting Sandrila SDL, a blank System diagram will be displayed with the Z100 System Agent stencil.

From the SanDriLa menu, select 'Set Diagram Type', then select Process and click OK. The diagram type will change to 'Process' and the Process stencil should be available.

Assumption

It is assumed here that you have followed the instructions for creating system and block diagram, hence, you are up to speed on dropping and moving shapes, editing shape text and connecting shapes to channels. If not, go back and do that first, as there is no such detail from now on.

A few notes to get you started

The example diagrams should provide sufficient information about how process diagrams. However, here are a few notes for the beginner.

Examples

Please see the example Process Diagrams, also use the SDL/MSC-CIF import facility to look at other process diagrams.

Sandrila SDL Menus

Sandrila SDL adds a new menu to the Visio menu bar -

added menu

'Add...' item expands to -

add menu

Import/Export expands to -

import/export menu

'Analyze' expands to -

analyze menu

and 'Tools' expands to -

tools menu

Adding a new diagram

Use the Sandrila menu and select 'Add' then 'Add new SDL/MSC diagram'. This will create a new diagram based on the Sandrila SDL template. You can see a list of the current diagrams on either the Windows menu or from the Sandrila -> Tools -> Goto Diagram menu.

Adding a new page to the current diagram

To add a new page to your diagram, use the SanDriLa menu and select 'Add' then 'Add new SDL/MSC Page'. A new page based on the first page will be added. The pages in the current document can be seen as tabs along the bottom on the Visio window. To see a full list of all the pages use either the Edit -> Goto menu or from the Sandrila -> Tools -> Goto page menu.

Adding n new pages to the current diagram

To add several new pages to your diagram, use the SanDriLa menu and select 'Add' then 'Add n new SDL/MSC pages'. At the dialog box, enter the number of pages required (1 - 99). This number of new pages based on the first page will be added.

Deleting pages

Select the page you wish to delete from tabs at the bottom of the drawing window, right-click the tab and select delete.

SDL / MSC / UML diagram types

Setting the diagram type

Use the SanDriLa menu and select 'Set Diagram Type' and select the required diagram types. All the pages in the current document will be set to this diagram type. The relevant stencil type will also be opened. It is best to set the diagram type before adding shapes to that diagram. Once shapes have been added to a diagram, it may not be possible to change the diagram type as this may allow an incorrect shape type on a page. It is usually possible to change from say a Process diagram to a Process Type diagram as the same shapes are allowed on both diagram types.

CIF Import menu (Pro Registered version only)

ITU standard Z.106 describes the CIF (Common Interchange Format) to be used for import and export of SDL/MSC diagrams. For more information, see CIF Import and CIF Export.

Export pages as images (Pro Registered version only)

If you need to import SDL diagrams into a word processor, send them by email or prepare images for a web page then the standard Visio menu options only allow you to save one page at a time. Sandrila SDL allows all the pages of the current document or all the open documents to be saved as images. The 'Export pages as images' dialog box allows you to change the path to which images are saved and the image type to be used (BMP, GIF, JPG, PNG, TIF, WMF).

export as images dialog

Search (Registered version only)

Visio's built-in search facility does not allow searching over more than one document nor does it take into account some of the specialised syntax of SDL, MSC etc.

The Sandrila SDL search allows searching for text within a shape and searching for shapes within all the currently open documents. The shapes listed are limited to the shapes used in all the currently open documents. The search also takes into account SDL line continuation (an '_' followed by a new line).
i.e 'Line_
continuation'
is equivalent to 'Linecontinuation'.

A drop-down list on the text search box keeps a record of all recent searches.

search dialog search dialog

When an item is found it becomes highlighted and the 'Search' button becomes a 'Next' button. If a text search is being performed than the actual text will be highlighted. The Visio zoom buttons may be used to provide closer inspection of the found item.

P.S. The zoom buttons may not be visible if you are using Visio's default toolbar settings. Please see the Visio help file for instruction in modifying the toolbars.

Go To Diagram

When dealing with a large number of diagrams, the built-in Visio method of selecting which document to view is far from ideal. Use the 'SanDriLa -> Tools -> Go to Diagram' menu to select which diagram to view. It provides the diagram type and name to allow you to clearly see all the current diagrams that are open. The current diagram is highlighted.

To save the list of documents in a text file, use the 'Save' button.

goto document dialog

Go To Page

When dealing with a diagrams containing a large number of pages, the built-in Visio method of selecting which page to view is far from ideal. Use the 'SanDriLa -> Tools -> Go to Page' menu to select which page to view. The current page is highlighted.

To save the list of pages in a text file, use the 'Save' button.

goto page dialog

Options

The template contains custom properties (shape data in Visio 2007) that may be changed to suit your own preferences.

These custom properties are best viewed by using the menu SanDriLa -> Tools -> General Options. This will present you with a tabbed dialog box showing you the current options.

Because there are a large number of these options, the normal Visio method of displaying custom properties may not be practical as the page may be too large for your screen.

options dialog

Changing the Sandrila SDL options permanently

Refer to your Visio documentation on how to open and edit templates.

You may edit the template to change the custom properties so that any new diagrams use these new properties.

Changing the Sandrila SDL options for the current document only

The preferences of the first page of your document will be used as the default preferences for any new pages added to that document.

Open Relevant Stencil

When opening a diagram that has been saved without saving the relevant stencil, this menu will open the relevant stencil for the current drawing type.

This is particularly useful with Visio 2000 and saved CIF import files. When importing SDL-CIF, the saved file does not save the stencil. This menu will open the stencil for the relevant diagram type.

Diagrams and pages

SDL diagrams may contain 1 or more pages but each page in that diagram must be of the same type e.g. System.

Each page within a diagram can have individual settings for paper size, page size and custom properties.

Starting a new diagram

Start a new diagram based on the Sandrila SDL template.

Initially a new SDL formatted page will be displayed with the following attributes:

  1. diagram type is 'System'
  2. diagram title is 'name'
  3. page title is '1'

By default, the 'system' stencil will be opened.

Choosing the paper size

Use the Visio page setup menu to select your paper size.

Choosing the page size

Either:

  1. Use the Visio page setup menu and select 'Page size'. Use the 'predefined size' option to select your page size.
  2. or move the top and/or right page borders using the mouse and Control key

Changing the page name

Double click on the tab at the bottom of the page. Type in the new name or edit the old one. The pages indication in the top right-hand corner of the page will show the current page name and the total number of pages.

Adding a new diagram

Use the SanDriLa menu and select 'Add new diagram'. This will create a new diagram based on the Sandrila SDL template.

Adding a new page to the current diagram

To add a new page to your diagram, use the SanDriLa menu and select 'Add page to this diagram'. A new page based on the first page will be created.

Adding shapes

Adding shapes to a page

Drag and drop a shape from a stencil onto a diagram page. Note that only valid shapes can be dropped onto a page e.g. an instance shape (from the MSC stencil) cannot be dropped onto any page except an MSC diagram page.

Various attributes (particularly the height and width) of the shape may change when the shape is dropped. These attributes may be viewed and changed in the Sandrila Options.

Adding Blocks (and similar shapes) to System Agent, Block Agent and Package diagrams

When a Block is added to a System or Block agent page, the block initially has no connection points. Right clicking on the block and choosing 'Add connection points' will add connection points at intervals around the block.

This is also appropriate for 'Block Type', 'Process' and 'Process Type'.

Hyperlinks

You can add hyperlinks to any shape using the standard Visio menu Insert -> Hyperlink. This allows you to add/edit links to any other document. Not only can you link, say, a system diagram 'block' to the relevant block diagram but also add links to documentation and source code. The shape's right-click menu shows any hyperlinks from that shape.
See also 'Diagram Analysis' -> Check Links'

Channels and Delaying Channels

Channel routing styles

Right click on the Channel and set either "Right Angle Routing" or "Diagonal Routing" as required.

Associating Signals to a Channel

A connection can be made between a Channel and its Signals. Each Channel has a control point with the hint text 'Signal'. Drag this control to the connection point in the centre of the Signal to which you wish to attach it. The Channel and its associated signals can still be moved around the drawing independently, however, when the Channel is selected, the associated Signals will be indicated by the red glue point in the centre of the Signal.

Associating Gates/Connects with a Channel

As above but use the Gate name control. Sandrila SDL treats Gates and Connects in a similar manner.

Connection Points

Adding Frame connection points

For diagram types that contain a frame, right-clicking on the frame and selecting 'Add connection points' will add connection points at intervals around the frame. Changing the page size/orientation of your drawing will automatically add or remove frame connection points as required. There is a limit to this ability currently set to 500 connection points per side of the frame. If you create very large diagrams and need more connection points please contact support.

Adding Block connection points

For diagram types that contain blocks, right clicking on the block and selecting 'Add connection points' will add connection points at intervals around that block. When a Block is moved all the connection points move with the Block. As the block is resized connection points will automatically be added or removed as required. There is a limit to this ability currently set to 100 connection points. This is also valid for 'Block Type', 'Process Type', 'Dashed Block' and 'Dashed Process'.

Adding Class connection points

For diagram types containing class shapes, select the class shape, right-click and selecting 'Add connection points' will add connection points at intervals around that class.

Visibility of connection points

When connection points are added, viewing of connection points is always enabled. To prevent connection points from being shown, use the 'View -> Connection points' menu. Connection points still operate as normal even when they are not visible.

Special instructions for some other shapes

Package definition

Each section of the package definition shape may be edited by double-clicking on that section of the shape.

Class

Each section of the Class shape may be edited separately by double-clicking on that section of the shape. Select 'System type', 'Block type', 'Process type', 'Composite State type', 'Procedure' or 'Data' from the right-click menu. The right-click menu also provides a 'Hide Details' menu. The three sections of the Class shape are called Header, Attributes and Behaviour.

Object

Right click on the object to add connection points. Each text section may be edited separately by double-clicking on that section of the shape. The right-click menu also provides a 'Hide Details' menu. The two sections of the Object shape are called Header, and Attributes.

Comment

Join it to another shape with the association control.

Associations, Compositions, Aggregation and Specialization

Double click the shape to edit the text. To move the text, move the control handle. Each end also has a handle to which may be connected a multiplicity shape.

Multiplicity

A multiplicity shape may be added to each end of Associations, Compositions and Aggregations. Double click the shape to edit the text.

Block, Block Type

Create one or more blocks within a frame and use channels to indicate the data flow between these blocks and the environment. Right click to add connection points.

Channel

Shows a data flow between blocks or between a block and the environment. Double-click the channel or select the text tool to give it a name. The signals associated with the channel should be defined by a signal list. To change the channel directions use the "Toggle left arrow" and "Toggle right arrow" right-click menus. To change the way that the channel routes, use the "Right angle routing" and "Diagonal routing" right click menus. To align the text with the direction of the channel use the "Shape ->Rotate Text" menu. To change the text position, move the text control handle. This handle may be glued to a connection point e.g. to a block or frame, this prevents the text from moving when the block, frame or channel are moved.

Delaying Channel

Shows a delayed data flow between blocks or between a block and the environment. Double-click the channel or select the text tool to give it a name. The signals associated with the channel should be defined by a signal list. To align the text with the direction of the channel use the "Shape -> Rotate Text" menu. To change the text position, move the text control handle. This handle may be glued to a connection point e.g. to a block or frame, this prevents the text from moving when the block, frame or channel are moved Note that the left/right/up/down is relative to the text direction. To move either arrow position, move the handle provided. The channel direction may be changed using the right click menu.

Signal

Defines the data items associated with a channel. A signal list should be associated with a channel to specify the signals on that route. Each signal in this list should also be in the signal text box.

Port

Composite Structure diagram only. Use the central connection point to glue the port to the class. If the Port appears behind a class, use the 'Shape -> BringToFront' menu to put the Port on top of the class.

In and Out Connectors

Define and join reference points.
To find the definition or reference, right-click on the shape and select "Find label/reference". If right-clicking on a reference (Out-Connector) then, if found, you will be taken to the page containing the definition. If right-clicking on a definition (In-Connector) then, if found, you will be taken to the fist reference to that definition along with a dialog box to ask whether you wish to find more references. "Find label/reference" for In and Out Connectors searches all open documents. Please note that this feature only works on In and Out Connectors drawn with the shapes from the Process stencil dated 4th May 2005 or later.

Instance

For each instance to be represented, drop one of these near the top of the page, then resize to suit using the control at the bottom of the instance. Double-click to enter the instance name in the instance start block.

Connection points may be added from the right-click menu. The number of connection points and their spacing can be changed via the shape's Custom Properties (Visio menu Shape -> Custom Properties, or right-click -> Shape -> Custom Properties) (Shape Data in Visio 2007).

Coregions may be added to the instance line, The coregion shape type 1 as defined in Z.120 cannot be drawn as it cannot be made visible on top of the instance shape.

The right-click menu allows an Object or Actor header to be selected (UML Sequence diagram only) and enables the instance to be ended or terminated.

When creating large MSC/Sequence diagrams that spread over more than one page it can be useful to be able to repeat the instance header at the top of each page. This cannot be done automatically but Sandrila SDL provides a shape that can be placed on your pages to achieve this. Use the Extra Page Header shape in the MSC stencil. To place it accurately ensure that you have page breaks visible in Visio (menu View -> Page Breaks), the Extra Page Headers may be easily placed and glued at the correct place on the Instance line. Note that when inserting/deleting space using the SanDriLa -> Tools menu these shapes are not moved.

Message

Apply between 2 instances. Double click to enter the message name. To move the text, use the control handle. To change the way that the message routes, use the "Right angle routing" and "Diagonal routing" right click menus. Each end of the Message also has a control for a Gate area. A Gate Name may be associated with each end of the message.

Inline Expression

Double click to enter the operator type followed by a new line and then the reference shape. Note how it all lines up nicely, assuming that you use the normal font size. The operators can be one of alt, loop, opt, par or exc. Alt <expression> performs alternate operations i.e. if <expression> else.. Loop <expressions> performs looping. Opt defines options. Par defines parallel operations. Exc <expression> defines an exception of type <expression>.

The 'Expression', 'separator' and 'end' glue together and can be made to move as one unit by dragging the 'end' section.

You can create nested expressions by adding new 'Expression', 'separator' and 'end' shapes on top of another one. Reference numbers are usually added to indicate nesting level.

Complex state

Complex states contain areas for the following:

The text in the first three areas may be edited by double-clicking on that section of the shape. See the SOMT documentation for the syntax of the text for attributes and events. To change the height of the internal activity area, use the Shape -> Custom Properties menu (Data -> Shape Data menu in Visio 2007). States and Transitions may be placed within the Complex State activity area. Selecting the Complex State and all States and Transitions within that Complex State, then selecting 'Shape -> Grouping -> Add to Group' will combine all the shapes within a group. The Complex State and all contained States and Transitions will now move as one unit Regions may be added to the internal activity area.

Inserting/Deleting Space in MSC/Sequence Diagrams

In an MSC or Sequence diagram, if you need to insert some space between diagram elements then select the uppermost item that needs to be moved down, then use the menu Sandrila -> Tools -> MSC/Sequence Diagram - Insert Space. This will move all lower items one connection point spacing down the page and leave all items connected. Once one move has been done then further moves may be performed by the keyboard shortcut Control-Y. Each move can be undone by Control-Z.

Before inserting space please ensure that the process instance axes are long enough, if not then lengthen the axes by dragging the control point at the lower end of the axis. If items are moved off the end of the instance axis then they will appear to move up to the top of the axis. If this happens then drag the control on the end of the instance axis to make room for the shapes. They will move back to their correct locations.

Similarly for deleting excess space in an MSC/Sequence diagram, select the top shape to be moved and use the menu Sandrila -> Tools -> MSC/Sequence Diagram - Delete Space.

CIF Import (Pro Registered version only)

ITU standard Z.106 describes the CIF (Common Interchange Format) to be used for import and export of SDL/MSC diagrams.

Various SDL-CIF files are available on the internet, a search with Google will provide some suitable examples.

Valid SDL-CIF files

Sandrila SDL/MSC-CIF import will only allow import of valid CIF format files.

SDL-PR files cannot be imported as Sandrila relies upon the embedded CIF information for shape position and layout.

Some SDL-CIF files (especially Object-Geode files) contain no or limited flowline data, these files may be imported but some line shapes may be missing or incorrect.

ZIP files

SDL-CIF files with ZIP files may be opened by selecting the ZIP file type at the file open dialog. All files within the zip archive will be assumed to be valid SDL-CIF.

SDL-CIF import file path

Use the 'SanDriLa -> Tools -> Import Options' dialog to set the default path to search for files to be imported.

File Selection

Sandrila allows multiple files to be imported, just select the relevant files in the file dialog.

CIF Import Progress Reporting

During SDL-CIF import, progress is reported in a dialog box. If multiple files are being imported then the caption shows progress through the file count. Here is an example import:

CIF import

Delaying Channels

Displaying the correct routing for delaying channels is not possible yet. Therefore, delaying channels are normally shown as normal (non-delaying) channels. This allows the correct routing to be shown. Should you wish to show the delaying channels, the 'SanDriLa -> Tools -> Import Options' dialog allows you to enable Delaying Channels.

Remove Excess Space

Some SDL-CIF files contain an excessive amount of extra space and blank lines. Enable this option to remove these.

Error Reporting

A list of the errors that may be reported during SDL-CIF import are listed in CIF Import Errors.

Full fault reporting

Certain errors are ignored by default, however, these errors may be displayed during import by selecting this option. The error messages enabled by this option are marked '*' in the SDL-CIF error list.

Importing for viewing and printing only

Sandrila is an ideal tool to view and print diagrams produced by other SDL tools. When complex SDL diagram sets are imported, a large number of diagrams may be generated. If the only reason for importing the diagrams is to view or print the diagrams then you will not want to have to reply to the 'Save Yes/No' dialog for each diagram when closing Visio. In the 'SanDriLa -> Tools -> Import Options' dialog there is an option to 'Mark diagrams as saved'.

Tool 'Keep' directives

The SDL-CIF standard provides the facility for CIF format files to contain tool-specific directives that should be read and incorporated into the diagram during import and added to the CIF output file during export. Sandrila stores these directives within the individual shape data fields and will use them when CIF export is implemented.

Extensions to SDL-CIF

Other SDL tool suppliers have added proprietary extensions to the SDL-CIF standard (ITU-T Z.106).

Sandrila can successfully import diagrams containing these extensions. The, so far, known extensions are:

Mscgen import (Pro Registered version only)

Sandrila can import Mscgen format text files and generate an MSC or UML sequence diagram. Information about Mscgen diagrams can be found at http://en.wikipedia/org/wiki/mscgen and at http://www.mcternan.me.uk/mscgen/ , both of which have some example diagrams and input source code.

Mscgen import shares many of the import settings with CIF import.

Error and warning messages are described at the end of this document.

CIF Export and SDL-PR Export (Pro Registered version only)

Sandrila can export Package, System and Block diagrams in SDL-PR and SDL CIF formats.

SDL-CIF export file path

Use the 'SanDriLa -> Tools -> Export Options' dialog to set the default path to where for files are exported.

Diagram analysis

Syntax check

This performs a syntax check on all diagram types. Items found to contain a fault are highlighted in red.
Syatem, Block and Package syntax check can be used from any version of Sandrila SDL but syntax check of all other diagram types are available in the Pro Registered version only

See also Syntax Check Error Messages.

Below is typical output from the analysis of diagrams with and without errors.

Syntax check Syntax check

Clear syntax check errors

If a syntax check has found errors in a documents then you may want to save the document but without the colour fill used to indicate errors. Use this menu to reset any colour fill to normal.

State Analysis (Pro Registered version only)

This performs an analysis of all states and signals in Process/Procedure/Service/Method/Operator/Macro/State diagrams and outputs :

States and inputs found to be at fault are shown highlighted in red.

Typical output is shown below.

See State Analysis Error Messages for the range of checks performed.

Multiple diagrams may be selected, this is particularly useful for virtual, redefined and finalized process/procedure diagrams or for process diagrams calling procedures containing states.

Cross-reference of states and signals:

Check which signals and inputs are handled by which states. If a signal is not handled in a state then that signal could be lost.

The output of the cross-reference may be saved in xls or csv format that can be imported into a spreadsheet.

State Analysis
State Cross Reference

Check links (Pro Registered version only)

Follows hyperlinks from the current diagram to all linked documents producing a tree diagram as shown right.

This dialog may be resized as required to show all the link tree.

A text version of the tree output may be saved to a file or printed using the 'Save' or 'Print' buttons.

An image of the tree diagram may be saved as a .bmp file using the 'Save Image' button.

Please note that only the visible area of the tree will be saved.

Link Check

Extending Sandrila SDL

You can add to the functionality of Sandrila SDL by writing you own applications or functions. Visio has a built-in macro language called VBA (Visual Basic for Applications) and a very powerful internal object model can be accessed via VBA or COM addins that can be written in Visual Basic, C, C++, C# or Delphi.

Definition files for the shape and stencil names in Delphi, Basic, C and C# are provided in the Sandrila SDL SDK folder together with an example written in VBA.

Instructions on writing VBA or COM addins is provided in the Visio SDK and books are also available on the subject and are outside the scope of this document.

SDL-CIF Import Error and Warning Messages (Pro Registered version only)

1.Invalid CIF file <filename>
The file <filename> does not appear to contain valid SDL-CIF data.
2.Cannot find file <filename>
The file <filename> cannot be found.
3.Don't understand: <shape> or <line>
Sandrila does not understand this item. It may be tool specific.
4.CIF termination error.
An CIF file has not terminated correctly with an END<diagramtype> statement. The most probable cause is unmatched braces or quotes.
6.Decision/End Decision level mismatch.
There is a mismatch with DECISION and ENDDECISION statements.
7.Cannot create new document.
Your computer may be short of memory or resources.
8.Cannot go to page
The page cannot be found in the current document. This occurs in several Object-Geode diagrams in the public domain.
9.Cannot retrieve from stack.
Sandrila cannot restore the previous diagram from the stack of nested diagrams.
10.NIL master object for <shape>
The shape cannot be found in the Visio stencil for this diagram type. Please inform Support.
11. *No glue selection found at <coordinates>
There is no suitable shape to connect a line to at these coordinates.
12. *Item not connected at <shape> in <diagramName>, <pageName> at <coordinates>
There is no suitable shape to connect a line to at these coordinates.
13.Cannot add use clause to NIL object.
Sandrila has found a USES clause in the CIF file but does not know what to do with it.
14.Extraneous text in <text>
Sandrila does not know how to process the .
15.Diagram type mismatch - expecting <diagramType>
The diagram start and end types are different.
16.Diagram TYPE mismatch - expecting TYPE but found <text>
The diagram started with a TYPE clause but the diagram end does not.
18.Exception at master object for <shape>
The shape cannot be found in the Visio stencil for this diagram type. Please inform Support.
19.Diagram name mismatch - expecting <diagramName>
The diagram start and end names are different.
20.Expected coordinates at <text>
The SDL-CIF syntax requires a coordinate pair at this point in the text.
21.Expected */ at <text>
The SDL-CIF syntax requires an end of comment at this point in the text.
22.Cannot process shape <shape>
Sandrila does not how to process this shape. Please inform support.
23.There is unprocessed ExtendedHeader text - <text>
Sandrila has found Extended Header data but does not know what to do with it.
24.Expected <shape> but found <shape>
25.NIL unique id for <shape>
SanDrila cannot create a unique identifier of this shape. Please inform support.
26.Unexpected end of text in <text>
27.Cannot find document <documentName>
28.Cannot set active window.
29.This line not processed:
Sandrila does not how to process this data. Please inform support.
30.Duplicate page name:
The page cannot be found in the current document. This occurs in several Object-Geode diagrams in the public domain.
31.There is unprocessed KeepSpecific text:
Some 'CIF Keep Specific' text can occur in CIF files before it can be correctly processed by Sandrila. It hasn't been processed before the end of the diagram information.

Mscgen Import Error and Warning Messages (Pro Registered version only)

1.Invalid MSCGEN file
The file does not appear to contain valid Mscgen data.
2.Cannot find file <filename>
The file <filename> cannot be found.
3.Don't understand: <shape> or <line>
Sandrila does not understand this item.
4.Extraneous text in <text>.
Sandrila does not know how to process the <text>.
6.Exception at master object for <item>.
The shape cannot be found in the Visio stencil for this diagram type. Please inform Support.
7.Instance <n> index not found for <item>.
Please inform Support.
8.Missing direction combination.
Please inform Support.

Syntax Check Warning and Error Messages (Pro Registered version only)

Warnings

1Cannot find label <labelName> referenced in shape <shapeName>
There should be an Input Connector with the label <labelName> to match the Output Connector <shapeName> of the same name.
2Channel <channelName> has no name
The channel has no name. Checking for this error may be turned off in menu 'Sandrila -> Tools -> General Options -> Analysis'.
3Gate <gateName> has no name
The selected gate has no name. Checking for this error may be turned off in menu 'Sandrila -> Tools -> General Options -> Analysis'.
4Flowline <flowlineName> had no UniqueID - a UniqueID has been added
5Shape <shapeName> had no UniqueID - a UniqueID has been added

Errors

Certain errors (marked *) will prevent syntax checking from continuing.

Template Errors

T1Diagram name not found
A diagram must have a name allocated to it. This item should be part of the standard template.
Perhaps it has been deleted accidentally. The best way to fix this is to create a new page and copy all your shapes to the new page.
T2Diagram name is blank.
The diagram must have a title.
T3Agent type not found.
The Agent Type for this page is missing.
T4Agent type is blank.
The Agent type for this page is empty. Somehow, the text has been deleted.
Try setting the diagram type, the diagram type text should re-appear in the text box.
T5Diagram name doesn't comply with SDL syntax.
T6The diagram Agent Type is not the same as the first page
The diagram Agent Type of each page must be the same.
T7The diagram name is not the same as the first page
The diagram name of each page must be the same.

Flowline, Channel and Gate Errors

F1Channel <channelName> disconnected
The highlighted channel has at least one end disconnected.
F2Channel <channelName> looped
Both ends of this channel connect to the same shape.
F3Gate <gateName> disconnected
The highlighted gate is not connected to a shape.
F4<shapeName> should not connect to a Text symbol
F5<shapeName> should not connect to a Extended Header symbol
F6Flow line <shapeName> disconnected at one end
The highlighted flow line is not connected to a shape.
Check the connections at both ends.
F7Flow line <shapeName> disconnected at both ends
The highlighted flow line is not connected to a shape.
Check the connections at both ends.
F8Flow line <shapeName> looped
Both ends of this flow line connect to the same shape.
F9Flow line <shapeName> should not have text
Flow lines must not have text. If this flow line is an output from a Decision then use a 'flow line with text'.
F10Flow line <shapeName> needs text
This type of flow line can only connect to the output of a Decision and requires text. If this flow line is not a Decision output then use a normal flow line.
F11Association <associationName> disconnected
The highlighted association is not connected to a shape.
F12Association <associationName> looped
Both ends of this association connect to the same shape.
F13Message <messageName> disconnected
The highlighted message is not connected to a shape.
F14Message <messageName> looped
Both ends of this message connect to the same shape.
F15Message <messageName> has no text
The selected message has no name.
F16Transition <shapeName> disconnected
The highlighted transition is not connected to a shape.
F17Transition <shapeName> has no text
The selected transition has no name.
F18Use case connector <shapeName> disconnected
The highlighted connector is not connected to a shape.
F19Use case connector <shapeName> looped
Both ends of this connector connect to the same shape.
F20Use case connector <shapeName> has no text
The selected connector has no name.
F21Connector <shapeName> should not have text
This connector should not have text.
F22Incoming flowline <connectorName> cannot connect to <shapeName>
The destination of this flowline is illegal e.g. a START, PROCEDURE START or IN CONNECTOR shape.
F23Outgoing flowline <connectorName> cannot connect to <shapeName>
The source of this flowline is illegal e.g. a RETURN, STOP, SAVE, OUT CONNECTOR shape or the diagram FRAME.
F24<connectorName> cannot connect to shape <shapeName>
The source of this flowline with text is illegal.
F25<shapeName> should be a "Flowline with text" shape
This shape should be a "Flowline with text".
F26<gateName> looped
Both ends of this gate are connected to the same shape.
F27Dependency Signal <shapeName> disconnected
F28Dependency Signal <shapeName> looped
Both ends of this Dependency Signal connect to the same shape.
F29Dependency Signal <shapeName> should not have text.
F30Too many signals attached to <channelName>.
F31Too many gatenames attached to <channelName>.
F32<channelName> is connected to more than 2 shapes

Shape Errors

S1Process Start not found
This type of Process diagram must have a 'Start' shape.
S2Procedure Start not found.
A Procedure diagram must have a 'Procedure Start' shape.
S3 *More than one Process Start found
A Process diagram may only have one 'Start' shape.
All of the 'Start' shapes will be highlighted by the syntax checker.
S4 *More than one Procedure Start found
A Procedure diagram may only have one 'Procedure Start' shape.
All of the 'Procedure Start' shapes will be highlighted by the syntax checker.
S5Shape <shapeName> cannot have text
No text is allowed with this shape. Use the text tool to delete the text.
S6<shapeName> has no text
The highlighted shape requires some text.
S7No flow lines on <shapeName>
The highlighted shape is not connected with flow lines.
S8Insufficient flow lines on <shapeName>
The highlighted shape has insufficient flow lines connected.
S9Too many flow lines to/from shape <shapeName>
The highlighted shape has too many flow lines connected to it.
S10One or more channels should connect to <shapeName>
S11More than one extended header found
Only one extended header is allowed on a page.
S12Exception association <shapeName> must connect to Exception handler
An Exception Association can only connect to an Exception Handler.
S13Exception association <shapeName> not connected correctly
The highlighted Exception Association is not connected.
Check the connections at both ends.
S14Extended header text differs from first definition
The extended header data on each page must be the same.
S15Multiple flow lines from shape <shapeName>
Too many flowlines come from this shape.
S16Constraint <shapeName> not connected
The selected Constraint is not connected to anything.
S17Signal <signalName> not connected to Gate
The selected Signal is not associated with a Gate.
Use one of the Gate signal handles to connect to the signal.
S18Too many connections on <shapeName>
The selected item has too many connections to it.
S19Too many exception associations on shape <shapeName>
The selected shape has more than 1 exception association connected to it.
S20<signalName> or <gateName> is not connected to a channel or gate

Parsing Errors

P1Unterminated comment in <shapeText>
The highlighted shape contains an unterminated comment.
P2Too much data in :
There are too many text items in the highlighted area.
P3Syntax error in shape <shapeName>: <shapeText> on page <pageName>
A syntax error has been detected in the text of the highlighted shape.
P4shape virtuality does not match diagram type
If a 'start' or 'procedure start' shape has virtuality then it must match the diagram virtuality.
Fatal errors
998 *Too many connectors - aborting
999 *Too many shapes - aborting
There is a limit on the number of shapes and connectors (currently set to 8000) that the syntax analyser can process on a page.
If you reach this limit then your diagram is probably much too large and complicated.

State Analysis Error Messages (Pro Registered version only)

Link Check Error Messages (Pro Registered version only)

The Sandrila SDL Options

Troubleshooting

If you have any problem with this software, here are a few pointers and solutions: Please contact Sandrila Ltd at Sandrila Support with any questions or problem reports.

Acknowledgements

The development of Sandrila has been aided and abetted by the following software applications and tools (in alphabetical order) :