Contents

Areas of Help	General Information
Glossary	The Basics
Abbreviations Used	The Diagraming Process
Menu Functions	The Rules
	The Repository
Analysis Error Messages	Local Area Networking
Miscellaneous Error Messages	Workbench Utilities
	Workbench File Formats
Version 6.0 Release Notes	Customizing an SQL Dialect
Notes on Help	Workbench Features to Support ADL IRMA
Technical Support


The Basics

Information About Your Copy of the Workbench

Using the Mouse

Keyboard Shortcuts

Security in the Single-User Workbench

A Few Words About Error Messages

Understanding Projects

Understanding Project Trees

Modifying a Project Tree

Inserting New Diagrams into a Project Tree

Deleting Diagrams from a Project Tree

Copying Existing Diagrams Between Projects

The Workbench Database Managers

Btrieve

Gupta's SQLBase

SQLServer

Oracle7 Server

Storing Multiple Projects in a Single Database


The Diagraming Process

Overview

Before You Begin

Creating a New Project

Using Boilerplates

A Look at the Diagram Workspace

Drawing Diagrams

Editing a Diagram -- Other Diagraming Functions

Using Constructs

Creating a Construct

Loading a Construct

Deleting a Construct

Nested Decomposition

The View Functions

Create a New View

Create a Process View

Create or Print a Global View

Modify the Current View

Linking Multiple Page Diagrams

Cluster Diagrams

Saving Your Work

Saving a New Diagram

Changing a Diagram's Name

Printing Your Work


Creating a New Project

Rules and Repository Considerations

Rules Considerations

Data Repository Considerations

ERD Notation

Relationship Cardinality Notation

Number of Names for Relationships

Create a Project -- the Procedure

Selecting an Existing Project

The Uses of Different Diagram Types

Unstructured Projects Versus Unstructured Diagrams

Creating a New Diagram

Selecting a Page Size

Tree Position of the New Diagram (DFDs Only)

Create a New Diagram -- the Procedure

Opening an Existing Diagram for Editing


Using Boilerplates

Enabling and Disabling Boilerplate

Using Boilerplate Diagram Keywords


A Look at the Diagram Workspace

The Diagram Workspace

The Diagram Window

The Help Bar

The Control Bar

Setting Individual Item Colors

The View Menu

Window Menu


The View Menu

Zoom

Grid and Ruler

Symbols and Lines Without Labels

Class Information Displayed on Object Model Diagrams

Entity Attributes Displayed on Data Model Diagrams


Window Menu

Diagram Window Arranging

Move Between Diagrams


Drawing Diagrams

Diagram Menu

Scrolling a Diagram

Drawing Modes

Grid Size for Object Placement

Selecting Diagram Objects

Moving Objects on a Diagram

Sizing Objects on a Diagram

Line Handles

Drawing Symbols

Drawing Lines

Entering Text


Drawing Symbols

The Symbols

DFD Symbols

Symbols Recognized by the Yourdon Methodology

Symbols Recognized by the Gane & Sarson Methodology

Data Flow Diagram Symbols

Symbol Set for Structure Charts

Drawing Information Clusters

ERD Symbols

Functional Decomposition Methodology Symbols

Functions

Processes

Page Connectors

Class Diagram Symbols

State Transition Diagram Symbols

Symbol Set for Unstructured Diagrams

Auto Labeling Symbols

Adding Symbols to a Diagram


Drawing Lines

Overview

Line Types

ERD Line Terminators

Auto Labeling Lines

Adding or Changing Lines

Changing the Number of Line Segments

Add a Couple to a Structure Chart Diagram

Default Line Selections

Bidirectional Couples and Data Flows

Drawing Relationships

FDD Connection Lines

Drawing Connectors


Entering Text

Overview

Entering Text on a Diagram

Labeling Diagram Objects

Auto Positioning Text

Auto Labeling

Labeling a Relationship

Labeling an Information Cluster

Editing Existing Text and Labels

Text Default Settings


Editing a Diagram - Other Diagraming Functions
Editing a Diagram -- Other Diagraming Functions

Overview

Control Bar

Toolbox

The Edit Menu Functions

Undo

Cut, Copy and Paste

Cut, Copy

Paste

Clear

Select All

Delete

Copy To

Find

The Change Item Function

Snap Symbols

The Stylize Function

The Project History Function

The Erase Changes Function


Nested Decomposition

Overview

Nesting Considerations When Using Rules

The Nest Functions

Explode

Parent

Detach

Decompose

Generation of Process Decomposition Diagrams

Using Spawn with FDDs

The Spawn Functions

New DFD Set

Load DFD

Verify

Un-Link


Linking Multiple Page Diagrams

Overview

Page Link Considerations When Using Rules

Selecting Page Link Symbols for Data Flow Diagrams

The Page Link Procedure for Data Flow Diagrams

Page Linking for Structure Chart Diagrams

On-Page Connector

Off-Page Connector

Page Linking for FDDs


The Rules

Visible Rules Overview

Data Flow Diagrams

Functional Decomposition Diagrams

Structure Charts

Entity Relationship Diagrams

Class Diagrams

Analysis Error Box


Data Flow Diagrams

Structured Analysis Methods Overview

Process Modeling Graphics

Methodology Symbols

Process Numbering

Data Store Numbering (Gane & Sarson Only)

Net Data Flows

Data Stores and Physical Files

Splitting Data Flows

Split Data Flow Procedure

Analyzing Data Flow Diagrams

Data Flow Balancing Examples


Functional Decomposition Diagrams

Business Planning Analysis Methods and Functions

Naming Rules for FDDs

The Rules in Action

Analyzing FDDs

Overview


Structure Charts

Structured Design Overview

Structure Chart Graphics

Structure Chart Symbols

Structure Chart Line Types

Invocation Lines

Data and Control Connections

Terminators for Invocation Lines

Data Couples

Control Couples

Generic Couples

Interface Table Rows (ITRs)

Linking Structure Chart Pages Together

Analyzing Structure Charts

Analysis Statistics


Entity Relationship Diagrams

Data Modeling Overview

Data Modeling Graphics

Entity Symbols

Relationship Lines

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Analysis

Key Synchronization

Process/Data Model Balancing


Class Diagrams

Object Modeling Overview

Object Modeling Graphics

Class Symbol

Relationship Lines

Analysis for Class Diagrams


The Repository

Repository Overview

Repository Basics

Enabling the Repository

Accessing the Repository

Understanding the Repository Dialog Box

Repository Searches

Copying Data To and From DOS Files

Copying Data To and From the Windows Clipboard

Understanding Repository Fields

Data Element Physical Information

On-page and Off-page Connectors

Creation and Modification Dates

Clusters

Overview

Creating Clusters

Modifying Clusters

Deleting Clusters

Repository Reports

Report Queries -- Custom Reports

Shell Code Generation

SQL Schema Generation

Generating a Schema for Part of a Project

Adding SQL Schema Generation Information

Data Description Specification (DDS) Generation

Generating Structure Charts from the Repository


Repository Searches

Overview

Repository Search Criteria

Populating a Composition Field with Search


Understanding Repository Fields

Overview

Individual Fields

Label	Entry Type	Description
Alias	Related To	Process #
Data Mod(s)	Values & Meanings	Process Description
Module Description	Macro Description	Modules Contained
Relations	Attached Entities	Associator Element
Composition	Attributes	Notes
Locations	Physical Characteristics	Long Name
Extended Attributes	Class Characteristics	Methods
Friends	User-Defined Fields	User-Defined Objects


Data Element Physical Information

Overview

Physical Characteristics Repository Fields

PowerBuilder Extended Attributes

Domains


Repository Reports

Overview

Report Functions

Print or Define a New Report

Repository Report Preview

Printer Setup for Reports

Predefined Reports

Saving a Predefined Report

Selecting a Predefined Report to Print

Deleting a Predefined Report

Repository Report Formats

Detailed Listing

Summary Listing

Cross Reference

Single Entry Listing

Related To Listing

Split Flow Listing

Matrix Reports


Report Queries - Custom Reports
Report Queries -- Custom Reports

Overview

Custom Report File Format

Custom Report Definition Syntax

Examples of Custom Report Specifications

Syntax Error Checking

Custom Report Preview

Printer Setup for Custom Reports


Shell Code Generation

Overview

Scope

Code Generation Speed and Code Size

Target Languages

Flexibility of Usage

Error Checking

Code Generation Requirements

Array Processing and Storage Redefinition

The Code Generation Process

Code Generation Output

Configuration Options

Parameter Passing Using Couples


Shell Code Configuration Options

Overview

General Configuration

COBOL-Specific Configuration Items

Language-Specific Customizations

C

COBOL

ESF


Local Area Networking

Multi-User Access to Projects

Multiple-Projects in a Single Relational Database

LAN Operating Characteristics

LAN Workbench Features and Capabilities

Novell NetWare Compatibility

Preventing Editing Collisions

Local Operation

Getting Up and Running on the Network

Defining Default Path Settings

Implementing Security

Creating Projects on the Network

Product Security -- Assigning Product Access Rights

Messaging

Reviewing Project Activity

LAN Help Function


Workbench Utilities

General Information

Backing Up a Project

Restoring a Project

Copying a Project

Deleting a Project

Renaming or Moving a Project

Rebuilding a Project

Copy Portion

Delete Portion

Exporting Repository Data

Importing Repository Data


Exporting Repository Data

Overview

Export Formats

Relational Database Repository Exports

VSC-Format Repository Exports

Visible Prototyper Export

Gupta SQLWindows Interface Export

Data Description Specification (DDS) Generation

SQL Schema Generation

KnowledgeWare IEW/ADW Export.

ESF Export

RDBMS Catalog Export

Powersoft's PowerBuilder

UNIFACE Export

Unify VISION Export


Importing Data into the Repository
Importing Repository Data

Overview

Preparation

Verification

The Import Procedure

Import Formats

VSC Format Imports

Import from Excelerator

KnowledgeWare IEW/ADW Import and Export

Import from SQL

DDS Import

Application Browser

Powersoft's PowerBuilder

RDBMS Catalog Import

UNIFACE Import


Workbench File Formats

Diagram Parameter File Format

Treefile Format

VAW.INI File Format


Abbreviations

Common abbreviations used throughout this documentation are:

32K	32,768, or 2 to the 16th power.

ADL	Arthur D. Little, Inc. Refer to Workbench Features to Support ADL IRMA for more information.

ADM	Associative Data Model, the methodology used in the IRMA tool of Arthur D. Little, Inc. Refer to Workbench Features to Support ADL IRMA for more information.

ADW	Application Development Workbench, of KnowledgeWare. Refer to KnowledgeWare IEW/ADW Import and Export for more information.

CSP	Cross System Product, of IBM. Refer to ESF for more information.

DDL	Data Definition Language, used in SQL schemas.

DDS	Data Description Specification, for the IBM AS/400. Refer to Data Description Specification (DDS) Generation and DDS Import for more information.

DFD	Data Flow Diagram. Refer to The Uses of Different Diagram Types for more information.

DLL	Dynamic Link Library.

ERD	Entity Relationship Diagram. Refer to The Uses of Different Diagram Types for more information.

ESF	External Source Format, of IBM. Refer to ESF for more information.

FDD	Functional Decomposition Diagram. Refer to The Uses of Different Diagram Types for more information.

GPF	General Protection Fault. This occurs in Windows 3.1 when there is an error in a program that causes it to try to write data beyond its boundaries. Windows cannot deal with this and must close the application down.

IEW	Information Engineering Workbench, of KnowledgeWare. Refer to KnowledgeWare IEW/ADW Import and Export for more information.

IRMA	Information Resource Management Aid, the associative data modeling tool of Arthur D. Little, Inc. Refer to Workbench Features to Support ADL IRMA for more information.

SC	Structure Chart. Refer to The Uses of Different Diagram Types for more information.

SQL	Structured Query Language. Refer to SQL Schema Generation for more information.

UAE	Unrecoverable Application Error. This occurs in Windows 3.0 when there is an error in a program that Windows cannot deal with and must close the application down.

VAW	Visible Analyst Workbench.


Notes on Help

The Help menu selection How to Use Help provides most of the information you need to know about using Help systems. This Notes on Help topic is intended to give you information about certain things particular to the Visible Analyst Workbench Help system.

The General Information section of the Help system consists of nearly the entire text of the Workbench manual, with necessary changes made to make it function as an on-line Help system. It is structured more or less as it appears in the manual Table of Contents, and is thus a hierarchical system. It has major topics, minor topics under them, more minor topics under them, etc. This hierarchy makes practical a couple of additional methods of navigation through the Help system, other than jumps, searches, the Back button and the History button.

Context Sensitive Help

The Workbench Help system has context-sensitive help for all menus and dialog boxes. You can access it in either of the standard Windows ways.

First, you can highlight a menu item and press [image]. This will display the Help topic for the menu item you specified. Note that once a menu has been opened, you cannot select a menu item for the purpose of getting Help by simply clicking on it with the mouse. If you try to do this, the function will be executed before you have the opportunity to request Help for it. You should either use the keyboard arrow keys to highlight the item and press [image] or use the mouse to drag the highlight to the desired item and press [image] before you release the mouse button.

Second, you can press [image] [image] and the Workbench will change into Help mode and the cursor will change to look like the image to the left. You can use the mouse to select any menu item. When you do, the cursor will change back to the standard cursor, indicating that the Workbench is no longer in Help mode, and the help topic for the menu item you selected will display.

The Up Button

The Up button will move you to the topic hierarchically superior to the one you are currently viewing. When you arrive at the top of the hierarchy, the Up button will be disabled. The non-General Information topics are not hierarchical, and do not have Up buttons enabled. Note that, to make certain concepts clearer, there are some topics that are accessed by more than one hierarchically superior topic. If you are viewing one of these topics and press the Up button, you might be surprised to find that you have not been moved to the superior topic from which you came. In cases like this, use the Back button to get back into the hierarchy from which you came.

The Browse Buttons

The Browse buttons (marked << and >>) will move you among the topics which all have the same superior "parent" Help topic. This makes it easier to browse related topics in the Help system.

Images in Analysis Error Help

The Workbench manual has illustrations accompanying many of its explanations ot analysis error messages. The Help system displays these images, plus certain others, too.


Technical Support

The telephone number to reach the technical support staff of Visible Systems Corporation is:

617-890-2273

You can also contact Visible Systems via e-mail at our CompuServe Forum 74774,571, or send mail accross the Internet to 74774.571@compuserve.com. In addition you may find useful information in our Compuserve forum which can be accessed from Compuserve Services GO WINAPA.


Menu Functions
Click on the Menu Item on Which You Need Help


File Menu Bitmap


Utilities Menu Bitmap


Edit Menu Bitmap


View Menu Bitmap


Options Menu Bitmap


Repository Menu Bitmap


Diagram Menu Bitmap


Window Menu Bitmap


File


New Project

Choosing New Project allows you to create a new project. A dialog box will display allowing you to specify information about the new project. Refer to Understanding Projects and Creating a New Project for more information.


Select Project

Choosing Select Project allows you to activate an existing project. A dialog box will display a list of the projects from which you can choose. Refer to Understanding Projects and Selecting an Existing Project for more information.


Project History

Selecting Project History brings up a box which provides a descriptive overview of the current project. The following descriptive information is included:

Project Root and Name of top level diagram

Which rules methodology applies to the project

Repository enabled or disabled for project

Who created the project (if security has been enabled)

DOS path where project data files are stored

Date on which the project was created

List of diagrams in the project

List of dates showing when each diagram was last edited.

Refer to The Project History Function for more information.


Current Activity

Selecting Current Activity displays which users are currently using the Workbench and gives some information about what each is doing. (LAN version only). Refer to Reviewing Project Activity for more information.


Modify User List

In the LAN version of the Workbench, selecting Modify User List brings up a submenu each of whose functions displays a dialog box which allows you to add or delete USER IDs to the list of users who are allowed to access the current project. You can also define whether a given user has the right to change project information or just to view it. Refer to Product - Security -- Assigning Product Access Rights for more information.


New Diagram

Choosing New Diagram allows you to create a new diagram. A dialog box will open to allow you to supply information about the diagram. For new diagrams being added to an existing treefile of data flow diagrams, you need to select a point in the project tree where the new diagram will be entered. For adding diagrams to an existing treefile of non-data flow diagrams, the New Diagram command automatically places them in alphabetical order among existing diagrams. Refer to Create a New Diagram -- the Procedure for more information.


Open Diagram

Choosing Open Diagram allows you to open an existing diagram. A dialog box will display a list of the diagrams from which you can choose. Refer to Opening an Existing Diagram for Editing for more information.


View of Data Model

Selecting View of Data Model allows you to create a view of a data model. A cascading submenu will open allowing you to select the type of view creation you want to do: global view, a new view, a process view or a cluster diagram. For a cluster diagram, you must also select the method of creating the diagram, either global, made from the current view or a custom cluster diagram. Refer to The View Functions for more information.


Draw VIRTUAL Chart

Selecting  Draw VIRTUAL Chart allows you to generate a structure chart from a virtual diagram in the repository created from data imported from the Application Browser. Refer to Application Browser for more information.


Close Diagram

Choosing Close Diagram will close the active diagram. If the diagram has been modified, you will be prompted to save the changes. Refer to Opening an Existing Diagram for EditingCreate a New Diagram -- the Procedure and Saving Your Work for more information.


Save

Selecting Save allows you to save work done on the active diagram. Refer to Saving Your Work or Saving a New Diagram for more information.


Save With New Name

Selecting Save With New Name allows you to save the current diagram under a new name (i.e., to rename the diagram being saved). Refer to Changing a Diagram's Name for more information.


Erase Changes

Selecting Erase Changes allows you to undo all editing changes that have been made to the current diagram since it was last saved. Refer to The Erase Changes Function for more information.


Nest

Selecting Nest when a DFD is the active diagram will display a cascading submenu that will allow you to do one of the following:

explode any process symbol in a diagram in order to create a lower level diagram which represents the detailed functional aspects of the process being exploded. This only applies when the diagram type is set to Data Flow. When rules are disabled, symbols other than processes may be decomposed. If the symbol has already been exploded, this will allow you to move from the diagram containing the parent symbol to the child diagram. The parent diagram will remain open.

move to the parent diagram of the current diagram.

detach (i.e., break the parent/child link) a child diagram from its parent.

automatically generate a decomposition diagram.

Notes

If this menu item is grayed, it could be because a Nest or Page operation has been done but not saved, because you don't have sufficient project access rights or because the active diagram is not a DFD.

Nest and Spawn share the same position on the File menu. Spawn is present only when the active diagram is an FDD. Nest is present otherwise.

Refer to Nested Decomposition for more information.


Spawn

The purpose of the Spawn function for FDDs is to create a process model extension of your broad functional decomposition and allow you to carry out a detailed analysis. With Spawn, you indicate a lower level function, one which you have decomposed on the FDD into processes, and Spawn it. The Workbench will create DFDs containing these processes, to which you can add all of the other elements normally contained on DFDs. Refer to Using Spawn with FDDs and The Spawn Functions for more information.

Notes

If this menu item is grayed, it could be because you don't have sufficient project access rights, because the active diagram is not an FDD or because no symbol is selected, the selected symbol is not a function or the selected symbol is not labeled.

Nest and Spawn share the same position on the File menu. Spawn is present only when the active diagram is an FDD. Nest is present otherwise.


Page

Selecting Page allows you to create a multiple page diagram. This is generally only useful for structure charts and FDDs, although you can use it for DFDs, as well. It is not available for other diagram types. For data flow diagrams the Analyze function will not apply the rules across the page connections. For FDDs and structure charts, the rules will be applied across multipage diagrams created with the Page function. It will open a cascading submenu that will allow you to either connect or to disconnect two diagrams. Refer to Linking Multiple Page Diagrams for more information.

Note

If this menu item is grayed, it could be because a Nest or Page operation has been done but not saved, because you don't have sufficient project access rights, because the active diagram is an ERD or a Boilerplate, because the active diagram can have no sibling diagrams, because the active diagram is a structure chart and no off-page connector is selected or because the active diagram is not a structure chart and no symbol is selected.


Print

Selecting Print subsequently prompts you to print the current diagram, to select diagrams to add to the print queue or to print the current project tree. If you select the print queue, you can

view its contents to see how many project diagrams are currently entered into the queue;

add or delete project diagrams from the queue; and

print all diagrams that are listed in the queue.

Refer to Printing Your Work for more information.


Print Setup

Selecting Print Setup allows you change the printer you have configured for Windows. If you press the Setup button, you can change settings for the printer driver, such as page orientation (portrait or landscape), print to file, etc.


Exit

Selecting Exit will end the Workbench session and return you to Windows.


Utilities


Backup

Selecting Backup allows you to backup a Workbench project to a floppy diskette, to multiple floppies or to a file server. Refer to Backing Up a Project for more information.


Restore

Selecting Restore allows you to restore a Workbench project from one or more floppy diskettes or from a file server. Refer to Restoring a Project for more information.


Copy Project

Selecting Copy Project allows you to copy a project. Refer to Copying a Project for more information.


Delete Project

Selecting Delete Project allows you to delete a project. Refer to Deleting a Project for more information.


Rename/Move

Selecting Rename/Move allows you to rename or move a project to a different subdirectory or to change the project's description, or any combination of these. You can move it with or without changing its name. Refer to Renaming or Moving a Project for more information.


Export

Selecting Export allows you to export repository information. Refer to Exporting Repository Data Overview for more information.


Import

Selecting Import allows you to import repository information. Refer to Importing Data into the Repository for more information.


Rebuild

Selecting Rebuild allows you to convert a project from an earlier Workbench version format to the current format or to recreate a project that may have become corrupted due to a power failure, etc. Refer to Rebuilding a Project for more information.


Copy Portion

Selecting Copy Portion allows you to copy a diagram, or a branch (i.e. a data flow diagram and all of its children/grandchildren). This command allows for the copying of similar-methodology diagrams and branches from one project to another. All data repository information associated with the diagram(s) is also copied into the new project. Refer to Copying Existing Diagrams Between Projects for more information.


Delete Portion

Selecting Delete Portion allows you to delete a diagram, or a branch (i.e. a data flow diagram and all of its children/grandchildren). Refer to Deleting Diagrams from a Project Tree for more information.


Users

Selecting Users brings up a dialog box which allows you to define user security information in the single-user and generic DOS network versions of the Workbench, and user type information for all versions. Security, on the Options menu, must be enabled for this function to be available. (It is always enabled in the network version.) You'll be able to define user names and passwords to secure Workbench access to only those users that you have defined. Thereafter, information will have to be correctly entered into a USER ID login dialog box that is presented whenever the Workbench program is accessed.

Users that access the VAW can be assigned one of three levels of security; System Manager, Project Manager, or User. A System Manager will have full rights to all projects in VAW, can maintain user information and assign project rights to users. A Project Manager can create projects, and assign users to the projects they create. A User can access the VAW and be granted rights to projects, but cannot create new projects.

A person logged in as SUPERVISOR or s System Manager can select any user from the list box and view or change that user's ID, Name, Password, or Type. Selecting a user and pressing the Delete button will, after confirmation, delete that user from having Workbench access. Pressing the Erase button will clear text from the edit boxes, allowing the addition of new users. An individual user can only modify information pertaining to himself or herself. Note that another type of user security is available for defining access to the Workbench via a Novell LAN. Refer to Implementing Security for more information about configuring user security.

Note

If you are using the Novell Netware driver, it is not necessary to create users. The Netware login ID will be used to access the VAW. The only information you will want to change is the User Type. The first time a user starts the VAW, their ID will be added to the list of valid users.


Prototyper

Selecting Prototyper will start the Visible Prototyper, which allows you to work with the Prototyper's prototyping and simulation capabilities, if you purchased this tool.


Custom Symbols

The Workbench's Custom Symbol Generator for the Windows version will be available in a future release.


Edit


Undo

Selecting Undo will erase a partially drawn line or rease the last lmove operation performed on a line. Refer to Undo for more information.


Cut

Selecting Cut will remove the selected object or block and place it in the Windows Clipboard. Refer to Cut, Copy and Paste for more information.

Notes

If this menu item is grayed, it could be because a the selected symbol has a child diagram or page link, because you are trying to cut a process or data store number without cutting the rest of the symbol or because you don't have sufficient project access rights.


Copy

Selecting Copy will place the selected object or block in the Windows Clipboard. Refer to Cut, Copy and Paste for more information.


Paste

Selecting Paste will copy what is in the Windows Clipboard and place it on the current diagram. Refer to Cut, Copy and Paste for more information.


Clear

Selecting Clear deselects the current object or block on the current diagram. Refer to Clear for more information.


Select All

Choosing Select All will cause all items on a diagram to be selected and contained in a single block. Refer to Select All for more information.


Copy To

Selecting Copy To will allow the currently selected block from a diagram to be copied to a Windows Metafile (wmf). Refer to Copy To for more information.


Find

Selecting Find will locate an object on the current diagram. Refer to Find for more information.


Delete

Selecting Delete will remove the selected object or block without placing it in the Windows Clipboard. You will be asked to confirm your deletion. Refer to Delete for more information.

Notes

If this menu item is grayed, it could be because a the selected symbol has a child diagram or page link, because you are trying to delete a process or data store number without deleting the rest of the symbol or because you don't have sufficient project access rights.


View


Zoom

Selecting Zoom allows you to reduce the display size of a diagram, so that a larger portion may be viewed at the workscreen. The zoom level is expressed in terms of zoom percentage which is selected from the menu. Diagrams can be edited and printed in zoom mode. Refer to Zoom for more information.


Grid

Selecting Grid allows you to turn the diagram grid on or off. The grid is helpful for positioning objects on a diagram. It does not appear on printed diagrams. Refer to Grid and Ruler for more information.


Ruler

Selecting Ruler allows you to display or inhibit the workscreen ruler, throughout the vertical and horizontal extremes of your diagram. The ruler is helpful for positioning objects on a diagram. It does not appear on printed diagrams. Refer to Grid and Ruler for more information.


Show Line Names

Selecting Show Line Names allows you to display or hide the names of lines on a diagram. Refer to Symbols and Lines Without Labels for more information.


Show Symbol Names

Selecting Show Symbol Names allows you to display or inhibit the names of symbols on a diagram. Refer to Symbols and Lines Without Labels for more information.


Class View Settings

Selecting Class allows you to change the information that is displayed for classes on a Class Diagram, such as which types of attributes and methods.  Refer to Class Information Displayed on Object Model Diagrams for more information.


Entity Level

Selecting Entity Level allows you to display just entity names within entity symbols on an ERD. Refer to Entity Attributes Displayed on Data Model Diagrams for more information.


Primary Key Level

Selecting Primary Key Level allows you to display entity names and attributes composing the primary key within entity symbols on an ERD. Refer to Entity Attributes Displayed on Data Model Diagrams for more information.


Attribute Level

Selecting Attribute Level allows you to display entity names and all attribute names within entity symbols on an ERD. Refer to Entity Attributes Displayed on Data Model Diagrams for more information.


Options


Auto Label Symbols

The Auto Label Symbols function will automatically label symbols as they are drawn. This selection can be toggled between Yes and No to enable or disable it. When toggled to Yes, you will be prompted to enter a label every time a symbol is drawn on your project diagrams. Refer to Auto Labeling Symbols for additional information.


Auto Label Lines

The Auto Label Lines selection will automatically label lines as they are drawn. This selection can be toggled between Yes and No to enable or disable it. When toggled to Yes, you will be prompted to enter a label every time a line is drawn on a project diagram. Refer to Auto Labeling Lines for additional information.


Line Settings

If an object is selected on a diagram, this menu selection allows you to set a default line type, terminator type and line orientation for it. If no object is selected, you can define a default line type, terminator type and line orientation for each diagram type. Each of these values can be changed for a particular line after it is drawn. For more information refer to Default Line Selections.


Text Settings

If an object is selected on a diagram, this menu option allows you to specify a font and format for text attached to the object (or for the object itself, if it is text). If no object is selected, you can choose a default font and format for every label or caption entered onto a diagram. You can specify that one particular typeface and format be used for all symbols, another for all process/data store numbers, another for all lines and data flows, another for all paragraphs, etc. For more information refer to Text Default Settings.


Security

This selection can be used to prevent unauthorized access to a single-user version of the Workbench. When enabled, a user must enter a valid USER ID and optionally a password to gain access to the Workbench. USER IDs may be added by the supervisor via the Users function on the Utilities menu. To enable security be sure you are defined as the supervisor; then select this item in the menu and enter the supervisor USER ID and, optionally, a password via your keyboard and press [image]. Refer to Security in the Single-User Workbench for more information.


Colors

The Colors function will allow you to assign colors to different screen objects, to enhance the appearance and clarity of your diagrams. Refer to Setting Individual Item Colors for more information.


Auto Connect

The Auto Connect setting will allow lines to be drawn between symbols without worrying about attaching them exactly to the border of the symbol.  With the Auto Connect selection checked, if you start a line within one symbol and conclude it within another, the Workbench will draw the line using the currently selected line and terminator types and automatically attach the line to the border of each symbol. Note that, for FDDs, following this procedure will draw a two-segment elbow line connector as is usual for that diagram type.

When Auto Connect is selected, it also affects moving lines. If you drag the endpoint of a line to within another symbol, the Workbench will attach the line to the border of that symbol.

Refer to Adding or Changing Lines and Moving Objects on a Diagram for more information.


Auto Position Text

The Auto Position Text function will allow you to turn Auto Position Text either on or off. If you choose to have Auto Position Text on, after manually positioning a line label, moving the line will result in automatic repositioning of the text based upon the text position algorithm built into the VAW. If you choose to have Auto Position Text off, after manually positioning a line label, moving the line will result in the text item moving relative to where it was placed. The only time the latter would not occur was if a line was radically moved on the diagram or the line was moved to a location where the text would not fit. In this case the text would be repositioned using the text position algorithm.


Include Connections

The Include Connections function will cause lines connected to a symbol to remain connected and move along when you move a symbol, go with it to the Clipboard when you Cut or Copy it or be deleted when you delete the symbol. Refer to Moving Objects on a Diagram, Cut, Copy and Delete for more information.


Grid Settings

The Grid Settings function allows a user to specify the grid settings for placement of objects on a diagarm both horizontally and vertically. Refer to Grid Settings for more information


Classic User Interface

The Classic User Interface selection changes the method by which component items are added to the repository. If the Classic User Interface is enabled, a free-form composition field is used. This was the only method available prior to version 6.0. If Classic User interface is disabled, attributes are added with a name, type, and reference value. This setting will only affect certain repository entries, such as entities, data flows, data stores, and data structures. Refer to Composition and Attributes for more information.


Help Bar

The Help Bar selection turns the display of the Help Bar on and off. Refer to The Help Bar for more information.


Control Bar

The Control Bar selection turns the display of the Control Bar on and off. The Control Bar displays a row of buttons above the diagram workspace that gives you quick access to certain Workbench functions. For example, to add a symbol to a diagram you simply press the button representing the symbol entry function and then press the button for the symbol you want to add. Refer to Control Bar for more information.


Toolbox

The Toolbox selection turns the display of the Toolbox on and off. The Toolbox contains the symbols available for the diagram type for the diagram on which you are working. You can select them from the Toolbox to add to your diagram. In the same manner you can pick the large T button to add caption text to the diagram or the \ (line) button to add a line. Refer to Toolbox for more information.


ERD Balancing Rules

All Fundamental Elements Must Be Used on a DFD: If you choose Yes, when the Workbench tries to balance Entity Relationship Diagrams (ERDs) against Data Flow Diagrams (DFDs) in the same project, it will let you know what entity attributes (data elements) have not been used on any DFD. If you choose No, the Workbench will not perform this check.

Every Entity Must Correspond to a Data Store: There is some correspondence between the entities appearing on ERDs and data stores appearing on DFDs in a project. You can make this a one-to-one correspondence by choosing Yes. The Workbench will then enforce this correspondence in its balancing analysis and in other ways.

Refer to Process/Data Model Balancing for more information.


SQL Dialect for Schema Generation

SQL DDL (Data Definition Language) syntax can be generated for all entities in the repository for a project. Dialects supported include:

ANSI SQL 92	DB2 2.3
dBase IV SQL 1.1	Datacom SQL
Gupta SQL Base 5.0	Informix-SQL 4.1
Ingres/SQL	Netware SQL 3.0
Oracle SQL 7.0	Rdb SQL
SQL Server 4.X	SQL Server System 10
Unify SQL	Watcom SQL
XDB	User Defined SQL
Each dialect supports a different subset of some theoretically complete SQL. If the SQL dialect you use is not yet supported by the Workbench, you can either pick the supported dialect that is closest, or you can choose User-Defined SQL and customize it to meet your needs. Directions for doing this are in Customizing an SQL Dialect.


Code Generation Options

This selection will allow you to make choices about how shell code generation is done from your project. Refer to Shell Code Generation for more information.


Define User Attributes

Selecting this function will allow the addtion, modification, or deletion of any user defined attributes to or from a project. Each attribute added is considered a new field in the repository  for every object and this new field will allow the extension of information or documentation about particular objects. Refer to User Defined Fields for more information.


Define User Objects

This functions will allow a user to define site specific objects in the repository. These new objects can then be linked to standard repository objects and reference other standard objects within the composition field of the user-defined object. Refer to User-Defined Objects for more information and an applicable example.


Repository


Define

Selecting Define from the Repository menu brings you directly to the data repository for the current project (assuming the repository was enabled when the project was created). A repository dialog box will be displayed, from which repository functions can be executed. If no diagram object is selected, the dialog box will be empty. The Workbench repository dialog box allows you to add and change descriptive information about all objects that appear in methodology-based projects. Refer to Accessing the Repository and Understanding the Repository Dialog Box for more information.


Generate SQL

This selection will generate an SQL DDL statement file schema for your project, which can be used to create the tables for your database. Refer to SQL Schema Generation for more information.


Generate DDS

This command will begin the generation of a DDS description of your project. Refer to Data Description Specification (DDS) Generation for more information.


Key Analysis

The Analyze function will identify any errors in the primary and foreign key specifications you have entered in the repository of your project for the entities in your ERDs. Refer to Key Analysis for more information.


Key Synchronization

This function will begin the analysis synchronization function to review all of the primary and foreign keys you have specified in the repository of your project. It will then generate foreign keys in various entries, as necessary, to properly represent relationships between entities. Refer to Key Synchronization for more information.


Model Balancing

This function will balance a data model against a process model according to the rules you have previously selected. Refer to Process/Data Model Balancing for more information.


Syntax Check

This function is used to analyze a set of diagrams for an entire project according to the rules of a methodology. Refer to the procedures described in Analyzing Data Flow Diagrams, Overview to Analyzing FDDs, Analyzing Structure Charts and Analysis for Entity Relationship Diagrams for detailed information.


Generate Code

This command will begin the process of shell code generation for your project. Refer to Shell Code Generation for more information.


Reports

Selecting Reports brings up the repository reports dialog box for the current project, if the repository was enabled when the project was created. The dialog box allows you to set report formats and generate a variety of reports based upon the current project repository and other project information. Refer to Repository Reports for more information.


Report Query

Selecting Report Query brings up the custom reports dialog box for the current project, if the repository was enabled when the project was created. The dialog box allows you to generate custom reports based upon the current project repository and other project information. Refer to Report Queries -- Custom Reports for more information.


Diagram


Symbols

Selecting Symbols gives you access to the symbol submenu from which you can add symbols to a diagram. The cursor will change to the Symbol cursor. Refer to Drawing Symbols, Methodology Symbols, Business Planning Analysis Methods and Functions, Structure Chart Symbols and Entity Symbols for more information.


Lines

Selecting Lines allows you to add lines to a diagram. The cursor will change to the Lines cursor. Refer to Drawing Lines, Net Data Flows, Business Planning Analysis Methods and Functions, Structure Chart Line Types and Relationship Lines for more information.


Text

Selecting Text allows you to add or change diagram text on a diagram. The cursor will change to the Text cursor. Refer to Entering Text for more information.


Construct

Selecting Construct allows you to create, load, or delete constructs. The Workbench provides the capability to store entire diagrams or sections of diagrams as Constructs. They may be thought of as library files for saving whole or partial diagrams which you may wish to reuse throughout a project or in different projects. Refer to Using Constructs for more information.


Change Item

Selecting Change Item will allow you to change the label and/or process number of a symbol, line or caption, as well as its appearance. Refer to The Change Type Function and Labeling Diagram Objects for more information.


Stylize

Selecting Stylize allows you to add enhancements (bold lines, reliefs, etc.) to a symbol, or change the size of any symbol. Refer to The Stylize Function for more information.


Connect

To connect a function or process with subsidiary functions or processes, place the parent and child symbols in a block. (Selecting symbols with the Shift-click method is probably the most efficient way.) Then select Connect from the Diagram menu. Branched, elbow connectors will be drawn from the parent to the child symbols. Note that, in the current Workbench release, this method of connecting symbols works only for FDDs.

Note

If this menu item is grayed, it could be because you have not selected the symbols you want to connect into a block or because the selected diagram is a Boilerplate or Unstructured diagram.


Snap Symbols

The Snap Symbols selection causes symbols enclosed in a block to be aligned in a strictly horizontal or strictly vertical row. Refer to Snap Symbols for more information.

Note

If this menu item is grayed, it could be because you don't have a block of selected symbols.


Analyze

This function is used to analyze a diagram or an entire project according to the rules of a methodology. Refer to the procedures described in Analyzing Data Flow Diagrams, Overview to Analyzing FDDs, Analyzing Structure Charts and Analysis for Entity Relationship Diagrams for detailed information.


Split Data Flow

Selecting Split Data Flow allows you to divide data flows into component subflows. This function is used for data flow diagrams only, and only with the rules enabled. Refer to Splitting Data Flows for more information.


Regenerate Chart

Selecting Regenerate Chart allows you to redraw the open structure chart diagram, updating it with any information in the repository which might not already be on the diagram. Refer to Generating Structure Charts from the Repository for more information.


Modify View

This selection allows you to modify an existing view of a data model by adding and deleting entities and relationships. Refer to The View Functions for more information.


Page Size

This selection allows you to change the size of an existing diagram. However, be aware of the following: If you initially selected the Easel format, you cannot go back and decrease the page size to Standard once your diagram has been created and saved if the content of the diagram would prevent it from fitting on a Standard diagram. The same principle applies when changing from a Multi-Page diagram to one of the smaller sizes. Refer to Selecting a Page Size for more information.


Window


Tile

This selection will arrange open diagram windows as tiled windows. Refer to Diagram Window Arranging for more information.


Cascade

This selection will arrange open diagram windows as cascaded windows. Refer to Diagram Window Arranging for more information.


Arrange Icons

If you have minimized any diagrams to icons, this selection will arrange those icons on your application workspace. Refer to Diagram Window Arranging for more information.


Open Diagrams

The name of every diagram you have open will appear on this menu. You can move among them by selecting them here. You can also do the same thing by clicking on a diagram name with the mouse. Refer to Move Between Diagrams for more information.


Information About Your Copy of the Workbench

Information about your copy of the Workbench can be accessed with the About Visible Analyst selection from the Help menu. This screen will show you:

the version of the Visible Analyst Workbench you are running,

the serial number of your copy,

the person and/or company to whom it is licensed,

the network under which you are operating (LAN version only),

the number of network nodes (users) that can concurrently use your copy of the Workbench (LAN version only),

your user name (the name you used to log in to the Workbench, if you are using a single user version and Security has been turned on from the Options menu, or your network login name, for the LAN version),

your user number (LAN version only),

the capabilities of the tool in the configuration that you purchased. Capabilities available but not included in your configuration are shown in gray and

The database engine(s) on which it will run.

Note

Visible Systems Corporation sells an educational version of the Workbench to students in college. If About Visible Analyst tells you that you are using the educational version, your tool is limited in the following ways:

You may create only one project.

You may create up to ten diagrams per diagram type.

You cannot create multi-page diagrams.

You cannot perform the following functions: Import, Export, Generate SQL, Generate DDS and Copy Portion.

Entries cannot be created directly  in the Repository. They must be added via diagrams or by adding them to the Composition fields of objects already in the Repository.


Using the Mouse

Although Windows does not absolutely require it, we recommend the use of a mouse with the Workbench. The mouse is used to perform a variety of functions in the Workbench. The standard Windows functionality for the mouse is implemented here.

Unless stated to the contrary, instructions to click a mouse button refer to the left button. Instructions for the right button will be explicitly mentioned.

Left-handed mouse users: If you use a mouse with the buttons reversed, you should reverse references to left and right mouse buttons in this text.


Keyboard Shortcuts

Many menu functions can be accessed with keyboard shortcuts in the standard Windows manner. The shortcut key is shown on the menu next to the command. To use the Edit menu functions Cut, Copy and Paste from edit boxes, you must use the keyboard shortcuts. The following table lists all keyboard shortcuts used in the Workbench:

Ctrl+A	Analyze
Ctrl+C	Copy to Clipboard
Ctrl+D	Define Repository Object
Ctrl+E	Connects symbols in a box
Ctrl+F	Find an object on the current diagram
Ctrl+L	Line, Add to Diagram
Ctrl+N	New Diagram
Ctrl+O	Open Diagram
Ctrl+P	Print Diagram(s)
Ctrl+Q	Query Report
Ctrl+R	Report
Ctrl+S	Save the Current Diagram
Ctrl+T	Text, Add to Diagram
Ctrl+U	Clear (Deselect) Diagram Object or Block
Ctrl+V	Paste from Clipboard
Ctrl+X	Cut to Clipboard
Ctrl+Y	Snap Symbols to Horizontal or Vertical Row
Ctrl+Z	Undo (Erase a Line Change)
Alt+Q	Add Components to Composition Field of Repository Object
Alt+R	Delete Project with No Project Files
Del	Delete Object from Diagram
Esc	Exit the repository
F1	Help, Context Sensitive
Shift+F1	Enter Help Mode to Get Help on Menu Item


Security in the Single-User Workbench

Without network software to control file access and user rights, security in the single user version is necessarily limited. If security is turned on, you can limit access to the Workbench to certain users and require passwords. However, there is no way to control access to project files at the DOS level.

The Workbench is shipped with a default supervisor name of SUPERVISOR. To log on as a supervisor for the first time, use this USER ID. No password is necessary. Thereafter, you may change this USER ID as you wish and add any password you like. Make sure you keep a record of your passwords and USER IDs, as they are encrypted within the Workbench and can't be looked up if you forget them. Security is off by default.

________

See Also

Modify User List


The VAW.INI File

There is a file in the \VA directory named VAW.INI. It holds the default values for numerous Workbench settings. If you are using the LAN version of the Workbench, you will also have a file named VAW#.INI, where # is user number of your node on the network. The Workbench copies the contents of VAW.INI into VAW#.INI, when it creates it and thereafter doesn't use the original any more. You can find out your user number by looking at the Help About Visible Analyst menu selction under the Help option from the main menuThe single-user version always uses the original version of the file. The only reasons for reason for you to edit this file are:

to establish default paths for network users,

to define a minimum line length, and


A Few Words About Error Messages

There are many messages that can be displayed as the result of some activity you do that doesn't conform to the rules of a methodology, as a result of some other type of occurrence (missing or corrupted files, etc.) or even because of some error made by the Workbench. You, as the user, need to know what happened, why it happened and how to fix it. Where you turn for advice depends upon the kind of activity being performed when the error occurred. Below is a list of the types of activities that cause errors and where in the Help system you can turn for an explanation:

If you are running one of the project analysis functions (Analyze, Key Analysis, Key Synchronization or Process/Data Model Balancing), errors supplied at the end of the process relate to the sometimes complex rules of the methodologies which underlie the operation of the Workbench. An explanation of these errors can be found in Analysis Error Messages.

Messages produced by import, export and shell code, SQL schema or DDS generation are generally simple, direct and self-explanatory. An explanation of these errors can be found listed alphabetically in Miscellaneous Error Messages.

Other messages, such as those which are displayed when you attempt some illegal drawing operation, are listed alphabetically, with explanations, in Miscellaneous Error Messages.

However, if you find a message that still baffles you, please call the Visible Systems technical support number for an explanation.


Understanding Projects

The Workbench organizes diagrams on a project basis. Before doing work in the VAW, you must select a project name where the work is to be kept. Every subsequent function performed by the Workbench will address the selected project, with the exception of New Project, Select Project, Print, Restore and Copy Portion. The selected project will remain the current project until a different project is selected.

________

See Also

Understanding Project Trees


Understanding Project Trees

Within each project, diagrams are automatically stored in a tree structure referred to as the project tree or treefile. There are separate treefiles within a project, one for the project's data flow diagrams and others for structure chart, entity relationship, functional decomposition, boilerplate and unstructured diagrams. The treefile for data flow diagrams is arranged in a hierarchical structure, and makes use of indentation to depict relationships between diagrams on different levels, child/parent relationships, etc. This type of treefile organization complements the concept and process of top down functional decomposition.

Structure chart, entity relationship and unstructured treefiles do not represent diagrams with a hierarchical structure. They are not based on the concept of top down decomposition, and the treefile has a flat structure which lists all of the project's structure charts, entity relationship and unstructured diagrams in alphabetical order.

Each project is associated with a project root which is a one- to four-character designator for the project. You can change the currently selected project selection via the Select Project function at the File menu.

Every process modeling project must begin with a top level data flow diagram, from which subsequent levels of data flow diagrams can be decomposed. The remaining levels of data flow diagrams in the project are structured below the top level diagram.

You can store an unlimited number of projects in the Workbench.

Each project is designated by a project root, and has its own project trees for data flow and other types of diagrams.

Each project can have up to 600 diagrams or views per diagram type, arranged in each project's treefiles.

Each diagram in a project can have only one parent, but may have up to forty children.

Note

This information applies to both data flow diagrams and to other diagram types. However, as structure chart, functional decomposition, entity relationship and unstructured diagram trees do not have hierarchical branches or nested relationships, all references to parent and child diagrams, and to the copying, adding, deleting, etc., of branches and child diagrams refer only to data flow diagrams.

For a description of how to rearrange stored diagrams and copy diagrams from one project to another, refer to Modifying a Project Tree.

________

See Also

Understanding Projects

Inserting New Diagrams into a Project Tree

Deleting Diagrams from a Project Tree

Copying Existing Diagrams Between Projects


Modifying a Project Tree

The Workbench gives you the capability to restructure a project tree. You can rearrange project data flow diagrams, as well as add or delete them at any level. You may also copy a diagram or branch from one project tree to another, inserting the diagram at any level in the receiving tree structure. All repository information associated with diagrams remains attached to the diagrams when they are moved with the Copy Portion function. However, understand that whenever you rearrange or add a diagram or branch to the tree, you may have to recreate nest relationships to maintain the integrity of any parent/child relationships that are impacted by the modification.

________

See Also

Understanding Project Trees


Inserting New Diagrams into a Project Tree

The New Diagram function at the File menu allows you to create and insert new diagrams into the project tree of an existing project. The dialog box will ask you to pick an existing diagram in the project tree.

If you want the new diagram to become the hierarchical parent of the diagram you select, check Insert Level. When the inserted diagram is saved, it will bump all subsidiary levels of the tree down one level.

Otherwise, the new diagram will become the hierarchical child of the diagram you choose.

Any nest relationship that existed between the diagram that had occupied the insert position and its parent will be removed. However, the new diagram being inserted will be nested from it's new parent diagram. There will be no nest relationship between the inserted diagram and the diagram that had occupied its new position (the diagram that was bumped down one level); however, you can establish a nest relationship between them via the Nest function. All other nest relationships will remain undisturbed.

If you did not make a context diagram when you created the first DFD of a Yourdon-rules project, you can check Insert Level and Context Diagram and select the top-level diagram in the tree. Your new diagram will then become the project's context diagram.

________

See Also

Understanding Project Trees


Deleting Diagrams from a Project Tree

Deleting a diagram from the project tree is accomplished via the Delete Portion function at the Utilities menu. Upon selecting Delete Portion, you must select a diagram from the tree and indicate whether to delete the diagram only, or to delete it and all of its children. If you delete the diagram only, it has the same effect as removing a diagram level from the tree and bumping the children up one level. Any nest relationships that existed between the document being deleted and its children are removed. And there will be no nest relationship to the diagram(s) which takes the place of the deleted diagram. You must establish any desired relationship via the Nest function.

You can delete boilerplate diagrams with Delete Portion, too.

________

See Also

Understanding Project Trees


Copying Existing Diagrams Between Projects

This section describes how to copy an existing diagram from one project to another, or from one level in a project to another, via the Copy Portion function on the Utilities menu. Upon selecting Copy Portion, you must first define which project root you want to copy from. Then you must select the diagram or diagrams you want to copy. You can copy diagrams from more than one diagram type at one time. Make selections for all of the diagram types you want to copy and then press OK to copy them.

For non-DFDs the standard Windows multiple selection techniques can be used (e.g., you can click on individual diagrams in any sequence and they will select; clicking on a diagram a second time will deselect it).

Because of their hierarchical nature, DFDs work slightly differently. There is a check box in the Copy Portion dialog box named Mark Branch. If this is checked and you click on a diagram, all of its descendant diagrams (i.e., its branch) will be selected. If Mark Branch is not checked, only the diagram name you click on will be selected. Note that if you deselect a diagram and there are superior diagrams in the branch selected, all of its children and grandchildren, etc., will deselect. You cannot skip levels within a project branch when selecting diagrams, as this would disrupt nest relationships in potentially unintended ways. If you select diagrams to copy in different branches of the project, the top diagrams of all of the branches you select will become sibling diagrams (i.e., on the same level) in the Copy Portion destination.

You must also indicate the project to which you want to copy the diagram(s) and, for DFDs, destination parent diagram.

For DFDs, nest relationships are not automatically set up between any diagram(s) copied and the parent diagram being copied to. You must establish any desired nest relationships via the Nest function. When this is done, all processes will be renumbered according to their new locations in the project tree.

Notes

If you are copying Data Flow Diagram(s) to another project then the rules defined in each project will be interchangeable (i.e. if you have DFD's defined with Yourdon/Demarco rules and you copy the diagrams to a Gane & Sarson project then a rules conversion will be performed). However, Entity Relationship Diagrams may only be copied into similar methodology projects. Also, if Rules are enabled for the project into which diagrams are being copied, the Workbench will perform a check to assure that no diagram labels are duplicated as a result of the copy. You will be prompted to enter a new name for any diagram that has a duplicate name to another diagram that already exists in the destination project. Also note that if an object label in the diagram being copied conflicts with an object label in the project being copied to, the Workbench will not copy the duplicate object label.

You cannot copy both boilerplate diagrams and diagrams in other diagram types in a single execution of the Copy Portion function. If you select both boilerplate diagrams and diagrams in other diagram types, only one group will be copied. If Boilerplate appears as the diagram type when you press OK, the boilerplate diagrams will be copied. Otherwise, the rest of the diagrams will be copied.

If the projects involved in a copy operation have repository entries, then the repository entries associated with the diagram(s) being copied from the source project will be copied into the repository of the destination project. These repository entries include the entries for all objects on the diagrams being copied, as well as any derivative entries associated with the Alias and Composition fields of these objects. (This assumes that they are copied into a project using the same methodology rules, and that there are no conflicting labels).

In summary, the following repository functions are performed when copying a diagram between projects:

The Workbench copies all repository information that is necessary to recreate the entries in the destination project.

If the destination project has a repository entry with the same label and same entry type as an entry being copied, then the Workbench assumes that it is the same entry. It will not overwrite any existing fields that are already defined in the destination project. It will copy only those entries that are not currently defined in the destination project.

New repository entries will be created in the destination project for all aliases that are included in the entries being copied.

New repository entries will be created in the destination project for all composition items that are included in the entries being copied.

________

See Also

Understanding Project Trees


The Workbench Database Managers

The recommended installation procedure is to install the product utilizing Btrieve as the primary database engine. You can then have other RDBMS's as secondary database engines, allowing you to create specific projects utilizing the secondary engines. Also data models can be imported and exported to and from the secondary RDBMS engines in a seamless fashion. See Workbench Utilities for more details.

The supported secondary engines are Gupta's SQLBase, SQLServer 4.x, SQLServer System 10 and Oracle7 Server. To access these RDBMS's, you must have the appropriate VAW DLL's loaded. During installation, the VAW will check your path for specific RDBMS's DLL's; if any exist the appropriate VAW DLL's will be installed. See the specific RDBMS's listed below for more details.

You can install the VAW in a relational database format or continue using the proprietary, Btrieve based format of earlier versions of the Workbench. If you choose to install the VAW to a relational database engine then all VAW system tables will reside in the relational DBMS and the software will be noticeably slower. Also all users of VAW will need access to the RDBMS. If you would like to install the VAW utilizing a RDBMS as the primary database engine, please call the Visible Systems technical support number for the installation procedure.

During project creation, you can choose to store projects in a relational database format or continue using the proprietary, Btrieve based format. The format you wish to use is specified in the repository drop down list box, located in the New Project dialog box . You can also convert existing projects from Btrieve format to a relational format and vice versa, via Rebuild from the Utilities menu. Keep in mind that projects created utilizing a relational database engine will be noticeably slower. The only benefit to creating a project under a relational format would be to use third party report writers to generate your own custom reports. If you do not plan to write your own reports, we strongly recommend you create your projects utilizing the Btrieve database engine.

If you store projects in Btrieve format, you can still use the facilities to generate SQL and populate a supported RDBMS with the appropriate data model information using the RDBMS Catalog Export, or import database definitions using the RDBMS Catalog Import

If you choose to create or convert a project to a relational format you will be asked to enter site specific database information in the dialog box titled Target Project Database Location Information. The dialog box will prompt you for the following:

Connect String defines where the DBMS is located. For local versions of the database server this field should be left blank. For databases accessed across a network use the following syntax: for ORACLE7 Server "protocol letter:servername", for SQLBase "servername", and for SQLServer "servername" as defined in the local configuration. All users must use the same connect string to look at a database.

Database is where the project files will be located. If you are using SQL*Net SPX for Netware or SQL*Net TCP/IP, this entry should be left blank as these versions of Oracle7 Server will not support multiple active databases. In the case of SQL*Net TCP/IP, the sid or instance name should be specified in the connect string as follows "protocol letter:servername:instance". (If you enter any characters in the database field and then decide you should leave it blank, make sure you delete the field utilizing the Del key or blanks will be left in the field and your connection will fail)

Schema or authorization id is used to create and access the project tables for VAW in a specific space within the specified database. You must have access rights to the space you specify. If you leave this blank, the default schema assigned to your database username, will be used and all other users will have to log on as that schema name.

Prefix is unique to VAW and is a prefix which will be attached to any tables created within a project if your site stores multiple projects within the same schema. The maximum length is 6 characters and the default is VA<ROOT>, where <root> is the project name.

Username/Password is your user-id and password to access the database. You must have the appropriate rights. The minimum rights needed to access VAW projects are insert, update, and delete. The owner of a project also needs create rights to the database.

________

See Also

Btrieve

Gupta's SQLBase

SQLServer

Oracle


Btrieve

The Workbench has traditionally used the Btrieve record manager as its underlying database engine. For the Windows version, this is implemented as a dynamic link library (DLL) named WBTRCALL.DLL. By default, all database processing is performed on the workstation where the Workbench is running.

If you have the LAN version of the Workbench, you have the option to use the client-server version of Btrieve so that most of the database processing will be handled by the file server. To implement the client-server version of Btrieve, do the following:

Install Btrieve on the file server. Refer to your NetWare documentation for instructions.

Before loading Windows, load the Btrieve Requester, BREQUEST.EXE. You might want to do this in your AUTOEXEC.BAT file. This file is supplied with NetWare. Make sure that it is version 5.15 or later.

Add the following lines to your WIN.INI file:

[brequestDPMI]

datalength=4096

chkparms=no

local=no

tasks=10

These are the default values. If you have other applications which access Btrieve, these values might be different than shown here.

Make sure that the requester version of Btrieve (WBTRCALL.DLL) is accessible to Windows. This file is also supplied with NetWare.

If you have a LAN version of the Workbench, you are running the client server of Btrieve, and you plan to access projects on your local hard disk, you must also run the local version of Btrieve. This is because the client-server version cannot access files on your local drive. To do this, follow the above steps. Then, rename the local version of Btrieve (also called WBTRCALL.DLL, and supplied with the Workbench) to WBTRLOCL.DLL. You must also set the local line in the WIN.INI file section listed above to "yes".

If you have installed VAW specifying a relational database engine for your repository format and would like to create a Btrieve project, you can accomplish this by choosing Btrieve under the Repository dialog box when creating a new project. You can also convert a relational database project to Btrieve and vice versa. To accomplish this choose Rebuild under the Utilities menu, and check the database format you wish the project to be rebuilt in.

If you choose to create or convert a project to a relational format you will be asked to enter site specific database information in the dialog box titled Project Database Location Information.


Gupta's SQLBase

Gupta's SQLBase can be used as a secondary Workbench database engine, giving direct access to its Gupta SQLWindows Interface. The advantage of creating a project using a relational format is the ability to use third-party report writers to access information in your data, process and structure models. You can also export a project's data model created under any of the workbench database engines to a SQLBase database using the RDBMS catalog export feature.

To utilize SQLBase as a secondary database engine you must have SQLBase installed and included in you path during the VAW installation. If you add this software after the initial VAW installation, run the installation again and the proper VAW DLL's will be installed.

When you choose to create or convert a project to a relational format you will be asked to enter site specific database information in the dialog box titled Project Database Location Information.

Note

Please be aware of the following:

The directory where SQLBase is installed must be included in your PATH and you must have the ability to create database access in SQLBase.

Gupta recommends that you have six to eight megabytes of RAM installed to run SQLBase.

The Workbench creates one SQL database for each project by default. You can specify multiple projects to run under a single relational database engine by editing the VAW.INI file. See Multiple Projects in a Single Relational Database for more details.

_________

See Also

RDBMS Catalog Export

RDBMS Catalog Import

The Workbench Database Engines

Btrieve

SQLServer

Oracle


SQLServer

SQLServer can be used as a secondary Workbench database engine. The advantage of creating a project using a relational format is the ability to use third-party report writers to access information in your data, process and structure models. You can also export a project's data model created under any of the workbench database engines to a SQLServer database using the RDBMS catalog export feature.

To utilize SQLServer as a secondary database engine you must have SQLServer installed and the proper DLL's included in you path during the VAW installation. If you add this software after the initial VAW installation, run the installation again and the proper VAW DLL's will be installed.

When you choose to create or convert a project to a relational format you will be asked to enter site specific database information in the dialog box titled Project Database Location Information.

 Note

The VAW SQLServer driver cannot create a database in SQLServer, you must create the databse which will be used by the VAW beforehand.

There is no automatic clearing of SQLServer logfiles. This must be done manually. Logs should be purged frequently, especially when rebuilding a project.

When rebuilding or creating new projects, DDL commands are issued which are not included in the SQLServer logfiles. A restore of the SQLServer logfiles may not be complete.

SQLServer requires space for each database created. The logfiles grow quickly. For large projects with many concurrent users, approximate the space needed by adding the size of the database and index and multiplying by 10. As an example, the LIB project shipped with the product requires 8MG of space to run properly. You can use the "sp_space" command in ISQL to determine the space values.

_________

See Also

RDBMS Catalog Export

RDBMS Catalog Import

The Workbench Database Engines

Btrieve

Gupta's SQLBase

Oracle


Oracle

Oracle7 Server can be used as a secondary Workbench database engine. The advantage of creating a project using a relational format is the ability to use third-party report writers to access information in your data, process and structure models. You can also export a project's data model created under any of the workbench database engines to a Oracle7 Server database using the RDBMS catalog export feature.

To utilize Oracle7 Server as a secondary database engine you must have Oracle7 Server installed and the proper DLL's included in you path during the VAW installation. If you add this software after the initial VAW installation, run the installation again and the proper VAW DLL's will be installed.

When you choose to create or convert a project to a relational format you will be asked to enter site specific database information in the dialog box titled Project Database Location Information.

Note

The VAW Oracle7 Server driver cannot create a database in Oracle7 Server, you must create the databse which will be used by the VAW beforehand.

When creating new databases in Oracle7 Server you must use an 8-bit character set. Contact Visible Systems for a list of 8-bit character sets compatible with Oracle7 Server. The default for Oracle7 Server is a 7-bit character set.

The LIB project shipped with the VAW will require 2 MG of space in the database to run if converted to an Oracle7 server format.

_________

See Also

RDBMS Catalog Export

RDBMS Catalog Import

The Workbench Database Engines

Btrieve

Gupta's SQLBase

SQLServer


Storing Multiple Projects in a Single Relational Database

If you are creating projects in a relational format using Gupta's SQLBase, SQLServer or Oracle as the primary repository database engine, you can store multiple projects in the same database. This feature aids in database security control, by allowing users to create projects in VAW without requiring create database access to the engine. This feature is transparent to the users and can be specified in VAW by editing the VAW.INI file found in the directory where VAW is installed.

To choose this feature by editing the VAW.INI file, add the following switch setting, which is highlighted, to the existing line in the VAW.INI file as follows:

Database Login=Database Engine/System Connect String/System DB/System Schema/System  Prefix/Project Connect String/Project DB/Project Schema

where the following definitions apply:

Database Engine - either SQLBase, SQLServer or Oracle7 Server (Case Sensitive)

System Settings - You should not modify these settings.

Project DB - The name of the database where all projects will be stored. The database must have already been created outside VAW. It can be the same name as your System database. (Upper Case Only)

Project Schema - name of the schema within the database where all projects will be stored.

Note

Keep in mind all settings are case sensitive; this includes the entry name as well as the entry values. This feature can only be invoked for new projects. If you would like to include existing projects as part of this universal database, a user can copy the existing project to a newly created project via Copy Project from the Utilities menu.

_________

See Also

The Workbench Database Engines


Overview of the Diagraming Process

In its most simplified terms, Workbench diagraming is a three step process consisting of adding symbols and lines to a diagram, and entering text (labels or captions). The sequence in which you perform the process is strictly up to you. For example, you may choose to position all of a diagram's symbols before positioning any lines. Then you could position text to label each symbol and line; or you could enable one or both of the the Auto Label functions and be prompted to label each symbol or line as it is positioned. You can also perform editing functions on any diagram, allowing you to stylize, reposition, or relabel any object as you develop the diagram; or you can return to the diagram during a subsequent work session to perform edits.

Detailed procedures that can help you perform the diagraming and editing processes are provided in various Help topics. These procedures provide all of the information you'll need to draw symbols and lines and label them. Editing procedures are also supplied which allow you to stylize, copy, move, or delete any symbol, line, or text entry.

Note that all of the diagraming procedures are supplemented by helpful information when using rules and repository functions. Other information explaining the use of nesting functions, creating and loading constructs, etc., is also provided to help you understand the complete Workbench diagraming process. Finally, although some explanations discuss only data flow diagraming, they are valid for all diagram types, unless otherwise noted.


Before You Begin

Although the Workbench diagraming procedure is easy to learn, you should understand Basic Operating Principles, Project Trees, and the menu selections presented in Chapter 2 of the manual (or in The Basics and Menu Functions) before proceeding any further.

Before using the Workbench you should also be aware of a few basic operational aspects for which you should make important decisions prior creating a new project and drawing the first diagram. These operational aspects are listed below and described in the following paragraphs:

rules and repository considerations,

changing diagram types (data flow, functional decomposition, structure chart, entity relationship, unstructured or boilerplate),

enabling and disabling boilerplates,

using boilerplate keywords,

selecting a page size,

selecting a project.

________

See Also

Creating a New Project


Rules Considerations

Rules are applied to diagrams on a project-wide basis; i.e. all diagrams in a particular project must have the same rules. You must therefore be sure that the desired Rules are selected prior to drawing the first diagram for any new project. This is true even for Workbenches sold without a data flow diagraming capability, so if you ever want to do data flow diagraming for the project, enable rules by selecting the data flow methodology which you would want to use at that time. You cannot go back and change your selection for that project, once the first diagram in the project has been created and saved.

You have the option to disable Rules or to select either the Yourdon or the Gane & Sarson methodology for data flow diagrams. The Yourdon/Constantine methodology is used by default for all Structure Charts if the Structure Chart diagraming mode has been selected. Proceed as follows to make your desired rules selection for any new project. (Refer to The Rules for detailed information about applying rules to a project).

________

See Also

Data Repository Considerations


Data Repository Considerations

Rules are a prerequisite for the Workbench Repository; i.e. either the Yourdon or the Gane & Sarson methodology must be enabled before you can enable the data repository function. Like rules, the repository function is also applied to diagrams on a project-wide basis, where all diagrams in a particular project share the same repository.

Therefore, if you want to use the repository, you must be sure that it is enabled prior to drawing the first diagram for a new project. If a project is created with the repository disabled, you cannot go back and later enable the repository for that project.

Proceed as follows to enable/disable the data repository selection for any new project (specific instructions for using the capabilities of the repository are provided in The Repository.)

________

See Also

Rules Considerations


Relationship Cardinality Notation

A relationship's cardinality shows how many instances of one entity type relate to how many instances of the entity type at the other end of the relationship. To show a relationship cardinality of Many, a line terminator must be used. The Workbench gives you a choice of three:

Crow's Foot Notation - a three-way fork

Arrow Notation - a double arrowhead

Bachman - a single arrowhead

________

See Also

Number of Names for Relationships


Number of Names for Relationships

Relationships are inherently bidirectional. However, you may not want to save relationship names in both directions. You may save two names for each relationship or just one.

________

See Also

Relationship Cardinality Notation


Create a Project - the Procedure
Create a Project  the Procedure

1.	At the Workbench File menu, first select New Project and a dialog box will appear.

Identify the Project:

2.	Give the project a one- to four-character name (the project root) and a short description. Then identify the path where the project is to reside. The default location is in a subdirectory beneath the Workbench itself whose name is the same as the project root, as in Figure 3-1 of the Workbench manual.

Enable or Disable the Repository Prior to Creating a New Project:

3.	Select either Disabled or the database of your choice, to be used for the Repository. Note that if you selected Disabled for the Rules, you cannot enable the repository for the project.

Disable or Select a Methodology While Creating a New Project:

4.	Select Yourdon/DeMarco or Gane & Sarson as a methodology for your project or select Disabled to disable rules.

Choose a cardinality notation:

5.	Select one of the three choices presented in the dialog box.

Choose the Number of Relationship Names to Use:

6.	Select one of the two choices presented for defining the number of names for relationships.

7.	Press OK to create the project.

________

See Also

Relationship Cardinality Notation

Understanding Projects

Rules Considerations

Data Repository Considerations

Relationship Cardinality Notation


Selecting an Existing Project

Once projects have been created and saved, you can easily load different projects into the Workbench by choosing Select Project at the File menu and selecting the desired project from the list. When an existing project is selected and loaded into the Workbench for access, all of the original project parameters stored for the project are automatically restored.


The Uses of Different Diagram Types

The different diagram types are discussed in detail in The Rules. The paragraphs that follow give summaries to make the diagraming processes clearer.

Data Flow diagrams (DFDs) represent the functional tasks of your project analysis. For example, a data flow diagram might represent a particular functional area of a department within your company. That data flow diagram might also be an integral part of a project that consists of multiple data flow diagrams that represent multiple levels of department functions and tasks.

Functional Decomposition Diagrams (FDDs) give you the ability to do high-level planning of business functions diagrammatically while concurrently populating the repository. You can enter business functions onto diagrams and break them down into successively finer gradations. At some point, one that is entirely up to you, you can decompose business functions (hereinafter called simply functions) into processes semantically equal to those that appear on DFDs. The processes can themselves be decomposed into smaller parts, i.e., still lower-level processes, on FDDs.

Note

A functional decomposition diagram is very different from a process decomposition diagram. The former is a full diagraming methodology for doing business planning. The latter is simply an unstructured diagram laying out the hierarchy of processes which are descendants of an indicated process.

Structure Charts are a graphical representation of the top-down design of a project, showing the program modules that carry out the system functions defined in a data flow diagram. They also show the hierarchical relationship between these modules and how they invoke one another.

Entity Relationship diagrams (ERDs) graphically describe the data and the relationships among data items in your project. You can draw entities (or, more properly, entity types) and the relationships between them, including relationship names in both directions. Later, the data elements (also called attributes) composing these entities can be added to the repository and, with the Analyze function, key information can be generated for relationships. Later, if you choose, you can balance your data model against your process model to further enrich the information stored in your project.

Unstructured diagrams are not linked to the repository. They are simply free-standing diagrams. They can be put to any use you desire. Also, cluster diagrams and views, generated from ERDs, and process decomposition diagrams, generated from DFDs, are unstructured diagrams.

Note

You can define defaults for the line types (straight line, dashed line, arc, etc.) and terminator types (solid arrowhead, open arrowhead, no terminator, etc.) that can be drawn on unstructured diagrams. They can be made the same as those used for any other diagram type. You can make this setting by selecting Line Settings from the Options menu. This dialog box is described in Default Line Selections. From the top box, you can choose the line and terminator values that will be accessible when the diagram type is set to Unstructured. However, the line values set for a particular unstructured diagram will be those in effect at the time the diagram was created, so you should set this before you begin the new diagram creation process.

Boilerplate diagrams do not represent project designs, but instead represent standard text and graphics that are available for insertion into other diagrams. For example, a boilerplate diagram might be a corporate logo or standard heading that is to be included in your diagrams. You may create many boilerplate diagrams, and each will be saved in a special Workbench file that is specifically set aside for all boilerplates. You can then select any one particular boilerplate for inclusion in subsequently created diagrams if you also enable a boilerplate when you create a diagram, as described in Create a New Diagram -- the Procedure. It's important to understand that rules and data repository capabilities are inapplicable to boilerplate diagrams.

________

See Also

Unstructured Projects Versus Unstructured Diagrams

Cluster Diagrams


Unstructured Projects Versus Unstructured Diagrams

If you create a project with the Rules and Repository disabled, that project will always be unstructured, despite your ability to select different diagram types within it. The Rules and Repository will not apply to any diagram in the project.

If you create a project with the Rules and Repository enabled, you can have unstructured diagrams coexisting with methodology diagrams in the project. The methodology-based diagrams will be linked to the repository.

________

See Also

The Uses of Different Diagram Types


Selecting a Page Size

The Page Size buttons allow you to select from three available page sizes for any new diagram:

Standard defines an 8 x 11 inch drawing area.

Easel defines a 14 x 11 inch drawing area.

Multi-Page defines a 90 x 88 inch drawing area. On the Multi-Page diagram workspace are indicated the places where the diagram will break over pages when printed. These marks will not print out on your diagram. While it is permissible to use this Multi-Page size for any diagram type, it may not always be the wisest thing to do. Remember that one of the principles of analysis is to break things up into small sections that take up no more than one standard page to make the concepts more manageable and easier to understand.

You may select a page size according to your diagram requirements. At a later time you can change the diagram size from the Diagram menu. However, be aware of the following: If you initially select the Easel format, you cannot go back and decrease the page size to Standard once your diagram has been created and saved if the content of the diagram would prevent it from fitting on a Standard diagram. The same principle applies when changing from a Multi-Page diagram to one of the smaller sizes.


Tree Position of the New Diagram (DFDs Only)

If this is the first diagram of a project, it will be at the top of the tree. If you have chosen the Yourdon/DeMarco methodology, you can also check the box identifying this as a context diagram. Note that when you select a position in the tree, you are selecting the parent of the new diagram. If you check the box labeled Insert Level, the selected existing diagram will become a child to the new diagram. If you choose the top level diagram of a Yourdon/DeMarco project and you have not yet identified a diagram as a context diagram, you can insert a level above the existing top-level diagram and make it a context diagram by checking that box.

Note

All of the warnings given in the discussion about inserting diagrams into the tree apply here: Actual parent/child relationships are created only with the Nest function. Diagram insertions simply position diagrams so that they can be nested.

________

See Also

Understanding Projects

Understanding Project Trees

Inserting New Diagrams into a Project Tree


Create a New Diagram - the Procedure
Create a New Diagram  the Procedure

The Workbench allows you to work with data flow, functional decomposition, structure chart, entity relationship, unstructured, or boilerplate diagrams; so the first step in creating any new diagram is to:

Open the Dialog Box:

1.	Select New Diagram from the File menu.

Set the Diagram Type:

2.	Set the desired diagram type.

Note

Once you begin drawing your new diagram, you cannot go back and change that diagram to another type.

Choose  the Drawing Method:

3.	If you are creating an Entity Relationship, Class, or unstructured diagram, choose the method by which the diagram will be drawn.  Standard is the normal manual process where you control how objects are added to the diagram.  The View methods will automatically create a diagram based on the type of view selected.  Refer to the View Functions for more information.

4.	If you are creating a Class diagram using one of the View methods, and you want entities to be included as classes, select Include Entities.  Once an entity is added to a Class diagram, it will be converted to a Class in the repository, with an entity sub-type.  It can be used freely on both Entity Relationship diagrams and Class diagrams.

Set the Diagram Page Size:

5.	Select Page Size button that corresponds to the size you wish.

6.	Continue by defining the Boilerplate you want to appear on the diagram, if any. (Boilerplates are explained in detail in The Uses of Different Diagram Types, Enabling and Disabling Boilerplate and Using Boilerplate Diagram Keywords.) If you are creatng a boilerplate diagram, you cannot include another boilerplate diagram in it.

Select the Tree Position:

7.	Select the position in the project tree hierarchy where you want the new diagram to be (data flow diagrams only).

Create the New Diagram:

8.	Push the Select button with the mouse or press [image]. If the standard Drawing Method is used, an empty diagram window will appear, waiting for your input.  Otherwise, you will be prompted for the appropriate View selections.

________

See Also

Understanding Projects	Selecting a Page Size
Understanding Project Trees	The Uses of Different Diagram Types
Tree Position of the New Diagram (DFDs Only)	Unstructured Projects Versus Unstructured Diagrams
Inserting New Diagrams into a Project Tree	View Functions


Opening an Existing Diagram for Editing

Normally when you access the Workbench program, the current project is the one that was last selected. In some instances however, such as when you delete a project and then exit the program, the Workbench will have no current project the next time it starts. In this case and whenever you want to work in a different project, you will have to choose a project before you can open the diagram you want to edit. Once a project is selected, choose Open Diagram form the File menu, select the diagram type and pick the diagram you want to edit from the Diagram box. The diagram you chose will open in a window for you to edit.


Enabling and Disabling Boilerplate

When creating a new diagram, the Boilerplate box allows you to select any existing boilerplate drawing for inclusion in the new diagram that you are about to draw. There are three important things to remember about this:

If the diagram type is set to Boilerplate, the Workbench will not allow you to enable a boilerplate for the new diagram, because you cannot include an existing boilerplate in a new boilerplate diagram.

If a boilerplate is enabled and the diagram type is set to something other than Boilerplate, the Workbench will automatically draw the selected boilerplate into the new diagram window when a new diagram is created. The added boilerplate will always be displayed as part of the diagram whenever it is accessed or printed. Once a boilerplate is enabled for a new diagram is created and it is saved, the boilerplate cannot be removed as one unit from the existing diagram; however, the individual parts making up the boilerplate can be removed.

If disabled, no boilerplate will be included in your new diagram. As described in Using Boilerplate Diagram Keywords, a boilerplate can be added to an existing diagram using a Construct.

________

See Also

Create a New Diagram  the Procedure

The Uses of Different Diagram Types

Using Boilerplate Diagram Keywords


Using Boilerplate Diagram Keywords

Keywords are available for use in boilerplate diagrams. If any of the keywords are present in a boilerplate that is loaded into a diagram, they will automatically be replaced by information such as when the diagram was created, when it was last edited, etc. You may place the keywords anywhere within a boilerplate and they will automatically be translated when the boilerplate is loaded into any diagram. They will also be updated each time the diagram is accessed by the Workbench. All keywords must be placed on the diagrams as separate text entries in order to function properly. The following keywords may be used:

$CDATE - Identifies the date that the diagram was created.

$CTIME - Identifies the time that the diagram was created.

$CUSER - Identifies the user who created the diagram.

$DIAGRAM - Identifies the diagram label (or name).

$EDATE - Identifies the date that the diagram was last edited.

$ETIME - Identifies the time that the diagram was last edited.

$EUSER - Identifies the user who last edited the diagram.

$PARENT - Identifies the parent diagram label (data flow diagrams only).

$PROJECT - Identifies the diagram's project root.

These keywords are continuously updated as necessary: $DIAGRAM, $EDATE, $ETIME, $EUSER and $PARENT.

Boilerplate keywords may not be embedded within text; instead, they must be separate text entries. For example, the text entry "Last edit: $EDATE" will not produce the desired result. Instead, "Last edit:" and "$EDATE" must be separate text entries.

The font that you use for the keyword is the font that will be used for the text that replaces it.

Keywords are case-insensitive.

A boilerplate can be added to existing diagrams by using Constructs. To do this you must:

1.	Create a new diagram with the desired boilerplate enabled.

2.	From the new diagram, save a construct that contains the entire boilerplate and nothing else.

3.	Load the construct into existing diagrams. Note that boilerplate keywords are updated only when a diagram is loaded. Therefore, the keywords will initially take on the values for the diagram from which the construct was created, not the diagram to which they are added. They will be set to the correct values the next time the diagram is loaded.

________

See Also

Create a New Diagram  the Procedure

Enabling and Disabling Boilerplate


The Diagram Workspace

Whenever you create a new diagram or edit an existing diagram, the diagram or application workspace is displayed. The diagram workspace is the starting point for creating, editing, and reviewing all of your diagrams. The center of the diagram workspace provides the area into which you will draw each diagram. When the first diagram is opened during a work session, it is opened maximized and fills the entire application workspace. You can also expand the application workspace to fill your entire screen. This makes a maximized diagram even bigger. You can also, shrink it to a window or minimize down to an icon, if you wish.


The Diagram Window

Diagram windows are sizable in the standard Windows manner. If you have a maximized diagram open and you open a second diagram of the same or different diagram type, both will be displayed as windows, i.e. neither will be maximized. You can later choose to maximize either. You can control how your individual windows appear and how your windows are arranged from the View and Window menus, as described in The View Menu and Window Menu. Note that the Workbench appends the diagram type of a diagram to the name of that diagram in the title bar of the diagram's window.


The Help Bar

At the bottom of the application workspace is a line that gives a brief description of the menu function currently highlighted, the name of the current object, the current zoom level, and the current project. If you want to change the zoom level, click the right mouse button on the Zoom setting and a popup menu will appear with a list of the available settings. If you want to perform project operations, click the right mouse button on the project name. The Help Bar can be toggled on and off from the Options menu.

________

See Also

The Diagram Window


Setting Individual Item Colors

You can select the color for how each type of object will appear on the screen. Symbols can be blue, lines can be black, labels can be green, etc. The color in which a selected object will display can also be selected. You can choose colors from the displayed palette or mix your own. You make these selections by choosing Colors from the View menu. Examples of the colors you have chosen will appear in the dialog box.  Every symbol, line, and text entry can be assigned a unique color.  Symbols can have both a foreground and background color.

Note

If you would like to change the colors of the Workbench's screen and menu, you can configure this from the Windows Control Panel.


Grid and Ruler

A diagram can be displayed with ruler lines along the top and left sides of the window, to aid you in the regular placement of items on the diagram. A grid can also be placed on the diagram. The two features can be used simultaneously and neither will print on a diagram.

________

See Also

The Diagram Window


Zoom

Selecting Zoom from the View menu allows you to reduce the display size of a diagram, so that a larger portion may be viewed within the workspace. Select the zoom level (expressed in percentage of object sizes compared with those in the 100% level) you wish to use. All diagram editing functions can be used in the zoom mode, although the on-screen resolution of text entries in certain font styles may deteriorate at the smaller display-size zoom levels.

________

See Also

The Diagram Window


Symbols and Lines Without Labels

In order to be referenced in the Repository, every methodology symbol or line (except invocation lines and data and control connections on structure charts) must carry a text label. However, there are times when a diagram's structure may become clearer with these labels absent. You can toggle the display of symbol and line labels on and off from the View menu. If you choose to print a diagram that has labels turned off, the labels will not appear on the printed diagram.

Note

Turning line or symbol labels off is not the same as not labeling them. A line or symbol that has never been labeled does not exist as far as the Repository is concerned.

________

See Also

The Diagram Window


Class Information Displayed on Object Model Diagrams
Class Information Displayed on Object Model Diagrams.

When viewing a diagram in an object model, the level of detail can be set to show only the class names, the class name and attributes, or methods. When changing the detail level, class symbols are automatically resized and the relationships are reconnected properly.

To use this feature:

Open the View menu and select Class.

Choose the notation to be used for the class diagram.

If you want attributes to be displayed, check the type of attributes to include.  Public attributes have global visibility.  Private attributes can only be used by member funtions.  Protected attributes are accessible to member functions of derived classes.  In addition to the attribute name, you can choose to include its type and initial value.

If you want methods to be displayed, check the type of methods to include.  Public methods have global visibility.  Private methods can only be used by other methods of the class.  Protected methods are accessible to member functions of derived classes.  In addition to the method name, you can choose to include its argument list and whether it is a virtual ( abstract ) function.


Entity Attributes Displayed on Data Model Diagrams
Entity Attributes Displayed on Data Model Diagrams.

When viewing a diagram in a data model, the level of detail can be set to show only the entity names, the entity name and attributes  which are part of the primary key, or all attributes. When changing the detail level, entity symbols are automatically resized and the relationships are reconnected properly.

To use this feature:

Open the View menu in the Workbench.

Select Entity Level  to show only the entity names.

Select Primary Key Level to show the entity name as well as its primary key attributes.

Select Attribute Level to show all attributes, key and non-key, of the entity.


Diagram Window Arranging

When you open more than one diagram, you can have them arranged either in cascade (each slightly below and to the right of the previous) or tiled (arranged and sized so that they are all visible and fill the application workspace). You select which arrangement you want from the Window menu. You can also size and arrange them manually.

For each diagram window, you can display it maximized or minimized to an icon. The Window menu will let you arrange your diagram icon neatly in your application workspace, as well.

________

See Also

The Diagram Window

Move Between Diagrams


Move Between Diagrams

To go from one open diagram to another, you can move the cursor to within another diagram's window and click. You can also select the name of the diagram you want to move to from the Window menu. This latter method will work even if a diagram is minimized to an icon. The currently active diagram name is marked with a check.

________

See Also

The Diagram Window

Diagram Window Arranging


Diagram Menu

The process of drawing a diagram consists of entering symbols, lines and text and arranging them on the diagram. By selecting appropriate functions from the Diagram menu, you can draw objects (such as symbols and lines) onto a new diagram, choose editing functions (such as Stylize, Change Item, etc.), save your diagrams, etc.


Scrolling a Diagram

There are three ways to scroll a diagram, i.e., to move the displayed area of the diagram within its window. You can use standard Windows scroll bars. You can also hold down the right mouse button and bump the edge of the diagram in the direction that you want to scroll. Additionally, you can use the Arrow, and [image] and [image] keys to scroll a diagram window


Drawing Modes

When you are entering or changing objects on a diagram, you can be in one of five different modes. They are editing mode, symbol entry mode, line entry mode, couple entry mode and text entry mode. Each mode has a different cursor to alert you to which mode you are in. There are several methods to change drawing modes, which is reflected in a change in the cursor. Those methods are explained in the sections which follow. The easiest is to click on the mode you want on the Control Bar.


Grid Settings for Object Placement

This feature allows you to set the horizontal and vertical grid settings for object placement on your diagrams. These grid settings are in pixel increments and you can specify a range from 1 to 999.  When placing a new object, moving an existing object or sizing an object on a diagram, the placement both horizontally and vertically will adhere to your Grid Settings.

Note

To view the effect these grid settings have on object placement, simply exaggerate one of the settings ( i.e. set the horizontal setting to 999 and vertical to 1), then modify the size of an existing object using the new Symbol Sizing feature.


Selecting Diagram Objects

Diagram editing in the Workbench is centered on the concept of the current object. To make some change to or get information about an object on a diagram, click on it with the mouse. If the object is a line, move the mouse cursor to any point on the line and click with the left mouse button. The object will change color and become the current or selected object. You may also select all the symbols on a diagram by choosing Select All from the Edit menu. When a symbol ,line or diagram is selected, all label(s) it has will be selected and highlighted, too. There are then a number of operations which you can perform on the selected object(s). The details of these operations will be discussed in different areas of this Help system. Clicking the left mouse button elsewhere on the diagram or choosing Clear from the Edit menu will deselect the current object.

If you double click on an object, its repository entry will appear for you to inspect or make changes. If you click on a diagram object with the right mouse button, or if you click on an object with the right mouse button when it is already selected, the Object menu for the object will appear. On this menu are listed all of the operations you can perform on that object. You can select the task you want to perform from the Object menu. The selections available on the Object menu will vary somewhat because different objects have varying operations that can be performed upon them.

There is another way to select individual objects. If you press the [image] key while an object is selected, each of its labels will, in turn, be selected. This is the only way to select the label (or process or data store number) of an object that is within the object's borders. If you keep pressing [image], other objects on the diagram will become selected in their turn.

Note

It is important to be aware of what mode the Workbench is in. An object becomes the selected or current object either when it is first added to a diagram or when you click on it when the Workbench is in editing mode, i.e., when the editing arrow cursor is displayed. When the item has been selected in either of these manners, clicking the right mouse button will bring up the Object menu. If you click on an object when the Workbench is displaying the symbol, line, couple or caption text cursor, a symbol, line, couple or free-form caption will be entered (or attempted) at that position on the diagram.

Selecting Blocks

You can also select a block. To do this, you must indicate a rectangle that will enclose all of the objects you want in the block. Point the cursor at one corner of the area you want to enclose and hold down the left mouse button. A dashed rectangle will draw as you move the cursor. When the bounding rectangle encloses all of the objects you want in the block, release the button. Everything completely within the block will appear as selected.

There is another, more detailed way to select items into a block. If you press and hold the [image] key while you click on diagram objects, they will become parts of the selected block. If you change your mind, [image] -clicking on an item selected into the block will deselect it. If two symbols are selected into a block, any line connecting them will automatically be selected into the block. (If you don't want the connecting line in the block, [image] -click on either end of it to deselect it.) Note that you can use the [image] -click method to remove objects within a block created by the method described on the previous paragraph.

You can also Select All objects on an open diagram and the all objects and the associated textt items will automatically be enclosed in a block, allowing you to perform any block operation.

________

See Also

Moving Objects on a Diagram

Line Handles

Select All


Sizing Objects on a Diagram

You can change the horizontal and/or vertical size of any symbol directly from the diagram, allowing you to enhance the appearance of any object. After selecting a symbol, place the mouse cursor on one of the handles which appear at the edges of the symbol; the cursor will change shape to indicate which direction the symbol can be sized. While holding down the left mouse button, drag the mouse either horizontally or vertically. If you drag a handle at the corner of the object, it will size the symbol both vertically and horizontally. If you choose a handle on the vertical or horizontal axis, the object will be sized respectively.

Note

When sizing an object on an ERD, you must have the attribute level set to Entity Level. Refer to Entity Attributes Displayed on Data Model Diagrams for more information.

__________

See Also

The Stylize Function


Moving Objects on a Diagram

You can move a selected object, including a block, to a new position on the diagram by pointing to it, holding down the left mouse button and dragging it to where you want it to be. When you release the mouse button, the object will redraw in its new position. If the object is a symbol and Include Connections has been enabled from the Options menu, then when you drag the symbol to its new diagram position, all lines connected to the symbol will remain connected and will stretch or "rubberband" to accommodate the move. Note that, in the case of multisegment lines, only the last segment of the line will rubberband with the object being moved. If the resulting position of the line is not pleasing to you, you have the option of adjusting the position of the line, as described in the Line Handles section. If you move a symbol and its attached lines in such a way that the line would have to retrace its steps, that is, redraw over itself in order to adjust itself to its new position, the Workbench will redraw the line more suitably, possibly eliminating one or more segments. If you click on any point on a line excluding the line handles, the entire line will move when you drag the mouse.

Moving a block works similarly to moving an individual symbol. If Include Connections has been enabled, lines attached both to objects within the block and to objects outside the block will rubberband and remain connected.

If you are moving a line to connect it to a different symbol, you should move its endpoint to the border of the other symbol. If Auto Connect from the Options menu is selected, you can drag the endpoint of the line to anywhere within the other symbol and the Workbench will attach the line to the border of that symbol.

Notes

Please remember the following:

Any text associated with symbols or lines will be moved automatically if the symbol or line is moved. Also, once a label has been created for these objects, it can be moved independently of the object without affecting the label/object relationship.

Items not completely enclosed by a block will not be moved.

If you press the [image] key before you release the mouse button while dragging an object, the move is canceled and the object will snap back to its original position.

Moving a symbol by itself or as part of a block without enabling Include Connections may detach it from attached lines. Detaching a relationship from an entity will delete the text on the relationship, since a relationship has no meaning without two entities; the relationship line on the diagram will not be deleted. This means that the relationship entry in the repository will be deleted if there is no descriptive information and if it doesn't exist on another view. Setting Include Connections will not cause this detachment. However, if you move a relationship so it connects a different pair of entities, the name(s) will remain as long as there is no previously existing relationship with the same name(s) between the second pair of entities.

________

See Also

Selecting Diagram Objects

Select All


Line Handles

Whenever you add a line to a diagram or whenever you select a line, you will see small colored boxes at each end of the line and at the end of every segment of the line. These are handles. You can select a line by clicking on one of its end points or handles, even if the handle is not visible on the screen. You can point your mouse cursor at any one of these handles, hold down the left mouse button and drag the handle to a new position on the diagram. When you release the button, the segment(s) involved will redraw at the position you selected.

________

See Also

Selecting Diagram Objects


The Symbols

The symbols that you'll use to create all of your diagrams are stored in the Workbench Toolbox. Five sets of symbols are provided: one each for DFDs, FDDs, ERDs, structure charts and unstructured diagrams. By selecting various symbols, then adding lines and text as described in the sections which follow, you have the versatility to build many types of diagrams that will reflect your specific project analysis and design needs.

All Workbench tool sets are shipped either with

the three standard symbols each for the Yourdon and the Gane & Sarson data flow diagraming methodologies, as well as the symbols for functional decomposition diagraming and the standard Yourdon/Constantine symbols for structure charts, or

the set of symbols for ERDs, or

both.

In addition, some commonly used diagraming symbols are also included with the DFD and unstructured symbol sets, as shown in Data Flow Diagram Symbols. The methodology symbols for each diagram type are accessed from the Diagram menu, from the Control Bar or from the symbol groups in the Toolbox (see Figure 3-23 of the Workbench manual). Non-methodology symbols are available only from the Toolbox. The symbols available from each of these sources varies as the diagram type of the current diagram changes. In the Toolbox, the symbols are arranged in five groups of eight symbols, making available storage cells for up to forty different symbols for each diagram type.

Note

Rules are applied only to certain symbols for each diagram type.


Symbols Recognized by the Yourdon Methodology

When the Yourdon methodology is enabled for a project, rules will be applied only to the symbols available from the Diagram menu or those from the first three symbol cell locations of the Toolbox, as shown in Data Flow Diagram Symbols.

The Yourdon rules function also assigns a process number to any process symbol (occupying cell one of the Toolbox), when it is drawn. For more information on the numbering scheme that is applied by the Yourdon methodology, refer to Process Numbering.


Symbols Recognized by the Gane & Sarson Methodology

When the Gane & Sarson methodology is enabled for a project, rules will be applied only to the symbols available from the Diagram menu or those from cell locations four, five and six of the Toolbox, as shown in Data Flow Diagram Symbols.

The Gane & Sarson rules function also assigns a process number or data store number to any symbol occupying cells four or five, of the Toolbox, when they are drawn. For more information on the numbering scheme that is applied by the Gane & Sarson methodology, refer to Data Store Numbering.


Data Flow Diagram Symbols


Symbol Set for Structure Charts

There is a separate symbol set which contains the standard symbols for the Yourdon/Constantine method of structure chart diagraming, shown below. This symbol set is automatically loaded whenever the diagram type is set for structure charts, or whenever a structure chart diagram is accessed and the symbols function is selected. All of the symbols shown below are recognized by the Yourdon/Constantine rules as specific method symbols with associated identities and meanings.


Drawing Information Clusters

The information cluster symbol in the structure chart symbol set is a compound symbol. Each can have a variable number of modules within it, as well as a shared data only module. Place one on a diagram like any other symbol (see Drawing symbols); the decision as to how many modules it will contain is made in the labeling process and is described in Labeling an Information Cluster.


ERD Symbols

There is a separate symbol set which contains the standard symbols for data modeling, shown below. This symbol set is automatically loaded whenever the diagram type is entity relationship, or whenever an ERD is accessed and the Symbols function is selected. The symbols listed on the Symbols submenu, on the Control Bar or in the first three cell locations of the Toolbox are recognized by the data modeling rules as specific methodology symbols with associated identities and meanings.


Functional Decomposition Methodology Symbols

There are three symbols used under the Rules for functional decomposition diagrams, the function, process and off-page connector, as shown below.

________

See Also

Functions

Processes

Page Connectors


Functions

A business function is denoted by a rectangle. It is the first symbol in the Toolbox for this diagram type.

________

See Also

Functional Decomposition Methodology Symbols

Control Bar


Processes

A process is denoted by a rectangle with rounded corners. The conceptual dividing point between functions and processes is arbitrary and entirely up to you.

________

See Also

Functional Decomposition Methodology Symbols

Toolbox

Control Bar


Page Connectors

A functional decomposition is viewed by the Workbench as one unified diagram. You can, however, spread your FDD over multiple pages. The process for linking pages with Page is very similar to that for DFDs. Unlike DFDs, however, the Rules' Analyze function recognizes page connectors and can transparently apply the methodology across them. The page connector symbol is the third one in the Toolbox and is identical in appearance to the off-page connector for structure charts.

________

See Also

Functional Decomposition Methodology Symbols

Toolbox

Control Bar


Class Diagram Symbols

There is a separate symbol set which contains the standard symbols for object modeling, shown below. This symbol set is automatically loaded whenever the diagram type is class, or whenever a class diagram is accessed and the Symbols function is selected. The symbol listed on the Symbols submenu, on the Control Bar or in the first cell location of the Toolbox is recognized by the object modeling rules as a specific methodology symbol with associated identities and meanings.


State Transition Diagram Symbols

There is a separate symbol set which contains the standard symbols forstate transition diagrams, shown below. This symbol set is automatically loaded whenever the diagram type is state transition, or whenever a state transition diagram is accessed and the Symbols function is selected. The symbol listed on the Symbols submenu, on the Control Bar or in the first cell location of the Toolbox is recognized by the state modeling rules as a specific methodology symbol with associated identities and meanings.


 Symbol Set for Unstructured Diagrams

There are a number of useful symbols that can be used on unstructured diagrams, and, since there are no reserved or methodology symbols, you may eliminate or change any of them. They are similar to the non-methodology symbols in the DFD symbol set.


Auto Labeling Symbols

Within the Options menu of the Workbench, there is a selection for Auto Label Symbols. The auto label function can be enabled to instruct the Workbench to prompt you for a label for each symbol you draw onto a diagram.

With the Auto Label Symbols function enabled, you'll still have the option to disregard each prompt if you just want to draw each symbol and return to it later for labeling. The auto label function can be enabled or disabled at any time before, after, or during work on a diagram. (There is also an Auto Label Lines selection that prompts you when drawing lines.)


Adding Symbols to a Diagram

There are three ways to add symbols to a diagram:

Whenever a diagram is active, the Diagram menu (Figure 3-6 of the Workbench manual) is enabled and you can select Symbols to add to your diagram. The Workbench displays a cascading submenu displaying the names of the methodology symbols for the diagram type of the currently active diagram, from which you can pick one.

You can also click on symbols from the symbol cells of the Toolbox, if you have it displayed, as shown in Figure 3-23 of the Workbench manual.

You can click on the symbol cursor button from the Control Bar and buttons representing each of the available symbols will appear. The symbol last entered will be highlighted and ready to be used again, but you are free to choose another symbol (see Figure 3-22 of the Workbench manual).

When you select symbol entry by any of these methods, the mouse cursor will change to the symbol cursor (see Figure 3-14 of the Workbench manual). Move the symbol cursor to where you want the center of the symbol to appear and click; that symbol will be drawn on the diagram. If you have enabled Auto Label Symbols, a Label Object dialog box will appear into which you can type the name of the symbol. If it is a process or a Gane and Sarson data store, its number will also will appear, and you can change it if you desire. If you press the Search button on this dialog box, the names of all of the symbols of this type already in the repository will be listed. You can find the one you want and select it to be the name of the symbol you just added.

When you finish adding the symbol to the diagram, it will be highlighted in a different color, indicating that it is the selected item. There are numerous things you can do with selected items. This subject is explained in the section entitled Selecting Diagram Objects, above.

Note

To return to the standard mouse cursor, you can either click on the [image] button in the Control Bar, click on the selected button to deselect it, press the [image] key or toggle the Symbols selection line on the Diagram menu.

________

See Also

Moving Objects on a Diagram

Snap Symbols


Drawing Lines - Overview
Drawing Lines -- Overview

Lines can be added to your diagrams to indicate project and process input/outputs, depict data flow between processes, to represent couples and invocation lines between modules on structure charts, relationships between entities, etc. A wide variety of line terminators and line types are available for your selection. The line entry function is accessed by selecting Lines at the Diagram menu.


Line Types

You can draw lines thick or thin; solid, dashed, or channeled; straight, elbow or curved; with or without terminators; and select filled versus unfilled arrow terminators. You can draw your lines in point-to-point mode, where you use the mouse to position both the start and end points of the line, having the line drawn between the two points. Or you can draw straight lines in snap mode, where you point and select a starting point then an end point, having the straight line snap into position on the horizontal or vertical plane. Or you can draw lines containing only right angles in elbow mode, where you point and select a starting point then an end point, having only horizontal or vertical straight lines. Except for the right angles, elbow lines work like arcs. Additionally, lines can have multiple segments that will allow you to have start and end points distant from each other. The line terminators, such as the relationship cardinality terminators available for ERDs, are configurable at any time from the Line Settings selection from the Options menu.

________

See Also

Default Line Selections

Drawing Connectors


ERD Line Terminators

The Figure 3-15 of the Workbench manual explains the proper usage of relationship line terminators to show the cardinality of relationships between entities.


Auto Labeling Lines

Within the Options menu of the Workbench, there is a selection for Auto Label Lines. The auto label function can be enabled to instruct the Workbench to prompt you for a label for each line you draw onto a diagram.

With the Auto Label Lines function enabled, you'll still have the option to disregard each prompt if you just want to draw a line and return to it later for labeling. The auto label function can be enabled or disabled at any time before, after, or during work on a diagram. (There is also an Auto Label Symbols selection that prompts you when drawing symbols.)


Adding or Changing Lines

There are four ways to add lines to a diagram:

Whenever a diagram is displayed, the Diagram menu (Figure 3-6 of the Workbench manual) is enabled and you can select Lines to add a line to the diagram.

You can also click on the \ (line) button in the Toolbox, if you have it displayed, as shown in Figure 3-23 of the Workbench manual.

You can click on the line adding mode button from the Control Bar and buttons representing each of the most popular line styles will appear. The line style last entered will be highlighted and ready to be entered, but you are free to choose another style. Note that there are two line adding mode buttons. One is for couples and the other button is for all other lines. The latter is enabled only when the active diagram is a structure chart.

You can have the Workbench connect the symbols, using Connect from the Diagram menu, with the current line style and terminator(s). FDD Connection Lines provides a detailed description of how to draw branched elbow line connectors for FDDs. This same procedure will work for connecting pairs of symbols on other types of diagrams.

When you select line entry by any of these methods, the mouse cursor will change to the line cursor (see Figure 3-16 of the Workbench manual). Move the line cursor to where you want the beginning of the line to be. Click and drag the cursor to where you want the end of the line and double click. The line will be drawn on the diagram. If you are adding a line to connect two symbols, you should place its startpoint and endpoint on the border of the respective symbols. If Auto Connect from the Options menu is selected, you can start and end the line anywhere within the two symbols and the Workbench will attach the line to the borders of those symbols.

After adding a line to a diagram, you can snap the line either horizontally or vertically, enabling a line to be straightened automatically. To invoke this operation, select the line and drag it with the left mouse button invoking the rubber band effect. While holding down the left mouse button, hit the S key on your keyboard. This will force the line to straighten either horizontally or vertically depending which plane the end point of the line is closest to. If the end point of the line is located within the symbol, it will automatically straighten the line and attach it to the symbol.

The VAW will also allow an undo of the last move operation performed on a line. This feature is only available for line movement operations. You can access the undo feature by choosing undo, from the Edit Menu or use the shortcut , CTRL-Z.

If you want a multisegment line, simply click at the end of each segment and double click at the end of the line. If the line style you are using is an arc or an elbow line, you might find that the loop of the arc or the angle of the elbow for a given segment is on the opposite side from where you want it. This is easy to correct. While you have the left mouse button depressed and before you click for the end of the segment or double click for the end of the line, simply click the right mouse button and the arc or elbow segment will invert. To invert an elbow or arc in an existing line, point to the line handle at the end of the segment, click and drag a little bit. While the left mouse button is still depressed, click the right button and the segment will invert. You can change the number of segments in existing lines.

If you have enabled Auto Label Lines, a Label Object dialog box will appear into which you can type the name of the symbol. If you press the Search button on this dialog box, the names of all of the lines for this diagram type already in the repository will be listed. You can find the one you want and select it to be the name of the line you just added. If you press the Change Type button, you have the capability to change the line type, terminator type and line orientation of line you just drew. This brings up the same dialog box explained in the Default Line Selections section. When you finish adding the line to the diagram, it will be highlighted in a different color, indicating that it is the selected item. There are numerous things you can do with selected items. This subject is explained in the section entitled Selecting Diagram Objects, above.

Notes

To return to the standard mouse cursor, you can either click on the [image] button in the Control Bar, click on the selected button to deselect it, press the [image] key or toggle the Lines selection line on the Diagram menu.

When you are drawing a line and double click to signal that you want the line to end at that point, you might sometimes move the mouse a small amount. Because of the way Windows communicates with applications, it's possible that the Workbench will interpret your action as wanting to add another segment to the line you are drawing before terminating the line. To help prevent this from occuring, you can specify a minimum line length. If you find that this happens to you, increase the minimum line length setting. Thereafter, any motion of the mouse while double clicking that is less than the minimum line length will not cause a new line segment to be drawn.

To change this setting, you must edit the VAW.INI file in the directory containing the Workbench's executable files, usually \VA, with an ASCII text editor. (If you have a network version of the Workbench, the file name will have your network user number appended to it. For example, if your user number is 11, the file will be named VAW0011.INI. You can find out your user number by looking at the Help / About dialog box.) There is a line in this file that, by default, reads "Minimum Line=10". The units are internal Workbench length units. Changing this value to a higher number, say 20, should reduce the frequency of this situation from occuring.

________

See Also

Labeling Diagram Objects

Labeling a Relationship

Moving Objects on a Diagram


Changing the Number of Line Segments
Changing the Number of Line Segments.

You can add or remove segments on existing diagram lines.

To change the number of segments in an existing line:

Be sure you have established the standard mouse cursor for selecting diagram objects. You can either click on the [image] button in the Control Bar, click on the selected button to deselect it, press the [image] key or toggle the checked selection line on the Diagram menu's Symbols, Lines or Text selections.

 Select the line from which you want to remove a segment or to which you want to add one. The line handles of the line will be displayed, one each at the beginning and end of each segment.

To delete: Point the mouse at the handle at the handle at the beginning of the segment you wish to delete.

To insert: Point the mouse at the handle at the beginning of the segment before which you wish to insert a new segment.

Press the left mouse button and start to drag the handle, as if you want to move its position. Drag it just enough so that the line changes to the dashed line used to show a line being moved. Don't release the mouse button yet.

To delete: Press the [image] key and that segment will vanish, with a new segment being drawn from the mouse position to the end of the following segment.

To insert: Press the [image] key and a new segment will be inserted at that point, but you won't be able to see it because it has zero length. If you drag the mouse cursor, the new segment will show itself.

Release the mouse button when the new segment is positioned as you wish.

________

See Also

Adding or Changing Lines


Add a Couple to a Structure Chart Diagram

Adding a couple to a diagram is done a little differently. There are two ways to add couples:

First, set the default line type to be couple. Do this with the Line Settings function from the Options menu. Then select Lines from the Diagram menu. When you move the mouse cursor over the drawing area of the diagram, it will change into the couple cursor.

You can click on the couple adding mode button from the Control Bar and buttons representing each of the available couple styles will appear. The couple style last entered will be highlighted and ready to be entered, but you are free to choose another style.

Then select an invocation line. Now click on the end of the invocation from which you want the couple passed and the couple will be drawn.

If you have Auto Label Lines turned on in the Options menu, a Label Object dialog box will open and allow you to enter the text for the couple label. That text will be added in the font you have chosen in the Text Settings function from the Options menu. If you press the Search button in the dialog box, the repository search feature is activated and you can choose from the names of couples of this type currently in the repository. At that time, you will also be able to change the type of the couple.

If the Toolbox is activated and the default line type is set to be a couple, a quicker way to add couples is to press the \ (line) button. The process is otherwise identical.

After you finish adding a couple, it remains highlighted as the selected object and the couple's handles will be displayed.

Note

The cursor will remain a couple cursor until you leave the couple entry mode by either clicking on the [image] button in the Control Bar, click on the selected button to deselect it, pressing the [image] key or toggling the Diagram menu selection off. If you don't turn off the couple cursor in this manner, the Workbench will start a couple at every invocation line you select.

________

See Also

Adding or Changing Lines

Default Line Selections

Text Default Settings

Labeling Diagram Objects

Selecting Diagram Objects


Default Line Selections

If you use the same type of line and terminator often in your diagrams, you can save time by having those selections come up as defaults every time you draw a line. You can define defaults for line type (straight line, dashed line, arc, etc.), terminator type (solid arrowhead, open arrowhead, no terminator, etc.) and line orientation (point-to-point, snap, elbow ) for each diagram type by selecting Line Settings from the Options menu. The selections available for line and terminator types varies with the diagram type. The dialog box will display a copy of a line drawn with all of the selections you choose and the defaults will be saved until you change them. Note that not all combinations of these line style settings are valid. An error message will display when you pick an invalid combination. You do not have to use the default selections for all lines on a diagram. You can draw it in the default style and change it, as described above.

This dialog box is essentially the same as the one displayed when you want to change the style of an existing line. Here there is an additional selection box, the Unstructured Diagram Default Values box. You can choose the line and terminator values that will be accessible when the diagram type of the active diagram is Unstructured. They can be made the same as the lines available for any other diagram type. However, the unstructured line values set for a particular diagram will be those in effect at the time the diagram was created. Note that when you display this dialog box from an unstructured diagram, the Diagram Type box will not read Unstructured, but the default type you set in the Unstructured Diagram Default Values box.


Bidirectional Couples and Data Flows

Bidirectional couples and data flows can be added to your structure charts as any other couple is. Set the default line type to a data flow or couple with two terminators, or change the line to one of these after it is drawn.

________

See Also

Default Line Selections


Drawing Relationships

Relationships are drawn like any other line, but labeling them is a little different. This is explained in the section Labeling a Relationship.

________

See Also

Labeling Diagram Objects

Text Default Settings

Line Handles

Adding or Changing Lines

Auto Labeling Lines


FDD Connection Lines

The lines between functions, between processes and from functions to processes are called connectors. They allow you to specify the hierarchical relationships between the functional elements of your model. The higher-order symbol can be referred to as a parent and each of the lower-order symbols connected can be called a child of the parent.

The connectors between functions are purely diagrammatic in that they don't appear in the project's repository. You can change them at will with no ramifications on other parts of your model. The connectors between processes represent the same type of parent/child ; relationships as exist on data flow diagrams. Processes with the same parent would appear on the same DFD. Connectors between a function and one or more processes are significant at the time you Spawn that function: the child processes of a function will be placed on the top diagram of the process model branch spawned by the FDD, and so forth.

You can change any of these connectors at any time. However, if you change the hierarchical relationships between functions and processes, and DFDs including these processes exist, the two diagram types will then be out of sync. You should correct this.

________

See Also

Control Bar

Toolbox

Default Line Selections

Adding or Changing Lines

Drawing Connectors


Drawing Connectors

The lines available for FDDs are the same as for DFDs. You can use any line style and any terminator you want to make the connections necessary to show the function/process hierarchy in your model. However, since elbow lines are commonly used in this type of methodology, there are two special line drawing techniques for making branched elbow line connectors on FDDs. These procedures are as follows:

Block Method

To connect a function or process with subsidiary functions or processes, place the parent and child symbols in a block. (Selecting symbols with the Shift-click method is probably the most efficient way.) Then select Connect from the Diagram menu. Branched, elbow connectors will be drawn from the parent to the child symbols.

Individual Method

For a function being broken down into several lower-level functions or processes, draw a two-segment elbow line in the usual manner.

For the second (and subsequent) connector, indicate the start point by pointing at or very close to the beginning of the previous connector.

Indicate the start of the second segment by pointing to a point either along or on an extension of the second section of the previous line.

Point to the edge of the second symbol to indicate the endpoint of the connector.

The Workbench will superimpose the lines for as much of the length as possible, making nice, neat, branched, hierarchical connectors. The same type of technique can be extended for connectors with a greater number of segments. This drawing technique works for elbow lines on diagrams of all types, not just on FDDs.

Unlike data flows, FDD connector lines are not designed to be labeled. If it makes your diagram clearer to you, you can label them using the Text function from the Diagram menu. The labels will be for your own information only, and will be ignored by the Visible Rules and Repository.

________

See Also

Control Bar

Toolbox

Default Line Selections

Adding or Changing Lines

FDD Connection Lines


Entering Text - Overview
Entering Text -- Overview

The Workbench allows (and encourages) you to label the objects drawn on your diagrams. An object without a label does not exist, as far as the repository for the project is concerned. For example, you can label symbols and data flows, but not invocation lines. In addition, you can enter notes or captions in paragraph form. Finally, you can edit existing text. To allow easier use of the Workbench with non-English languages, the entire ANSI character set can be used for text in the Workbench, except for characters with a value of 221-222, which are used for special purposes by the Workbench.


Entering Text on a Diagram

You can select Text from the Diagram menu to access the text entry function. Adding or changing labels on screen objects is done somewhat differently from caption text and is discussed afterwards.

There are three ways to add free form caption text to a diagram:

Whenever a diagram is displayed the Diagram menu (Figure 3-6 of the Workbench manual) is enabled and you can select Text to add text to the diagram.

You can also click on the large T (text) button in the Toolbox, if you have it displayed, as shown in Figure 3-23 of the Workbench manual.

You can click on the large T (text) button from the Control Bar.

When you finish adding caption text to the diagram, it will be highlighted in a different color, indicating that it is the selected item. There are numerous things you can do with selected items. This subject is explained in the section entitled Selecting Diagram Objects, above.

Note

To return to the standard mouse cursor, you can either click on the [image] button in the Control Bar, click on the selected button to deselect it, press the [image] key or toggle the Text selection line on the Diagram menu.

________

See Also

Text Default Settings

Labeling Diagram Objects

Selecting Diagram Objects

Auto Labeling Lines


Labeling Diagram Objects

The procedure for labeling an object (symbol, line or caption text) on a diagram is simple:

Select the object with the mouse. If you just placed the object on the diagram, it will already be selected as the current object.

Select Change Item from the Diagram menu to get the dialog box used for entering labels.

Fill in the label field(s) in the dialog box.

Press OK when you are done and the object will be labeled and entered into the repository.

There are variations on this procedure. You can press the right mouse button on the object, thus selecting it and displaying the Object menu. Then select Change Item from there and continue on as above. You can press the right mouse button on an object already highlighted as the current object. This will also display the Object menu. The procedure varies slightly for certain specialized objects, as described in Labeling a Relationship and Labeling an Information Cluster. Note that for processes and Gane and Sarson data stores, data store numbers and process numbers become part of the labeling process. These will be assigned by the Workbench, but you can change process numbers when labeling the symbol or later. As described under Drawing Symbols and Drawing Lines, you can press the Search button in the dialog box and pick the names of existing objects from the repository.

Note

For projects created without Rules and Repository, the forty-character name length limit is waived and longer names can be used to label diagram objects.

________

See Also

Control Bar

Text Default Settings

Entering Text on a Diagram

Selecting Diagram Objects

Auto Labeling Lines

Auto Labeling Symbols

Auto Positioning Text

Repository Searches


Auto Positioning Text

The setting, Auto Position Text, under the Options menu will allow you to turn Auto Position Text either on or off. If you choose to have Auto Position Text on, after manually positioning a line label, moving the line will result in, automatic repositioning of the text based upon the text position algorithm built into the VAW. If you choose to have Auto Position Text off, after manually positioning a line label, moving the line will result in the text item moving relative to where it was placed. The only time the latter would not occur was if a line was radically moved on the diagram or the line was moved to a location where the text would not fit. In this case the text would be repositioned using the text position algorithm.

________

See Also

Auto Labeling Symbols

Auto Labeling Lines


Auto Label
Auto Labeling

The Options menu includes selections for Auto Labeling Symbols, Auto Labeling Lines and Auto Position Text. These automatic labeling functions can be enabled to instruct the Workbench to prompt you for a label as each object is drawn on a diagram.


Labeling a Relationship

Relationships must be independently labeled in each direction, unless you have specified that only one label will be used for a relationship when you created the project. If Auto Label Lines is enabled, after you draw the symbol you will see a dialog box in which you can enter the names of the relationships and their cardinality, the relationship type, and either denormalization information for ERDs or role/qualifier names for class diagrams.

If Auto Label Lines was not enabled when you added the relationship to the diagram, or you chose not to label it at that time, you can label it as described above by selecting Change Item from either the Diagram or Object menu and completing the dialog box. With this dialog box you can also change the cardinality of an existing relationship. As with other objects, you can press the Search button in the dialog box and pick the names of existing relationships from the repository. This can be done for each relationship to be labeled by putting the cursor in each relationship name box in turn and pressing the Search button.

The information that is maintained for a relationship is as follows:

From. The name of the parent entity or class.

Cardinality. How many instances of one entity or class relates to another. The Detail field can be used to store a specific quantity, for example 1, 3 or 5+.

To. The name of the child entity or class.

Type. The type of relationship. An identifying relationship indicates the child entity cannot exist without the parent; the child is drawn as an attributive entity. A supertype / subtype relationship indicates the creation of a specialized entity (subtype) which is based on a generalized entity (supertype) which share common attributes.  Only the unique attributes to the specialized entity need to be listed in the subtype object. An aggregation relationship indicates the parent class contains the child. An inheritance relationship indicates the definition of the To class is based on the From class. The base class contains the basic definition, while the derived class implements only those features that need to be different. A normal relationship indicates there are no special characteristics between the objects involved.

Denormalization. The denormalization option to be used during SQL generation. None indicates the tables should not be altered during SQL generation. Collapse Child indicates the child columns should be added to the parent table. (If a supertype /subtype relationship is used, a discriminator should be specified.) Duplicate Parent indicates the columns in the parent table should be added to the child table, and the parent table should not be generated, while Duplicate Parent and Retain indicates the parent should be generated.

Discriminator. The name of the discriminator used for supertype / subtype relationships.

Role. The role names used for the parent and child classes. For normal relationships, a role should exist as an attribute of the class at the other end of the association with the Reference type set to Address. For aggregation relationships, it should be set to Value. The Visibility in both cases should be Protected, and the type will be set to the opposite class.

Qualifier. The qualifier names used for the parent and child classes. If a qualifier is used, an attribute of type void is created in the class at the other end of the association with the Reference type set to Address and the Visibility set to Protected. You can change the type of the qualifier by modifying the attributes field in the repository.

Ordered. Ordering indicates the objects on the many side of a relationship have an explicit order. The term set is commonly used to describe an unordered association, while a list indicates an ordered association.

Note

Each relationship between two entities or classes is a unique object in the repository. The fact that two relationships between two different pairs of objects may have the same name does not change the fact that the individual relationships are distinct. When using the Search function to name relationships, you are only selecting a name, not a relationship repository object. If, when you are finished, a pair of entities on this view is connected by relationships with the same names as relationships joining the same entities on another view in the data model, then both sets of relationships will be considered two different instances (locations) of the same repository object.

________

See Also

Auto Labeling Lines

Labeling Diagram Objects

Text Default Settings

Adding or Changing Lines

Drawing Relationships

Repository Searches

SQL Schema Generation Information

SQL Schema Generation


Labeling an Information Cluster

As a compound symbol, an information cluster is labeled somewhat differently from other symbols. After you draw it onto a diagram, you must decide how many modules are to be contained in the cluster. If Auto Label Symbols is enabled, after you draw the symbol you will see a dialog box in which you can enter the name of the information cluster, the name of the data only module and the names of the contained modules. After you enter this text, the information cluster will be redrawn with the number of modules for which you provided labels. If Auto Label Symbols was not enabled when you added the information cluster to the diagram, or you chose not to label it at that time, you can label it as described above by selecting Change Item from either the Diagram or Object menu and completing the dialog box. As with other symbols, you can press the Search button in the dialog box and pick the names of existing modules from the repository. This can be done for each module or data-only module, or even the information cluster itself, to be labeled by putting the cursor in each relationship name box in turn and pressing the Search button.

With this dialog box you can also change the number of modules in the information cluster by changing the number of module labels, or reorder the modules by reordering the labels by cutting and pasting via the Windows Clipboard.

Note

For projects created without Rules and Repository, the forty-character name length limit is waived and longer names can be used to label diagram objects.

________

See Also

Labeling Diagram Objects

Text Default Settings

Drawing Information Clusters

Repository Searches


Editing Existing Text and Labels

The procedure for editing existing text is identical to that for entering it. The only difference is that you must decide whether the change is to be Individual, Local, or Global. If you choose Individual, the edit is applied to only the selected text. If the text is a label for a symbol that exists in more than one location and you change this particular instance of it, a new repository entry is created and it becomes a new repository item. If the new name is that of an existing object of that kind, it becomes a new location for that object. If you choose Local, the edit is applied to all occurrences of the selected text or label on the current diagram. If you choose Global the edit is applied to all occurrences of the selected text within the entire project.

________

See Also

Labeling Diagram Objects

Text Default Settings

The Change Item Function


Text Default Settings

When entering text, you can use any fonts that you have available under Windows. Selecting Text Settings from the Options menu will allow you to make settings for different kinds of text used in the Workbench: symbol labels, process numbers, report headings, etc. For each of these text types, you can set the typeface and point size, as well as other characteristics such as bold, italic, underline, whether it is to be centered, etc. See Figure 3-21 of the Workbench manual.

________

See Also

Labeling Diagram Objects


Editing a Diagram -- Overview

Editing functions deal more with the appearance of diagrams than their underlying meaning. Other Workbench functions that deal more with the semantics of diagrams or with tying diagrams to a project's repository are described in The Rules and The Repository, respectively. Editing functions can be performed while creating a diagram as described in Drawing Diagrams and Editing a Diagram -- Other Diagraming Functions. Editing can also be performed after the diagram is saved by initiating editing functions from the File, Edit, Options or Diagram menus and by making use of certain other Workbench functions. This Help section will explain some of the smaller functions not described elsewhere. Note that some of these functions appear not only on the Workbench menus mentioned, but in the Object menu for a selected object. The functions explained here are:

Options menu	Diagram menu
	The Change Item Function Snap Symbols
Control Bar	The Stylize Function
Toolbox
	Edit menu
File menu	Undo
The Project History Function	Cut, Copy and Paste
The Erase Changes Function	Clear Select All Delete
	Copy To Find
________

See Also

The Diagraming Process


Snap Symbols

Snap Symbols, on the Diagram menu, eases the entry of symbols along a grid. If you select into a block the symbols you want to line up in one horizontal or vertical row and select Snap Symbols, the symbols in the block will snap into exact horizontal or vertical alignment, whichever applies.

________

See Also

Adding Symbols to a Diagram


Control Bar
The Control Bar

The Control Bar selection on the Options menu toggles on and off a row of buttons above the diagram workspace that gives you quick access to certain Workbench functions. For example, to add a symbol to a diagram, if you don't have the Toolbox activated, you would have to choose Symbols from the Diagram menu and then pick the symbol you want to add from the submenu that would then display. With the Control Bar, you simply press the button representing the symbol entry function and then press the button for the symbol you want to add, if it is not already highlighted. When you do this, buttons representing the symbol types available for the current diagram type will appear. Adding lines and couples works similarly.

You can also execute the following with Control Bar buttons:

Select project to open,

Create a new diagram,

Open an existing diagram,

Save the current diagram,

Print diagram(s),

Find an Object on  the Current Diagram

________

See Also

Drawing symbols

Drawing lines

Add a Couple to a Structure Chart Diagram

Entering text

The Diagram Window

A Look at the Diagram Workspace


Toolbox

With Toolbox, on the Options menu, you can choose to have the Workbench Toolbox display on your screen. In the Toolbox, you will find the symbols available for the diagram type for the diagram on which you are working. You can select them from the Toolbox to add to your diagram. In the same manner you can pick the large T button to add caption text to the diagram or the \ (line) button to add a line. When you choose symbols or lines, buttons representing the symbol and line types available for the current diagram type will appear on the Control Bar, if it is enabled.

Whenever you chose symbol, line or text, either from the Toolbox, the Control Bar or from a menu, the cursor will change, indicating that you are in symbol, line, couple or text addition mode. Wherever you click on your diagram, an object will be added. To leave the object entry mode, you can either click on the [image] button in the Control Bar, click on the selected button to deselect it, press the [image] key or toggle the selection line on the Diagram menu.

________

See Also

Drawing symbols

Drawing lines

Entering text


The Edit Menu Functions

The Undo, Cut, Copy, Paste, ClearSelect All DeleteCopy ToFind functions from the Edit menu are the standard Windows editing functions and do pretty much what you expect them to do, in the Workbench diagram editing context.


Undo

Undo will delete a partially completed line from a diagram or undo the last move operation performed on a line. Once you have double clicked to complete a line in-progress, Undo will no longer work; you should then use Delete. You can not Undo a line move once the line has been de-selected or a save is performed.The short cut key for an Undo is Ctrl-Z

_______

See Also

Cut, Copy and Paste

Cut, Copy

Paste


Cut, Copy and Paste

These three functions all interact with the Windows Clipboard. The formats used to move data to and from the Clipboard are text (used when only text is copied to the Clipboard), Windows bitmap, Windows metafile and a proprietary Workbench format. Once data is on the Clipboard, it can be used by any software application that recognizes that particular format.

________

See Also

Undo

Cut, Copy

Paste

Delete

Using Constructs


Cut, Copy

Cut and Copy are identical in function except that when Cut is executed, whatever is placed on the Clipboard is also removed from the diagram. Any object highlighted as the current object or any block selected on a diagram can be cut/copied to the Clipboard. If a symbol is selected and Include Connections is enabled, both the symbol and any connected lines (including labels for all of these) will go to the Clipboard. Selecting a line with Include Connections enabled will not put attached symbols on the Clipboard. The formats in which items are moved to the Clipboard is as follows:

Anything sent to the Clipboard (symbols, lines, either of those with attached labels, caption text in a block with other diagram objects), will reside there as a Windows bitmap, a Windows metafile and in the Workbench proprietary format.

As is usual with Windows applications, text from edit boxes can be cut and copied to the Clipboard by highlighting it with the mouse cursor and pressing the shortcut key for Cut or Copy.

________

See Also

Undo

Cut, Copy and Paste

Paste

Delete

Selecting Diagram Objects

Moving Objects on a Diagram


Paste

Paste will move data from the Clipboard into the Workbench. The only things that can currently be pasted onto a diagram are Clipboard data in either text format or Workbench proprietary format. When you select Paste from the Edit menu or press the shortcut keys, the Clipboard data will be displayed on your diagram as a selected block at the cursor position. You can then move the block anywhere on the diagram and fix its new position by clicking the left mouse button anywhere on the diagram outside of the block.

When you paste Clipboard information other than simple text onto a diagram, the Workbench will recognize what it is and add it to the diagram correctly: symbols will be added as symbols, lines as lines, etc. If you try to paste onto a diagram an object such as a process which must be unique in a project, the Workbench will not paste it with its label if it is found to violate the uniqueness rule. It will be pasted without its label.

As is usual with Windows applications, text from the Clipboard can be pasted into edit boxes by pressing the shortcut key for Paste.

________

See Also

Undo

Cut, Copy and Paste

Cut, Copy

Delete

Selecting Diagram Objects

Moving Objects on a Diagram


Clear

Selecting Clear deselects the current object or block on the current diagram. It performs the same function as clicking on a blank area of the diagram with the mouse. As is usual with Windows applications, you can also use the shortcut key which is shown on that menu item.

________

See Also

Selecting Diagram Objects


Select All

You can select all diagram objects on a given diagram in a single command under the Edit menu by choosing the Select All command. You must have a diagram open to choose this option. If Select All is invoked, all items on the diagram will be selected and contained in a single block allowing any block operation to be performed.

_______

See Also

Selecting Diagram Objects


Delete

Delete is identical to Cut, except that nothing is moved to the Clipboard. Since it is not reversible like Cut, the Delete function will ask you for a confirmation before deleting from a diagram.

Note

If Include Connections is enabled deleting or cutting a symbol will also remove its attached lines from the diagram. For example, if the symbol is an entity, the Workbench will delete any attached relationship. This means that the relationship entry in the repository will be deleted if there is no descriptive information and if it doesn't exist on another view.

 Deleting a line with Include Connections enabled will not delete attached symbols.

________

See Also

Undo

Cut, Copy and Paste

Cut, Copy

Paste


Copy To

You can copy a portion or an entire diagram to a Windows Metafile (wmf) document. The file can then be used with any Windows program. To use this feature, mark the objects or diagram you would like to copy using a block select or the select all feature. From the Edit menu choose Copy To. A Windows common dialog box will appear asking you where you would like to place the file.


Find

Find will allow you to locate an object on the current diagram. You can search for an object by typing the name of the object in the Find What: box. You can search for the whole string by checking the Match Whole Object Only choice or leave this option off and search for partial strings. This feature can also be accessed via the Control Bar or by pressing the Ctrl+ F key.

Note

If you have an object highlighted and then choose the Find button, the selected object appears in the Find box. The search will start from the currently selected object and proceed from left to right and top to bottom, the same way a search is performed in a word processor. If there is no object currently selected, then the search begins in the upper left hand corner of the diagram.


The Change Item Function

As is mentioned elsewhere, Change Item on the Diagram menu allows you to change existing caption text, symbol and line labels, relationship cardinality, information cluster module number and order, and, for lines, the type of the line itself, as well as its terminators and orientation (point-to-point, snap, elbow).

You can also press the Search button to search the repository for the item you wish to enter into the label field.

Generally, when you label an object on a Workbench diagram, the tool will decide, based on diagram space available, whether the label will fit all on one line or whether it will be broken over multiple lines. However, you can force a label to spread over more than one line. Wherever you want a line break in an object's label, either press [image] [image] or enter a "»" character by typing [image] -0187 (hold down the [image] key and type 0187 on the numeric keypad). When the label is drawn on the diagram, the label will break where you specified.

The Change Type Button

Also in this dialog box is the Change Type button. With it you can change a selected symbol already placed on a diagram to another symbol in the symbol set in use for the diagram type currently selected. The symbols to which you can change the selected one will be listed in the Change Type dialog box. Line connections, symbol label and symbol stylizing will remain as on the original symbol. (If the new symbol is very differently shaped from the old, lines may appear disconnected from the new symbol and certain stylizations may change.) You can also change a selected line into one of another style or change its terminators or orientation. There are some restrictions on what symbols and lines can be changed. If a change is not possible, the individual selections or perhaps the button itself will be grayed.

Note

Change Type functions for most methodology symbols, but not for those on data flow diagrams, because DFD symbols used don't have reasonable alternative symbols to which to change them. Change Type also works for non-methodology symbols on structure chart, boilerplate and unstructured diagrams.

________

See Also

Labeling Diagram Objects

Labeling a Relationship

Selecting Diagram Objects

Editing Existing Text and Labels

Moving Objects on a Diagram

Repository Searches


The Stylize Function

The Diagram menu Stylize function allows you to enhance the appearance of symbols or change the size of any symbol in a diagram. After selecting a symbol and choosing Stylize from the Diagram or Object menu, a dialog box will display containing a symbol of the type selected. You can choose from Horizontal and Vertical Size, Boldness, Relief Amount and Overlay. Size makes the symbol smaller or larger in the horizontal or vertical plane, or both. If you select Bold you can darken the symbol. Relief adds a shadow effect to the symbol. Overlay creates a stacked symbol. The use of the Stylize function changes the appearance of symbols and can be useful for special effects and presentation graphic purposes; it does not effect the identity or recognition of methodology symbols.

For Size, Boldness and Relief Amount, use the scroll bars to select the degree of change you want to make in the symbol. At any time you can press the Apply button to see the effect of the changes you have made. For Overlays, you need to set the Count, i.e., the number of overlays, and use the scroll bars of the box to specify the relative position of the overlay to the original symbol. This relative offset will be used to position each successive overlay. Again, press Apply to see the total effect of all of the stylizing you have done.

At any time you can press Reset to undo the stylizing you have done to the symbol. Once you press OK, the stylizing will be applied to the symbol on the drawing. If the symbol originally selected was already stylized, Stylize will modify it or, by pressing Reset, return it to its original state.

Note

If you change the size of the symbol and or add enough overlays, the symbol will become too big to fit in the stylize box. In such cases, the symbol as displayed will be scaled to fit the box. However, when you press OK the stylizing will be applied to the selected symbol on the diagram full scale; the scaling done in the dialog box will have no effect.

________

See Also

Sizing Objects on a Diagram

Moving Objects on a Diagram


The Project History Function

Project History, from the File menu, allows you to display a summary description of the project as a whole. In addition to all of the settings you made when you created it, you can view the diagram trees for each diagram type and see when each diagram was last edited. If you have the LAN version of the Workbench, you can see who created the project, as listed in the "Project Manager' edit box, change a project owner and determine who and what diagrams have been edited the project..


The Erase Changes Function

Erase Changes, from the File menu, instructs the Workbench to ignore all editing changes that have been made to the diagram since the last time it was saved. The diagram will redraw as it was last saved and any changes you made will be permanently lost.


Using Constructs

The Workbench provides the capability to store entire diagrams or sections of diagrams as constructs. They may be thought of as library files for saving whole or partial diagrams which you may wish to reuse throughout a project or in different projects. Constructs are stored as system files, and may be recalled for use in new diagrams as well as in other portions of an existing diagram. Constructs can be composed of anything that appears on a diagram (symbols, lines, text) and provide reusable pieces or shells of diagrams that can be used at will. There is no limit to the number of constructs that can be stored in the construct library, and you may load a construct into any diagram.

Working with constructs is very similar to using Copy and Paste, from the Edit menu, on selected blocks on a diagram. The difference is that you can save them permanently, whereas Copy and Paste deal only with the Windows Clipboard.

________

See Also

Selecting Diagram Objects

Creating a Construct

Loading a Construct

Deleting a Construct


Creating a Construct

To create a construct,

Open a Diagram:

1.	Access the particular diagram from which you wish to create the construct.

Enclose the Desired Objects in a Block:

2.	Select a block enclosing the items you want to include in the construct, as described in Selecting Diagram Objects.

3.	Select Construct at the Diagram menu. The Create a Construct dialog box will display.

Name and Describe the Construct:

4.	Enter an eight-character file name for the construct and a description of it to help you remember what the construct is in the future.

Save the Construct:

5.	Press OK to save the construct. Your construct will be saved in a file and can be recalled by selecting Construct, as described in Loading a Construct and Deleting a Construct.

________

See Also

Using Constructs


Loading a Construct

To load a construct onto a diagram,

Open a Diagram:

1.	Access the particular diagram to which you wish to add the construct. Note that if you have only one diagram open and it is minimized to an icon, you can load a construct to it, but you will not be able to complete the process until the diagram has been at least enlarged to a window.

2.	Select Construct at the Diagram menu. The Load a Construct dialog box will display. The names of the constructs currently stored in your construct library will be displayed, along with a description for each.

Select a Construct:

3.	Select one of the constructs from the display and press the Load button. It will appear on your diagram as a block enclosed in a rectangle, with the items within it shown as selected.

Load and Position the Construct:

4.	Position the construct on the diagram as you would a block, by clicking the left mouse button and dragging the block to where you want it. Clicking outside of the block will finalize the position of the construct on your diagram.

Note

If rules are enabled for the project and an object label in the construct conflicts with an object label already in the project, then that label will not be copied to the diagram as part of the construct. Also, other than DFD's, if a construct is created from a methodology project and imported into a project using another methodology, the construct diagram will appear but the objects will not be recognized as methodology objects and will be transparent to the Analyze function. You can copy DFD's defined using Yourdon/Demarco methodology into Gane & Sarson project methodologies and vice versa. Further, nothing within a construct is linked to the repository until it has been added to a diagram and saved. To move an entire diagram between projects along with all associated repository entries, see the section describing the Copy Portion function.

________

See Also

Selecting Diagram Objects

Using Constructs

Creating a Construct

Deleting a Construct


Deleting a Construct

To delete a construct,

Open a Diagram:

1.	Access a diagram. The Diagram menu is not activated until a diagram is open.

2.	Select Construct at the Diagram menu. The Load a Construct dialog box will display. The names of the constructs currently stored in your construct library will be displayed, along with a description for each.

Select a Construct:

3.	Select one of the constructs from the list.

Delete the Construct:

4.	Press the Delete button. You will be asked for a confirmation before the construct is deleted from your library.

________

See Also

Selecting Diagram Objects

Using Constructs

Creating a Construct

Loading a Construct


Nested Decomposition
Nested Decomposition -- Overview

The Nest function, on the File menu, allows you to explode, or decompose a symbol, usually a process or class, and create a lower level diagram which represents the detailed functional aspects of the symbol being exploded. The newly created lower level diagram becomes "nested" to the higher level symbol and the diagram containing it; i.e. the lower level diagram becomes a child of the parent diagram in the project tree. (Note that only one child diagram can be nested from any object.) Nest also allows you to create process decomposition diagrams. If the Rules are enabled, Nest functions only for processes on data flow diagrams and classes on class diagrams; it does not apply to structure chart, entity relationship, or unstructured diagrams. If the Rules are disabled for a project, Nest can be used to decompose any symbol. For functional decomposition diagrams, it is replaced on the File menu with Spawn. The Spawn function is described in Using Spawn with FDDs.

________

See Also

Nesting Considerations When Using Rules

The Nest Functions


Nesting Considerations When Using Rules

Dataflow Diagrams

Whenever rules are enabled, new data flow diagrams below the top level will normally be created using the Nest function. The following considerations also apply to nested diagrams when rules are enabled:

Only process symbols may be exploded into a lower level child diagram when using rules. (Refer to Drawing Symbols for additional information.)

Process numbers are automatically added to processes when using rules. Refer to Process Numbering for additional information on the process numbering scheme.

All data flows attached to the process being exploded will be duplicated and displayed on the lower level nested diagram when using rules. That is, all net input and net output data flows are automatically dragged down to the lower level for level-to-level balancing purposes.

Class Diagrams

When a class is exploded to a State Transition diagram, the following considerations apply to nested diagrams when rules are enabled:

Only class symbols may be exploded into a state transition diagram when using rules. (Refer to Drawing Symbols for additional information.)

A class can only be connected to one state transition diagram.

________

See Also

The Nest Functions


The Nest Functions

The Nest function has four subsidiary functions in its submenu: Explode, Parent, Detach and Decompose.

________

See Also

Nesting Considerations When Using Rules


Explode

What Explode does depends upon whether the currently selected process or class has an existing nest relationship to a child diagram. If it does not, you can create a nested decomposition to a child diagram. If the current object does have an existing nest relationship to a child diagram, you immediately open that diagram, or activate it if it is already open.

The procedure for exploding a symbol with no existing child and creating a lower level nested child diagram is as follows:

Select a Symbol:

1.	Click on a process symbol to select it. You can also click with the right button to activate the Object menu.

Select Nest/Explode:

2.	Select Nest at the File menu and Explode from the submenu, or pick Explode from the Object menu. The Nest dialog box will appear.

Select New or Existing Diagram:

3.	You can press either of the buttons in the box:

Create New. A new diagram will be created and become the active diagram. When rules are enabled for dataflow diagrams, all net input and output data flows will be dragged down to the new diagram.

Select Existing. This will allow you to nest to an already existing diagram. The dialog box will expand, showing all diagrams in the branch of the project treefile directly below the current diagram and not already nested. You must select one of these existing diagrams to be the nested child. The selected child diagram will be activated, all net input and output data flows will be dragged down to the diagram and the nest relationship created.

You must Save the child diagram to permanently establish the nest relationship.

________

See Also

Parent

Detach

Decompose

Nesting Considerations When Using Rules


Parent

If the currently selected diagram has an existing nest relationship to a parent process or class, selecting Parent will open the parent diagram, or activate it if it is already open.

________

See Also

Explode

Detach

Decompose

Nesting Considerations When Using Rules


Detach

If the active diagram has an existing nest relationship to a parent process or class, selecting Detach will break or un-nest the relationship. The two diagrams will retain their relative positions in the project tree, but the parent child relationship will no longer exist. This will allow the former parent object to be nested to a different child diagram and vice versa.

________

See Also

Explode

Parent

Decompose

Nesting Considerations When Using Rules


Decompose

Decompose will generate a process decomposition diagram.

________

See Also

Explode

Parent

Detach

Nesting Considerations When Using Rules


Generation of Process Decomposition Diagrams

Process decomposition diagrams can be created automatically from a set of data flow diagrams. By selecting a process and choosing Decompose from the Nest submenu or from the process's Object menu, a process decomposition diagram will be generated that shows all subordinate processes at their appropriate levels. If you select a process without children, the Decompose menu selection will be unavailable. The procedure for generating a process decomposition diagram for a project branch, which may cover the whole project if the highest-level process is used, is automatic once the above action is taken. The Workbench will draw an editable unstructured process decomposition diagram and that new diagram will be the active one. Note that the Rules must be enabled for the project in order to generate decomposition diagrams.

For a large project or branch it is possible that the process decomposition diagram will be too large to edit. If this happens, you will be notified and given the opportunity to send the diagram to the print queue. The Workbench will propose a name to identify the diagram in the print queue and you will be able to change it if you wish. To print it, select Print from the File menu.

Note

A process decomposition diagram is very different from a functional decomposition diagram. The former is simply an unstructured diagram laying out the hierarchy of processes which are descendants of a selected process. The latter is a full diagraming methodology for doing business planning.

________

See Also

Nesting Considerations When Using Rules

The Nest Functions

Explode

Parent

Detach


Using Spawn with FDDs Spawn
Using Spawn with FDDs

The purpose of the Spawn function, from the File menu, for FDDs is to create a process model extension of your broad functional decomposition and allow you to carry out a detailed analysis. With Spawn, you indicate a lower level function, one which you have decomposed on the diagram into processes, and Spawn it. The Workbench will create DFDs containing these processes, to which you can add all of the other elements normally contained on DFDs. While it is not impossible to continue to make changes to a function branch on an FDD after spawning DFDs from it, it would be better to do the Spawn operation after the FDD is well thought out and complete. The concept of the Spawn operation is illustrated in Figure 3-26 of the Workbench manual.

The first time you Spawn a function on an FDD, you will be given the option to create a top level diagram beneath which you can hang all branches of your DFD tree. This new top level diagram would symbolize all of the functions on your FDD. If you are using Yourdon rules, you will also have the option to make this top level diagram a context diagram. Unless you have processes hierarchically immediately beneath your highest-level function, you should accept this top level diagram option. Otherwise, you will have to manually insert a diagram as a parent for your spawned DFDs. If data flow diagrams already exist at the time of the first Spawn, the Workbench will attempt to incorporate them into the Spawn operation.

________

See Also

The Spawn Functions


The Spawn Functions

The Spawn procedure has four subsidiary functions: New DFD Set, Load DFD, Verify and Un-Link.


New DFD Set

What New DFD Set does depends upon whether the currently selected function has been decomposed on the diagram to a set of processes and whether DFDs have already been spawned from the function. If it has not been decomposed, Spawn will advise you to decompose before you can proceed. If you have created a decomposition, you can execute this function to create the set of DFDs composing this function. If the current function does have an existing set of DFDs, you can execute the other Spawn subfunctions Load DFD, Verify and Un-Link.

The procedure for spawning a function with a decomposition and no existing set of DFDs is as follows:

Select a Function:

1.	 Click on a function to select it. You can also click with the right button to activate the Object menu.

Select the Spawn Functions:

2.	Select Spawn at the File menu and New DFD Set from the submenu, or pick New DFD Set from the Object menu. The Spawn dialog box will appear.

Position the Diagrams in the Tree:

3.	From the tree display in the box, choose the diagram you want to be the parent to the new set of diagrams. When you press the Update DFDs button, the new diagrams will become part of your project. Parent/child nest relationships will be established among the diagrams of the new DFD set, as defined in the FDD. However, the top diagram of the newly added branch will not be nested to the diagram you selected as the parent in the dialog box. You will have to Nest before this relationship is established.

________

See Also

Load DFD

Verify

Un-Link


Load DFD

If the current function does have an existing set of DFDs and you want to edit existing spawned DFDs (to add data flows, for instance), first select a function that has spawned DFDs. Then open the Spawn menu and choose Load DFD. The top diagram of the spawned branch of DFDs will be opened. You can open lower level diagrams by selecting a process and exploding it.

________

See Also

New DFD Set

Verify

Un-Link


Verify

If the current function has an existing set of DFDs, you can update and resynchronize the two sets of diagrams (the FDD and DFDs). You might want to do this if you have made changes to your FDD and want to update the spawned DFDs to reflect these changes. Bring up the Spawn menu and choose Verify. The Workbench will compare the diagrams to find inconsistencies. If changes are needed, a dialog box will describe them and ask you if you want to proceed. If you choose to continue, the Workbench will make the necessary changes to the DFDs and save them. It will then activate the top DFD of the branch for you to edit.

________

See Also

New DFD Set

Load DFD

Un-Link


Un-Link

If the current function has an existing set of DFDs, you can break the linkage between them with the Spawn function Un-Link. You might want to do this if you want to make serious hierarchical relationship changes to your FDD or to change or delete the function from which the DFDs were spawned. These operations are not allowed on functions linked to DFDs. You can reSpawn later, if you choose.) Note that this operation will not alter your DFDs in any way.

________

See Also

New DFD Set

Load DFD

Verify


The View Functions

A view is an entity relationship diagram containing a selection of entity types and the relationships between them. Since certain data objects may interact in different ways at different times, you have the option to look at these distinct interactions in different combinations on different views. A view is usually a subset of a larger data model and, in any given view, you are not obligated to use all of the relationships that exist in your data model for any pair of entities; you may select all of them or any subset of them, and you may create new relationships on the current view. Any new relationship you add between a pair of entities in a view will be added to the repository of the data model and will become available to be added to any other view.

Implicit in any data model is a global view, that is, a view containing all of the information in the repository. In many data models, the size of a global view may be too large to edit as a diagram (and probably too large to be visually useful, as well). That does not preclude, however, your ability to look at the whole thing, should you desire. The Workbench will draw your global view for you and enter it into the print queue.

There are two ways you can create a data model view. One is to open a new diagram and manually draw on it the entities and relationships that you want for that view. This is how you must begin the first view in a project, because it is the only way to add relationships. (Entities can be directly entered into the repository.) The second way is to let the Workbench help you by using the View of Data Model group of functions: Global, New and Process, and also Modify View, which appears on the Diagram menu. After your data model is well along, you can use the functions for creating cluster views. These are described in Overview of Clusters and Cluster Diagrams. After the new view has been created, you may edit it as you wish.

Using the View of Data Model functions plus Modify View will allow you to specify existing entities and relationships from the repository and assure yourself that the new view is consistent with what is already in the repository. The functions will then automatically draw your new view after you have completed specifying the contents for the view (see the other view functions listed below).

When using the View of Data Model feature, remember the following:

A view is like any other diagram in that it must obey the same rules. View diagram names must be unique within the data model for the current project.

An entity may appear on any number of views at one time, but only once per view.

The view functions work only for entity relationship diagrams.

________

See Also

Create a New View

Create a Process View

Create or Print a Global View

Modify the Current View

Printing Your Work


Create a New View

To create a new view, select View of Data Model from the File menu and then New from the submenu. The repository is scanned and a window will open displaying all existing entities and relationships. As you move through the list and select items to go in your view by clicking on their names, they will be highlighted. When you select a relationship, that relationship, the reverse relationship and both entities to which they are attached will also be selected. If you change your mind about an item, you may click on it to deselect it and the highlight will disappear.

After finishing your selection of items to appear on the new view, press OK to confirm your choices and have the Workbench automatically draw the diagram or press Cancel to start over.

Note

You can control the scale of a new view drawn by the Workbench. The size of the entity symbols will be based upon the size of the font you choose to use for symbols. The smaller the font, the smaller the entity symbols. (Symbols will only get so large, so huge text will not get you a huge symbol.) The length of the relationship lines and the spacing of the symbols will be based upon the size of the font used for relationship lines. The larger the font, the longer the relationship lines and the more widely spaced the entity symbols. To make these adjustments, use the Text Settings selection from the Options menu to set the defaults for these fonts before beginning the creation of the new view.

________

See Also

Create a Process View

Create or Print a Global View

Modify the Current View

Text Default Settings


Create a Process View

A process view is an entity relationship diagram which represents a subset of your data model and is based upon a process existing on a data flow diagram in the same project. Data elements that enter or leave the selected process in data flows and that are also contained in the composition of entities will cause those entities to appear in the process view, along with relationships existing between pairs of entities. (Undesired relationships may either be eliminated manually or by editing the view and modifying it, as described in Modify the Current View.) When you select Process, the Workbench will prompt you to select the name of the process on which to base the view from a list in a dialog box.

After naming the process, you will have an opportunity to confirm your choice. When you do, the components of the new view will be automatically selected from the repository and the diagram drawn and named for the process used. The Workbench will then transfer control to you to edit and/or save it.

________

See Also

Create a New View

Create or Print a Global View


Create or Print a Global View

When you select Global from the View of Data Model menu, the repository is scanned, the global view, that is, the view of the entire data model that exists in the repository diagram, is prepared. Global views can be too large to edit on the screen. However, the Workbench is capable of automatically drawing a global view and printing it. After the view is prepared, the Workbench will let you know if it is too large to edit and will give you the option to print it. If you decide to do this, it will be entered into the print queue and can be printed from the File menu.

________

See Also

Create a New View

Create a Process View

Modify the Current View


Modify the Current View

Entities and relationships may be added to or deleted from a view diagram. The procedure is identical to creating a new view, except that all entities and relationships already in the current view will be displayed as selected. (Selecting Modify View on a blank, newly created diagram is equivalent to choosing New from the View of Data Model submenu. Since the view is empty, nothing will be displayed as already selected.) The diagram will be redrawn from scratch using the new list of entities and relationships.

Note

If you have set colors for individual objects, they will be reset when the diagram is redrawn.

________

See Also

Create a New View

Create a Process View

Create or Print a Global View


Linking Diagrams - Overview
Linking Diagrams -- Overview

The Visible Analyst Workbench provides links between multiple page diagrams with the File menu Page function. You can create a diagram and then use the Page function to link it to additional diagrams. You can then move between the linked pages on your workspace by selecting the Page function and the Connect subfunction. You can also break the link between two pages by selecting the Disconnect subfunction.

When using the Page feature, remember the following:

You must use a symbol as the page link between one diagram and another.

A symbol can be linked to only one other page. For additional page links, use additional symbols.

You can only page link a diagram to an existing diagram that is stored at the same level in the project tree, or to a new diagram.

You cannot page link the top level data flow diagram of any project.

The page linking situation is somewhat different for data flow or unstructured diagrams and structure charts; see the Help sections listed below for explanations. Page doesn't apply to entity relationship diagrams.

Note

The Page function is contrasted with the Nest function in that Page links diagrams on the same level in the tree, whereas Nest links diagrams on different levels of the tree hierarchy.

________

See Also

Page Link Considerations When Using Rules

The Page Link Procedure for Data Flow Diagrams

Page Linking for FDDs

Page Linking for Structure Chart Diagrams


Page Link Considerations When Using Rules

It is strongly recommended that the Page function not be used on data flow diagrams in a project that has the Rules enabled. This is because the Rules treat a multiple page diagram as separate diagrams. Rules capabilities including analysis cannot be applied across linked data flow diagram pages. They can, however, be applied across multiple page structure chart diagrams.

________

See Also

Page Linking Overview


Selecting Page Link Symbols for Data Flow Diagrams

Any symbol in a data flow diagram can be used as the page link symbol, unless it is already used for a nesting link. The symbols shipped with the Workbench include the recommended page link symbol for data flow diagrams, shown in Figure 3-28 of the Workbench manual, which is the standard flow charting page symbol. However, you can select any other symbol that is already drawn into the diagram and link it to one other page or add your symbol at the time you wish to make the link. Although almost any symbol may be used, it is recommended that you select a particular symbol and dedicate it to always represent your page links. The dedicated symbol can be any standard symbol that allows you easily to recognize the link to another page. That symbol can be used repeatedly with incrementing page numbers in any diagram to represent links to additional pages. Although the illustration shows each page link symbol with a number label, you may use any label you desire.

________

See Also

The Page Link Procedure for Data Flow Diagrams

Page Link Considerations When Using Rules

Off-Page Connector


The Page Link Procedure for Data Flow Diagrams

The procedure for linking multiple pages within a diagram is as follows. (Note that this example applies to a data flow diagram. The procedure for structure chart diagrams is the same except that the Off-Page Connector symbol must be used):

Draw a Page Link Symbol:

1.	Draw and label a page link symbol on the currently active diagram. (You can also use an existing symbol already in the diagram as the page link symbol.)

Select the Page Link Symbol:

2.	Click on the page link symbol to make it the selected symbol, if it's not already selected.

Start the Page Function:

3.	Select the Page function from the File menu and the Connect subfunction. If the symbol you selected is already linked to another page, that diagram will be activated. If not, the Page dialog box function will display.

Choose the Page to Connect:

4.	Press either the Select Existing Diagram or the Create New Diagram button.

Select Existing Diagram will present you with a list of diagrams eligible to be page-connected to the current one (all diagrams in the project tree that are at the same level as the diagram from which you want to page). Select one.

Note

For a structure chart, if there is an existing diagram with a page connector symbol with the same label as the one which you are currently trying to link, it will be moved to the top of the list and marked with an asterisk, so you won't have to look for it in the diagram list.

Create New Diagram will create a new, blank diagram.

The Workbench will draw a page connector symbol and label on the linked diagram that is identical to the one you used on the connected diagram.

Save the Page Link:

5.	Select Save from the File menu to make the page link permanent. The diagrams at both ends of the link will be saved.

________

See Also

Selecting Page Link Symbols for Data Flow Diagrams

Page Link Considerations When Using Rules

Page Linking for Structure Chart Diagrams


Page Linking for Structure Chart Diagrams

The page linking function works differently for structure chart diagrams because structure chart diagrams do not have hierarchical relationships that data flow diagrams have and because it is frequently necessary to use more than one page to represent a large or complex program structure. The basic differences are as follows:

There are two symbols within the structure chart symbol set which are dedicated page connector symbols. These are the On-Page Connector and Off-Page Connector, as illustrated in Figure 3-29 of the Workbench manual. Only these symbols may be used.

The page connector symbols are fully recognized by the rules, and the analysis function for structure chart diagrams will reach across multiple pages which are connected by Off-Page Connectors.

For structure charts, paging is one directional. Since paging can be many-to-one, once you move across a page link, the Workbench doesn't always know where you came from and thus cannot bring you back across the link. However, since both diagrams will then be open, you can easily activate the original diagram.

For a detailed description of the page linking procedure, see The Page Link Procedure for Data Flow Diagrams. As with DFDs, when you are linking structure chart diagrams, the page connector symbol on the new diagram will be given the same label as the originating page connector symbol, in order to for the invocation line to be recognized as unbroken.

Note

There is also a special connection process for structure chart diagrams via an off-page connector by using the Object menu. Draw the input connector on a structure chart, name it and save the diagram. Then click on the connector symbol with the right mouse button to display the Object menu for the connector. Select Connect. You will have the option of selecting an existing diagram or creating a new one. After you decide and choose, the output page connector will be drawn on the other diagram and the connection established when you Save. After the connected diagrams have been saved, the Disconnect option on the Object menu will become enabled, allowing you to sever the connection. Note that after the diagrams have been connected, selecting Connect from the Object menu will move you between the diagrams rather than make a new connection.

________

See Also

The Page Link Procedure for Data Flow Diagrams


On-Page Connector

The On-Page Connector allows for invocation lines between structure chart symbols to be broken and then continued starting in another location on the same diagram. This can be necessary at times due to diagram space considerations. The invocation line to be broken is first terminated with an on-page connector which is labeled, and then the invocation line is started again at another on-page connector bearing the same label elsewhere in the diagram. For analysis purposes the invocation line is considered unbroken. This is illustrated in Figure 3-31 of the Workbench manual. The On-Page Connector cannot be used to link pages together.

________

See Also

Page Linking for Structure Chart Diagrams

Off-Page Connector


Off-Page Connector

The Off-Page Connector symbol serves two purposes:

to create multiple page structure charts, and

to assure that an invocation line which crosses a page boundary to a new diagram will be recognized for analysis purposes as an unbroken invocation line.

When a multiple page structure chart is created by using the Off-Page Connector, the analysis function can be applied across the various diagrams. The use of an Off-Page Connector is illustrated in Figure 3-30 of the Workbench manual. The same symbol is usually used to connect pages in FDDs and DFDs.

________

See Also

Page Linking for Structure Chart Diagrams

On-Page Connector


Page Linking for FDDs

You can link pages of a functional decomposition diagram in a manner identical to data flow diagrams. The only difference is that with FDDs, the page link is transparent to the Rules.

________

See Also

Page Linking Overview

Off-Page Connector


Cluster Diagrams

The Visible Analyst Workbench provides a means to make complex entity relationship diagrams easier to grasp with the File menu Cluster function. A cluster is a grouping of entities which can be displayed as one symbol on a diagram. It's purpose is to reduce the amount of displayed detail. In a cluster diagram, clusters are shown joined by pseudo-relationships wherever at least one entity in one cluster is joined by a relationship to at least one entity in the other cluster. When using the Cluster feature, remember the following:

Cluster names should be unique within the data model for the current project.

An entity may be a member of just one cluster at a time.

Any cluster diagrams you create will be unstructured diagrams. Creating a cluster diagram will not change your existing data model in any way.

Cluster works only for entity relationship diagrams

Clusters are created from within the repository. The process is described in Creating Clusters. Although clusters are stored in the repository, they have no real inherent meaning in a data model; thus, any cluster diagrams you create are not a living part of your model. The Workbench will create unstructured diagrams which you may edit or print as any other diagram; however, they will no longer be linked to the repository and any future changes you make will not be reflected in them.

First you must choose the scope of the cluster diagram, that is, whether it will display just the entities and clusters appearing on the current view, all entities and clusters in the repository or a custom-designed diagram displaying any clusters you choose from the whole repository. The View of Data Model function on the File menu has three Cluster subfunctions that are used to create cluster diagrams, Current View, Global and Custom. They function similarly to the other View of Data Model functions described previously.

Selecting any function causes a repository scan. Selecting either Current View or Global will immediately create the diagram. Selecting Custom will display a dialog box containing a list of existing clusters and give you the opportunity to select the ones you want on your cluster diagram. The Workbench will then create the diagram. It is possible that a global cluster diagram for a very large data model will be too large to edit. If this happens, the Workbench will let you know and give you the opportunity to print it. The Workbench will send your cluster diagram directly to the print queue and you can print it the File menu.

________

See Also

The View Functions	Overview of Clusters
The Uses of Different Diagram Types	Creating Clusters
Unstructured Projects Versus Unstructured Diagrams	Modifying Clusters
	Deleting Clusters


Saving Your Work

All of your work during an editing session on a particular diagram can be saved or discarded. When you edit an existing diagram, the changes do not become a permanent part of the diagram until it is saved. Therefore, if you want to save your work, be sure to open the File menu and select the Save function as the last step before quitting work on any diagram, new or old. (Note that the Workbench always displays messages to remind you to save your work before allowing you to close a diagram or exit the Workbench.) Conversely, if you want to revert back to the pre-edited version rather than save the edited version, simply answer No to the prompt when you exit the diagram.

Several of the Workbench functions will perform an auto save before executing if you have made any changes in a diagram. For example, if you make changes to a diagram then select Define, to access the repository, your changes will automatically be saved before the function is executed. The functions that perform an auto save are: the Analyze functions Key Analysis, Key Synchronization and Process/Data Model Balancing; Generate Code, SQL and DDS; Reports; Report Query; Define; Nest; Page and the View of Data Model and cluster functions.

________

See Also

Saving a New Diagram or Changing a Diagram's Name


Saving a New Diagram
Saving a New Diagram or Changing a Diagram's Name

The only difference between saving a new diagram and an existing one is that you have to give the new one a name in the dialog box that appears. The only restrictions on diagram labels are that they cannot exceed forty characters and that they must be unique within the diagram type of the project. After that, the Workbench will save it to the tree position that you specified when you created it (if it is a DFD).

The procedure for changing a diagram's name begins with selecting the Save With New Name function from the File menu. After that, the process is identical to that described for a new diagram, above.

________

See Also

Saving Your Work


Printing Your Work

Printing diagrams can be accomplished from the File menu. When you print, you have the following options:

You can print the diagram in the active window.

You can view the Workbench print queue, where you can add or delete diagrams. If no diagram is open, you can print the diagrams in the queue.

You can print a snapshot of the tree structure for any diagram type in the current project.

You can access the printer setup for the currently selected printer. This is identical to selecting Setup from the Printers dialog box in the Windows Control Panel. From this dialog you can

>	send output directly to a printer, or you can print to a file (PostScript),

>	select print orientation (portrait or landscape),

>	determine the number of copies, and

>	a number of other options, depending upon the printer that is selected.

If you have chosen to print a global view of a data model or a very large decomposition diagram or cluster diagram the Workbench will enter a special item into the print queue that is easily identifiable. These special items will segment themselves and print over several pages. A key to the segmentation page will be printed to aid in reassembling the pages of the view print for display. If you interrupt the printing of the queue when it contains one or more of these special items and then redisplay the print queue, you will see identifiers to the individual diagrams in the queue.

If you are printing one or more easel (11 x 15) or multi-page diagrams, you might want to take advantage of the option of scaling the diagram so that it fits on a single page. When the box is checked, the size of everything on the diagram will be reduced so that it will fit on whatever page size you have selected in your current Windows printer driver. You can change settings for the printer driver, such as page orientation (portrait or landscape), print to file, etc., by pressing the Setup button in the Print dialog box.

If you choose this option for an easel diagram and your printer driver is set to use portrait orientation, the diagram objects will appear quite small and there will be considerable white space at the bottom. In this case, you should also change your page orientation to landscape. Note that, for multi-page diagrams, the scaling option will cause things to become quite tiny (unless you are printing to a single page on a large plotter). Note further that the only part of a multi-page diagram that will be scaled and printed is that part which you have actually used, not the entire 90 x 88 inch area that is possible to use.

You can print the diagram in color or black and white. If the target printer does not support color, any colors used on the diagram will be dithered.

Neither the grid nor the ruler is not included in the printed copy of a diagram, even if you have it displayed on the screen.

The procedure for printing is very straightforward. Choose Print from the File menu. At the dialog box, choose the type of printing from the options described earlier you want to do and press one of the available buttons.

If you choose Modify Queue, the dialog box will expand to show the current print queue. If you want to delete diagrams from the queue, select them by clicking on them and press Delete. If you want to add diagrams to the queue, press Add. Another dialog box will display, showing you a list of all of the diagrams for the current diagram type in the active project. As above, click on the diagrams you want to print and press the Add button. You can also choose different diagram types and different projects from which to add diagrams to the queue. When you are finished selecting diagrams, press OK to return to the print queue display. You can then print the diagrams in the queue (if there are no diagrams open), adjust the printer setup, continue the add and delete process or cancel.


Visible Rules Overview

The Visible Rules module of the Workbench is a set of features and functions that, collectively, allow you to develop projects under the discipline of a structured methodology. The Rules module supports commonly used methodologies, two for structured systems analysis and one for structured systems design, plus data modeling. For structured analysis the supported methodologies are Yourdon/DeMarco and Gane & Sarson. For structured design, the supported methodology is Yourdon/Constantine.

The Visible Rules goes further in its life cycle coverage than simple support for structured analysis and design techniques. Structured design, to be most effective, should be based upon specifications derived using structured analysis. This capability to integrate analysis and design provides you with the knowledge that your designs reflect the reality of your specifications.

________

See Also

Data Flow Diagrams

Functional Decomposition Diagrams

Structure Charts

Entity Relationship Diagrams

Class Diagrams

Analysis Error Box


Structured Analysis Methods Overview

The primary purpose of structured analysis methodologies is to provide techniques that help specify systems. Since most systems today are complex, structured analysis encourages specification of the broader aspects of the system and then decomposing these larger views into finer and more readily understandable pieces.

The two analysis methodologies have many similarities. Differences between the two are primarily syntactical; however, there are superficial semantic differences which will be explained in the following paragraphs.

Some of the major concepts of structured analysis include:

Nested Decomposition

Data Flow Balancing

Data Flow Splitting

Logic, Balance, and Completeness Verification

Automated Repository Maintenance

The Visible Rules functions that support the above are Nest, Split Data Flow, Analyze, and Define. Accessing the Repository provides a full description of Define. Nested Decomposition provides a full description of the Nest function. Here, we deal mainly with the consequences of a Nest operation rather than the operation itself.

To make use of the a specific set of rules, either Yourdon or Gane & Sarson must be the currently enabled method. You can select a data flow methodology to use for a project when you create it, as described in Creating a New Project. Once selected, the methodology is applied on a project-wide basis. In other words, rules cannot be selected to apply only to an individual diagram. If a project is created without rules enabled, you cannot go back later to apply them.

As you draw each diagram using rules, the following features will be employed:

Context Diagrams. The Yourdon methodology allows you the option of working with context diagrams. Context diagrams are simply top-level diagrams having only one process that represents the entire system, to show its relation to its environment.

Process Numbering. The Workbench automatically numbers each process placed on a diagram. The numbers offer convenience in allowing you to keep track of all project processes and their nested parent/child relationships.

Data Store Numbering. The Gane & Sarson methodology automatically numbers each data store drawn onto a diagram.

Data Flow Splitting. Visible Rules provides the capability to split data flows into subflows. This is accomplished via the Split Data Flow command at the Diagram menu. A split flow report can also be generated via the Reports function at the Repository menu to list split data flows and their subflows by diagram, by branch (a data flow diagram and all of its children/grandchildren), or by project.

Analyze Project Diagrams. The rules allow you to analyze a project to check for errors within the structural framework of the applied methodology via the Diagram menu Analyze function. Detected errors for a diagram or an entire project can be displayed on the screen or printed in report form.

Automatic Data Flow Balancing. The Workbench automatically drags down (balances) all input and output data flows from parent processes to child diagrams.

________

See Also

Visible Rules Overview

Functional Decomposition Diagrams

Structure Charts

Entity Relationship Diagrams

Class Diagrams


Methodology Symbols

Methodology symbols for a given diagram type are listed on the Symbols submenu of the Diagram menu. In addition, they are represented by buttons on the Control Bar when you press the Symbol button on the Control Bar or when you choose a symbol from the Symbols submenu. Additionally, they are available from the Workbench Toolbox. The symbol Toolbox is prepopulated by Visible Systems with the standard symbol set. However, you can use your own symbols in the Toolbox cells reserved for the methodology symbols.


Process Numbering

When rules are enabled, all process symbols are numbered. On each DFD, processes are numbered in the order that they are drawn, not in the order that they are labeled. The single process that is allowed in a Yourdon context diagram is always assigned the number 0. All other processes in Yourdon or Gane & Sarson projects are numbered by level and in sequence, beginning with the number 1. For example, the first process drawn in any project diagram (other than a context diagram) will be assigned number 1. If a second process is added to the project it will receive the number 2, the next process number 3, etc.

Process numbers also represent levels of decomposition on a project-wide basis. For example, if process 1 is decomposed into three subprocesses as shown in the figure below, the subprocesses will be sequentially assigned numbers 1.1 through 1.3. If process 1.2 is further decomposed into two other processes, they will be numbered 1.2.1 through 1.2.2, and so on. Although all process numbers are assigned sequentially and according to decomposition level, you can go back and modify the assigned numbers via the Change Item function if you follow a few simple guidelines.

You cannot duplicate any process number in the same project; if a process number has already been assigned, you cannot use it when changing the number assigned to another process.

You cannot change the decomposition level being represented; if a process is numbered 1.1.3 you can change it to 1.1.4, but you cannot change it to 1.4.

You only have to change one number. The Workbench carries process number changes throughout the project on a global basis, and any processes on lower levels will automatically be renumbered.

You can reuse a process number from any process symbol that has been deleted from a project.

________

See Also

Data Store Numbering (Gane & Sarson Only)


Data Store Numbering (Gane & Sarson Only)

When working under rules for the Gane & Sarson methodology, data store symbols are numbered. Data store numbering differs from the process numbering as follows:

Each data store number contains the prefix D.

Each uniquely labeled data store is assigned a unique number.

You cannot change data store number assignments. When a data store is drawn it is sequentially numbered, and it maintains the assigned number wherever it appears throughout the project.

If you delete a data store, the deleted data store number will be reassigned to the next data store that is added to the project. For example, if a project has data stores numbered D1 through D10, and all data stores numbered D5 are deleted, then D5 will be reassigned to the next unique data store added to the project. However, be aware that an interim Save must be performed in order for the reassignment to occur; i.e. after you delete D5 you must save the diagram, then add the new data store. If the interim save is not performed, the new data store will be numbered D11.

________

See Also

Process Numbering


Net Data Flows

Input and output data flows refer to data entering or leaving, respectively, a process to which the flow is connected. The criteria for when a flow is termed a net flow are:

On a given diagram, a data flow is a net input or output flow if one end of the data flow is connected to an external entity or if one end of the data flow is not connected to any object, like A and C in the figure below.

On a given diagram, a data flow is a net input or output flow if one end of the data flow is connected to a non-local data store, like F in the figure below. (This somewhat circular part of the definition is explained in the Help topic Data Stores and Physical Files.)

A data flow is a net input or output flow if it enters or leaves the parent process of the current diagram. When a process is decomposed with Nest, the net input and output data flows defined for the parent process are also the net input and output flows for its immediate child diagram. In other words, the net flows associated with the parent process must be accounted for on its immediate child diagram; otherwise, the Analyze operation will indicate a balancing error.

A data flow is a net input or output flow if the data flow is a subflow of a net input or output flow. This means that the property of net input or net output is inheritable from a parent to a child diagram via the Nest and Split Data Flow operations.

Any flow not characterized as a net flow on the child diagram is considered internal to the parent process. Hence, it is local to the child diagram and is termed a local data flow.


Data Stores and Physical Files

Although the concepts of data stores and physical files are similar, the terms are not synonymous. Access to a data store must abide by the balancing principles of data flow diagraming. You should adhere to the following guidelines when you draw a data store:

A data store is a container which temporarily holds data while it is flowing between different processes. It functions as an interface between those separate processes. Beware of cyclic connections drawn between a single process and a data store. A cyclic connection exists if data moves in both directions between a process and a data store. This situation strongly suggests that the data flowing between the process and data store is really internal to the process. It would be preferable not to diagram the data store at this level. Instead, decompose the process with the Nest function. On the child diagram, show the processes that have been factored out from the parent process and then draw the data store as it relates to these processes.

When a process accesses a data store, only the net flow of data should be diagramed. For instance, if a process withdraws data from a data store, meaningfully generates and/or transforms the data, and then returns some or all of it, only the net flow of data should be diagramed at that level.

All references to a data store (i.e., the data flows) should appear on the diagram on which the data store is initially drawn. This is called the defining instance. Subflows derived from these data flows maintain this data store connection even if the data store does not appear on the diagrams on which these subflows appear.

All subsequent child diagrams should consistently access the data store. For instance, if the defining instance of a data store is referenced by process 1 with only net output data flows then only net output data flows may be associated to this data store on the child diagram of process 1 without generating an analysis error.

When a local data flow is connected to a data store as an input to that data store, the data store inherits the local attribute of the data flow and that instance of the data store is viewed by the Workbench analyzer as a local data store. This represents the defining instance of that local data store because it contains data derived within the parent process from the net inputs connected to the parent process. If a net input flow is connected directly to this local data store then a mixture of net and derived data can occur. (Net and local output data flows work the same way.) Allowing this mixture of derived and net data would negate the reconciliation effort intrinsic to the methodology of data flow diagraming. Thus, the Workbench generates this analysis error when this situation occurs. For example, if data flow G in the figure were shown on the parent diagram as a net output data flow, it would generate the error message:

ERROR	Net data flow labeled 'X' is attached to a local file

because it is used locally on this diagram.

After generating this message, the analyzer thereafter looks at data flow X as a local data flow, no longer having the property net input or net output. The analyzer then tries to balance the net data flows appearing on the parent and child diagrams and is forced to issue the additional error message:

ERROR	Input/Output data flow 'X' on parent is not shown

________

See Also

Analysis Error Box


Splitting Data Flows

The Split Data Flow function is enabled on the Diagram menu when the diagram type is Data Flow and a data flow is selected as the current object. It also appears on the Object menu of a selected data flow. It offers the capability to divide net input or net output data flows into subflows, creating a more detailed representation on lower level diagrams. This capability greatly aids the analysis process by showing more complex data flows at high levels of the structured specification, and smaller or even atomic data flows at the lower levels of the structured specification, thus allowing better understanding of the whole system and of its parts. Only data flows that have labels and have been dragged down from a parent diagram as the result of a Nest operation can be subdivided. The relationship between subflows and their parent flows is automatically maintained with in the project's repository, so that data flow balancing can be assured whenever the project is analyzed.

Whenever a data flow is split into subflows, the original data flow is erased from the displayed diagram and replaced by the selected subflows. The original flow does not change on the parent diagram, however. The subflows can be repositioned on the diagram by moving them, as described in Moving Objects on a Diagram and Line Handles. A Split Flows Listing can be generated to obtain a listing of all parent flows and their subflows throughout a diagram, a branch or an entire project.

________

See Also

Split Data Flow Procedure

Net Data Flows

Data Stores and Physical Files


Split Data Flow Procedure

To split a data flow into subflows, use the following procedure:

Select a Data Flow or an Existing Subflow:

1.	Select a data flow or a subflow of a previously split flow to which you want to add more subflows by clicking on one end of it.

Select Split Data Flow

2.	Choose Split Data Flow from the Diagram menu or from the data flow's Object menu.

Choose How to Split the Data Flow:

3a.	If the selected data flow has not been previously split, the Workbench will display the Split dialog box, giving you three edit boxes to choose from:

Enter Subflows allows you to manually enter labels for new subflows from your keyboard. See step 4.

Select Components allows you to specify items that already exist in the repository Composition field of the selected data flow. Note that the repository must be enabled and there must be existing components for this box to be enabled. See step 5.

Select Flows from Diagram allows you to select any data flows that already exist on the diagram. See step 6.

You can choose any combination of the three operations or you can Cancel.

3b.	If the data flow you select is the product of a prior split operation, the Workbench will ask you if you want to add more subflows to the parent flow. If you choose Yes, the above dialog box will display.

If Entering Subflows from the Keyboard:

4.	If you chose to Enter Subflows in step 3a, you can begin entering labels for as many subflows as you want to use to replace the parent data flow being split. These new flows will be added to the repository and to the Composition field of the parent, and will appear on the diagram.

If Selecting Components:

5.	If you chose to Select Components in step 3a, the components that are already defined in the repository Composition field for the selected flow will be displayed in the list box. You can select one or more of them.

If Selecting from the Diagram:

6.	If you chose to Select from Diagram in step 3a, the list box will display the names of all net input or output flows (depending upon the parent flow) on the diagram that are not already subflows of flows appearing on the parent diagram. Click on the ones that you want to designate as subflows of this parent flow. You can select one or more of them. If none are available, the box will be disabled.

7.	When you finish, press OK. The Workbench erases the data flow that is being split (if you are not adding subflows to a flow that has already been split and erased from the diagram) and each subflow will be drawn at the edge of the diagram. You can then move the subflows into the positions where you want them on the diagram.

________

See Also

Splitting Data Flows


Analyzing Data Flow Diagrams

As a project undergoes a number of nested decompositions, data flow splits, and various moves or other edits, there exists a significant possibility that various data flows will get incorrectly used, or that objects will be forgotten, etc. This is a natural consequence of the iterative nature of structured analysis. The Analyze function is designed to inform you of completeness and logic errors that exist at any given moment.

The Analyze function checks for a variety of balance conditions by comparing and validating data flows for a single diagram or a complete project at all levels, including the usage of subflows. When Analyze is initiated, the checks shown below are performed.

Checks all objects (symbols and data flows) for labels, and processes for numbers.

Checks for dangling objects (any unattached symbols or data flows).

Checks that all processes have at least one input and one output.

Checks data flow balance. The rule for data flow balancing is as follows: If a data flow is used as a net input or net output (it doesn't matter which) at any level, all occurrences of that data flow on lower levels must be of the same direction (either input or output). (See the detailed discussion of net data flow

usage in Net Data Flows.)

________

See Also

Data Flow Balancing Examples	Analysis for Entity Relationship Diagrams
Analysis Error Box	Normalization Analysis
Analyzing FDDs	Key Analysis
Analyzing Structure Charts	Key Synchronization
Analyzing Class Diagrams	Process/Data Model Balancing


Data Flow Balancing Examples

The following examples illustrate data flow balancing situations:

If net input data flow A, attached to process #1 on diagram 0, appears on diagram 1, attached as a net input data flow to process #1.1, no error condition exists.

If net input data flow A, attached to process #1, on diagram 0, has subflows A1, A2, A(n), etc., all used as net inputs on diagram 1, attached to processes #1.1, 1.2, 1.n, etc., no error condition exists.

If, however, a subflow like A2 is used on diagram 1 as a net output, an error message is generated, because Data Flow A, on diagram 0, is a net input, and the system becomes unbalanced.

If net input data flow A, attached to process number 1 on diagram 0 is used on diagram 1 as a net output data flow, two error messages are generated one indicating that it isn't used on diagram 0 as a net output data flow, and one indicating it isn't used on diagram 1 as a net input data flow. The reason for this is that flow A may very well be used as both input and output, but that the systems analysis hadn't yet indicated both needs.

If data flow C is used on diagram 1 and is not attached to any process on diagram 0, an error message is generated, because it is not represented anywhere on the higher level diagram. Note that this might not be valid in the case where flow C was a subflow of some other flow on diagram 0.

Certain types of data flows are ignored by the Visible Rules' Analyze function for various practical reasons. The following list contains these exceptions.

1.	Any data flows whose labels begin with the word Error or Reject are ignored for the purposes of balancing. These labels have special meaning under the methodologies. They indicate trivial error conditions that are not necessary for the purpose of system analysis, but that are entirely necessary for understanding how a target system will work.

2.	Local process-to-file I/O data flows are ignored for upwards balancing purposes. If a process has one or more inputs and one or more outputs to the same file (or data store in Gane & Sarson), all the data flows going to that file are considered local file I/O data flows, and are not analyzed for upwards balance. If however, the process is exploded using Nest, these flows balance down to the lower level diagram and are then evaluated for balance between the two diagrams.

3.	If a process has an output data flow to a file and a second process receives an input data flow from the same file, both the input and output flows are considered local file I/O data flows, and are not analyzed for upwards balance. Here again, if one of these processes is exploded, automatic balancing is enforced and balance is checked in the new parent/child relationship. (See the detailed discussion of local data flows and files in Net Data Flows.)

4.	If a data flow is attached to two processes, it is not a net input or net output data flow, and is not analyzed for upwards balance. If one of the processes is exploded, automatic balancing is enforced, and the new parent/ child relationship is validated for balance.

________

See Also

Analyzing Data Flow Diagrams

Analysis Error Box


Business Planning Analysis Methods and Functions

Functional decomposition diagrams (FDDs) give you the ability to do high-level planning of business functions diagrammatically while concurrently populating the repository. You can enter business functions (hereafter called simply functions) that you define onto diagrams and break them down into successively finer gradations. At some point, one that is entirely up to you, you can break down functions into processes. These processes are semantically equal to the processes that appear on data flow diagrams. The processes can themselves be broken down into smaller parts (i.e., still lower-level processes) on FDDs.

Functional decomposition diagrams are viewed as the highest level of business planning. It is probably the place you will want to begin when you wish to display the broadest picture of the functions of an enterprise. There is no rule that you must begin here, but certain other things are easier if you do. For designing individual projects, it might be just as efficacious to start with a process model or a data model (or both at once), for you might consider that the project does not have the breadth to warrant planning at the FDD level. Then again, you might feel otherwise.

After you diagram your highest-level business functions and decompose them somewhat, you get to the level where you feel functionality below this should be subject to the detailed type of analysis possible with DFDs. This is the point at which you will want to show finer gradations of functionality as processes. You can lay out all of the processes of this branch of your FDD and their hierarchical relationships. After that, you can instruct the Workbench to produce or "spawn" a set of DFDs for this branch of processes. Then you can flesh out the DFDs and add data flows, files, external entities, etc.

Although it is possible to go back and forth between the FDDs and the DFDs generated from them, it is likely that the editing you do on the different types of diagrams will introduce problems, like making incompatible changes in the hierarchical relationship between processes on the two types of diagrams. Therefore, it is recommended that you complete your business analysis on FDDs as far as possible, at least for a given branch of the diagram, and then generate your DFDs, move on to them and flesh them out. If you later find that you need to add processes, it is better to return to the FDD and add them there. You can then have the Workbench place the new processes onto the proper DFDs, as explained in Verify. Proceeding in this manner will both keep the two sets of diagrams in sync and avoid compatibility problems.

Note

A functional decomposition diagram is very different from a process decomposition diagram. The former is a full diagraming methodology for doing business planning. The latter is simply an unstructured diagram laying out the hierarchy of processes which are descendants of an indicated process.

Rules Functions for FDDs

The Visible Rules functions that support FDDs are Spawn, Change Item, Analyze, Page and Define. FDDs also have full repository support, overlapping somewhat with DFDs. As explained in Using Spawn with FDDs, the functionality of Spawn is somewhat similar to but not identical to that used with the Nest function for data flow diagrams.

Since there is some overlap between DFDs and FDDs, it is significant which process modeling methodology (Yourdon or Gane & Sarson) you choose when you create a project. You should consider this carefully before you save the first diagram of a project. Also, it would be helpful to be familiar with the terms and techniques of the process modeling methodology before continuing with this description of functional decomposition diagrams. This description is given in Data Flow Diagrams.

________

See Also

Visible Rules Overview

Naming Rules for FDDs

The Rules in Action

Structure Charts

Entity Relationship Diagrams

Class Diagrams


Naming Rules for FDDs

There are a couple of other points to be aware of, in addition to the standard Workbench naming rules of no more than forty character names and that a label cannot use certain delimiter characters. (For projects created without Rules and Repository, the forty-character name length limit is waived and longer names can be used to label diagram objects.)

A function cannot have the same name as a process in the same project.

Otherwise, a function can have any other valid Workbench name, regardless of whether any other object is using that label within the project.

Any process can occur on one FDD and on one DFD.

________

See Also

Business Planning Analysis Methods and Functions


The Rules in Action

As you create functional decomposition diagrams, the following features of the Visible Rules will be employed.

Repository entries will be created. When you show hierarchical relationships between functions and/or processes, they will be known to the Workbench, even though you cannot see them if you look at the repository entries.

You can Spawn a function that you have diagrammatically broken down into one or more processes. The first time you use Spawn on a function, a branch (subtree) of DFDs including these processes will be created. Subsequent uses of Spawn will allow you to move from your FDD to the DFD at the top of the branch, to resynchronize the DFDs with your FDD, or to break the spawn link between them.

If DFDs exist at the time of your spawn request, the Workbench will attempt to integrate these into the proper relationship with your FDD. Be aware, however, that this might be impossible, due to extreme contradictions between how you have specified relative process hierarchies on each of your diagram sets. In this case, the Workbench will let you know this and suggest that you run Analyze to find out just what the problems are.

After a Spawn operation is completed, the processes that appear on the created DFDs will be numbered in the manner usual for DFDs. However, these numbers will not appear on your FDD.

Change Item, from the Diagram menu, will allow you to convert a function into a process and vice versa, in case you change your mind about something after you have entered it on an FDD. You cannot change a process into a function if it already exists on a DFD and you cannot change a function into a process if it has been spawned.

You can Analyze your FDDs, either individually or as a group, to find inconsistencies and violations of methodology rules. These rules and the analysis process are explained in Analyzing FDDs Overview.

________

See Also

Business Planning Analysis Methods and Functions


Overview of Analyzing FDDs

The Visible Rules will check for four classes of errors :

Syntax errors. These are things that would make your FDD impossible for the Workbench to understand.

Connection errors. These indicate violations of the rule that a function is of a higher order than a process, and would make it impossible to generate spawned DFDs.

Balancing errors against DFDs. These are things wrong with an FDD that would make it incompatible with existing or planned DFDs.

Page connection errors. These are errors involving improperly specified page connections between parts of an FDD, incorrect or missing connector labels, etc.

There are two types of analysis:

Current diagram. This will check for the first three of the above types of errors for the currently selected FDD.

Entire project. This will examine all of the FDDs in the current project (i.e., the analyzer will move across page connections ) and check for all of the above types of errors.

It is recommended that you run Analyze before executing Spawn for the first time on your FDD to catch errors and allow you to correct them early, while they are easiest to fix.

________

See Also

Analysis Error Box	Normalization Analysis
Analyzing Data Flow Diagrams	Key Analysis
Analyzing Structure Charts	Key Synchronization
Analysis for Entity Relationship Diagrams	Process/Data Model Balancing
Analyzing Class Diagrams


Structured Design Overview

Structured design is a discipline that is complimentary to structured analysis and, in fact, builds upon it. The purpose of structured design is to provide a technique for translating specifications generated using structured analysis into computer programs. As such, it is almost a graphical programming technique. Structured design is practiced in a more subjective manner than is structured analysis, meaning that there are fewer hard and fast rules for how a given project analysis should translate into a structured design. After all, even badly written programs can work.

The Visible Rules' implementation of the Yourdon/Constantine structured design methodology is intended to maintain as much design freedom as possible for the user, while providing design evaluation against known poor design practices. The error and warning messages generated are intended to be used as guidelines rather than rules. For more detailed information on the Yourdon/Constantine structured design technique you can refer to the following books:

Yourdon, E.N., and Constantine, L.L., Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design, Prentice-Hall Englewood Cliffs, 1986.

Page-Jones, M., The Practical Guide to Structured Systems Design, Prentice-Hall Englewood Cliffs, N.J., 1988.

The Visible Analyst Workbench's support for the Yourdon/Constantine methodology includes four major areas. These are: symbol support, line and connector support, analysis support, and repository support.

________

See Also

Visible Rules Overview

Data Flow Diagrams

Functional Decomposition Diagrams

Entity Relationship Diagrams

Class Diagrams


Structure Chart Graphics

Structured design is primarily a program description or specification technique. As such, the symbols, lines, and connectors used by the technique represent programming constructs.

________

See Also

Structure Chart Symbols	Data Couples
Structure Chart Line Types	Control Couples
Invocation Lines	Generic Couples
Data and Control Connections	Interface Table Rows (ITRs)
Terminators for Invocation Lines


Structure Chart Symbols

The symbols used are as follows:

Module	Library Module	On-Page Connector
Macro	Library Macro	Off-Page Connector
Data Only Module	Information Cluster	Operating Environment
For a more complete and formal definition of these symbols, see Yourdon/Constantine, page 456.

As with DFD symbols, they can be accessed from the Diagram menu, the Control Bar or the Toolbox. All of the symbols supported under the Yourdon/Constantine methodology are program modules of some type, except for the On-Page and Off-Page Connector and the Operating Environment symbols. The latter is a special symbol for indicating the operating environment of the module(s) to which it is attached.

Data only modules and information clusters are specialized types of modules. Modules, macros, and library modules and macros are types of normal program modules. However, there are some differences between them. A description of these differences follows.

A module represents a contiguous sequence of program statements, in other words, a program, subroutine, function, etc. (depending upon the target development language). Its interfaces to other modules (of all types) are not hidden from the designer.

Yourdon/Constantine defines a library module as "a module that always executes in the same way on each separate activation, as if it were a fresh copy of the module." It is differentiated from a module in usage by the fact that its interfaces to other modules (if any) are hidden from the designer.

Yourdon/Constantine defines a macro as "a module whose body is effectively copied in-line during translation (e.g., compilation or assembly) as a result of being invoked by name; that is, the bounded contents replace the reference to the aggregate identifier." The only practical difference between a macro and a module is that macros will tend to make a system operate faster, but at the expense of more memory space being required to operate that system.

A library macro is a macro whose interfaces to other modules (if any) are hidden from the designer.

Note

Each of these varieties of module can have a subtype classification. It can be the standard one, as described above, or it can be a check condition, stored procedure or a trigger. These types of modules are used to store SQL procedural code to be generated with SQL schemas.

A data only module is a module that consists solely of data elements or structures of data elements. It is always a lowest-level module in that it may only be accessed by other module types and never calls other modules itself (though it can contain lexically included data modules).

An information cluster is an aggregate of two or more modules and only one data only module. The Rules supports information clusters with up to seven internal modules. The information cluster is intended to combine all of the modules that would share a single data only module into a single compound symbol, for the purpose of diagram clarity and understanding. It operates as a module for all other purposes. Drawing Information Clusters has a full description of how to add an information cluster to a diagram.

A Program is a structure chart item which appears only in the repository of your project. It represents a computer program and is composed of a number of modules. Its usage is discussed in Shell Code Generation.

________

See Also

Control Bar

Toolbox


Structure Chart Line Types

Structure charts use four types of lines:

invocation lines

data and control connections

data, control, and generic couples

data, control and generic interface table rows (ITRs)

Invocation lines, along with data and control connections, are line types which connect modules on a diagram. Invocation lines differ from data and control connections in a number of significant ways. Couples and interface table rows are a third line type, and are distinguished from invocations and connections by the fact that they do not connect modules, but are shown being passed to and from modules by invocations and connections.

________

See Also

Terminators for Invocation Lines


Invocation Lines

The meaning of this relationship is a passing of control: module A calls module B. Implicit in the meaning of an invocation is the return of control to the calling module when the called module is done processing. An invocation is shown by drawing a line from the border of one module to the border of any other module except data only modules. Invocation lines can pass combinations of couples and ITRs to other modules.

To use an invocation line, add it to your diagram as described in Drawing Lines. Any line style can be used to draw an invocation line except for the two line styles with control and data end points (solid or open circle on one endpoint), and the loop line type. Invocation lines can have a variety of terminators associated with their endpoints. These are arrowhead, conditional, and lexical inclusion.

________

See Also

Data and Control Connections	Data Couples
Terminators for Invocation Lines	Control Couples
Interface Table Rows (ITRs)	Generic Couples


Data and Control Connections

Data and control connections always show data or control being passed. Implicit in their use is that control or data is passed unidirectionally. Control does not automatically return to the calling module as it does for invocations. They are differentiated from invocations by a number of criteria: they never use conditional, lexical, or loop connectors. Pathological connections are allowed (but not encouraged). Data connections can pass data couples (or DITRs) between modules; control connections can pass control couples (or CITRs) between modules.

A data connection is drawn using the line selection with an open circle on one endpoint of the line. Again, arrowhead terminators are optional on the other end. Data connections are used to show that data only is being passed, as from module C to module A in the figure.

A Control Connection is drawn using the line selection with a filled circle on one endpoint of the line. Arrowheads are optional but recommended. Control connections are used to show that only control is being passed, as from module A to module B in the figure.

________

See Also

Invocation Lines

Generic Couples


Terminators for Invocation Lines

As described above, invocation lines can use a variety of terminator types. Terminators add information about how control is passed from module to module. This is generally necessary for proper documentation when describing complex programs. Visible Rules supports special terminator types and one special line type which are used to denote the programming constructs under which invocations are made.

The terminator types and the special line supported for invocation lines are:

Arrowhead

Conditional

Loop (a line type)

Lexical Inclusion

The conditional is the diamond shaped terminator. A conditional terminator may be attached to only the invoking or starting point of an invocation line. It shows that conditions apply to the invocation. It is used primarily to indicate a decision. For instance, in the figure to the right, module A calls module B under one set of conditions and module C under a second set of conditions.

The loop line is the open ellipse shape Line Type in the structure chart Line Settings dialog box. Even though it is a line, it cannot be labeled, it cannot be defined in the repository, and its primary purpose is to show that an invocation line (of any type) is part of an iterative and/or an ordered set of invocations. In usage, a loop can be drawn around the start point of one or more invocation lines. Loops can be nested.

The lexical inclusion is the split line or hat shape terminator for structure chart lines. Its purpose is to show that the invoked module is logically separate but physically internal to the calling module. Yourdon/Constantine defines it as "the property of one object ... being wholly contained within the lexical boundaries of another." A lexical inclusion terminator may only be attached at the end point of an invocation line.

________

See Also

Data and Control Connections

Toolbox


Data Couples

A data couple is a line type that is associated with invocation or data connection lines. Data couples are the data parameters that get passed between program modules. They are distinguished by an open circle at one endpoint and an arrowhead at the other. See lines W and X in the figure. Data couples can be bidirectional, (i.e. with two arrowheads, pointing away from each other, and one open circle in the middle of the line). Bidirectional data couples are used for indicating in-out data coupling. Refer to Add a Couple to a Structure Chart Diagram for a full description of how to draw couples. A data couple can be changed into a data interface table row by modifying the couple's type field in the repository, as explained in Entry Type.

________

See Also

Terminators for Invocation Lines

Control Couples

Generic Couples


Control Couples

A control couple is a line type that is associated with invocation and control connection lines. Control couples are the control parameters that are being passed between modules upon invocation or return. Control couples are distinguished by a filled circle at one endpoint and an arrowhead at the other. See line Y in the figure. Control couples can be bidirectional just like data couples, and are used for indicating an in-out couple. A control couple can be changed into a control interface table row by modifying the couple's type field in the repository, as explained in Entry Type.

________

See Also

Terminators for Invocation Lines

Generic Couples


Generic Couples

A generic couple is a line type that is associated only with invocation lines. Generic couples show that both data parameters and control parameters are being passed between modules upon invocation. Generic couples are distinguished by not having a circle on one endpoint of the line and by an arrowhead at the other. See line Z in the figure. Generic couples can be bidirectional (like data and control couples). A generic couple can be made into a generic interface table row by modifying the couple's type field in the repository, as explained in Entry Type.

________

See Also

Data and Control Connections

Terminators for Invocation Lines


Interface Table Rows (ITRs)

An interface table row represents a group of one type of couples and is drawn on the diagram to be a couple of that type. It is used to simplify the diagraming of complex module interfaces that include many different types of couples and make the diagram appear less cluttered. The couples which make up an ITR are listed in the composition field of the ITR in its repository entry. (See Composition.)

________

See Also

Invocation Lines	Data Couples
Data and Control Connections	Control Couples
Terminators for Invocation Lines	Generic Couples


Linking Structure Chart Pages Together

Structure chart diagrams, in contrast to data flow diagrams, are not hierarchically organized. In the Workbench, structure charts are linked together using both on-page and off-page connectors. The Page function is used to link the structure chart's modules together over diagram boundaries, without the loss of connection normally associated with multi-diagram charts. The Nest and Split Data Flow functions, which connected your data flow diagrams, are disabled for the purposes of drawing structure charts. The Workbench recognizes page connectors when performing an analysis validation; i.e. if a structure chart is composed of ten connected pages, Analyze will review all ten pages as though they were one chart.

Off-page connectors can be either input connectors or output connectors. An input connector carries an invocation from a module to another diagram. An output connector joins an invocation from another diagram to a module on the current diagram. There are some general rules to adhere to when using off-page connectors.

Each input connector may refer to only one output connector.

Each set of connectors must be uniquely identified; i.e. for an input connector labeled XYZ, there must be an output connector labeled XYZ.

Each set of connectors must be connected with the same type of invocation line, or data or control connection.

Input connectors can have multiple occurrences that all refer to the same output connector.

Input connectors can have many invocation lines or data or control connections (all of the same type) attached to them.

Output connectors may have only one invocation line or data or control connection going from it to a module.


Analyzing Structure Charts

The Visible Rules analyzes structure chart diagrams based upon heuristics. Fan-in, fan-out, design complexity and completeness are checked. Analysis operates at two levels, module-to-module and global. At the module-to-module level, the Analyze function reviews the connections between modules for correctness of connection, complexity of interface, and completeness of design. Module-to-module connections are in one of three conditions for any connection:

A valid connection, for which no error message is generated.

A conditionally invalid connection, for which a WARNING message is generated.

An invalid connection, for which, an ERROR message is generated.

All modules are analyzed for complexity of interface. The technique used is called fan-in/fan-out analysis. Fan-in and fan-out measure, respectively, the number of calls to a module from other modules, and the number of calls a module makes to other modules. The analyzer gives warnings for low fan-in and high fan-out. Additionally, the analyzer implements Card's Intrinsic Complexity Algorithm to generate an index of a diagram's complexity. See Analysis Statistics and Figure 4-34 of the Workbench manual for more information.

All modules and interfaces are analyzed for completeness of design. Modules and couples are checked for labeling and connection. If a module or couple is unlabeled, an error message is generated. If a module is unconnected, an error message is generated. If an invocation line does not connect to another module, an error message is generated.

________

See Also

Analysis Error Box	Normalization Analysis
Analyzing Data Flow Diagrams	Key Analysis
Analyzing FDDs	Key Synchronization
Analysis for Entity Relationship Diagrams	Process/Data Model Balancing
Analyzing Class Diagrams


Analysis Statistics

The analyzer generates certain statistics to help you evaluate your design diagrams. The figures it displays are:

Number of modules X

Average module fan-out X

Structural Complexity X

Figure 4-34 of the Workbench manual explains how these statistics are calculated for the sample structure chart diagram shown.

________

See Also

Analyzing Structure Charts


Data Modeling Overview

Entity relationship diagrams allow you to express the data model of your project diagrammatically. You can describe the entities (or, more properly, entity types) in the data you are modeling and the relationships between them by drawing them onto a diagram. Each diagram or view can show an arbitrarily large or small part of your data model. You can show multiple views of your data model by including different combinations of entities and relationships on various diagrams. However, the entire data model is retained in the repository. To show really large data models and still have them comprehensible, you have the ability to cluster groups of entities and show these clusters and the relationships between them on a view. See Cluster Diagrams for descriptions of this functioning.

All information you place in a view is, of course, captured by the repository and is available to both your process model (data flow diagrams) and to your structure charts, where applicable, if you have an integrated tool set. The Analyze function can assist you to balance a data model against a process model and maintain consistency. Additionally, Key Analysis can help you set up a consistent relational database key structure by migrating data elements (sometimes called attributes) which you designate as keys or parts of compound keys across relationships to associated entities and creating foreign keys. Using associator element names in relationship repository entries will make this process work better.

Users who have purchased the Arthur D. Little IRMA import version of the Workbench will have the ability to view and enhance projects developed with IRMA's associative data model on entity relationship diagrams. Since associative data modeling and entity relationship modeling are not 100% compatible, there are a few functions that the Workbench provides that do not apply to projects imported from IRMA. Conversely, IRMA projects contain information that cannot be added to projects entirely developed as entity relationship models. These differences will be noted as they occur.

________

See Also

Visible Rules Overview

Functional Decomposition Diagrams

Data Modeling Graphics

Class Diagrams


Data Modeling Graphics

Entity relationship diagraming is designed to give you the ability to clearly show the characteristics of your data while still allowing a certain degree of flexibility in modeling style. By careful use of configuration settings and the line and symbol sets, you have the ability to use different entity symbols and various line terminators that show relationship cardinality.

________

See Also

Entity Symbols

Relationship Lines


Entity Symbols

There are three possible types of entities available for you to use: fundamental, associative (sometimes called junction entities, concatenated entities, gerunds or correlation tables) and attributive, each with its own symbol in the symbol set. The Analyze function will take into account the type of entity you specify and will help you identify certain normalization errors, as well as to assist in key migration. You can, if you wish, either use a single symbol to represent entities of all types or you can alter your symbol set so that the different types of entities have any appearance you desire.

Entity symbols can be shown on an ERD at three levels of detail. The diagram can be set to show only the entity names, the entity name and attributes which are part of the primary key, or all attributes. When changing the detail level, entity symbols are automatically resized and the relationships are reconnected properly.

________

See Also

Relationship Lines


Relationship Lines

Relationships can be labeled in one or both directions. You set this value when you create the project. Relationship lines between entities usually have terminators on each end that show if the relationship cardinality is 0:1, 1:1, 0:many, 1:many or many:many. You can set default terminators to show relationship cardinality with Line Settings from the Options menu, as described in Default Line Selections. If Auto Label Lines is enabled, after you add a relationship to your view, a dialog box will open in which you can enter the labels for each direction of the relationship. At that time, you will also have the opportunity to change the cardinality from the default to whatever you choose.


Analysis for Entity Relationship Diagrams

For data modeling, after selecting Analyze from the Diagram menu, you have an additional analysis choice available when analyzing either the current diagram or the entire project. You will have the option of doing normalization as well as syntax analysis. Syntax analysis identifies unnamed entities and relationships. Normalization analysis does syntax analysis and also identifies certain possible relationship normalization errors. This will warn you of many-to-many relationships, optional-optional relationships, mandatory one-to-one in both directions and the fact that the identifying relationships for associative and attributive relationships are not shown on the current view. (A relationship is identifying or defining if it comes from fundamental entity where the cardinality is 1:1.)

From the Repository menu you have the additional analysis choices of Key Analysis, Key Synchronization and Model Balancing (balancing your data model against your process model).

Note

Projects imported from the Arthur D. Little IRMA tool do not have the ability to do normalization analysis, and thus cannot do key analysis and key synchronization. These functions are handled implicitly by the associative data model, so they do not need to be redone in the Workbench.

________

See Also

Analysis Error Box	Analyzing FDDs
Analyzing Data Flow Diagrams	Analyzing Structure Charts
Analyzing Class Diagrams


Normalization Analysis

Normalization errors at the entire project level will warn you if an associative entity has less than two identifying relationships and if an attributive entity has either more or less than one identifying relationship.

________

See Also

Analysis for Entity Relationship Diagrams

Key Analysis

Key Synchronization

Process/Data Model Balancing

Analysis Error Box


Key Analysis

Key analysis does syntax and normalization analysis, and also finds errors in primary and foreign key specification. It will note:

an entity without a primary key.

a primary key on one end of a relationship without a foreign key on the other end.

an associative entity with less than two foreign keys making up the primary key.

an attributive entity with other than exactly one foreign key as a primary key.

a foreign key without a corresponding relationship.

a foreign key that is the primary key of a fundamental entity.

As described in Associator Element, you have the option of adding the name of a special kind of data element called an associator to the repository entry of a relationship. When specified and automatically created, this will be used by the analyzer as the name of the foreign key for an entity at the other end of the relationship in the current direction.

________

See Also

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Synchronization

Process/Data Model Balancing

Analysis Error Box


Key Synchronization

Key Synchronization will migrate primary keys across normalized relationships to make foreign keys in other entities and add descriptive information about the relationship and the related entities. If you do key migration on an entity pair whose relationship has no associator element name specified, the analyzer will use whatever name you have already specified for the existing primary key (or just the abbreviations [PK] and [FK] ). If you later add an associator element name for the relationship and rerun Key Synchronization, the key will be updated with the proper associator element name. You can choose to do all of this key migration manually, if you wish. Alternate keys ([AK#]) are not migrated.

________

See Also

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Analysis

Process/Data Model Balancing

Analysis Error Box


Old Foreign Key Removal During Key Synchronization

During Key Synchronization, if a column is found that is marked as a member of a foreign key, but that column is no longer valid as a foreign key column, you will be prompted for the appropriate action to take. This situation could occur either because the primary key of a parent entity was changed, or a relationship was deleted.

For each invalid foreign key column detected, you have the following choices:

Delete the column from the table,

Retain the column but remove it from the primary key, or

Retain the column and the foreign key marker.

Each time an invalid foreign key is detected, you will be prompted for the desired action, unless you choose Stop asking, Use for all. This option will apply your choice to all subsequent invalid foreign key conditions.

________

See Also

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Analysis

Key Synchronization

Process/Data Model Balancing

Analysis Error Box


Process/Data Model Balancing

If at least one of the balancing options is set with ERD Balancing Rules from the Options menu, the Model Balancing function balances data elements and/or entities against existing data flow diagrams. The first option (All Fundamental Elements Must Be Used on a DFD) tells the Workbench whether or not you want to be made aware of any data elements that aren't used. In other words, is an element listed as part of an entity but not used by at least one process on at least one data flow diagram? As for the second option (Every Entity Must Correspond to a Data Store ), there is some degree of correspondence between the entities in a data model and the data stores in a process model. The nature of this correspondence is not generally agreed upon. You can specify that every entity must correspond to a data store with the same composition and the analyzer will notify you if this is not the case.

________

See Also

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Analysis

Key Synchronization

Analysis Error Box


Object Modeling Overview

Class diagrams allow you to express the object model of your project diagrammatically. You can describe the classes in the data you are modeling and the relationships between them by drawing them onto a diagram. Each diagram or view can show an arbitrarily large or small part of your object model. You can show multiple views of your object model by including different combinations of classes and relationships on various diagrams. However, the entire object model is retained in the repository.

All information you place in a view is, of course, captured by the repository and is available to your process model (data flow diagrams), your structure charts, and your data model (entity relationship diagrams), where applicable, if you have an integrated tool set. The Analyze function can assist you in determining any syntax or definition problems with your object model.

________

See Also

Visible Rules Overview

Object Modeling Graphics

Data Flow Diagrams

Functional Decomposition Diagrams

Structure Charts

Entity Relationship Diagrams


Object Modeling Graphics

Class diagraming is designed to give you the ability to clearly show the characteristics of your classes while still allowing a certain degree of flexibility in modeling style. By careful use of configuration settings and the line and symbol sets, you have the ability to model different types of classes and various line terminators that show relationship cardinality.

________

See Also

Class Symbol

Relationship Lines


Class Symbol

The class symbol is the primary graphic used when creating an object model. When a class is added to a diagram, an entry is created in the repository so that additional information can be specified regarding the class, in order to complete its definition. Each class can be associated with other classes throught the use of relationship lines.

Each class symbol can have a subtype classification assigned when modifying the definition in the repository, which is used to provide addtitional information about how a class is to be used.  A Standard class (the default) indicates a normal class.  Elemental indicates the class contains no attributes and physical characterics should be defined.  (A Data Element and a class with a subtype of Element are equivalent except that methods cannot be specified for a Data Element.)  Structure indicates a C style structure should be used instead of a class.  Members ( or attributes ) of a structure are public by default while members of a class are private.  Union indicates a C style union should be used instead of a class.  Entity, Associative, and Attributive indicate the class is persistent and can be used on an Entity Relationship diagram.

Class symbols can be shown on a class diagram at three levels of detail. The diagram can be set to show only the class names, the class name and attributes, or class names, attributes and methods. When changing the detail level, class symbols are automatically resized and the relationships are reconnected properly.

________

See Also

Relationship Lines


Relationship Lines

Relationships can be labeled in one or both directions. You set this value when you create the project. Relationship lines between classes usually have terminators on each end that show if the relationship cardinality is 0:1, 1:1, 0:many, 1:many or many:many. You can set default terminators to show relationship cardinality with Line Settings from the Options menu, as described in Default Line Selections. If Auto Label Lines is enabled, after you add a relationship to your view, a dialog box will open in which you can enter the labels for each direction of the relationship. At that time, you will also have the opportunity to change the cardinality from the default to whatever you choose. You can also specifiy a textual phrase that describes the cardinality.

Different types of relationships can be specified on class diagrams, including inheritance and aggregation relationships. Role names and qualifiers can also be specified.


Analysis for Class Diagrams

The Visible Rules will check for four classes of errors :

Syntax errors. These are things that would make your class diagram impossible for the Workbench to understand.

Connection errors. These indicate classes are improperly associated with other classes. Different rules apply depending on whether the relationship type is normal, inheritance or aggregation.

Use errors. These indicate classes have not been used, either on a diagram or in the definition of another class.

Definition errors. These indicate a class definition is incomplete, either attributes or methods have not be defined. Different rules apply depending upon the class subtype.

________

See Also

Analysis Error Box	Normalization Analysis
Analyzing Data Flow Diagrams	Key Analysis
Analyzing FDDs	Key Synchronization
Analysis for Entity Relationship Diagrams	Process/Data Model Balancing


Analysis Error Box
Analysis Error Message Box

The Analysis error message box, including similar boxes from SQL schema generation, shell code generation, etc., is a special kind of window. It will allow you to keep it on the screen, size it and move it around while doing other things within the Workbench. This means that you have the option to keep it on the screen while you correct the errors displayed. You can size it so that it displays only one or two errors at a time while you open and edit diagrams, work in the repository, etc. Working this way is an alternative to having to print the list of errors and work from the printed sheet.

________

See Also

Analyzing Data Flow Diagrams

Analyzing FDDs

Analyzing Structure Charts

Analysis for Entity Relationship Diagrams

Analyzing Class Diagrams


Repository Overview

The Visible Repository adds database management and data definition capabilities to your Workbench. The Repository functions interactively with the diagraming and rules to automatically create an organized database of project information for each of your projects as it is developed. A project's repository is automatically updated and maintained during all of your work sessions, and it can be accessed at any time to manually add, delete, edit or review entries. Reports showing repository entry information can also be printed in a variety of selectable formats.

The repository is accessible by selecting Define at the Repository menu. The following are some highlights of the functions offered by the repository:

All objects drawn on diagrams of methodology projects are automatically entered into the repository, and are addressable via the label field at the top of the dialog box.

You can manually make additional entries into the repository by assigning a label, and entering information into a blank repository dialog box.

You can page through the repository dialog boxes to display all database entries for the selected project.

You can edit most fields in the repository dialog boxes. To access fields within the repository, click on the system menu of the repository dialog box with the left mouse button while in a repository data definition screen, a list of repository fields will be available. To advance to a particular field, click on the field with your left mouse button, and the cursor will automatically be placed within the chosen field. You can also place you cursor in the field and click with the left mouse button to make this the currently selected field.

You can set up search criteria and search through a selected portion of the repository.

You can enter part of a label and perform a wildcard select to locate the first matching label in the repository, or a wildcard find to display all repository entries that have labels that begin with the characters you entered.

You can write certain repository fields to a specified DOS file, or read data from a DOS file into those fields.

You can read and write repository information to and from the Windows Clipboard.

You can set up selectable report criteria and print only the selected group of repository records.

________

See Also

Enabling the Repository

Cut, Copy and Paste


Enabling the Repository

For the repository to operate in conjunction with your project, the rules and repository must be enabled when creating a new project. If the rules or repository selections are disabled when a new project is initiated, a repository will not be maintained for that project.


Accessing the Repository

The repository can be accessed in three ways

You can access the Repository menu by selecting the Define function. If no diagram object is active, the Workbench will present a blank repository dialog box, as shown in Figure 5-1 of the Workbench manual. You have several options at the blank dialog box, all of which are explained in Repository Searches. If a diagram object is selected, you will be presented with the repository entry for that object. (You can also do either of these using keyboard shortcuts.)

You can double click on a named diagram object to bring up its repository entry.

You can click on a diagram object with the right mouse button to select an object and bring up its Object menu. Selecting Define from this menu will bring you to the repository entry for the object.


Understanding the Repository Dialog Box

The repository dialog box for each entry provides you with information and functional selections, as shown in Figure 5-1 of the Workbench manual. All entries contain at least two pages of information, as described below.

The Repository Dialog Box Buttons

The repository dialog box buttons (see Figure 5-2 of the Workbench manual) are always displayed at the bottom of the box, although not all buttons are enabled at all times. You can use them to control activities within the Workbench repository for your project. As always in Windows, you can use the keyboard shortcut by holding down the [image] key and pressing the underlined letter to execute the button function. The button functions are as follows:

SQL Info

For entities and relationships, this activates the SQL Schema Generation Information dialog box. From there, you can add information about triggers, check constraints and keys to be generated with an SQL schema. For tablespace objects, this activates the Tablespace Properties dialog box. From there you can add physical storage information for a tablespace. This dialog box is dependent upon the current SQL dialect. The button is only active when the entry for one of the varieties of entities, relationships, or tablespace is displayed in repository dialog box.

History

This provides a means of jumping back to a previously displayed repository object. A list is kept of every object definition that has been displayed. If you choose this button the history dialog box will appear and you can jump between entries either by double clicking on an entry or highlighting the entry and pressing the enter key. The maximum is 500 objects.

Delete

This will delete the currently displayed entry from the database. Whenever you delete a repository entry, all associated entries will be automatically updated. For example, if you delete a data flow, the Workbench will delete any references made by other entries to the deleted flow. Note: Any entry may be deleted from the repository provided that it has no diagram locations. (An entry has locations when it appears on diagrams or when it is referenced in the composition field of another entry; only diagram locations are relevant here.) If an entry has diagram locations, these must be eliminated before the entry can be deleted. However, an entity, even one that has no diagram locations, is a special case. It cannot be deleted from within the repository if the repository shows it as being attached to one or more relationships. The relationship(s) must deleted first.

Erase

This will clear the display of an entry and display a blank dialog box or eliminate all edits you performed that have not yet been saved. If you edited the entry prior to initiating the erase, you will be prompted to confirm the erasure of your changes without saving them.

Next

This will display the next sequential repository entry that meets the repository search criteria you have set. The ordering of repository entries is alphanumeric by label.

Prior

This will display the previous sequential repository entry that meets the repository search criteria you have set.

Save

This will save all changes to an entry; the dialog box entry remains displayed. The date created and date last altered information will be altered as applicable, too.

Exit

This or Esc will exit from the repository and clear the dialog box from the screen. If any edits have been made, you will be prompted to save the changes or ignore them.

Search

This will initiate a search of the repository for another item. It is explained in detail in Repository Searches.

Expand / Contract

This allows you to expand the displayed size of certain fields. The fields normally displaying four lines are expanded to display fifteen lines, so that you can work with a larger section of the field at one time. When the field is expanded, the button will read Contract. You can move around within the edit box in the usual Windows manner. The alias, composition, notes, values & meanings, process description, module description, and location fields may be expanded and contracted like this.

Jump

This will allow you to immediately jump to another repository entry or load a diagram. When the cursor is positioned on the line containing the name of another repository entry, pressing Jump will allow you to quickly jump to the repository entry for the first item listed on that line. You can also execute the jump by double clicking on that line. On lines that contain the names of more than one repository item, moving to an item beyond the first will require you to highlight that item before pressing Jump. To load a diagram referenced in the location field, highlight the diagram and press Jump. See Loading a Diagram from the Repository for more information.

Back

This button provides a means of jumping to the previous repository entry. You can then continue to move backwards displaying previous repository entries.

File

This will allow you to either insert text from a DOS file at the cursor position or to copy highlighted text to a DOS file. It is explained in Copying Data To and From DOS Files.

QComp

This button provides a means of populating the composition of a repository entry with components and the physical information. If the current object is a Class, it also provides a means of adding attributes and methods.  Just place the cursor in the composition, attributes, or methods field and press the Qcomp button or press Alt-Q, or double-click on the field while pressing the [image] key.

Page Back (<<) and Page Forward (>>)

This will allow paging either forward or backward for additional repository definition information.  When you first enter the repository dialog screen, the Page forward button will be highlighted; you can then press this to move to the next screen, and so on until there are no more screens. You can then use the Page back button to move back. The number of page jumps you can perform depend upon how many user-defined attributes and/or objects you have defined for your VAW site. Each user-defined attribute has a field in the repository of every object and if you have user-defined objects defined as links to a particular object, then another screen definition page exists for each linked object. The total number and current page are displayed box at the top right of the repository screen

Search Criteria

This will allow you to specify how the repository is to be searched. It is explained in the Repository Search Criteria topic.

Repository Object Menu

In addition to the buttons, you can use the right mouse button to activate the repository object menu for each of the repository fields.  When you press the right mouse button over a field, the menu will give you a list of options that can be peformed on the current field. The Shift-F10 keyboard shortcut can be used to activate the repository object menu.

________

See Also

Copying Data To and From the Windows Clipboard

Understanding Repository Fields

Data Element Physical Information

Creation and Modification Dates


Repository Searches -- Overview

You can search a project's repository in several ways. The most obvious way is to press the Search button when the repository dialog box is displayed. You can then enter the name (or part of the name) of the desired item into the search box (see Figure 5-3 of the Workbench manual). The Workbench will search incrementally as you type. When the Workbench finds your item, pressing Select will cause the repository entry for that item to display in the dialog box.

Note

If your search key (the full or partial name) is very broad, it can take a long time to fill the search list box with all of the matching repository entry names. In this case, the Workbench will do as much as it can in ten seconds and then return control to you. Periodically, the Workbench will continue to add matching items to the list box when it senses idle time; you will see the hour glass cursor when this takes place. If you want to select an item near the end of the alphabet in such a full list box, there might be a delay before the item displays.

Another way is to enter a full or partial entry name in the dialog box label field and press either the Search button or [image]. The Search box will display with an incremental search already completed on the full or partial name you entered. (For long-time Workbench users: this wildcard find formerly required you to enter a * at the end of the name. This can still be done but is no longer required.)

Yet another way to search is to enter a full or partial item name and affix a * to the end of the name. Pressing either the Search button or [image] will cause the repository to search for the entered text and accept and display the first item found that matches the name. This is called a wildcard select.

If the search list box contains objects that belong to classes ( either Modules or Member Names ), the class of the item will be displayed in parenthesis following the item.  If you want to change the sort order so that all members of a class are grouped together, press the Class button.  The list will be resorted in class order.  To revert to member order, press the  Member button.

Although less obvious, both the Next and Prior buttons execute searches. They don't search on an entered name, but on a name alphanumerically greater or lesser, respectively, than the currently displayed item.

There are three more specialized uses of the Search function. These are mentioned in the sections entitled Populating a Composition Field with Search, Creating Clusters and Domains.

All of the above searches are subject to the search criteria you enter.

________

See Also

Composition

Understanding the Repository Dialog Box


Repository Search Criteria

You can set up criteria to be applied when searching for repository entries. Upon entering the repository, you can press Search Criteria and the window shown in Figure 5-4 of the Workbench manual will be displayed. Three sets of criteria may be selected, all of which operate concurrently to determine the subset of the repository to be accessed. The criteria currently in effect are displayed on the title line of the dialog box. Note that until you exit the Workbench program and return to Windows, the search criteria are maintained and will be present the next time the Repository is accessed.

The Searches Affected category determines which searches are to be impacted. If you select All, then all searches will be limited by the criteria, including wildcard selects, manually entered complete labels, and next and prior searches. If you select Next/Prior Only, then the search criteria will apply only to next and prior searches.

The Entry Characteristics category of search criteria allows the repository to present All entries (effectively disabling this set of criteria), Undefined entries (those for which you have not yet entered any descriptive information), or entries that have No Location references.

The Entry Types category defines the type of entry that will be presented during searches. You can specify All entries, a compound type like All Entity Types, or you can specify a specific entry type to be searched for.

The Scope category allows you to limit searches by diagram type. Searches can be conducted on the repository entries specific for data flow, functional decomposition, structure chart or entity relationship entries, or on all entries in the repository regardless of diagram type. You will notice that the list of entry types will change when this is done, displaying the entry types that correspond to the selected diagram type.

Repository Search Criteria Default

When working in the Repository, the search criteria defaults to the current diagram type.

________

See Also

Populating a Composition Field with Search

Domains


Populating a Composition Field with Search

The repository Search function can be used to populate the Composition field of a repository item. To do this, place the cursor in the item's Composition field and press the Search button to display the repository search dialog box. In the Search list box, locate each repository item you want to place in the Composition field and press the Search button; the item will be added to the Select list box at the bottom. When you have found all of the entries you want, press the Select button and they will be entered into the Composition field.

________

See Also

Domains


Copying Data To and From DOS Files

This function allows you to copy information to or from the Values & Meanings, Composition, Notes, Process Description, Macro Description, Modules Contained or Module Description fields. You can copy the fields to a DOS ASCII file ; you can then read the information from the DOS file into another field. This provides an easy way to copy certain information into multiple entries without having to retype it.

To copy data in a repository field to a file, highlight the information you want to copy and press the File button. The dialog box will ask you what you want to name the file and where you want it stored.

To copy data in a file to a repository field, place the cursor where you want the inserted data do go and press the File button. The dialog box will ask you what the name of the file is and where it is stored. If you perform the read from a file immediately after copying a repository field to a DOS file, the Workbench will default to that DOS file name.

________

See Also

Understanding Repository Fields


Copying Data To and From the Windows Clipboard

The Workbench allows you to copy repository information to or from the Windows Clipboard. To copy to the clipboard, highlight text in any edit control in the repository dialog boxes and press the keyboard shortcut for Copy displayed in the Workbench Edit menu. To enter data from the Clipboard, position the cursor where you want the text to go and press the keyboard shortcut for Paste displayed in the Workbench Edit menu.

________

See Also

Understanding Repository Fields


Repository Fields -- Overview

The names of fields which identify and describe each repository entry are listed along the left side of both pages of the dialog box as shown in Figures 5-5 and 5-6 in the Workbench manual. The fields include a combination of data that is entered automatically when a diagram is saved and data that is entered manually during repository editing sessions. Not all fields are displayed at once; you may need to use the and Page Forward and Page Back buttons, or select the appropriate field from the System Menu to see a particular field.

Different repository entry types have different combinations of dialog box fields in which data and descriptive information can be entered and stored. For example, repository entries for data flows will always have both an Alias field and a Composition field (in addition to Label, Entry Type, Notes and Location fields). Repository entries for Processes will always have a Process Number and Process Description field (in addition to Label, Entry Type, Notes and Location fields). Entries for relationships will always have an Associator Element and an Attached Entities field, and entities will always have a Relationships field on page two.

Possible Repository Information Fields

Label	Entry Type	Description
Alias	Related To	Process #
Data Mod(s)	Values & Meanings	Process Description
Module Description	Macro Description	Modules Contained
Relations	Attached Entities	Associator Element
Composition	Attributes	Notes
Locations	Physical Characteristics	Long Name
Extended Attributes	Class Characteristics	Methods
Friends	User-Defined Fields	User-Defined-Objects
________

See Also

The Repository

Domains


Label

This is the name field by which every repository entry is accessed. It can be up to forty characters long, and the first character must be a letter. (For projects created without Rules and Repository, the forty-character name length limit is waived and longer names can be used to label diagram objects.) An entry which refers to an object on a diagram maintains the identical label that appears on the diagram. Entries that are manually entered into the repository can be assigned any label that does not already appear in the repository. The label for any repository item (including entities and relationships) can be changed so long as the item does not appear on any diagram and does not appear in the composition field of another item.

You can access any repository item via its label in the ways described under repository searches in Repository Searches, and from a diagram, as explained in Accessing the Repository. If the entry being searched for is not in the repository, the Workbench will assume that you wish to add a new entry and your cursor will be moved into the Entry Type field.

________

See Also

Repository Overview

The Repository


Entry Type

The contents of this field indicates the type of the repository entry. Normally, this field cannot be changed if the entry being displayed was added to the repository automatically by the Workbench (in order to guarantee consistency between the project diagrams and the database). Entry types that are automatically added to the repository include all data flow types except miscellaneous and all other rules-recognized entry types. All entry types except alias, relationship and information cluster can also be manually keyed into the repository.

Also, if the entry type is defined as a data element, data structure, generic couple, control couple, or data couple, it can be changed until you enter additional descriptive information in the Composition or Values & Meanings fields or until you enter physical information for a data element. This lets you to change either a data element to data structure and vice versa, or any type of couple to any other type of couple or to an interface table row, before the entry is saved.

Repository Entry Types by Diagram Type

Data Flow	Entity Relationship	Structure Chart	Functional
			Decomposition
Process	Entity	Module	Function
Data Flow	Associative Entity	Library Module	Process
File	Attributive Entity	Macro
Data Store	Relationship	Library Macro
Data Element	Data Element	Data Only Module
Domain	Display Format	Control Couple
Source/Sink	Domain	Data Couple
External Entity	Cluster	Generic Couple
Data Structure		Information Cluster
Miscellaneous		Data Interface Table Row
		Control Interface Table Row
		Generic Interface Table Row
		Program
Class	State Transition
Class	State
Member Name	Event
Relationship
Note

Each variety of module can have a subtype classification. These subtypes of modules are used to store SQL procedural code to be generated with SQL schemas.

Each class can also have a subtype classification which is used to provide addtitional information about how a class is to be used.  A Standard class (the default) indicates a normal class.  Elemental indicates the class contains no attributes and physical characterics should be defined.  (A Data Element and a class with a subtype of Element are equivalent except that methods cannot be specified for a Data Element.)  Structure indicates a C style structure should be used instead of a class.  Members ( or attributes ) of a structure are public by default while members of a class are private.  Union indicates a C style union should be used instead of a class.  Entity, Associative, and Attributive indicate the class is persistent and can be used on an Entity Relationship diagram.

________

See Also

The Repository

Structure Chart Symbols

SQL Schema Generation

User-Defined Fields

Class Characteristics


Description

This field provides a convenient place for you to enter a brief, high level description of the entry being displayed. You can enter a maximum of two lines of text. When you generate comments on columns or tables in SQL Schema Generation, this field is used. Also comments will be imported and export to and from PowerBuilder using this field.

________

See Also

The Repository


Alias

This field is displayed for all data flow diagram-based repository entries except processes and a number of entry types for other diagram types. It allows you to enter labels which refer to the same entry/object, but which are different than the label at the top of the dialog box. For each alias that you enter, the Workbench automatically creates a new repository entry of type Alias. That new entry provides a reference to the same repository entry from its label as well as its alias. Note that any alias entry will automatically refer back to the original entry via its own alias field.

Only one alias is visible in the dialog box at any one time, but you can scroll through all alias names in the usual Windows manner. There can be up to ten aliases for every repository entry which has an alias field. Each line may contain one alias of up to forty characters.

________

See Also

The Repository


Related To

This field is displayed for most structure chart diagram entry types. Different entry types are allowed to relate to different data flow diagram entry types. The following list shows you the structure chart entry types and the corresponding data flow entry types to which they may be related.

Module	Up to ten processes
Library Module	Up to ten processes
Macro	Up to ten processes
Library Macro	Up to ten processes
Data Only Module	One data flow, data structure, file or data element
Data Couple	One data flow data element
Control Couple	Any one data element
Generic Couple	Same as data couple
Only one Related To entry is presented in the dialog box at any one time unless you expand the field. There are up to ten Related To lines available for every repository entry which has a Related To field. Each line may contain one entry of up to forty characters.

________

See Also

The Repository


Process #

Whenever a process entry is displayed by the repository, this field appears. It is noneditable from within the repository; all changes must be made on a diagram. The process number is displayed as it appears on the project diagram.

________

See Also

The Repository


Data Mod(s)

The Data Mods field is a specialized field that appears only for describing data only modules included in information clusters. It is noneditable from within the repository; all changes must be made on a diagram. An entry for this field is automatically generated from a structure chart diagram, and its content is the name of a data only module that has its own repository entry.

________

See Also

The Repository


Values & Meanings

This field lists the possible values and meanings of data elements, miscellaneous entries and couples. Information entered into this field may be in any form that is relevant to the application being analyzed or designed. The field may contain up to 32K characters, and only four lines are visible in the dialog box at any one time unless you expand the field. You can scroll through the lines in the usual Windows manner. If you are defining PowerBuilder specific display or data values, see the Extended Attribute field description for an explanation on how to define these values.

________

See Also

The Repository


Process Description

This field can be used to enter a description for a process. The description should ideally be in some form of structured English or equivalent, so that data element references can be found within the field. The references provide a means for checking the process' incoming and outgoing data flows. Good structured analysis techniques dictate that a process description should exist only for the lowest level processes in a project. The field may contain up to 32K characters, and only four lines are visible in the dialog box at any one time unless you expand the display. Note that in the current release of the Workbench, data element references are not searched for in this field.

________

See Also

The Repository


Module Description

This field can be used to enter a description for a module or a library module or one of the subtypes used for SQL Schema Generation: triggers, check conditions and stored procedures. The description should either be source code for the purpose of some type of code generation or in some form of structured English or equivalent, so that procedures are documented for beginning processing, for calling other modules, and for the control and data couples being passed to and from the module. The field may contain up to 32K characters, only four lines are visible in the dialog box at any one time unless you expand the display. Refer to the Shell Code Generation section for more uses for this field.

________

See Also

The Repository

Adding SQL Schema Generation Information


Macro Description

This field can be used to enter a description for a macro or library macro or one of the subtypes used for SQL Schema Generation: triggers, check conditions and stored procedures. The description should  either be source code for the purpose of some type of code generation or in some form of structured English or equivalent, so that procedures are documented for beginning processing, for calling other modules, and for the control and data couples being passed to and from the module. The field may contain up to 32K characters, only four lines are visible in the dialog box at any one time unless you expand the display. Refer to the Shell Code Generation section for more uses for this field.

________

See Also

The Repository

Adding SQL Schema Generation Information


Modules Contained

The Modules Contained field is a specialized field that appears only for information clusters. It is automatically generated from structure chart diagrams and may contain up to seven module names. It is noneditable from within the repository; all changes must be made on a diagram. Any module name contained in this field also has its own entry in the repository.

________

See Also

The Repository


Relations

For an entity or class, the Relations field displays, for each relationship attached to this entry, the relationship name followed by the name of the entity or class on the other end of this relationship. These sets are ordered alphabetically by the opposite entry name. When an inheritance relationship is displayed, the characteristics of that relationship can be changed, otherwise the information is non-editable from within the repository; all changes must be made on a diagram.

This field allows you to jump to the repository entries for any of these entities, classes, or relationships by positioning the cursor on the line containing an entity, class or relationship name and pressing the Jump button.

________

See Also

The Repository

Inheritance Characteristics


Attached Entities
Attached Entities/Classes

The attached entities/classes for the currently displayed relationship are listed in this field. When an inheritance relationship is displayed, the characteristics of that relationship can be changed, otherwise, it is noneditable from within the repository; all changes must be made on a diagram. The field lists the two entities or classes attached to this relationship. Below the second entry name is listed the reverse of the current relationship. If either direction of the relationship has not been named, the name of the relationship in the reverse direction will be displayed as reverse of (opposite relationship name). This field allows you to jump to the repository entries for any of these entities, classes or relationships, as described above.

________

See Also

The Repository

Relationships

Inheritance Characteristics


Associator Element

Appearing for relationship entries only, this field gives you the opportunity to name a foreign key element. When the entry is saved, the Repository will create an entry for this special variety of data element. The analyzer can then use this name for key analysis and synchronization.

________

See Also

The Repository

Analysis for Entity Relationship Diagrams

Normalization Analysis

Key Analysis

Key Synchronization


Composition

The Composition field replaces the Values & Meanings field whenever the repository dialog box displays a file, data store, data flow, data structure, data only module, interface table row or entity. The field can be used to identify all of the components of the repository entry, such as: data elements, data flows, data structures, files, data stores, and couples (all types). For certain uses, the composition field does not allow all of the above entry types. It is automatically populated by the Split Data Flow function for DFDs, and the key synchronization function, for ERDs. Entry types with a specialized composition field are:

Data Only Modules. This entry type only allows the composition field to contain data elements and couples (data, control, and generic).

Interface Table Row. This entry type allows the composition field to contain a group of couples, but only couples of one type ; i.e. it may contain control couples but not generic or data couples, or it may contain data couples but not the other types.

For every item entered into the composition field, the Workbench will create a repository entry (if one with the same name does not already exist) and update that entry's location field. Likewise, if an item is removed from this field, that entry's location field is updated to reflect this. These repository entries are generally created as data elements, and may be changed to data structures. However some entries' composition fields deal with only specific component entry types (see the previous paragraph).

If you enter the Composition field and press [image] [image], a dialog box will open, allowing you to define up to a dozen components and certain of their properties. In addition to the component's name, you can specify its physical storage type, length and whether or not nulls are allowed. As you enter items, the dialog box will automatically scroll as necessary to allow you to enter further items until you reach twelve. When you have completed the entries, pressing OK will add them to the Composition field. If you need to add more than twelve components, press [image] [image] again and a new dialog box will open so that you can add more.  This speeds up the process of generating a table from an entity if you want to generate it without adding full descriptive information for all of the data elements involved.

Item names entered into this field may contain up to forty characters each and may consist of any upper or lower case letters, numbers, spaces, periods, underscore characters and hyphens, but the first character must always be a letter. Asterisks may be used to denote comments, with all characters following the asterisk on a line being ignored. All other characters in the field are considered delimiters, and are used to separate items and components entered into this field. A maximum of ten items may appear in one line; any additional items will be ignored. Item names may not wrap from one line to the next.

For entities, the composition field may carry descriptors of items indicating that they are keys or parts of keys. To indicate that a composition item is a primary key, prefix it with [PK]. To indicate a foreign key, prefix with [FK]. An alternate key is indicated by [AK#] and a performance index is indicated by [PI#]., where # is simply a number annotating of which alternate key / performance index this element is a part. Alternate key and performance index indication is strictly for your own reference; it is not used in any way by the analyzer (they are used, however, to generate indexes in some SQL dialects). Up to 32K characters are available in this field, only four lines are visible in the dialog box at any one time unless you expand the field. Keys can also be specified using the Add SQL Schema Generation Information dialog box.

Users who have purchased the Arthur D. Little IRMA import version of the Workbench will see a schema of the entity's hierarchy in the composition field. This is a non-editable field. However, you can use the field to jump to elements in the hierarchy.

________

See Also

The Repository

Populating a Composition Field with Search

Adding SQL Schema Generation Information


Notes

This field allows you to enter information in free form fashion for any repository entry. Up to 32K characters are available in this field, only four lines are visible in the dialog box at any one time unless you expand the field.

________

See Also

The Repository


Locations

This field displays an entry's locations; it cannot be edited. Two types of locations may be present in this field for any entry. The first type shows the label of the diagram on which the entry is located, followed by its diagram number in parentheses (DFDs only). The second type shows any other entries that reference the currently displayed entry in their composition fields. Only four lines can be viewed at any one time unless you expand the field. You can load a diagram directly from the repository by using the Jump button, which appears on the repository dialog box at the bottom of the screen. If you would like to load a referenced diagram from the location field, highlight the diagram by clicking on the name with your left mouse button and press Jump The diagram will be automatically loaded and the object you were viewing in the repository will be selected and visible to you.

Note

After you have chosen the diagram name and performed the Jump, you must close the repository by double clicking the top left corner of the repository dialog box or choosing the Exit button at the bottom of the screen. The diagram you loaded will reside behind the repository window until you close the repository.

-----------

See Also

Understanding the Repository Dialog Box


User-Defined Fields

The Workbench repository is extensible. New fields, called user-defined attributes, can be defined in a project's repository, allowing you to extend the information that can be stored with an object. The field information that can be stored includes name, type and length.

To establish new repository fields for all new projects within VAW:

Choose Define User Attributes from the Options menu and check New Project Defaults. You will be prompted for the following:

Name	The title given to a particular field, maximum 40 characters

Type 	Any valid Workbench-supported type Move your mouse to the drop-down arrow button at the right and click with the left mouse button for a  list of supported types.

Length[,scale] The size of the field (length), with optional scale being the number of digits to the right of the decimal point.

After the attributes have been defined, and a new project is created, you can access the field(s) from the repository definition for each object by choosing one of the two paging buttons located on the repository dialog box at the bottom right of the screen. Each user-defined attribute is represented in the VAW as a separate page.

Note

Once these new fields are defined, you must create a new project for access to these fields. They WILL NOT be accessible with the currently selected project unless you select Add to Current Project. Another important note if using a network version of VAW, every user-defined object is accessible with any subsequently created project. (i.e. if you create a 'date created' attribute field, anyone else with access to VAW will also see that 'date created' attribute field for objects in any project they may create.)

To add/remove user-defined repository fields to/from the current project:

Choose Define User Attributes from the Options menu and check Current Project. The list of attributes defined fro the current project will be listed. You can either remove an existing attribute or add a new definition. If you want to add a new attribute, you will be prompted for the following:

Name	The title given to a particular field, maximum 40 characters

Type 	Any valid Workbench-supported type Move your mouse to the drop-down arrow button at the right and click with the left mouse button for a  list of supported types.

Length[,scale] The size of the field (length), with optional scale being the number of digits to the right of the decimal point.

If you choose to remove an attribute, the repository of the current project will be modified. This may take several minutes depending upon the size of the project.

Note

Once these new fields are defined for the current project, they WILL NOT be added to the new project default list unless you select Add to New Project Defaults.

To establish new repository fields outside of VAW:

Edit the VAW.INI file, located in the Workbench installation directory. Insert the following configuration statement for each new data field:

User Attribute n= name[,valid type] [,length[,scale]]

where the following definitions apply:

n -	a unique number assigned to each user-defined field.

name -	a title given to the field.

valid type -	a name in the list of Workbench-supported types.

length -	the size of the field.

scale -	the number of digits to the right of the decimal point.

Save the above changes.

The user-defined fields now denoted in the VAW.INI file will appear in any project you subsequently create.

Note

There is a maximum of 100 user-defined attributes per project, i.e., each object can have no more than 100 additional fields attached.

Whether you have the single-user or the network version, the file you need to edit is the VAW.INI file.


User-Defined Objects

You can now define your own objects, making the VAW repository fully extensible. This feature will allow the user-defined objects to be linked to any repository objects and reference other objects within the composition field of the user-defined object. You can then produce an association matrix report depicting the linkage between objects.  An applicable example would be, a requirement entry type. The requirement objects you define, could then be linked to a process(es) that satisfies the requirements. Other examples would be critical success factors, business rules, goals or test plans.

To create a user-defined object, choose Define User Objects from the Options menu. A dialog box will appear with the following prompts:

New Project Defaults: Choose this option if you want to modify the list of objects that are added to all new projects.

Current Project: Choose this option if you want to modify the list of objects that are defined for the current project. If this option is selected, objects can either be added or removed, but the definition of existing objects cannot be changed.

Name: This is the name of the new entry type being created. Whenever you define an object, this name will appear in the list of Entry Types on the initial repository definition dialog box.

Field Name: This name will be associated with the description field of the new entry type in the repository. The VAW automatically enters the name of the new entry type as defined above, followed by the word Description, in this dialog box field. For example, if you defined a new object type called requirement, as you enter the new object type in the Name: field, you will notice the name Requirement Description is automatically entered in the Field Name:. Now when you open the repository and define an object of type requirement you will see the content of Field Name: listed as an actual dialog box field within the repository. You can override this naming convention and type your own name if you choose.

Composite Type: This choice is optional. If you choose this option by clicking your left mouse button on the check box labeled Composite Type, you will allow any newly defined objects of this entry type to reference other repository entry types in the Field Name field of the repository, as described above. For every item entered into this field a new repository entry will be created,  if one does not already exist, and the location reference for this entry will be updated. See a Composition Field for more details.  If this option is ignored then the defined Field Name: field will be considered a free form text field with a 32K character limit.

Contains: If you have defined an object as a composite type you are given the choice of the entry type(s) you want to include. You may choose a single type, group type or all types. Click on the drop-down arrow button for a listing of types. If you choose all, then the default creation type for a item entered into the composition field will be a Data Element

For example, if you define a user-defined object called database, and you would like to reference any Entity objects the various database objects will include in the  composition, the definition would be as follows: Composite Type would be chosen by clicking the check box provided, and in Contains you would choose ALL ENTITY TYPES. You could now reference all the entities that comprise a  particular database object in the Field Name: field of the object repository definition. This new field will be located on the initial definition screen for the user-defined object you are defining.

Allow Linkage: This option will allow a user to establish a linkage or series of linkages between repository objects and user-defined objects. To choose this option, click the left mouse button on the check box labeled Allow Linkage. This will insert a check mark in the box and turn the feature on.

Description: This edit control is used to enter a descriptive name for the linkage field in the repository. This descriptive name will appear as a field in the repository for any object type you have defined in the Link To: box below. In this field you will choose the user-defined object(s) that the particular object you are defining, will be linked to.

Cardinality: This list box describes the cardinality between any linked objects. The default setting is 1:1. This means that only one user-defined object can be linked to one repository object. There a four cardinalities allowed. The entry to the left of the colon always refers to the user-defined object. The entry to the right always refers to  the linked repository object.

Link To: This list box describes the repository types that can be linked to the user-defined object. The default is ALL. You can click the drop-down arrow button for a list of options.

For example, if you defined a requirement object type, and you would like to link the objects of type requirement with objects of type process, in other words, a process may satisfy one requirement, but a requirement can be satisfied by one or more process(es). The definition would be follows:

Allow Linkage would be chosen by clicking the check box.

description will be the field name that will contain the linkages (e.g. Satisfies Requirement).

cardinality would be 1:MANY.

Link To type would be PROCESS.

You could now enter the requirement satisfied by a process in the proper field of the process definition, thus establishing a linkage. To access the linkage field, you must page using either the page forward or page back button enhancement described earlier, or select the field name from the system menu of the repository dialog box. You can then issue a search for a list of all requirement objects,  pick the requirement that is satisfied by the process and enter it. See Populating a Composition Field with the Search Button for more details.

Note

If you modify the New Project Defaults list, you must create a new project in order to implement newly defined User-Defined Objects. They WILL NOT be valid with the currently selected project unless you select Add to Current Project. Another important note: if using a network version of VAW: every user defined object is assessable with any subsequently created project. (i.e. if you create a requirement object,  anyone else with access to VAW will also have that requirement object type in any project they may create.)


Attributes

The Attributes field replaces the Values & Meanings field whenever the repository dialog box displays a class. The field contains a list of the data members for the class showing the member name and type.  To add, change, or remove members, click on the Attributes field and press the Qcomp button, or [image] [image], or select Add/Change from the Repository Object menu, or double-click on the Attributes field while pressing the [image] key.

For each attribute, the following pieces of information can be defined:

Name. The name of the attribute. Each attribute of a class will have a separate entry in the repository with a type of Member Name. This is an optional field. The search button can be used to find other Member Names in the repository.

Type. The attribute type can be a Class, Data Element, or Data Structure. If the type does not exist in the repository, a new class will be created. The location field of the attribute type will contain a reference to the current class. This is a mandatory field. The search button can be used to display a list of valid types. If the attribute type is a Data Element or Elemental Class, its physical characteristics will be displayed.

Limit. The number of occurrences of the attribute. If this field is blank, the attribute occurs once.

Reference. A qualifier to indicate the access method for an attribute. Value indicates an object of type Type will be used; Address indicates a pointer to the object is to be used; and Reference indicates a reference to an object is to be used. The default is Value.

Visibility. Public members have global visibility. Private members are only accessible to member functions and friends. Protected members are accessible to derived classes and friends. Implementation members are only accessible to the class itself. The default is Private.

Qualification. Constant indicates a members value cannot be changed. Volatile indicates the member can be modified by something other than the program, either the operating system or hardware. Static indicates there is only one instance of the member regardless of the number times a class is instantiated. The default is None.

Physical Characteristics. If the attribute type is elemental, the physical characteristics can be set.

For every item entered into the Type field, the Workbench will create a repository entry (if one with the same name does not already exist) and update that entry's location field. Likewise, if an item is removed from this field, that entry's location field is updated to reflect this. These repository entries are generally created as classes unless a data element already exists with the same name or the physical characteristics are defined.

As you enter items, the dialog box will automatically scroll as necessary to allow you to enter further items until you have finished. Insert is used to insert a new attribute into the list at the current position, while Delete will remove the current attribute ( the current position is indicated by >> ). When you have completed the entries, pressing OK will add them to the Attributes field

Item names entered into this field may contain up to forty characters each and may consist of any upper or lower case letters, numbers, spaces, periods, underscore characters and hyphens, but the first character must always be a letter.

________

See Also

The Repository


Long Name

When a repository entry, either a Member Name or a Module , belongs to a class, the full name of the entry includes the class name. The Long Name field will display this name, and in the case of modules, include the argument list (the argument list is required to differentiate overloaded member functions). If you want to change the argument list for class method, click the right mouse button on the Long Name field, and select Change. If you want to change the class to which the method belongs, select Class from the Repository Object Menu. To display the class definition, press the jump button.

________

See Also

The Repository

Attributes

Methods


Class Characteristics

Concurrency is a class property that distinguishes an active object from inactive object.  An active object may represent a separate thread of control.  A sequential object is a passive object whose semantics are guaranteed only in the presence of a single thread of control.  A guarded object is a passive object whose semantics are guaranteed in the presence of multiple threads of control.

A Persistent class exists beyond the lifetime of a executable program.  This means it must be stored on some kind non-transitory storage device.  If the subtype of a class is set to either entity, associative, or attributive, and the class is used on an Entity Relationship diagram, this field cannot be changed.

An Abstract ( or virtual ) class cannot be instantiated because it contains pure virtual methods.  If pure virtual methods exist for a class, Abstract will be checked.  If you attempt to uncheck this field, all pure virtual methods will be reset to virtual.  If you attempt to check it and virtual methods exists, they will be converted to pure virtual methods.

________

See Also

The Repository

Methods


Methods

Methods (or Member Functions) are the operations that are defined for accessing a class. The Methods field contains a list of the functions for a class showing the name, return value, argument list, and flags to indicate its visibility. To add, change, or remove methods, click on the Methods field and press the Qcomp button, or [image] [image], or select Add/Change from the Repository Object menu, or double-click on the Methods field while pressing the [image] key.

To add a new method for a class, press the New button, and type the name of method you wish to add. To search for methods that have already been defined in the repository, press the search button. The list will contain all modules that have previously been defined in the repository. If the module already belongs to a class, the class name will be displayed. Note that when you select a module that already exists, the complete definition for that module will be used including return value and argument list. Press OK to add the method name to the list of methods for the current class.

For each method, the following pieces of information can be defined:

Returns. The return type can be a Class or Data Element. If the type does not exist in the repository, a new class will be created. The location field of the attribute type will contain a reference to the method. This is an optional field. The search button can be used to display a list of valid types.

Limit. The number or size of the parameter. If this field is blank, it occurs once.

By. A qualifier to indicate how the return value is passed. Value indicates a copy of the parameter will be passed; Address indicates a pointer to the object is to be used; and Reference indicates a reference to an object is to be used.

Visibility. Public methods have global visibility. Private methods are only accessible to other member functions within the same class and friends. Protected methods are accessible to derived classes and friends. Implementation methods are only accessible to the class itself. The default is Public.

Qualification. Static indicates a method can be used without a specific instance of an object (it can only be used with static attributes( data members )). A Virtual method is one that you expect to be redefined in a derived class. A Pure Virtual method has no definition and must be defined in a derived class.  A class with any pure virtual functions is an abstract (or virtual) class. The default is None.

Arguments. A list of parameters to be used by the method. This is an optional field. If a method appears more than once with the same name within a class, it must have a different argument list for each definition. This is known as function overloading.

When a method is added to a class definition, an entry of type Module is created in the repository. The long name will include the class name and the argument list. The argument list is need to differentiate between overloaded functions.

Note

Because the same name can be used for more than one method, there may be duplicate Module entries in the repository, each belonging to a different class.

________

See Also

The Repository

Argument List


Friends

The Friends field displays a list of both friend classes and functions. A friend is allowed access to the private data members of a class.

To add friends, click on the Friends field and press the Search button, or select Add from the Repository Object menu, or double-click on the Friends field while pressing the [image] key. A list of classes and member functions will be displayed in the Search list box. Locate each repository item you want to place in the Friends field and press the Search button; the item will be added to the Select list box at the bottom. When you have found all of the entries you want, press the Select button and they will be entered into the Friends field.

To remove a friend, highlight the desired item and press the delete key or select Cut or Delete from the Repository Object menu.

________

See Also

The Repository


Argument List

When defining methods (member functions) for a class, the parameters to the function need to be specified. To add, change, or remove arguments, click on the Arguments button on the Method Definition dialog.

For each argument, the following pieces of information can be defined:

Name. The name of the parameter. This is an optional field.

Type. The parameter type can be a Class or Data Element. If the type does not exist in the repository, a new class will be created. This is a mandatory field. The search button can be used to display a list of valid types. If the parameter type is a Data Element or Elemental Class, its physical characteristics will be displayed.

Limit. The number or size of the parameter. If this field is blank, it occurs once.

Pass By. A qualifier to indicate the how the parameter is passed. Value indicates a copy of the parameter will be passed; Address indicates a pointer to the object is to be used; and Reference indicates a reference to an object is to be used. The default is Value.

Qualification. Constant indicates a parameters value cannot be changed. Volatile indicates the parameter can be modified by something other than the program, either the operating system or hardware. The default is None.

Physical Characteristics. If the parameter type is elemental, the physical characteristics can be set.

For every item entered into the Type field, the Workbench will create a repository entry (if one with the same name does not already exist). These repository entries are generally created as classes unless a data element already exists with the same name or the physical characteristics are defined.

As you enter items, the dialog box will automatically scroll as necessary to allow you to enter further items until you have finished. Insert is used to insert a new parameter into the list at the current position, while Delete will remove the current parameter ( the current position is indicated by >> ).  When you have completed the entries, pressing OK will update the method name field.

Item names entered into this field may contain up to forty characters each and may consist of any upper or lower case letters, numbers, spaces, periods, underscore characters and hyphens, but the first character must always be a letter.

________

See Also

The Repository

Methods


Inheritance Characteristics

When an inheritance relationship exists between two classes, you can identify the characteristics of the relationship by highlighting the desired relationship in either the Attached Classes or Relations field and selecting Change from the repository object menu (activated by pressing the right mouse button over the appropriate relationship).

For each relationship, the following pieces of information can be defined:

Visibility. An inherited class with a Public derivation means that the public members of the base class are public members of the derived class, and protected members of the base class are protected members of the derived class. Private derivation means both the public and protected members of the base class are private members of the derived class. Protected derivation means both the public and protected members of the base class are protected members of the derived class. The default is Public.

Virtual. A virtual base class can act as an indirect base class more than once without duplication of data members. This is useful for classes which are derived from multiple base classes.

________

See Also

The Repository

Attached Entitiess

Relationships


Data Element Physical Information -- Overview

For a data element or domain, physical information like data storage type and field length can be added. The Repository supports the following data types for data elements and domains:

Valid Storage Types

Name	Internal #		Name	Internal #
Autoinc	10		Bfloat	13
Binary	7		Bit	8
Bit Varying	47		Byte	42
ByteInt	51		Character	4
Date	5		DateTime	9
Decimal	2		Double Precision	31
Float	3		Graphic	27
Image	12		Integer	1
Interval	50		Logical	26
Long Raw	33		Long VarByte	53
Long VarChar	34		Long VarChar2	39
Long VarGraphic	35		Lstring	24
Lvar	25		Money	14
National Character	46		National VarChar	46
Note	15		Number	29
Numeric	30		Numericsts	41
Raw	32		Real	11
Rowid	40		Serial	37
Small DateTime	44		Small Float	36
Small Int	16		Small Money	43
Sysname	17		Text	18
Time	6		TimeStamp	19
Time Zone	48		TimeStamp Zone	49
TinyInt	20		VarBinary	21
VarByte	52		VarChar	22
VarChar2	38		VarGraphic	28
Zstring	23
Note: The column headed by Internal # indicates the Workbench internal code which corresponds to a storage type name.

________

See Also

Understanding Repository Fields

Physical Characteristics Repository Fields

User-Defined Fields

PowerBuilder / VISION Extended Attributes


Physical Characteristics Repository Fields

There are several repository fields used to describe a data element's physical characteristics:

Data Type

Physical data storage types for elements can be selected from a list box. Valid types for the current SQL dialect will be marked in the dialog box with an asterisk.

Length

The length field accepts the format digits, decimal digits.

Picture, Default Value and Owner

The picture, default value and owner fields will accept whatever text you enter into them.

Display

This field will allow you to customize the display format for the data element you are defining. This field will accept either the actual mask representation of the display format or a previously defined display format object. You can define a display format as a separate object in the repository and then reference that display format in the Display field. If you do not know the name of a display format you have already defined, you can use the search key by placing your cursor in the Display field and then choosing Search on the bottom of the repository screen. This will search the repository for all display formats defined matching the text you have entered.

Allow Null

The allow null field can be checked to signify Yes. Leaving it unchecked means No.

Minimum, Maximum, and Average

Users who have purchased the Arthur D. Little IRMA import version of the Workbench will have the Maximum, Minimum and Average information for a data element filled in with the values specified in IRMA on page two, after importation. This information is not editable. (See Figure 5-7 of the Workbench manual.)

Other Physical Characteristics Information

If physical information for a data element is defined, its Entry Type field cannot be changed.

________

See Also

Understanding Repository Fields

The Repository

Domains

SQL Schema Generation

User-Defined Fields

Extended Attributes


PowerBuilder Extended Attributes
PowerBuilder / VISION Extended Attributes

A data element can maintain extended  physical characteristics by specifying them on page three of the element's repository entry. You can then transfer these extended attributes and all data model information you have defined in the repository to Powersoft's PowerBuilder application development system or Unify VISION. Conversely, data model information can be extracted from a PowerBuilder database thus populating the VAW repository with all appropriate tables, columns, physical characteristics, extended attributes, primary and foreign keys and validation rules.

There are several repository fields used to define a column's extended attribute information. These extended attributes are PowerBuilder / VISION-specific information which enhance the definition of a column. The extended attribute screen is located on page 3 of an element definiton in the repository.

Header and Label

These fields contain the text to describe and identify columns and are used in the DataWindow object. You can also specify the justification for the header field using the drop down list box provided.

Edit Style and Type

These fields will specify how column data is presented in the DataWindow objects. The Edit Style field will contain the name of the style. The type of edit style for the column is defined in the Type drop down list box. Currently nine edit style types are supported. For each style there are appropriate flag settings which will appear at the bottom of the extended attribute screen as well as other edit fields depending on the type of edit style you have selected. Refer to the appropriate documentation for more information.

If you have specific display values, which the user would see and data values, which are stored in the database, these can be defined in the Values & Meanings field of the data element. The list of values should always start with BEGIN PBLIST and end with END PBLIST. Following the BEGIN PBLIST, is the actual list of display values in quotes and the data values in quotes, separated by a comma. For example if you had list of names defined as a list box and wanted to add the specific values seen by the user and the values stored by the database, the entry in the Values & Meanings field for the element would be as follows:

BEGIN PBLIST

'Paul Newman','PN'

'Bing Crosby','BC'

'Sylvester Stallone','SS'

END PBLIST

See Also

PowerBuilder Interface

Unify VISION Export


Domains

A data element can maintain physical characteristics by specifying them on page two of the element's repository entry. An alternative method of specifying physical information for an element is to list the name of a domain in its storage type field. (See Figure 5-7 of the Workbench manual.) A domain indicates the physical characteristics of a class of items. If the domain named does not yet exist, an entry in the repository will be created. (If you like, you can Jump to the new domain and enter information about it.) The details of the physical information can be specified on page two of the domain entry. (See Figure 5-8 of the Workbench manual.) Multiple data elements can reference a domain. If a domain is used, the storage type in the domain's repository entry can be selected from a list of items that are already defined in the repository. Domain entry page two information does not include the Allow Null and Owner fields. Likewise, if a data element references a domain, the Length, Picture, and Default Value fields are not accessible; these should be set in the domain entry.

Selecting a Domain with Search

The repository Search function can be used to select a domain for a data element. To do this, display page two of the element's repository entry. In the Type box, select Domain. Place the cursor in the domain name edit box to the right of the Type box and press the Search button to display the repository search dialog box. In the Search list box, locate the domain you wish to use and press the Search button; the item will be added to the Select list box at the bottom. Then press the Select button and the domain label will be added to the element's repository entry.

________

See Also

Understanding Repository Fields

The Repository

Populating a Composition Field with Search

Physical Characteristics Repository Fields


On-page and Off-page Connectors

Structure chart on-page and off-page connectors are in the repository, although they are invisible to you.

________

See Also

Understanding Repository Fields


Creation and Modification Dates

Creation and modification dates are maintained for all items in the repository. As items are modified, the latest-change date will reflect these modifications. Note that all of these dates are reset to the current date whenever a project is rebuilt. Existing creation and modification dates in IRMA will be correctly carried to the Workbench upon importation.

________

See Also

Understanding Repository Fields


Clusters -- Overview

A cluster is an object composed of entities. Its sole purpose is to be displayed on a data model view instead of a group of entities in order to eliminate detail and bring clarity to an otherwise complex view. This section explains the techniques for working with clusters within the repository. The Cluster Diagrams topic explains the diagraming aspects of working with clusters.

________

See Also

Creating Clusters

Modifying Clusters

Deleting Clusters

Cluster Diagrams


Creating Clusters

A cluster can be composed of entities already existing within the current project's repository. To create a new cluster, display a blank repository screen and enter the name of the cluster in the Label field and set the Type field to Cluster.

In the Composition field, you can manually enter the names of entities you know are not members of any other clusters, or you can use the repository search function to help you populate the cluster. To do this, place the cursor in the Composition field and press the Search button. The repository will be scanned and the search box will open displaying all entities which are in the free entity pool (i.e., not currently a member of a cluster). You move through the list and select an entity to be a member of the cluster. You can select multiple entities by double clicking on them; they will appear in the selection list at the bottom of the dialog box. You can eliminate an entity from the select list by highlighting it and pressing the Delete button. When you have finished, press the Select button and they will be added to the cluster's Composition field.

After adding any other description information for the cluster, press Save and the cluster will be created.

________

See Also

Overview

Modifying Clusters

Deleting Clusters

Repository Searches


Modifying Clusters

Entities may be added to or deleted from a cluster. To delete them, highlight them in the cluster's Composition field and press the Delete key. Entities deleted from the cluster are returned to the free entity pool and will be available to become members of other clusters. To add entities to a cluster, follow the procedure outlined in Creating Clusters, above. You may modify the name of a cluster at any time by changing the Label field of the repository entry for the cluster. Pressing Save will make your changes permanent.

________

See Also

Overview

Creating Clusters

Deleting Clusters


Deleting Clusters

A cluster is deleted like any other repository item, by pressing the Delete button of the repository dialog box when the cluster's entry is displayed. When you delete a cluster, all of its entities are returned to the free entity pool and will be available to become members of other clusters.

________

See Also

Overview

Creating Clusters

Modifying Clusters


Repository Reports -- Overview

A variety of reports on repository data can be generated. The output may be sent to a printer or to a file, whichever you have configured in your Windows Control Panel. If you are running the Workbench over a relational database engine, such a Gupta's SQLBase, third-party report writers can be used.


Print or Define a New Report

You can define the report content and format. The report definition (or format) is created by selecting the various criteria in the reports dialog box. The content may be defined as a Detailed Listing, Summary Listing, Cross Reference, Single Entry Listing, Related To Listing, Split Flows Listing, or one of several matrix reports. You may then select the fields you wish to be displayed on your report. The different report types are more fully described in the Help topics listed below.

Reports can be defined to include information for the entire project, a project branch (a diagram and all of its child and grandchild, etc., data flow diagrams), or for a single diagram. After defining the scope of the report, you may then select the fields you wish to see displayed by choosing the Fields button at the bottom of the Repository Reports dialog box. By default all fields are selected.

The report may also be defined to print from only one diagram type. Reports may be printed in alphanumeric order or in entry type order. You can specify that all entries, only entries with no descriptive information, or only entries with no location references be included in the report. In addition, reports can be made on specific entry types, or entry types with certain characteristics (undefined, for example).

A report may also include all standard entries (all those other than miscellaneous), all miscellaneous entries, or be limited to the specific entry types defined for the given diagram type.

________

See Also

Matrix Reports

Saving a Predefined Report

Selecting a Predefined Report to Print

Deleting a Predefined Report


Repository Report Preview

The content of a repository report can be previewed before the report is actually printed. In the Repository Reports dialog box, check the Preview box. After you press Print, a box will appear containing the report. You can view the report on screen. You also have the option of printing it, saving it to a file or abandoning it.


Printer Setup for Reports

You can change settings for the printer driver, such as page orientation (portrait or landscape), print to file, etc., by pressing the Setup button in the Reports dialog box.


Saving a Predefined Report

After you have defined a report format, you can save the report definition by pressing the Save Report button. (The definitions of reports with a very brief selection process, such as matrix reports, cannot be saved.) If you choose to save it, you must name it. The name will allow you to subsequently print repository data according to your predefined report content. For this and the other predefined report functions, you can scan your predefined reports and display the report details that are defined for each in the predefined reports dialog box.

________

See Also

Selecting a Predefined Report to Print

Deleting a Predefined Report


Selecting a Predefined Report to Print

Pressing Defined Report will allow you to print any repository report according to your predefined format. After you make this selection, you can select the name of the predefined report from the list. After you choose the report, you must indicate the specific branch (data flow diagrams only), or single diagram that is to be used as the scope of the report, unless the predefined report has a scope of the entire repository. The branch or diagram name is not saved with the other report criteria. It is done this way to give you the flexibility to save one format usable for numerous specific diagrams or branches.

________

See Also

Saving a Predefined Report

Deleting a Predefined Report


Deleting a Predefined Report

You can also delete any predefined reports by pressing Delete Report and choosing the name of the predefined report that you wish to delete.

________

See Also

Saving a Predefined Report

Selecting a Predefined Report to Print


Detailed Listing

Detailed Listings will print repository data from all information fields in the repository, as well as certain information which is captured by the Workbench but not displayed in the repository dialog box. In addition to the information from the dialog box, Detailed Listings provide the following information:

For Data Flows	Source and destination information for each occurrence of the data flow (entry type and label).

For Processes	Both input and output data flows to and from the process are listed by name.

For Structure Chart Symbols	Called-by and Calls information, including passed and returned couples, is provided for these symbols.

For Structure Chart Couples	Returned-from and Returned-to information is provided.

For All Items	Date Created and Date Last Altered.

________

See Also

Print or Define a New Report

Summary Listing

Single Entry Listing


Summary Listing

This report type prints only the repository data in the Label, Entry Type and Subtype, and Description fields. A Summary Listing may include all the same report contents that a Detailed Listing report has, including process, file, module, data element, etc.

________

See Also

Print or Define a New Report


Cross Reference

For each data element, couple, data structure or entity, this report will list all entries that reference it in a Composition field, and the referencing item's locations.

________

See Also

Print or Define a New Report


Single Entry Listing

This selection allows printing a detailed report for a single repository entry. After making this selection, you must choose the name of the desired repository entry for which the detailed report will be printed. The Search Repository dialog box will display for you to do this, and it works identically to the way described earlier for displaying and editing repository items.

________

See Also

Print or Define a New Report


Related To Listing

This listing reports on all structure chart items in a project's repository which have been related back to data flow diagram items, and the items to which they have been related.

________

See Also

Print or Define a New Report

Related To


Split Flow Listing Generation
Split Flow Listing

This report lists all parent and subflows for a data flow diagram, a branch (a diagram and its children/grandchildren), or a complete DFD portion of a project.

________

See Also

Print or Define a New Report


Matrix Reports

Matrix reports will generate information about one class of items with respect to those in another class, laid out as a matrix. For example, you can produce a report of what data stores occur on which diagrams or what data elements are listed in the composition fields of which entities.

There are three types of matrix reports.

Diagram Location matrices show on which diagram or view certain objects appear.

Composition Matrices reveal what items are listed in the composition fields of which other items. The item content is similar to that which appears in a Cross Reference report, but the layout is directed more specifically toward the item correspondences, without additional information about each item.

Association Matrices are more general and display which of a certain class of objects has a certain type of association with objects of another class. For example, you can produce a report showing what entities in the data model of your project are accessed by which processes in the process model.

The content selection for each report type is dependent upon the diagram type currently in effect (set in the report Project Scope box). For certain association matrices, inverted matrices with identical contents can be generated by producing the same report under a different diagram type. When Entire Repository reports are in effect, certain subclasses of items of objects (e.g., Library Modules) cannot be selected, only the general type of object (e.g., All Modules).

There are two matrix report formats that can be chosen from the reports dialog box:

A Wall Chart matrix will be physically as large as necessary to accommodate the data in the report. The Workbench will automatically segment it horizontally and vertically. You will have to cut and paste the pages to produce the final displayable report chart.

A One Page Wide matrix is more suitable for binding. All rows of the report will be printed, continuing over as many pages as necessary, but each page will display only as many columns as will fit on one page. After all rows have been printed, the report will start over, printing all rows and the next group of unprinted columns. This process will repeat until all columns have been printed.

________

See Also

Print or Define a New Report


Report Queries (Custom Reports) -- Overview

The custom report facility is a feature in the Workbench designed to allow you greater flexibility in defining reports. On the Repository menu you can select Report Query. You either enter the name of a report, select a report from the list of the available custom reports in the custom report file, REPORTS.TBL or manually enter the specification for the custom report into the Report Query Definition box. Once the custom report is selected or defined, you can print the report and optionally add it to the custom reports file with the Add button.

________

See Also

Custom Report File Format

Custom Report Definition Syntax

Examples of Custom Report Specifications

Syntax Error Checking

Repository Reports


Custom Report File Format

The custom report file is an ASCII file that contains custom report definitions. The file is in a free format. The text is made up of tokens, that is, keywords separated by spaces and tabs. Carriage returns count as spaces. The keywords are not case sensitive. Comments are introduced by two dashes. The format somewhat resembles SQL.

After adding a new report or changing one, there is a Check function, described in Syntax Error Checking, that will check the syntax of a custom report. Examples are given later in this section. Further examples are in the REPORTS.TBL file that was shipped with your copy of the Workbench.

________

See Also

Overview

Custom Report Definition Syntax

Examples of Custom Report Specifications


Custom Report Definition Syntax

The notations used in the report definition syntax are:

Items marked in bold face are required.

Items within square brackets ([ ]) are optional.

Curly braces ({ }) enclose a list of items separated by the | character, which stands for a logical OR, of which you must choose one.

Parameters, are delimited by % characters.

Italicized items will be explained later.

Extra spaces and tabs may be added as you wish to improve legibility.

Each report definition in the custom report file has the following syntax:

Syntax	Comments
report "report name"
params %parameter name% [ ... ]	clause is optional
select { * | detail | summary | column name list } [ from repository ]	* is the same as detail (default)
where restriction	clause is optional
order by { name | type [ ( entry type list ) ] }	clause is optional, default is order by name
format { multiple | single }	clause is optional, default is multiple
;
The report definition ends with a semicolon or with the end of file. The report name you enter will appear in the custom report Name box as a selection. For each parameter name, the report program will prompt you for the parameter value before the report executes. The parameter name can be used in the where clause text as a string, integer or date constant.

The select clause is used to specify the report type -- detail or summary; the default is detail. The optional from repository clause is for decoration purposes only.

The optional order by clause allows you to select the sort order; sorting by name is the default. When sorting by type is selected, an entry type list can be specified in parentheses. The entry type list allows you to define a custom sorting sequence of entry types. It also serves as an additional restriction -- only entries of types on the list will go into the report.

The optional format clause gives you the choice of printing multiple entries per page or a single entry on each page; the default is multiple.

The default restriction is no restrictions -- the entire repository will be used. The restriction, if entered, is a set of logical conditions concatenated using the logical operators NOT, AND, OR, and parentheses. Each logical condition applies to one repository column. The available columns are:

Repository Column Information

Col. #	Column Name	Column Type	Comments
1	name	String
2	type	Set
3	description	String
4	notes	String
5	composition	String	not for data elements, domains, couples, etc.
6	location	Location
7	creation date	Date
8	modification date	Date
9	process number	String	for processes only
10	data store number	String	for G&S data stores only
11	storage type	Set	for data elements and domains
12	domain	String	for data elements only
13	length	Integer	for data elements and domains
14	picture	String	for data elements and domains
15	default	String	for data elements and domains
16	allow null	String	for data elements only
17	owner	String	for data elements only
18	from entity	String	for relationships only
19	to entity	String	for relationships only
20	reverse relationship	String	for relationships only
21	parent flow	String	for data flows only
22	alias	String	for non-structure chart items
23	associator element	String	for relationships only
24	values & meanings	String	for data elements domains couples
25	related to	String	for structure chart items
26	IC data module	String	for info clusters only
27	IC modules	String	for info clusters only
28	module description	String	for modules only
29	process description	String	for processes only
30	function description	String	for functions only
The logical conditions allowed for a column depend on the column type. For columns of type String the allowed conditions are:

column	is	null
column	is not	null
column	=	"constant"
column	begins with	"constant"
column	contains	"constant"
where the constant is a string and null means an empty string.

For columns of type Date the allowed conditions are:

column	=	constant | current
column	>	constant | current
column	<	constant | current
column	<=	constant | current
column	>=	constant | current
column	!=	constant | current
The date constant can be in one of the following formats: mm/dd/yy, mm-dd-yy, mm/dd/yyyy, mm-dd-yyyy.

For columns of type Integer the allowed conditions are:

column	is	null
column	is not	null
column	=	constant
column	>	constant
column	<	constant
column	>=	constant
column	<=	constant
column	!=	constant
where the constant is a number. Null means that the value was not entered in the Workbench.

For columns of type Set the allowed conditions are:

column	is	null
column	is not	null
column	=	set_element
column	in	( set_element [, ... ] )
For column type Set, set_element is anything valid for that column name. So, for column name type, set_element is any valid Workbench entry type; a null value for Set type columns never occurs. Valid entry types are, by diagram type:

Data Flow	data element, process, data store, file, external entity, source/sink, data flow, miscellaneous, alias, data structure, domain, any DFD type
Functional Decomposition	function, process, any FDD type
Structure Chart	module, library module, macro, library macro, data only module, info cluster, data couple, control couple, generic couple, data ITR, control ITR, generic ITR, program, any module type, any couple type, any SC type
Entity Relationship	entity, associative entity, attributive entity, any entity type, relationship, cluster, any ERD type
For the column name storage type, set_element is one of the Workbench's storage types, which are listed in the table above.

For the Location column type the allowed conditions are:

exists location

exists location of entry_type [ "name_constant" ]

exists location on diagram [ "diagram_name" ]

exists location on branch of "diagram_name"

exists location with source of "name_constant"

exists location with destination of "name_constant"

Entry_type is one of the Analyst's repository types (see above). Name_constant is a name of a valid object with a storage type of entry_constant in the repository. If name_constant is not specified, the condition becomes true if a location of any object with entry_type exists in the repository.

________

See Also

Overview

Custom Report Definition Syntax

Examples of Custom Report Specifications

Syntax Error Checking


Examples of Custom Report Specifications

Several examples of custom report specifications are shown in Figure 5-1 of the Workbench manual.

________

See Also

Overview

Custom Report File Format

Custom Report Definition Syntax

Syntax Error Checking


Syntax Error Checking

The Check button in the Report Query dialog box performs a syntax check of the current report. If it is stored in the report definition file REPORTS.TBL it will check the syntax there. Check reads the report, parses it and displays various error messages (see Figure 5-12 of the Workbench manual). In those error message lines, n is the line number in REPORTS.TBL.

________

See Also

Overview

Custom Report File Format

Custom Report Definition Syntax

Examples of Custom Report Specifications


Custom Report Preview

The content of a repository report query can be previewed before the report is actually printed. In the Custom Reports dialog box, check the Preview box. After you press Print, a box will appear containing the report. You can view the report on screen. You also have the option of printing it, saving it to a file or abandoning it.


Printer Setup for Custom Reports

You can change settings for the printer driver, such as page orientation (portrait or landscape), print to file, etc., by pressing the Setup button in the Custom Reports dialog box.


Shell Code Generation - Overview

This Workbench function will allow you to generate code for the skeletons of programs in the C and COBOL languages. The shell code generation process is substantially user configurable.

Although the export of Workbench data to IBM External Source Format (ESF), used in that company's Cross System Product, is done with Export, on the Utilities menu, it is so similar to shell code generation that the two are covered together here. Note that since ESF was deliberately designed to be similar to COBOL in many ways, much of what is said here about COBOL also applies to ESF.


Scope

Shell code generation will encompass the sequence of functions or paragraphs that make up a program, including global data definitions, descriptive comments, function calls/PERFORM statements and passed parameters. Information entered in text fields in the Workbench repository for a Program item and for structure chart modules of various kinds will produce comments that will describe these items within the generated code.

Optionally, actual source code may be entered in the module description field of a module or macro, and this code will be placed in-line with the function calls or PERFORM statements that are generated by invocation lines. Couples or interface table rows (ITRs) used with invocation lines will generate parameters for C code.

________

See Also

Structure Charts


Code Generation Speed and Code Size

The code generation speed is quite rapid. The actual time it takes and the volume of data descriptions and code produced are, of course, dependent upon the amount of information entered into the project and upon the configuration and customization options chosen.


Target Languages

COBOL, C and ESF are currently supported. Which ones you have available depends upon the product configuration you purchased.


Flexibility of Usage

There are numerous code generation configuration options available by selecting Code Generation Options from the Options menu or by pressing the Options button in the Generate Code dialog box accessed from the Repository menu. Those options are described in detail in this section.

There are also ways to customize the code you generate for C and COBOL. This is done by editing the files VATYPES.H (for C) or COBOLTYP.TBL (for COBOL) that will be in your Workbench program directory.


Error Checking

The code generator will notify you of a number of types of errors that would cause bad or incomplete code to be generated and will notify you of certain inconsistencies in the way you have specified information within the project's repository. You will also be told of certain other items that effect program code, such as the way item names within the project's repository may have been changed in the generated code to conform to the rules of the target language. No attempt is made to substitute for the target language compiler.

________

See Also

Analysis Error Box


Code Generation Requirements

There are certain things you can do within the Workbench that will enhance and make any code you generate more complete. The most important of these are listed below.

Full Decomposition

The most fundamental requirement for good generated data descriptions is that all structural data items be decomposed fully to data elements within the project's repository.

Data Element Physical Information

Data elements should have physical information entered about them on page two of their repository entries or in domain items to which they refer:

Storage Type

The storage type entered will be translated, via one of the customization files mentioned above, to a USAGE (for COBOL), a data type (for ESF) or a native data type, typedef or structure (for C).

Length

Length values will translate to a display length for COBOL or ESF, or to one of several values for C. The number of decimal places entered will also be used.

Picture

This applies to COBOL only. Any picture you enter for a data element will be used verbatim in generated data definitions. It is your responsibility to ensure its correctness under COBOL rules.

Default Value

Any value you have entered in the default value field will be translated into the code of the language you have chosen. It will be made to conform, in so far as is possible, to the data type you have specified. If there is a total conflict, however, the default value will be ignored.

Structure Chart

If you do not have a structure chart already prepared in your project, neither procedural shell code nor function/paragraph calling and parameter passing will be generated. Only data definitions will be produced.

Program Item in the Repository

You ought to have at least one item in the project's repository of type Program. This gives you a place to enter textual information describing your program. In its composition field you must enter the name of the top module in your structure chart hierarchy. Only one module can be so indicated for a given program. You may have more than one program in a project, each indicating a different top structure chart module. If you have no program item, the entire project will be used as if it were one program and modules will be ordered alphabetically.

Descriptive Text

Text entered in the various description and notes fields of repository items will be used to add comments to generated code (if you have configured the code generator to do so).

In-Line Code

If you exercise this configuration option, you can enter actual target-language code in a module and macro description fields. When the procedural code for your program is generated, this entered code will be dropped in-line, verbatim. You are responsible for the accuracy and compilability of this code.

File/Data Store Record Layouts (COBOL Only)

Files/data stores and/or entities, depending upon configuration options, will generate SELECT and FD statements and the accompanying record descriptions. The names used for these items will be taken from the file/data store or entity as entered in the repository (with adjustments made for target-language naming rules) and appropriate suffixes added to distinguish them.

________

See Also

Configuration Options

Parameter Passing Using Couples

Array Processing and Storage Redefinition


Array Processing and Storage Redefinition

The code generator will recognize syntax in the composition fields of data items that specify arrays and will generate COBOL OCCURS and REDEFINES clauses and their equivalent for C. A number preceding an item or a group of items enclosed in curly braces ('{', '}') constitutes the OCCURS value. If a vertical bar ('|') precedes an item, that item is a redefinition of the previous item in the composition field. These notations do not allow nested constructs (nested sets of braces or redefines of groups of items); separate data structures should be used instead. A REDEFINES item can have an OCCURS value.

For example, if the Composition field of item str is:

2 x1 + 3 { x2 + x3 } x4 | x5 | x6 + x7 + x8 | 5 x9

the resulting generated code will be as shown in Figure 5-14 of the Workbench manual.


The Code Generation Process

To initiate shell code generation, select Generate Code from the Repository menu and then choose COBOL or C from the dialog box. For ESF, select Export from the Utilities menu and then ESF from the dialog box.

First, the code generator will expand all structural data items as far as they have been decomposed in the Workbench. If a structural item is used as a part of more than one higher-level item, it will be expanded in each instance where it is used. Next, it will make a program header from comments in the program repository item. Then, for COBOL, the Workbench will generate file SELECT statements and FILE SECTION data declarations. After that, it will generate global (for C) or WORKING STORAGE (for COBOL) data definitions

Following that, the Workbench will (for C code) produce function prototypes and then it will generate code for executable modules (paragraphs for COBOL, functions for C), one for each module in your structure chart set. PERFORM or function call statements will be produced for each invocation line and, for C, calling parameters and function return types will be produced for couples and ITRs. Finally, if so configured, it will drop in-line code entered in module and macro description fields and create debug statements.

All along, the code generator will be producing error and information statements, some in the generated-code listing file and the rest in a file that you can review on the screen and, optionally, print.

________

See Also

Analysis Error Box


Code Generation Output

For C and COBOL, the shell code generator will leave you with a compiler-ready ASCII file in your transient file directory for each program in the project. (This will be the TRANS directory under the Workbench program directory, unless you have changed it.) The file will be named with the first eight characters of the name of the program name in the project's repository plus the extension .c or .cbl, respectively. For ESF, there will be a file in the same directory with the project root as the file name plus the extension .esf. It will contain project information and code (see Figure 5-15 of the Workbench manual), including an :appl tag for each program for ESF. You will also have the above-mentioned error and information statements, if you chose to print them or save them to a file. If your copy of the Workbench has prototyping capability, you can choose to export Visible Prototyper panel files, in ESF format. You can either export a panel file in conjunction with project data or export it by itself.

________

See Also

Analysis Error Box


Shell Code Configuration Options -- Overview

There are two kinds of code generation configuration. The first is done in the Code Generation Options dialog box. The second, really a form of customization, is done outside of the Workbench. You should be careful how you enter the customizations, described later. You should change only the sections of the customization files indicated. Making other, indiscriminate changes could make these files unreadable to the Workbench. If that were to happen, you would either have to fix them manually or copy their original, unaltered versions from your installation diskettes.

________

See Also

General Configuration

COBOL-Specific Configuration Items

C

COBOL

ESF

Shell Code Generation


General Configuration

The general configuration options for shell code generation are set in Code Generation Options on the Options menu. These selections, listed below with their default settings, give you alternatives as to what Workbench items appear in generated code, and where and how these items will appear in generated output. They are distinct from the language-specific customizations discussed later. A checked box is equivalent to Yes and an unchecked one to No.

All Data Elements 	Yes

All Data Structures 	Yes

All Data Flows 	Yes

All Files/Data Stores	Yes

All Entities 	Yes

The first six configuration options give you the opportunity to pick the repository items that will appear in your generated code. You can decide whether all items of each type will be used or just those listed in the composition fields of other items. The choices available are:

Yes means list all items of the selected type in their places in the composition hierarchies of superior items and create top-level data description code for any item not part of the composition of any other item. In Figure 5-15 of the Workbench manual, for example, the data element zip-code that is part of the composition of the data structure customer will be at the bottom level of that data structure. The independent element report-date will have its own top-level data definition. (Note that in generated COBOL, level 77 entries are not used; level 01 entries are used instead.)

No means that items not part of the composition of other items will not have data description code generated. In the Figure 5-15 examples, the data element report-date would not appear.

Note

If top-level superior items (files/data stores, entities, data structures, data flows) do not appear because items of that kind are set to No, the next level of subsidiary items (elements, flows, structures) that are set to Yes will appear in data description code as top-level items.

All Data-Only Modules	Yes

The meaning of No is slightly different for data only modules in the project repository. It means only use data only modules that are referenced by some module in the structure chart of the current program.

Data Only Module Usage	Structure

Data only modules can be interpreted one of two ways:

The data only module will be interpreted as a structure, with the data only module name itself being the top level of the structure and the data elements and data structures named in its composition field will all be subsidiary items at the next lower hierarchical level. To use this interpretation, pick Structure.

The data only module will be interpreted as a collection of independent, top-level data elements or data structures. The name of the data only module itself will not appear anywhere in any data definition. To use this interpretation, pick Elements.

Description Field in Module Comment	Yes

Notes Field in Module Comment	Yes

Module Description in Module Comment 	Yes:	Comment

The text fields of programs and modules of all kinds (modules, macros, library modules, etc.) can be selectively used or not used at all.

Description Field -- Yes means use this field as a comment to describe modules in generated code. No means don't use the field for anything.

Notes Field -- This is identical to the above.

Module Description Field -- If the box is checked, you can choose Comment or Code. Comment means the same as Yes, above. Code means that you have entered source code for the target language in this repository field. The code generator will put it verbatim into the syntactically correct place in the generated code for this module. Function calls or PERFORM statements generated by structure chart invocation lines will appear as comments in the code of any module where your own code is used. This is to help you keep your code in sync with your structure chart diagrams.

Generate Debug Code	Yes

Choosing Yes will cause the code generator to produce a source code statement that will display the name of the module on the system console screen. This will allow you to compile and run the generated code and watch it execute, even if the modules do not yet contain any other code.

________

See Also

Configuration Overview

COBOL-Specific Configuration Items

C

COBOL

ESF

Shell Code Generation


COBOL-Specific Configuration Items

These items apply only to COBOL and they can all be made independently of each other. They specify whether you want to generate COBOL FD statements for:

Files/Data Stores	Yes

Yes means that SELECT and FD statements will be generated for all files/data stores in the project. (This presumes that the All Files/Data Stores is also set to Yes.)

Entities	Yes

Yes means that SELECT and FD statements will be generated for all entities in the project.

COBOL File Data Structure Location	(FD)

This selection is enabled if one of the previous two items is checked. Some people like to have full record data descriptions in the FILE SECTION. Others prefer an 01-level statement declaring a maximum record size and place the full data description in the WORKING STORAGE SECTION. If Working Storage is chosen, there will be a record data structure declaration under the 01-level in the FILE SECTION, with all names below the 01-level set to FILLER, so the COBOL compiler can compute the record length.

________

See Also

Configuration Overview

General Configuration

C

COBOL

ESF

Shell Code Generation


C

There is a file in your Workbench program directory named VATYPES.H that the code generator uses to translate Workbench values for storage type, length, etc., into C data types, structures, and so forth. You can customize the way certain Workbench storage types are translated by making changes to this file. If you edit VATYPES.H using an ASCII text editor, you will see that there are five categories of Workbench storage types described in the file.

The first and third sections are fixed, i.e., not customizable.

The second and fourth sections contain the C typedef statements that will allow you to specify the native C data types that correspond to certain Workbench storage types. You can alter which native C type will be generated for each Workbench type. Note that you can also replace the native C type with a structure, as described in the paragraph below.

The fifth section will allow you to customize the C structure that is generated for certain Workbench storage types. You can either change what appears between the curly braces or you can replace the structure itself with a native C data type.

________

See Also

Configuration Overview

General Configuration

COBOL-Specific Configuration Items

COBOL

ESF

Shell Code Generation


COBOL

There is a file in your Workbench program directory named COBOLTYP.TBL that the code generator uses to translate Workbench values for storage types into COBOL USAGE types, with appropriate picture clauses. This file comes configured with COBOL-85 USAGE types, but you can change this.

You can customize which COBOL USAGE type corresponds to which Workbench storage type by making changes to this file. If you edit COBOLTYP.TBL using an ASCII text editor, you can see and change the correspondences between the COBOL and the Workbench types in the file. By assigning a picture class identifier to each, generated PICTURE clauses (produced only when you do not specify a picture yourself) will be constructed to your preference.

There are a number of other customizations that you can make to adjust the appearance of COBOL code to your own shop standards. You can also set default values for display length and number of decimal places, to be used when you don't enter these values into the project repository. All of these customization options are explained in detail in the COBOLTYP.TBL file. You should examine the file before generating code to be sure that the values currently set meet your needs.

________

See Also

Configuration Overview

General Configuration

COBOL-Specific Configuration Items

C

ESF

Shell Code Generation


ESF

There are no customizable options for ESF. The ESF data types that correspond to Workbench storage types are listed in the table below. The BYTES value for each data type is also in the table. Note that the BYTES value for some data types is dependent upon the length value entered in the physical characteristics of a data element's entry in the Workbench repository. Note also that if a length is not entered, the default BYTES value will be used. Further note that ESF data types marked as 'n/a' will be translated to the ESF type 'HEX'.

The conversion from Workbench length to ESF BYTES value for certain data types is as follows:

DECIMAL:	BYTES = length / 2 + 1
FLOAT:	BYTES = if length
CHARACTER:	BYTES = length
VARCHAR:	BYTES = length
GRAPHIC:	BYTES = length * 2
VARGRAPHIC:	BYTES = length * 2
ESF Data Types

Analyst	ESF
#	Analyst type	ESF type	BYTES	Default BYTES value
0	Undefined	n/a
1	Integer	BIN	4	4
2	Decimal	PACK	*,*	8
3	Float	HEX	*	8
4	Character	CHA	*	1
5	Date	CHA	10	10
6	Time	CHA	8	8
7	Binary	n/a
8	Bit	n/a
9	DateTime	n/a
10	Autoinc	n/a
11	Real	HEX	4	4
12	Image	n/a
13	Bfloat	n/a
14	Money	n/a
15	Note	n/a
16	SmallInt	BIN	2	2
17	Sysname	n/a
18	Text	n/a
19	TimeStamp	CHA	26	26
20	TinyInt	n/a
21	VarBinary	n/a
22	VarChar	CHA	*	1
23	Zstring	n/a
24	Lstring	n/a
25	Lvar	n/a
26	Logical	n/a
27	Graphic	DBCS	*	2
28	VarGraphic	DBCS	*	2
29	Number	n/a
30	Numeric	n/a
31	Double Precision	HEX	8	8
32	Raw	n/a
33	Long Raw	n/a
34	Long VarChar	CHA	32767	32767
35	Long VarGraphic	DBCS	32766	32766
36	SmallFloat	n/a
37	Serial	n/a
*	means that length is derived from Workbench length (if it exists)

n/a	(not applicable) types are exported as HEX

Exporting Visible Prototyper Panels

When exporting Workbench project data in ESF format, you can choose to export Visible Prototyper panel files. You can either export a panel file in conjunction with project data or export it by itself. If your copy of the Workbench has prototyping capability, there will be an active Panel File button in the Export dialog box. Pressing it will bring up a dialog box in which you can select a panel file and choose whether you want to export a panel file, repository data, or both. Note that if you don't select a panel file for the current export, no panel file will be dumped, regardless of what you may have done in the past.

________

See Also

Configuration Overview

General Configuration

COBOL-Specific Configuration Items

C

COBOL

Shell Code Generation


Parameter Passing Using Couples

Currently, parameter passing in generated code is only supported for the C language. ; COBOL supports parameter passing in multi-program systems, but these are not yet supported by the Workbench.

You should attach couples to the invocation lines on your structure charts when you want to indicate parameters being passed. The ways they should be used to properly interface with the code generator are as follows:

Downward-pointing (along the invocation line) couples represent parameters passed to a function.

An upward-pointing (opposite to the invocation line) couple indicates the return value from a function. Only one of these is allowed by the code generator and its type will become the type of the function. If there isn't one of these return couples present, the function will be of type void.

To represent a parameter that is passed by reference and can be changed in the calling function by the called function (i.e., a passed address), use a bidirectional couple.

An ITR can be used to represent a group of couples. Using ITRs is encouraged. It will not only cut down on the volume of detail that appears on your structure charts, but will maintain a consistent parameter order and number in all calls to a given function.

The first invocation of a function that has the maximum number of couples of all invocations of that function will be used to produce a C function prototype for the function. If other calls to that function are incompatible with this prototype, error messages will be produced to call these facts to your attention.


SQL Schema Generation

SQL DDL (Data Definition Language) syntax can be generated for ERD information in the repository for a project. You can then export this DDL to your target RDBMS, thus populating a database with the appropriate VAW repository information. Workbench schema generation supports ANSI SQL 92 standards. Before using SQL schema generation, make sure the dialect you wish to generate DDL for is chosen from the Options SQL dialect menu. You can generate an SQL schema with the Generate SQL function from the Repository menu. When you choose this option, a SQL Schema Generation dialog box will appear allowing you to customize your DDL.[You can also specify what statement delimiter you would like to use, the default is set to the dialect you have chosen]. The dialects supported by the VAW include:

ANSI SQL-92	DB2 2.3
dBase IV SQL 1.1	Datacom:DB SQL
Gupta SQL Base 5.0	Informix-SQL
Ingres/SQL	Netware SQL 3.0
Oracle SQL 7.0	Rdb
SQL Server 4.X	SQL Server System 10
Unify SQL	User Defined SQL
Watcom SQL	XDB

The Workbench will analyze the repository and produce the schema, displaying the names of items it is examining on the status line. If errors are found, they will display on the screen (see Figure 5-16 of the Workbench manual); you can save them to a file, print them or ignore them. The errors might be such things as entities without keys, entities with improperly specified keys, an invalid physical data type for a composing data element or a number of other errors. If you have previously run the Analyze functions for Key Analysis and Key Synchronization and have resolved all errors found, you will be much less likely to get errors at the schema generation stage.

The Workbench will create as much of the schema as it can, leaving out items for which it finds errors. The schema will display on the screen (see Figure 5-17 of the Workbench manual); you can save it to a file, print it or cancel it. If errors are found, you might wish to cancel it, fix the errors and generate a correct schema at a later time.

If the schema displayed on the screen is correct you can populate a RDBMS data base with the SQL DDL, thus generating a development database. The supported RDBMS's are Gupta's SQLBase SQLServer and System 10,or Oracle7 Server. Please refer to the individual RDBMS for installation guidelines. If you choose to populate a RDBMS database at this time, choose Catalog from the Schema dialog box. You will be prompted for your database connect string, name and user name with the Target Database Location Information dialog box. If you are using Gupta's SQLBase the target database will be created for you. If you are using Oracle7 Server,or SQLServer or System 10, then the database must already exist. If you choose to run the Catalog feature again after making any changes, you can generate schema for a table or series of tables by generating schema for a portion of a data model. Keep in mind, if the table(s) exist in the target database, they will be dropped and added again, thus any data associated with the tables will be lost.

Statements supported include:

CREATE TABLE, with options indicating primary, foreign and alternate (used to generate indexes in some SQL dialects) keys, tablespace, and column characteristics including data type, default value, and uniqueness.

CREATE INDEX for primary and alternate keys, including the UNIQUE option, and performance indexes.

COMMENT ON for tables and columns. There is a upper limit of 200 characters per comment providing your dialects supports 200 or more characters. Also a generic comment will be automatically generated for tables if you choose the create comments option upon SQL generation when no description field is defined in the repository.

CREATE TABLESPACE or SP_ADDSEGMENT, with options indicating SQL dialect-dependent physical characteristics.

CREATE STORED PROCEDURE for dialects such as, Rdb, Oracle7 Server, Informix and SQLServer. Any text stored in the module description field for an entry in the repository comprises the body of the stored procedure during SQL generation. The statement delimiter between each stored procedure is defined as follows: for SQLServer " <nl> GO<nl>", for any other dialec, you must specify a stored procedure delimiter within the body of the stored procedure.

CREATE TRIGGER to generate SQL triggers corresponding to those created in the project's repository and referenced by tables in the schema

CREATE SYNONYM to pass on an entity's alias to the SQL engine as an alternate  name for a table. Each alias associated with a particular table will have its own synonym statement.

CREATE SCHEMA or authorization id to define a name space within a given set of tables. You will be prompted for the name you wish  to use.

ALTER TABLE statement will be used if a foreign key references a table which has yet to be created in the DDL script.

CONSTRAINTS statements will be generated if this option is selected from the options dialog box. A constraint name will be generated for  primary and foreign keys, and/or check constraints with the following syntax: for foreign keys "FKC<relationship name><unique hex number>"; for primary keys PK "PKC<table name><unique hex number>"; for column or table checks "<column or table name><unique hex number>"; and for alternate keys "AKC<table name><unique hex number>".

Other features of SQL schema generation include:

the ability to generate a schema for only a portion of a data model,

an option to replace an attribute name with an alias, for those who wish to maintain alternate (physical) names and use them in schemas,

storing check constraints, triggers, stored procedures (all three are various ways of enforcing validation rules) and enhanced referential integrity information in the repository, and including them in generated schemas,

generating UNIQUE constraints for alternate keys,

ascending and descending information for primary and unique key column ordering and created indexes,

When generating a Uniface Schema, the following options are available:

if you want to generate domains, you should use the Template option for version 6.x of Uniface, and the v5.2 Domains option for all other versions.

if you generate a schema, you have the option to Overwrite, Replace, or Clean an existing Uniface Conceptual Schema.  Overwrite will modify only the objects that appear in the generated schema.  Replace will delete the entire schema and replace it with the generated schema.  Clean will overwrite existing objects, and delete those that are not referenced in the generated schema.  For more information, refer to the publication Uniface CASE Bridge Cookbook.

________

See Also

Generating a Schema for Part of a Project

Adding SQL Schema Generation Information

Analysis for Entity Relationship Diagrams

Analysis Error Box

UNIFACE Interface


Generating a Schema for Part of a Project

To generate a subset of a project's complete schema:

Select Generate SQL from the Repository menu.

In the dialog box, select "Use 1 or more existing views" and then press the Select Views button, which will then be enabled. Another dialog box will appear which will present all of the existing data model views in the project.

Select one or more views to include in the schema. If none of these is right, you can create a new view with the View of Data Model selection on the File menu.

Press OK and return to the SQL Schema Generation dialog box.

You might want to check the "Suppress external reference warning messages" box. Items within the view(s) selected might reference entities not included in the schema. The generator is not able to produce DDL if it encounters a key reference outside the scope of the selected views and has not been directed to ignore it. If you do want foreign keys within the schema to be able to reference items not included in the schema, you should check the "Allow FK references outside of this schema" box. The schema will generate properly, but will issue warnings to you when those references occur unless you suppress them.

________

See Also

SQL Schema Generation


Adding SQL Schema Generation Information

This information is attached to the repository entry of an entity (table) or relationship. To add it, the repository entry dialog box for the entity/relationship must be open on your screen.

To open the dialog box, click on the SQL Info button. The dialog box will display the SQL dialect currently in use and the name of the entity to which the information will be attached.

For entities, the dialog box displays a list of all table check constraints, a list of all of the table's columns and the check constraint that has been assigned to the column, and buttons to access dialog boxes to specify the check constraint, key and trigger information for the column. For relationships, the dialog box displays the referential integrity and cardinality information for the foreign key.

Table and Column Check Constraints:

Any table may have an arbitrary number of check constraints attached to it, and each column may have one. All of these check constraints will be generated, along with their associated search conditions, with the schema. The check constraints are stored as separate entries in the repository and can be referenced from multiple entities.

To attach a check constraint to a table:

Click on the Table Checks button. A dialog box will open.

To attach a constraint, type the name of the constraint in the Select Check Constraints box and Click on Add. If the constraint exists in the project's repository, the search condition for it will display in the box. If it is not currently in the repository, the dialog box will add a new constraint to the repository; you can edit it later and add the search condition to its Module Description field and any other information you desire.

You can also add check constraints (as well as triggers and stored procedures) directly to the repository. Bring up a blank repository dialog box by selecting Define from the Repository menu. Name the check constraint and select Module as the entry type. Click the Save button to add the module to the repository. At this time, the module subtype box will appear to the right of the Entry Type box, allowing you to define the module as a check condition, trigger or stored procedure. Add any other descriptive information you wish, such as SQL procedural code in the Module Description field, and click Save again.

You can also use the repository search function to attach one or more existing check constraints to the table. You can view the search condition for each of these by highlighting them in turn in the Select Check Constraints box.

To detach a condition from the entity, highlight it in the Select Check Constraints box and click on Delete. Similarly to the Composition field in the Define dialog box, if you delete a check constraint and there is no other descriptive information added for it, it will be deleted from the repository.

If you want to edit information in the repository entry for the selected check constraint,

click on the Jump to Table/Column Constraint button.

When you are finished,

click on OK to save your changes or Cancel to abandon them. Changes you made will be reflected in the SQL Schema Generation Information dialog box.

Check constraints for columns are added identically, except that only one constraint per column is allowed.

Adding Key Information for a Table

To specify key information for a table:

Click on the Key Information button. A dialog box will open. Information can be entered here to tell the schema generator what it should do with repository primary and alternate key data and performance indexes.

Highlight different numbers in the Key Number box to display or enter information for the various alternate keys and performance indexes that exist for the current entity.

If your SQL dialect allows it, you can name the indexes which are generated from primary and alternate keys and peformance indexes.

Enter the name in the Index Name boxes. The primary key index can have a name, as well as each alternate key and performance index. If you want the Workbench to generate a name for you, check the Generate Name box. If you leave the Index Name box empty and the Generate Name box unchecked, no index name will be included in the schema.

You can change the columns that are part of the primary or alternate keys or a performce index.

To add a component of the key, highlight a column in the Columns in Table list and use the <<< button to make it part of the current key.

To remove a component of the key, highlight a column in the Columns in Key list and use the >>> button to move it back to the list of available columns.

To change the position of a key column, highlight a column in the Columns in Key list and use the Up or Down buttons to change its position.

You can add ascending or descending information for primary and unique key column ordering and created indexes, if your SQL dialect allows it.

Highlight a column in the key for which you want to add it.

Click on Descending if the column should be sorted in descending order, otherwise it will be sorted in ascending order. If your SQL dialect doesn't allow such a specification, the button will be grayed and disabled.

You can add physical storage information about an index by clicking on Physical.

When you are finished,

Click on Add to add a key definition, Change to update a definition, or Remove to delete a key definition.

click on Close to return to the SQL Schema Generation Information dialog box. To abondon any pending changes, press Cancel.

Adding Foreign Key Information for a Table

To specify foreign key information:

Click on the Foreign Key button if the current entry is an entity, or SQL Info if the current entry is a relationship. A dialog box will open. Information can be entered here to tell the schema generator what it should do with repository foreign key data.

Highlight different relationships in the Relationship box to display or enter information for the various relationships that exist for the current entity.

Referential integrity information, telling the SQL engine what to do when database information is deleted or updated, can be added for each foreign key.

Click on the buttons next to ON DELETE and ON UPDATE to indicate the action you want taken for each. Any actions your SQL dialect does not allow will be disabled.

Key Reference information, telling the SQL engine how columns from the child table correspond to key columns in the parent table, can be added for each foreign key.

Click on Primary Key to indicate that the foreign key columns in the child should correspond to the primary key in the parent, or click on Alternate Key to indicate that they should be associated with an alternate key. If an alternate key is selected, choose the appropriate number.

Highlight a column from the Available Columns list and then click on the corresponding parent key column. Repeat this procedure for each component of the foreign key.

Click on Migrate to add a key column from the parent to the child.

Cardinality information instructs the SQL engine how to resolve column name conflicts for supertype relationships that have any form of denormalization specified.

Syntax displays the numerical cardinality that was specified when the relationship was added to a diagram.

Click on Suffix Instead of Prefix to indicate column names should be made unique by appending text to the column name.

Click on Prefix/Suffix Names to modify the list of prefixes/suffixes that should be used when generating SQL to uniquely identify columns. The number of entries in the list should match the numerical cardinality. If no cardinality is specified, the number of columns generated will correspond to the number of entries in the list.

When you are finished,

click on Modify to save your changes or Cancel to abandon them. Any changes you made will be reflected in the composition field of the child entity. If you select a different relationship, any pending changes will be automatically saved.

Adding Trigger Information for a Table

A table can have an arbitrary number of triggers attached to it. The triggers are stored as separate entries in the repository and can be referenced from multiple entities. Any actions your SQL dialect does not allow will be disabled.

Attach and detach triggers to an entity similarly to check constraints, above.

Note

This will only function if the SQL dialect in effect supports triggers.

Highlight an attached trigger in the Name box to view the information specified for that trigger, or to change it. The action text entered in the Module Description field of the trigger's repository entry will display in the Trigger Text box.

Click on Update and/or Insert and/or Delete to specify the action that will cause the trigger to fire. Your SQL dialect might allow multiple actions to fire a trigger or it might require a different trigger for each action.

Click on Before or After to tell the SQL engine when to fire the trigger relative to the action(s) specified.

In the Scope box, click on Table or Row to indicate whether the trigger is to fire once for an update (or insert or delete) of the table or once for each row that is updated.

If the Update button is checked, you can specify for which columns in the table an update will fire the trigger. Initially, the names of all column in the table will be listed in the No-Update Columns box.

Highlight one or more column names in the No-Update Columns box and click on the <<< button to move them into the Update Columns box.

Highlight one or more column names in the Update Columns box and click on the >>> button to move them into the No-Update Columns box.

If you want to edit information in the repository entry for the selected trigger,

click on the Jump to Trigger button. Changes you have made will be saved, as if you pressed OK.

When you are finished,

click on OK to save your changes or Cancel to abandon them. Any changes you made will be reflected in the SQL Schema Generation Information dialog box.

Adding Physical Storage Information for a Table

Some SQL dialects support the concept of a tablespace, which is an allocation of space on a physical media for the storage of tables and indexes (SQLServer uses the term segment). To specify the physical storage characteristics of a table, including the tablespace to which a table belongs, click on the Physical button.

_______

See Also

SQL Schema Generation


Tablespace Properties
Tablespace Properties (Oracle)

Some SQL dialects support the concept of a tablespace, which is an allocation of space on a physical media for the storage of tables and indexes (SQLServer uses the term segment).The Workbench will generate CREATE TABLESPACE statements during SQL generation if any tables or indexes reference a tablespace object in the repository.

For each tablespace, the following pieces of information can be maintained:

Datafile Name(s). The name(s) of the datafile(s) that comprise the tablespace.

Datafile Size. The size of the datafile. If this option is omitted, the datafile must already exist.

Reuse. Reuse an existing file. If the file does not exist, it is created. If this option is not checked, the file must not already exist. This option is only significant when used with the size option. If you omit the size option, the file must already exist.

Initial. The size of the tablespaces first extent.

Next. The size of the next extent to be allocated to the tablespace.

Minextents. The total number of extents allocated when the tablespace is created.

Maxextents. The maximum number of extents that can be allocated for the tablespace.

Freelists. The number of free lists for each of the free list groups.

Freelist Groups. The number of groups of free lists.

Offline. Do not allow access to the tablespace after it is has been created.

________

See Also

SQL Schema Generation Information

SQL Schema Generation

Tablespace Properties (SQLServer)


Segment Properties
Tablespace Properties (SQLServer)

Some SQL dialects support the concept of a tablespace, which is an allocation of space on a physical media for the storage of tables and indexes (SQLServer uses the term segment).The Workbench will generate SP_ADDSEGMENT and SP_EXTENDSEGMENT statements during SQL generation if any tables or indexes reference a tablespace object in the repository.

For each tablespace, the following pieces of information can be maintained:

Logical Device Name. The database device(s) where the segment is to be located.

________

See Also

SQL Schema Generation Information

SQL Schema Generation

Tablespace Properties (Oracle)


Physical Storage Characteristics

When the SQL engine generates DDL for a schema, physical characteristics can be specified for each table and index that is created. This information is dependent upon the SQL dialect selected.

For each table or index, the following pieces of information can be maintained (not all SQL dialects support all options):

Tablespace. The name of the tablespace where the table or index is to be stored. If the name specified does not exist in the repository, a new tablespace object will be created. You can use the search button to find tablespace objects that have already been defined. (SQLServer uses the term segment.)

PctFree. The percentage of space reserved for future updates.

PctUsed. The minimum percentage of used space.

IniTrans. The initial number of transaction entries allocated within each data block.

NoSort. Indicates that the rows are stored in ascending order and therefore the rows do not have to be sorted when creating the index.

Initial. The size of the tablespaces first extent.

MaxTrans. The maximum number of concurrent transactions that can update a data block allocated to the table.

Next. The size of the next extent to be allocated to the tablespace.

MinExtents. The total number of extents allocated when the tablespace is created.

MaxExtents. The maximum number of extents that can be allocated for the tablespace.

Freelists. The number of free lists for each of the free list groups.

Freelist Groups. The number of groups of free lists.

_______

See Also

SQL Schema Generation Information

SQL Schema Generation

Tablespace Properties

SQLServer Storage Options for Indexes


SQLServer Storage Options for Indexes

When the SQL engine generates DDL for SQLServer (either 4.x or System 10), physical characteristics can be specified for each index that is created.

For each index, the following pieces of information can be maintained:

Segment. The name of the segment where the index is to be stored. If the name specified does not exist in the repository, a new tablespace object will be created. You can use the search button to find tablespace objects that have already been defined. (VAW uses the generic term tablespace to refer to a physical storage object. SQLServer uses the term segment.)

Clustered. Create a clustered index where the physical order of the rows is the same as the indexed order of the rows. Only one clustered index is allowed per table.

Ignore Duplicate Keys. If an insert or update operation would result in a duplicate key, do not perform the operation and discard the data. If this option is not set, the operation fails.

Sorted Data. Indicates that the rows are stored in sorted order.

Fill Factor. A percentage that specifies how full each data page is made when creating a new index on existing data.

Duplicate Rows Check. Specifies whether duplicate rows should be allowed when creating the index. This option is only valid for clustered indexes.

_______

See Also

SQL Schema Generation Information

SQL Schema Generation

Tablespace Properties

Physical Storage Characteristics


Data Description Specification Generation

The Workbench supports the generation of Data Description Specifications (DDS) for the IBM AS/400. DDS will be generated for all entities in the repository and is similar to SQL schema generation (see above). To generate DDS, select Generate DDS from the Repository menu. The Workbench will scan your project's repository and generate the DDS. You can view both the generation errors and the generated DDS, with the option to save or ignore either.

________

See Also

Analysis Error Box


Generating Structure Charts from the Repository

COBOL program data can be imported from the Application Browser product and stored in the Workbench repository. Structure charts can be created from that imported and stored information.

To use this feature:

Import Application Browser information via Import.

Choose Draw VIRTUAL Chart from the File menu.

Name the diagram when the dialog box  requests it.

The Workbench will scan the repository for structure chart information on a virtual diagram and add it to a new diagram. The new chart will be displayed. You must Save it to make it permanent.

Regenerating Existing Structure Charts

Open a structure chart diagram.

Choose Regenerate Chart from the Diagram menu.

The structure chart will redraw from the information on the open diagram and any other relevant information in the repository.


Multi-User Access to Projects

The LAN version of the Visible Analyst Workbench adds powerful multi-user capabilities to the basic functionality of the Workbench. It offers program access to a potentially unlimited number of users operating over a local area network, while creating little or no noticeable system degradation. With it, projects may be created in such a way that many project team members can concurrently work on different parts of a system design and/or data model, while maintaining a common set of project files, including a common repository.

There are two network versions of the Workbench available. The Novell LAN Workbench utilizes the file and record locking mechanisms within Novell NetWare. The Generic DOS LAN Workbench supports other networks besides Novell networks. Any other network which performs standard DOS file locking is supported.

Typically, program data and executable files are stored in the \VA directory or its subdirectories on the network file server. Upon installation you can specify a System Data Path. By default it is the same directory where you choose to install the VAW. The specified System Data Path will contain any VAW files that are modified by users of VAW or the VAW program, thus allowing program files and modified files to be separated. There they can be protected against unauthorized access by limiting Workbench privileges to only those users who have been:

granted access to the network,

granted access (All Rights are necessary) to the \VA directory,

granted access to each individual Workbench project and

granted rights to modify a project, as opposed to the right to view only.

It is available for all Workbench tool set configurations.

________

See Also

Implementing Security

Creating Projects on the Network

Product - Security -- Assigning Product Access Rights


LAN Operating Characteristics

The operating characteristics of the LAN version of the Workbench are virtually identical to those of the single-user Workbench, except that you must be logged onto the network prior to accessing the program and starting a work session. Once logged onto the LAN, you have all of the same capabilities that apply to each Workbench tool described throughout this Help system. You also have other features and capabilities which are described in LAN Workbench Features and Capabilities.


LAN Workbench Features and Capabilities

Unlimited Access to Program and Project Files

The number of network users that may access the Workbench program is limited only by the number of nodes purchased. A node is defined as concurrent access by a user. For example, three nodes equals the ability to have three users concurrently accessing the Workbench. They may be any three users on the LAN.

Limited Access to Diagrams and Repository Entries

Only one user may access a particular diagram or repository entry at any one time, to prevent conflicting edits from being entered for a diagram or its project repository entries.

Security

Access to program and project files is limited to users defined in the security system as having:

access to the network,

access to the \VA directory,

access to each particular project and

rights to modify a project, as opposed to the right to view only.

Messaging System

The Workbench's messaging system allows all users to communicate easily over the network. The messaging feature gives access to NetWare's messaging while using the Workbench, and is invoked with function key [image]. The Generic LAN version does not support the Workbench messaging system.

Current Activity and Error Message Help Windows

The Current Activity function on the File menu allows you to review the activities of Workbench users working on the same project. It also provides a description of the activity each user is performing within the project. The Error Details window allows you to identify users who are working with project files you are attempting to access.

________

See Also

Creating Projects on the Network

Product - Security -- Assigning Product Access Rights


Novell NetWare Compatibility

The LAN version of the Workbench is fully compatible with the network configuration and protocol requirements of Novell Advanced NetWare v1.0 and higher. Workstations that access the Workbench over the LAN must be running DOS 3.1 or higher.

All descriptions and instructions provided in this Help topic assume that NetWare is already installed, networked workstations or PC's are already connected, users are already knowledgeable in the procedures required to log on and off the network, and the LAN Workbench program is already installed (refer to Chapter 2 of the Workbench manual). Additional information and procedures describing how to setup the \VA directory, how to define user security at the project level, and how to use the Workbench's networking features are provided in the Help topics listed below.

NetWare's MAP ROOT Command

The LAN version of Workbench supports the NetWare MAP ROOT command. This means that if you have used this command to map a drive letter to a server directory, the Workbench will recognize it and act accordingly.

________

See Also

Implementing Security

Creating Projects on the Network


Preventing Editing Collisions

There are no inherent restrictions on the number of network users that may access the Workbench or any Workbench projects concurrently. However, there are restrictions that allow only one user to access a specific diagram or repository entry at any one time. This restriction prevents editing collisions, i.e. prevents conflicting edits from being entered into the same diagram or repository entry by different users.

If a potential conflict is detected, the Workbench prevents the function from being initiated. You will be alerted to the nature of the conflict and the user(s) who is involved (LAN Help Function). For example, global changes that are normally carried throughout multiple diagrams in the same project will be inhibited in some instances, such as when a global change impacts multiple diagrams and one or more of those diagrams is currently being accessed by others.


Local Operation

Projects may be stored on a local workstation drive instead of the network drive by specifying the appropriate data path when the project is created. Note, though, that any project stored on a local workstation drive can never be accessed by another workstation, i.e. the project becomes a single user project.


Getting Up and Running on the Network

Before proceeding, be sure that the initial steps in the Workbench installation process have been completed (refer to Chapter 2 of the Workbench manual). The network version of the Workbench is accessible to all users defined under NetWare; you need not redefine NetWare users, but you must decide how you wish to implement NetWare-level security and actually creating projects. Appropriate steps for addressing each of these LAN considerations is provided in the Help topics listed below.

________

See Also

Product - Security -- Assigning Product Access Rights


Defining Default Path Settings

For the LAN version of the Workbench, default settings can be accessed from one centralized location so that all users will start with the same setup information. These defaults can later be overridden by users. This is most useful to set a network's drive and path preferences for projects and temporary files generated by the Workbench.

Edit the VAW.INI file, located in the Workbench installation directory.

Insert the statement "System Data Path=" for all files that are modified by the user or the VAW program and thus require all rights and insert the appropriate drive and directory. After you have inserted this line in the VAW.INI you must move all the files to this directory. Call Technical Support for a list of files. This path setting can also be specified upon installation (Refer to the installation doc supplied with your installation diskettes).

Insert the statement "Default Data Path=" for project files, and insert the appropriate drive and directory.

Insert the statement "Transient Data Path=" for temporary files, and insert the appropriate drive and directory.

When a user accesses the Workbench from a node on the network for the first time, the Workbench will create a new initiation file named VAW#.INI, where # is the number the network assigns to the user's node, and copy the contents of VAW.INI into the new file.


Implementing Security

There are two levels of project security, out side the VAW, available to network users:

The lower level of NetWare security is the easiest to implement. It allows any user assigned to the Workbench to create projects at will.

The second level of NetWare security requires that the supervisor, or a user with equivalent status, create a subdirectory and assign trustees to any new project before it is created. For details, refer to the section Creating Projects on the Network. We recommend that you choose between the two levels, though multiple variations are possible. If the two levels described don't meet your needs, please contact Visible Systems Corporation.

As shipped, the Workbench has as the default data path for project data, "<path>\VA\DATA\<root>", where "<path>" is any path you entered for the installation of the Workbench and "<root>" is the project root. In this way each project resides in its own subdirectory. For example, project LIB would reside in \<path>\VA\DATA\LIB. We strongly recommended that you leave this default data path setting as shipped as it makes security much simpler to implement and facilitates switching between levels of security. However, it can be changed when you create a project, if you so desire. (For the remainder of this Help topic, any directory levels above the VA directory will be ignored, but you must consider them when you create directories, etc.)

Implementing the Lower Level of NetWare Security

Selecting this level of security allows any user who becomes a trustee of the VA directory the ability to create a project. Any user who creates a project, in addition to the supervisor and any system managers , may then assign other users access to that project (see Product Security -- Assigning Product Access Rights). Note that this security is operable only within the Workbench; i.e., control is not implemented at the DOS command level. As a result, any user having knowledge of how to access files under DOS may modify or delete any Workbench projects.

To implement the lower level of NetWare security, simply make each user who will be accessing the Workbench a trustee with all rights of the VA subdirectory on the install-to drive. By default, assigning a user as a trustee gives that user all rights to that directory and all lower-level directories.

Implementing the Second Level of NetWare Security

This level of security provides all of the security of the lower level and adds security at the DOS command level. This means that there is no way for an unauthorized user to modify or delete any project information. When implemented, the supervisor or someone with equivalent rights will have to assign users to each project before the project is created.

For NetWare Versions Below 3.0

To implement the second level of security, be sure that all of the following items are applied:

For each user that will be accessing the Workbench, make that user a trustee of the VA subdirectory on the install-to drive. By default, assigning a user as a trustee gives that user all rights to that directory.

Revoke the Modify and Parental rights for each user for the VA subdirectory.

For each user that will be accessing the Workbench, make that user a trustee of the VA\DATA subdirectory on the install-to drive.

Revoke all rights for the VA\DATA subdirectory.

For NetWare Versions 3.0 and Above

These NetWare versions implement inheritance rights. To implement the second level of security, be sure that all of the following items are applied:

For each user that will be accessing the Workbench, make that user a trustee of the VA subdirectory on the install-to drive. By default, assigning a user as a trustee gives that user all rights to that directory.

Revoke the Access Control, Modify and Supervisory rights for each user for the VA subdirectory. (If you want a user to be able to rename a project, do not revoke the Modify rights.)

Revoke all Inheritance rights except Supervisory for each user for the VA\DATA subdirectory on the install-to drive.

Note

You can specify a direcctory other than the VA to hold all modified files associated with the VAW software. See Setting Default Pathnames for more details.


Creating Projects on the Network

The steps involved in creating projects on the network depend on the security level you have chosen. With the lower level of NetWare security, any user with access to the Workbench may create projects. With the second level of security, two steps must be taken prior to a project being created with the Workbench, as described below:

The supervisor, or a user with supervisor equivalence, must create a subdirectory for the project. Under the recommended data path setting this would be VA\DATA\, where is the project root of the project to be created. For example, if a user wanted to create a project with the root LIB, the supervisor would have to create the subdirectory VA\DATA\LIB on the file server.

Any user that is to be assigned to the project must be assigned as a trustee to the subdirectory created in the step above. Note that even after doing this, users must still be assigned to projects from within the Workbench.

________

See Also

Product Security -- Assigning Product Access Rights


Product-Security -- Assigning Product Access Rights
Product Security -- Assigning Product Access Rights

Users that access the VAW can be assigned one of three levels of security; System Manager, Project Manager, or User. A System Manager will have full rights to all projects in VAW, can maintain user information and assign project rights to users. A Project Manager can create projects, and assign users to the projects they create. A User can access the VAW and be granted rights to projects, but cannot create new projects.

If you have installed the product using the Novell version (VAW will automatically install the Novell version if your network under Windows Control Panel is listed as Novell Netware OS at installation time), initially,you must have the supervisor log into VAW and assign at least one System Manager. By default any user who can access the Novell server can log into the VAW without having been granted specific access rights but they will only be a user and will not have rights to any existing projects or be able to create new projects.

You can assign a user the System Manager, Project Manager or User privilege for a Workbench installation by performing the following procedure:

Select Users:

1.	Select Users from the Utilities menu making sure the user-id that is assigned as the user type System Manager is correct. The System Manager can now log into VAW and assign other users as System Managers, Project Managers or Users. By default, any user who can access the Novell server can log into the VAW without having been granted specific access rights, but they will only be a User and will not have rights to any existing projects or be able to create new projects.

The LAN version of the Workbench gives a System Manager and the user who creates a new project, and only these users, the capability to assign network access privileges to the project. Access may be assigned to any users having access to the directory where the project is stored. Access can be limited to viewing a project's information.

You can assign user access privileges to any Workbench project that you create by performing the following procedure:

Select Modify User List:

1.	Select Modify User List from the File menu.

Select the Access Function:

2.	Select Add, Delete or Modify Rights from the submenu.

If you are adding users, the Workbench displays a dialog box listing the IDs of network users and user groups that are not currently assigned access to the project.

If you are deleting users, the Workbench displays a dialog box listing the IDs of network users who are currently assigned access to the project.

If you are modifying users' rights, the Workbench displays a dialog box listing the IDs of network users who are currently assigned access to the project and the rights each has to access the project.

Review the Displayed List of Users and Make Desired Changes:

3.	Add or delete any network users or user groups as desired. Note that initially, users have rights to do anything in a project.

Modify Users' Rights to the Project:

4.	To modify the rights of any user that should have less than full access to the project, select Modify User Rights and click on the ID of a user or group. The rights currently available to that user or group will be checked off in the list at the bottom of the dialog box. (See Figure 6-1 of the Workbench manual.) Review the rights of the project's users and toggle individual rights on or off by clicking on them. For example, if the only item checked on the list is View Project, that user can look at anything in the project but can make no changes. These rights can be changed later, if necessary.

________

See Also

Implementing Security

Creating Projects on the Network


Messaging

The Workbench provides access to NetWare's messaging capability. The feature allows you to communicate with any other network user from anywhere within the Workbench. Note that messaging is available to all network users, regardless of whether or not they currently have the Workbench active; messaging is a function of NetWare rather than the Workbench. You can therefore send a message from your workstation once logged onto the network, or you can send a message from anywhere in the Workbench. The Generic LAN version does not support the Workbench messaging system.

To send or receive a message while in the Workbench, proceed as follows:

Initiate Message Sending with the [image] Messaging Function Key:

1.	Press [image] at your workstation to initiate a message. The Workbench responds by displaying the Send A Message dialog box. See Figure 6-2 of the Workbench manual.

Enter the ID of the User Who Will Receive Your Message:

2.	Enter the USER ID of the recipient network user in the To box. Then enter your message in the Message box. Each message is limited to forty characters. After entering the ID and the message, press OK to send the message.

If a Network Message is Received:

3.	Messages sent to your ID from another user will automatically appear in a network message box on your screen, if the program NWPOPUP.EXE is running. You must instruct Windows to start this program when Windows starts running. A message will not interfere with any work you are doing. Note that messages sent to you will appear on all workstations where you are logged in.


Reviewing Project Activity

Whenever a Workbench project that is stored on the network is selected at a workstation, you have the capability to display the current activity and the project history. The Current Activity function on the File menu will display who is currently accessing the project. The current activity function presents a listing of all users that currently have the project selected and what functions they are performing. The current activity is updated by the Workbench every ten seconds. The Project History function, also on the File menu, presents a list of diagrams and the users who last edited each of them.

________

See Also

Messaging


LAN Help Function

In many instances while using the LAN version of the Workbench, you may attempt to access a diagram or repository entry that is already selected by another LAN user. Since only one user may access any diagram or repository entry at any one time, you will receive an error message which explains that the diagram or repository entry is currently being edited, and you will be prompted to press OK to continue. You also have the opportunity to access the LAN help function by pressing the Details button. The Workbench will respond by displaying a window titled Error Details (see Figure 6-3 of the Workbench manual). The Error Details window shows you the ID of the network user who currently has the item selected, as well as his or her network station, i.e. the physical address that the workstation occupies on the network. Note that if a conflict exists with more than one other user, the Error Details window will appear only for the first user who accessed the diagram or entry. Once you know the user who is accessing the item you want, you can send a message to that user. The Generic LAN version does not support the Workbench messaging system.

While performing various Workbench activities, you may be interrupted by messages indicating that you cannot perform a selected function, due to a potential editing collision. In these instances, you can access the LAN help function described above; i.e. you can ascertain the user who is currently working with the function you tried to select.

________

See Also

Preventing Editing Collisions

Reviewing Project Activity


General Information

The Visible Analyst Workbench includes a Utilities menu (see Figure 7-1 of the Workbench manual) which allows you to perform data conversion and copying functions at the project level. These functions are an important part of the overall housekeeping tasks that should be used to backup and maintain the organization of your project files. The following functions are presented for your selection:

Backup allows you to backup a Workbench project to a floppy diskette, to multiple floppies or to a file server.

Restore allows you to restore a Workbench project from one or more floppy diskettes or from a file server.

Copy Project allows you to duplicate a Workbench project.

Delete Project allows you to eliminate a Workbench project

Rename/Move allows you to change the name (root ) that was previously defined for a project or the project description, or to rename the directory in which its files are stored, or to move the project files to a different directory.

Export allows you to convert data repository files for a project into ASCII format for use in other programs such as a database management system or into one of a number of other export formats.

Import allows you to load data into a project data repository from an ASCII file or from one of a number of other import formats.

Rebuild allows you to convert a project from an earlier Workbench version format to the current format,or to recreate a project that may have become corrupted due to a power failure, etc.

Copy Portion allows you to copy a diagram, or a branch (i.e. a data flow diagram and all of its children/grandchildren). This command allows for the copying of similar-methodology diagrams and branches from one project to another. All data repository information associated with the diagram(s) is also copied into the new project.

Delete Portion allows you to delete a diagram, or a branch.

________

See Also

Relational Database Exports

VSC-Format Repository Exports


Backing Up a Project

The Backup selection on the Utilities menu creates backup copies of all files for the currently selected project. If the drive selected in the dialog box is a floppy drive, a DOS-formatted diskette must be inserted into the drive. The formatted diskette does not have to be blank; it may contain unrelated data, or it may contain data for the same project or other projects being backed up. If it does contain data for the same project, you will be prompted to indicate whether or not you want the data on the diskette for this project to be overwritten. Also, if the diskette you are copying to becomes full, you will be prompted to insert further diskettes to complete the backup.

If the backup destination is a hard disk, such as a file server, any valid drive and path specification can be entered. If the destination drive becomes full, the Workbench will ask you to specify a new location for the backup. When you enter one, the backup will continue from where it left off, with the remaining data going to the new location.

Notes

It is very important to remember that, if a backup is split between two disks or directories, as in the previous paragraph, you must not manually consolidate the files into one directory. Any project files which have to be split between the two locations will have the same name and manually consolidating all of the backup files into a single directory will overwrite one of the files, thus losing backed up data permanently.

Anytime a project is backed up, it should be restored only via the Workbench Restore utility. Do not attempt to restore any Workbench project via DOS programs such as COPY. The Workbench project master file will not be updated correctly.

If you run the backup utility while one or more diagrams are being edited, the Workbench will ask you to save or discard all diagrams before the backup will begin.

________

See Also

Restoring a Project


Restoring a Project

The Restore selection on the Utilities menu allows you to copy to the Workbench hard drive a project that has been previously backed up. When the project restore is performed, all diagrams and repository entries for the defined project will be copied from the backup drive or directory.

If multiple diskettes were used to backup the project, you will be prompted to insert each diskette in the order that the backup was performed to restore the project. If the backup was split over multiple hard disk directories, you will be prompted to enter the path where the next group of backed up files resides. If the hard disk being copied to already contains data for the project being restored, the data being read from the backup disk will overwrite the existing hard disk project files.

For the LAN version, if the restored project existed before the Restore operation, the owner information remains unchanged. Otherwise, the project owner is set to be the person performing the restore.

Note

In the multi-user version, anyone may restore a project. However, only those who have been granted rights can then access it thereafter. If a project was created by a single-user version of the Workbench with security turned off, the Workbench will not know who created it. Thus, when restored into a LAN version, the Workbench won't have creator information. As a result, only a supervisor will be able to access it until access rights have been granted to others.

________

See Also

Backing Up a Project


Copying a Project

The Copy selection on the Utilities menu allows you to duplicate an existing project, providing a means to recreate a project without having to redraw the diagrams. It therefore provides a convenient and time-saving method for creating new projects that are similar to existing ones. For example, you can select a project and copy it to a new project root, then revise and edit the duplicated files to develop unique project entities. The new project files become another stored Workbench project that can be manipulated in the same manner as any other Workbench project.

Before any copy is initiated, you will be prompted to define a new project name for the duplicate project, a new description and a location in which to store. The new root name provides a calling label for the duplicated project files. Note that all project files will be copied to the new project root, including any existing repository files.


Deleting a Project

The Delete selection on the Utilities menu allows you to eliminate the current project from the Workbench. It is useful as a housekeeping function to erase project files that are no longer needed. Note that any project that you delete is erased completely, including all repository entries. Before any deletion is executed, the Workbench will prompt you to confirm the project being deleted. This helps prevent erasing the wrong project; however, it is recommended that you backup all project files, including those that you are about to erase. This will allow you to maintain a project archive, and let you restore any project at any time.

Deleting Projects with No Project Files

It sometimes happens that someone will delete the data files for a project from DOS instead of doing it from within the Workbench. The result is that the project is still listed in the project master file, but cannot be accessed because the data files are gone. There is a way to delete the project name from the master file.

To delete a dangling project from the master file, open the Select Project dialog box from the File menu. Select the project name you want to delete from the list or type its name into the Project Name box. Then press [image] [image]. The project name will be removed from the project master file after confirmation.

Note

This function is not a substitute for the Delete Project function. It should only be used in the circumstances described above.


Renaming or Moving a Project

The Rename/Move selection at the Utilities menu allows you to change the name and/or description of an existing project and/or to move it to a different directory. This is another utility function that can be helpful when performing housekeeping functions for your Workbench files. When renaming a project, only the one-to-four character root is changed. The project and diagram labels will remain the same. If you have chosen that the project root should also be the name of the subdirectory in which project files are to be placed, this directory name will also be changed.


Rebuilding a Project

The Rebuild selection at the Utilities menu allows you to recreate project files. This may become necessary for the following situations:

If your Workbench program software has been updated from an earlier version, you may be required to rebuild existing project files to convert them to a format that is compatible with the new version. The Workbench will prompt you to perform the rebuild whenever you access a project for which a rebuild is required.

Note

If a project was created with a version of the Workbench prior to version 3.1 contact Visible Systems for assistance.

If a project becomes corrupted due to a power outage, bad disk sector, etc., you may be able to salvage all or part of the project files by performing a rebuild. The Workbench program helps prevent loss of project data during these situations; therefore this type of rebuild should rarely be necessary.

If you wish to convert a project from the proprietary database format, Btrieve, to a relational database format or vice versa you must run a rebuild. If converting a project to a relational format you must have installed VAW choosing either Gupta's SQLbase or Sybase's SQLServer as the database engine.

All of the creation dates and last-altered dates are reset to the current date whenever a project is rebuilt.


Exporting Repository Data -- Overview

The Export selection at the Utilities menu allows you to convert data repository files for a selected project into ASCII formatted data files for use by other programs. For example, you can export repository information into a file which can be accessed by a database management program.

The export of ASCII data from the repository can be executed in one of several selectable formats:

A relational format that is compatible with most relational databases.

A proprietary VSC format that is compatible with the ASCII dump used with prior versions of the Workbench program.

KnowledgeWare (IEW/ADW) format, which is discussed together with the KnowledgeWare import, in KnowledgeWare IEW/ADW Import and Export.

ESF format, which is discussed in Shell Code Generation.

SQL format, which is discussed SQL Schema Generation.

Powersoft's PowerBuilder format.

Gupta SQLWindows Interface format.

IBM AS/400 DDS format is described in DDS Import and also in Data Description Specification (DDS) Generation.

Visible Prototyper export format.

RDBMS Catalog export, which is discussed in SQL Schema Generation.

UNIFACE export format.

Unify VISION export format.

NOTE

These export formats are selectable from the export dialog box, except for SQL, RDMBS Catalog and DDS, which are generated from selections on the Repository menu.


Relational Database Repository Exports

In database terminology, a relation is a common field or fields shared by two different files or tables. The repository in the Workbench is a relational database, with a set of tables containing information about a project linked together by relations. The repository export function converts the internal representation used by the database engine to a delimited text file, as well as eliminating information either proprietary or simply not useful to you. The relationship linking the exported files together is an id number which uniquely identifies each object in the repository.

Export files are named by the project root plus file description method. For example, files in a repository export of a project named LIB would be named as shown below.

LIBROBJ.DTA	Primary object file. One record for each distinct entry in the repository.

LIBATTR.DTA	Attributes file. Each repository object has a set of properties that are described in this file such as descriptive information, notes, and composition values Attributes that require more than one record have an associated sequence number. See the table below for a list of valid attribute types.

LIBDIAG.DTA	Diagram file. Each diagram exists as a separate record.

LIBDLOC.DTA	Location file. Each object location exists as a separate record.

LIBCLOC.DTA	Connected location file. Each pair of connected object locations exists as a separate record.

LIBRELA.DTA	Related object file. Each object that is related to another object, such as an alias entry, exists as a separate record.

LIBRELL.DTA	Related list file. Each object that is related to a related object, such as columns for a trigger that belongs to an entity, exists as a separate record.

Relational Export File Layout

Files created by the Export program are in delimited ASCII format. This means:

Fields are separated by commas.

Character fields have trailing spaces removed and are surrounded by double quotes.

Numbers are converted to their ASCII representations.

Null character fields are denoted by .

No right or left padding.

No alignment on decimal points.

Each record ends in a carriage return and a line feed.

Relational Export File Structure

The structure of any database files created from data exported from the repository must be set up to accommodate the maximum field lengths possible for exported data. The field names, field types and maximum field lengths for each file are listed in Table 7-1 of the Workbench manual.

Relational Export File Structures

Structure for: ROBJ.DTA

Field	Field Name	Type	Width	Dec
1	ObjectNameLC	Character	40	0
2	ObjectType	Numeric	4	0
3	ObjectID	Numeric	4
4	DivisionID	Numeric	4	0
5	ClassID	Numeric	4	0
6	VersionID	Numeric	4	0
7	ObjectName	Character	40	0
8	ObjectSubtype	Numeric	2	0
9	ObjectOwnerID	Numeric	4	0
10	CreationDate	Date	10	0
11	CreationUserID	Numeric	4	0
12	ModificationDate	Date	10	0
13	ModificationUserID	Numeric	4	0
14	AssociatedNumber	Numeric	4	0
**TOTAL**			138
Structure for: ATTR.DTA

Field	Field Name	Type	Width	Dec
1	ObjectID	Numeric	4	0
2	AttributeType	Numeric	4	0
3	Sequence	Numeric	4	0
4	AttributeLine	Character	254	0
**TOTAL**			266
Structure for: DIAG.DTA

Field	Field Name	Type	Width	Dec
1	DiagramType	Numeric	2	0
2	DiagramName	Character	40	0
3	DiagramID	Numeric	4	0
4	VersionID	Numeric	4	0
5	ObjectOwnerID	Numeric	4	0
6	AlphaDesignator	Character	40	0
7	LineStyle	Numeric	2	0
8	PageSize	Numeric	2	0
9	DiagramProcNum	Character	40	0
10	CreationDate	Date	10	0
11	CreationUserID	Numeric	4	0
12	ModificationDate	Date	10	0
13	ModificationUserID	Numeric	4	0
**TOTAL**			166
Structure for: DLOC.DTA

Field	Field Name	Type	Width	Dec
1	ObjectID	Numeric	4	0
2	LocationNumber	Numeric	2	0
3	DiagramID	Numeric	4	0
4	UpperLeftX	Numeric	4	0
5	UpperLeftY	Numeric	4	0
6	LowerRightX	Numeric	4	0
7	LowerRightY	Numeric	4	0
**TOTAL**			26
Structure for: CLOC.DTA

Field	Field Name	Type	Width	Dec
1	ObjectID	Numeric	4	0
2	LocationNumber	Numeric	2	0
3	ConnectedID	Numeric	4	0
4	ConnectedLocNum	Numeric	2	0
5	ConnectionStyle	Numeric	2	0
**TOTAL**			14
Structure for: RELA.DTA

Field	Field Name	Type	Width	Dec
1	ObjectID	Numeric	4	0
2	AttributeType	Numeric	4	0
3	Sequence	Numeric	4	0
4	RelatedID	Numeric	4	0
5	Item1	Numeric	4	0
6	Item2	Numeric	4	0
**TOTAL**			24
Structure for: RELL.DTA

Field	Field Name	Type	Width	Dec
1	ObjectID	Numeric	4	0
2	AttributeType	Numeric	4	0
3	Sequence	Numeric	4	0
4	RelatedID	Numeric	4	0
5	AssociatedID	Numeric	4	0
6	Item1	Numeric	4	0
7	Item2	Numeric	4	0
**TOTAL**			28
Attribute Types Used In: ATTR.DTA

Note

A number of attribute type fields contain multiple pieces of information separated by hex characters. In the table below, these separators are indicated by the notation <n> where n can be a number between 1 and 10.

Type	Description	Layout
0	Description	"Text"
3	Values & Meanings	"Text"
4	Composition	"Text"
5	Modules Contained	"Text"
6	Process Description	"Text"
7	Module Description	"Text"
8	Function Description	"Text"
9	Notes	"Text"
12	Physical Information	"StorageType<1>StorageLength<2> DecimalPlaces<3>DefaultValue<4> PictureClause<5>Owner<6>AllowNull"
18	Process Number	"Text"
19	Invocation Type	"Text"
20	ADM Information	"Type<1>Min<2>Max<3>Average"
21	Unique Index	"IndexName<1>IndexType"
22	Performance Index	"IndexName<1>IndexType"
23	Relationship	"ControllingKey<1>Flags<2> FromToCard<3>ToFromCard<4> OnDelete<5>OnUpdate<6> FromToCardText<7> ToFromCardText<8>ConstraintName"
26	Parameter	"Text"
27	Class Information	"Cardinality<1>CardText<2>Flags"
28	Database File	"FileName, Size, Reuse" Sequence is DatabaseType * 1000 + Sequence where DatabaseType equals 1 for Oracle and 2 for SQLServer
29	Database Phys Info	"IndexType, NoSort, PCTFree, PCTUsed, INITrans, MAXTrans, InitialExtent, NextExtent, PCTIncrease, MINExtents, MAXExtents, FreeLists, FreeListGroups, Offline" for Oracle or "IndexType, SortedData, FillFactor, IgnoreDupKey, DupRow" for SQLServer Sequence is DatabaseType * 1000 + SequenceType where DatabaseType equals 1 for Oracle and 2 for SQLServer, and SequenceType is 0 to define physical information for the table, 100 + key number for unique keys, and 200 + index number for performance indexes. (Key number for the primary key is zero.)
100	User Object Definition projectcontrolrecord	"ObjectTypeName <1> LinkSupport <2>  LinkToType <3>LinkToCard <4>  LinkDisplayName <5> CompSupport <6> CompType <7> CompDisplayName"
101	User Attribute Definition projectcontrolrecord	"AttributeName <1> StorageType <2> StorageLength <3> StorageDecimal"
1000+	User Attribute	"Text"
2000+	User Object Link	"Text"
Attribute Types Used In: RELA.DTA

Type	Description	Layout
1	Alias	Sequence - Order number of Alias entry RelatedID - ObjectID of Alias entry
2	Related To	Sequence - Order number of related entry RelatedID - ObjectID of related entry
10	Associator Element	RelatedID - ObjectID of associator
11	Data Only Module	RelatedID - ObjectID of data only module
15	Trigger	RelatedID - ObjectID of trigger Item1        - Trigger Flags AssociatedID - ObjectID of trigger column (RELL.DTA)
16	Check	RelatedID - ObjectID of check AssociatedID - ObjectID of check column (RELL.DTA)
21	Unique Key	Sequence - Key number RelatedID - ObjectID of column Item1 - Sequence number that specifies the order of the column in the key Item2 - Index order (0 = ASC, 1 = DESC)
22	Performance Index	Sequence - Key number RelatedID - ObjectID of column Item1 - Sequence number that specifies the order of the column in the key Item2 - Index order (0 = ASC, 1 = DESC)
23	Relationship	Sequence 0 - From Entity 1 - To Entity 2 - From-To Relationship 3 - To-From Relationship 4 - Discriminator 5 - From Role 6 - To Role 7 - From Qualifier 8 - To Qualifier RelatedID - Object ID of related item  (RELL.DTA) The following is set only if sequence is 1. AssociatedID - Column that is part of the key Item1 - Sequence number that specifies the order of the column in the key Item2 - Index order (0 = ASC, 1 = DESC)
25	Friend	RelatedID - ID  of friend class or module
29	Database Phys Info	Sequence - See definition in ATTR.DTA RelatedID - ObjectID of Tablespace
Notes

The User Object Definition and User Attribute Definition attribute types are only used with the system object projectcontrolrecord.

For Trigger, Check, and Relationship attribute types, there will be record in both the RELA.DTA and RELL.DTA tables.

________

See Also

VSC-Format Repository Exports


VSC-Format Repository Exports

When you perform an Export with VSC format selected, the Workbench will dump a project's data repository to an ASCII format file. The file name of the resultant ASCII file is root + .AD where root is the project's root. A layout of the resultant ASCII file is shown in Table 7-4 of the Workbench manual. All fields except those describing the number of description, notes, location, etc., field records are enclosed in double quotes.

The export file is a variable record length file which is divided into three sections. The first section is the header which is a single record that gives basic information about the file contents. The next section defines the user attributes and objects that are contained in the project. The third section contains the repository objects each defined as an Object Block. The Object Block is comprised of an Object Header followed by zero or more Field Blocks and an Object Footer. The order of the Field Blocks within the Object Block is not important except that the KEYS, CHECK, and TRIGGER fields must be present after the COMPOSITION or CLASS COMPOSITION Field Block in the specification.

Note

A number of fields contain multiple pieces of information separated by hex 01 characters ( which appear on your screen as "smiley faces" -- [image] when using DOS utilities ).

Repository Export VSC Format

Record 1 -- Header Record:
	"project root", "File creation date", "File creation time "[,User Attribute Count [ , User Entry Type Count]]<crlf>
User Attribute Information:
	"user defined name", type, length, description<crlf>
	Note: The number of records is indicated by the User Defined Count in the header record.
User Entry Type Information
	"user entry type name", LinkSupport, "LinkToType", LinkToCardinality, "LinkDisplayName", CompSupport, "CompType", "CompDisplayName"<crlf>
	LinkSupport = digit 0 - no support, 1 - supported
	LinkToType = VRE standard or aggregate type
	LinkToCardinality = digit 0 - 1:1, 1 - 1:m, 2 - m:1, 3 - m:m
	LinkDisplayName = Text name for the define dialog box
	CompSupport = digit 0 - no support, 1 - supported
	CompType = VRE standard or aggregate type
	CompDisplayName = Text name for the define dialog box
	Note: The number of records is indictated by the User Entry Type Count in the header record.
Subsequent Records
Object Header
Item ID record	ENTRY "Entry Key", "Entry Type | User Defined Name", "Additional Information" [, " [ Time Stamp ] " ]<crlf>
Entry Key	[ Class Name :: ] Entry Name [ ::: [ Parameter Key ] ]
	This is the 'ENTRY LABEL' in the Repository. Class Name is the name of the class that owns the object. This is an optional field. Entry Name is the key field which is used in the Define dialog box as the primary name. Both Class Name and Entry Name are ASCII fields up to 40 characters in length. Parameter Key is used for Module types to define the argument types that uniquely identify an instance of a function. Each argument type is an object in the repository of type Class, Data Element, or Data Structure, and is followed by either an ampersand (&) if the parameter is passed by value or reference, or an asterisk (*) if it is passed by address. There is no limit to the number of parameters a function may contain. The colons are required even if there are no parameters
	Note: It is possible for there to be duplicate keys (this can happen if there are files and data flows with the same name).
Entry Type	This is a number which indicates the type of entry as follows:
	0 = Data Element
	1 = Process
	2 = File, Data Store
	3 = Source/Sink, External Entity
	4 = Data Flow
	5 = Miscellaneous
	6 = Alias
	7 = Data Structure
	8 = Domain
	14 = Function
	15 = Module
	16 = Library Module
	17 = Macro
	18 = Library Macro
	19 = Data Only Module
	20 = Info Cluster
	21 = Data Couple
	22 = Control Couple
	23 = Generic Couple
	24 = Data Interface Table Row
	25 = Control Interface Table Row
	26 = Generic Interface Table Row
	28 = Program
	34 = Entity
	35 = Associative Entity
	36 = Attributive Entity
	37 = Relationship Name
	38 = Cluster
	40 = Relationship Line
	43 = Member Name
	45 = Class
	46 = State
	47 = Event
	48 = Tablespace
SubType	If entry type is greater than 65535, then the low order word contains the entry type as described above, and the high order word contains the subtype.This optional field applies only to module types and classes and is used to denote the following special cases:
	Module Subtypes
	0 = Standard
	1 = Stored Procedure
	2 = Check Constraint
	3 = Trigger
	Class Subtypes
	0 = Standard
	5 = Structure
	6 = Union
	7 = Element
	8 = Entity
	9 = Associative Entity
	10 = Attributive Entity
User Defined Name	This is the name of the user defined entry types and it replaces the Entry Type.
Additional Information	For aliases, this field will contain the owner entry key and the owner entry type separated by hex 01 characters.
	For relationship name and relationship line entries, this field will contain the From Entity name, To Entity name, From-To Relationship name and To-From Relationship name, seperated by hex 01 characters.
	For structure chart items appearing on a virtual diagram:
	For Invocation Lines, special compound type of all information necessary to create a virtual diagram location, as follows:
	Type, bounding box, source module, destination module (separated by hex 01 characters).
	type = Invocation_Normal[0x01], Invocation_Data[0x02], Invocation_Lex[0x03]
	(bounding box = lsx, lsy, lex, ley)
	Note: The modules referenced in this record must also be included in the same import file.
	In all other cases this field will be empty.
Time Stamp	This optional field holds the Create and Modify dates for the object. It is used for import only. The format is Create Date followed by Modify Date, separated by hex 01 characters, as follows:
	yyyy-mm-dd, yyyy-mm-dd (separated by hex 01 characters).
Object Footer	END ENTRY <crlf>
Object Fields	FIELD Field Type Name, Number of Records <crlf>
	The basic format for all object fields is a header that specifies the name of the field and the number of lines in the body of the field. Many types use plain text which is defined as a list of lines each with a single quoted string with a maximum line length of 254 characters after processing. Standard Analyst Text means that the field uses the same format per line as the Analyst define screen field bearing the same name. Entry names can be up to 40 characters in length. Names in fields use Entry Key format unless the entry key information is redundant; i.e. Member names listed in a classs composition must be part of that class.
ADM DATA	Type, min, max, average <crlf>
	Type is the ASCII number for K (key), M (multiple), or G (group).
ALIAS	"Standard Analyst Text" <crlf>
	There may be up to 10 aliases per entry.
ASSOCIATOR	"Standard Analyst Text" <crlf>
	A relationship can have one associator and can be up to forty characters in length.
ATTR:	"Standard Analyst Text" <crlf>
	User-defined attribute entries. The actual Field Type is ATTR:User Attribute Name. There is one of these for each user attribute used on the object.
CHECK	"Column Name", "Check Constraint Name" <crlf>
CLASS COMPOSITION	"Member Name", "Type Name", Array Limit, Flags <crlf>
	The Type Name is an object in the repository of type Class, Data Element, or Data Structure. Both Member Name and Type Name can be up to forty characters in length. Three pieces of information are in the flags fields. One item from each of the following categories is ORed together: Reference Address    [0x80] Reference [0x100] Value        [0x00] Visibility Implementation [0x18] Private                  [0x10] Protected          [0x08] Public                [0x00] Qualification Constant [0x400] None       [0x000] Static       [0x800] Volatile    [0x200]
CLASS DATA	Cardinality, "Cardinality Text", Flags <crlf>
	Cardinality can be one of the following values: One                  [0x01] One or Many    [0x02] Many                [0x03] Zero or One      [0x04] Zero or Many    [0x05] Cardinality text can be up to 20 characters in length. Three pieces of information are stored in the flags field. One item from each of the following categories is ORed together (Persistent and Abstract are optional): Currency Active    [0x60] Guarded [0x20] Sequential        [0x00] Synchronous [0x40] Persistent [0x4000] Abstract [0x8000]
COMPOSITION	"Standard Analyst Text" <crlf>
	This field can be used with any object that supports a composition, such as data structures, entities, and data stores.
DATA ONLY MODULE	"Standard Analyst Text" <crlf>
	This field is used with an information cluster entry, and can be up to forty characters in length.
DBFILES	Database Type, "File Name", Size, Reuse <crlf>
	This field is used with a tablespace entry to specify either the datafiles that comprise the tablespace or the logical device name. Database Type is 1 for Oracle and 2 for SQLServer.
DBPHYSINFO	"Tablespace Name", Database Type, Sequence, Index Type,  Additional Information <crlf>
	This field is used with either an entity or a tablespace entry to specify physical storage information. There can be one DBPHYSINFO object for each entity, unique key, and performance index defined. Tablespace Name should be blank ("") if the current entry is a tablespace. Database Type is 1 for Oracle and 2 for SQLServer. Sequence is 0 to define physical information for the table, 100 + key number for unique keys, and 200 + index number for performance indexes. (Key number for the primary key is zero.) Index type can be one of the following values: Sorted                    [0x00] Hashed Ordered    [0x10] Hashed Scattered  [0x20] Additional Information for Oracle: No Sort, PCTFree, PCTUsed, INITrans, MAXTrans, InitialExtent, NextExtent, PCTIncrease, MINExtents, MAXExtents, FreeLists, FreeListGroups, Offline Additional Information for SQLServer indexes: SortedData, FillFactor, IgnoreDupKey, DupRow
DESCRIPTION	"Standard Analyst Text" <crlf>
	This is a short desciption for the entry. Up to two lines of information can be specified.
FRIEND	"Friend Name" <crlf>
	This field is used with classes to specify either classes or functions that are friends of the current object. See the description for Entry Key for the format.
FUNCTION DESCRIPTION	"Standard Analyst Text" <crlf>
KEYS	Key Type, Key Number, "Key Name", Column Count <crlf> "Column Name", Order <crlf>
	Key Type is either 21 for unique keys or 22 for performance indexes. Key Number is either zero for the primary key or non-zero for alternate keys and performance indexes. Column Count indicates the number of columns in the key. Order indicates the sort order of the column and is either zero for ascending or one for descending.
LINK:	"Standard Analyst Text" <crlf>
	User-defined object link references. The actual Field Type is LINK:User Object. There is one of these for each user object references by the object.
LOCATION	Diagram Type, "Diagram Name", Upper Left X, Upper Left Y, Lower Right X, Lower Right Y, Associated Line Count <crlf> "Associated Line Name | Parent Flow Name", Start X, Start Y, End X, End Y, Direction<crlf>
	This field is a list of all diagram locations for the object. Each diagram location consists of a header line followed optionally by either a parent flow name record for data flows or list of associated lines for other objects. Diagram Type can be one of the following values: Data Flow                1 Structure Chart        2 Entity Relationship   3 Unstructured            4 Decomposition         5 Class                        6 State Transition        7 Diagram Name can be up to forty characters in length. Each diagram within a diagram type must have a unique name. If the name is prefixed by hex 9B, the diagram is a Virtual diagram imported from Application Browser. Associated Line Count is the number lines attached to the object on the indicated diagram. Associated Line Name is the name of the attached line, which can be up to forty characters in length. Direction can be one of the following values: Input                        49 Output                      48 or Couple Down           48 Couple Up                49 Couple Bidirectional  50
MODULE DESCRIPTION	"Standard Analyst Text" <crlf>
MODULES CONTAINED	"Standard Analyst Text" <crlf>
	This field is used with an information cluster entry. There can be up to seven modules each up to forty characters in length.
NOTES	"Standard Analyst Text" <crlf>
PARAMETER	"Name", "Type Name", Array Limit, Flags
	The Type Name is an object in the repository of type Class, Data Element, or Data Structure. Both Name and Type Name can be up to forty characters in length. Two pieces of information are stored in the flags field. One item from each of the following categories is ORed together: Pass By Address    [0x80] Reference [0x100] Value        [0x00] Qualification Constant [0x400] None       [0x000] Volatile    [0x200]
PHYSINFO	Data Type, Length, Decimal, "Default Value", "Picture", "Owner", Allow Null <crlf> OR Data Type, "Domain Name", "Owner", Allow Null <crlf>
	This field is used with data elements or classes with an elemental subtype. The first version is used if the entry dos NOT reference a domain. Default Value can be up to 20 characters in length. Picture can be up to 18 characters in length. Owner can be up to 8 characters in length. Allow Null is either ASCII 89 (Y) or 78 (N).
PROCESS DESCRIPTION	"Standard Analyst Text" <crlf>
PROCESS NUMBER	"Standard Analyst Text" <crlf>
RELATED TO	"Standard Analyst Text" <crlf>
	This field is used with structure chart items to create an associatiion with dataflow diagram items. For modules, there can be up to ten processes listed, for couples there can be one data element listed, and for data only modules there can be one data store, data structure, data element or dataflow listed. Each related to item can be up to forty characters in length.
RELATIONSHIP	Header Controlling Key, Flags, From-To Cardinality, To-From Cardinality, On Delete, On Update, "From-To Cardinality Text", "To-From Cardinality Text", "From Role Name", "To Role Name", "From Qualifier Name", "To Qualifier Name" <crlf> OR Controlling Key, Flags, From-To Cardinality, To-From Cardinality, On Delete, On Update, "From-To Cardinality Text", "To-From Cardinality Text", "Discriminator Name" <crlf> Group/Prefix Group Number, "Prefix 1", "Prefix 2",...<crlf> Foreign keys "Foreign Key Column Name", <crlf>
	This field is used with a relationship line entry to supply information used during SQL Generation. A relationship field consists of one header, one group/prefix line, and one line for each column of the foreign key. The second form of the header is used with supertype/subtype and inheritance relationships, while the first form is used with all other relationship types. Controlling key is zero to indicate the primary key is used in the owner entity, while any other number indicates an alternate key number. Four pieces of information are stored in the flags field. One item from each of the following categories is ORed together: Relationship Type Normal        [0x0] Inheritance  [0x01] Aggregation [0x03] Denormalization Option None                                    [0x0] Collapse Child                      [0x80000] Duplicate Parent                   [0x10000] Duplicate Parent and Retain [0x180000] Identifying     [0x2000] Use Suffix     [0x200000] Cardinality can be one of the following values: One                  [0x01] One or Many    [0x02] Many                [0x03] Zero or One      [0x04] Zero or Many    [0x05] On Delete and On Update can be one of the following values: Cascade     [0x01] Restrict       [0x00] Set Default  [0x03] Set Null       [0x02] Cardinality text can be up to 20 characters in length. Discriminator, Roles, and Qualifier names can be up to 40 characters in length. Group Number is used with supertype / subtype relationships to indicate how relationships are grouped together. Relationships drawn with the same start point on the supertype should have identical group numbers.
TRIGGER	"Trigger Name", Operations, Fire time, Scope, # of associated columns <crlf> The values to use are: Operation -- Note that some dialects allow you to specify more than one operation. Update  [ 0x01] Insert     [ 0x02] Delete    [ 0x04] Fire Time Before    [ 0x00] After        [ 0x08] Scope Table     [ 0x00] Row       [ 0x10] For TRIGGER field records, the above structure is used. For each associated column there is one associated column record, as follows: "Column Name" <crlf>
VALUES AND MEANINGS	"Standard Analyst Text" <crlf>
Note

Bounding boxes for structure chart types refer to "virtual diagram" positions. The virtual diagram is a temporary object created by import so that invocation lines can exist in the repository without an associated diagram. Virtual locations disappear when the associated objects are added to real diagrams. Virtual locations are not visible when editing repository items.

An example of an exported ASCII file is listed below. It shows a sample entry as it appears in the repository dialog box shown in Figure 7-4 of the Workbench manual.

Repository VSC Export Example

Project = CPO, Filename = CPO.AD

(‡ is substituted for the hex 01 character)

"CPO",19951027,"10:17:11",1,3

" PowerBuilder Extensions",4,0,0

"annotation",0,"0",0,"",1,"45","annotation Description"

"requirement",0,"0",0,"",1,"0","requirement Description"

"Display Format",2,"304",1,"",0,"0","Format:"

ENTRY "264","40","Entity1‡Entity2‡may have‡Is an extension of"

FIELD "RELATIONSHIP", 2

0,8192,2,1,0,0,"","","","","",""

0

END ENTRY

ENTRY "A Parent Flow","4",""

FIELD "COMPOSITION", 2

"SubFlow1 +"

"SubFlow2"

FIELD "LOCATION", 1

1,"TopLevelDiagram",398,594,1016,861,0

END ENTRY

ENTRY "A process for top flow","1",""

FIELD "PROCESS NUMBER", 1

"1.1"

FIELD "LOCATION", 3

1,"Top Flow",700,250,1084,696,2

"SubFlow1",85,273,716,336,49

"SubFlow2",85,614,716,550,49

END ENTRY

ENTRY "ColumnID","458797",""

FIELD "PHYSINFO", 1

22,60,0,"","","",32

END ENTRY

ENTRY "ColumnName","458797",""

FIELD "PHYSINFO", 1

1,0,0,"","","",32

END ENTRY

ENTRY "Entity1","34",""

FIELD "COMPOSITION", 2

"[PK] ColumnID"

"[PI1] ColumnName"

FIELD "KEYS", 4

21,0,"",0,1

"ColumnID",0

22,1,"",0,1

"ColumnName",0

FIELD "LOCATION", 2

3,"An ERD Diagram",350,250,932,538,1

"264",913,420,1461,813,48

END ENTRY

ENTRY "Entity2","36",""

FIELD "CLASS COMPOSITION", 2

"","ColumnID",0,0

"SupplementalID","ColumnID",0,0

FIELD "KEYS", 3

21,0,"",0,2

"ColumnID",0

"SupplementalID",0

FIELD "LOCATION", 2

3,"An ERD Diagram",1200,800,1782,1088,1

"264",913,420,1461,813,49

END ENTRY

ENTRY "Is an extension of","37","Entity1‡Entity2‡may have‡Is an extension of"

FIELD "LOCATION", 1

3,"An ERD Diagram",913,420,1461,813,0

END ENTRY

ENTRY "may have","37","Entity1‡Entity2‡may have‡Is an extension of"

FIELD "LOCATION", 1

3,"An ERD Diagram",913,420,1461,813,0

END ENTRY

ENTRY "SubFlow1","4",""

FIELD "LOCATION", 2

1,"Top Flow",85,273,716,336,1

"A Parent Flow"

END ENTRY

ENTRY "SubFlow2","4",""

FIELD "LOCATION", 2

1,"Top Flow",85,614,716,550,1

"A Parent Flow"

END ENTRY

ENTRY "Entity2::SupplementalID","43",""

END ENTRY

ENTRY "Top Flow","1",""

FIELD "PROCESS NUMBER", 1

"1"

FIELD "LOCATION", 2

1,"TopLevelDiagram",1000,650,1384,1096,1

"A Parent Flow",398,594,1016,861,49

END ENTRY

________

See Also

Relational Database Repository Exports


Visible Prototyper Export

You can export in a format that the Visible Prototyper will recognize by selecting the Visible Prototyper selection from the Export dialog box. The Workbench will ask you to specify a directory for where the Prototyper is installed. If the drive and directory it displays is not correct, you should enter the correct path. When you press OK, the export will begin.

It is also possible to export Visible Prototyper panels with ESF export, either by themselves or in conjunction with repository data.

________

See Also

Shell Code Generation


Gupta SQLWindows Interface Export

Data model information can be transferred from the Workbench to the Gupta SQLWindows client/server application development system. This information includes entity and attribute definitions, relationships and extended attribute information, such as comments on tables and columns, and validation rules.

To use this feature:

Before transferring data to SQLWindows, you must add information about the Visible Analyst  Workbench to the repository used by SQLWindows and TeamWindows. To do this,

Select System Codes from the Utilities menu of the TeamWindows Repository Manager.

Select the CASETool item and press Edit Codes. If VAW does not exist, add it by specifying "VAW" as the Code and "Visible Analyst" as the description.

Apply any changes and then select ORI_EXE.

Press Edit Codes. If VAW does not exist add it by specifying "VAW" as the Code and "TWX_VAW" as the description.

Apply any changes.

You are now ready to export data from the Workbench.

Start the Workbench.

Start the TeamWindows Repository Manager.

Start TeamWindows Repository Manager.

Select Import from the Version menu, set Version Type to CASE Import, and CASE Tool to "VAW  Visible Analyst". Press OK and you should see the Waiting for CASE Tool dialog box on the screen,

Return to the Workbench and select Export from the Utilities menu, choosing TeamWindows as the format.

Note

You must have at least version 3.1 of Microsoft Windows to perform this export..


Unify VISION Export

Data model information can be transferred from the Workbench to the Unify VISION client/server application development system. This information includes entity and attribute definitions, and extended attribute information, such as comments on tables and columns, validation rules, and user-interface design details.

To transfer data to VISION:

Select Export from the Utilities menu, choose "Unify VISION" and press OK.

If no errors are detected during the export preparation phase, you will be prompted for the location of the VISION repository in which to store the data.

After the export is complete, you can use the VISION Class Editor to view the exported items. An application must be connected to a database in order to use the classes in the Forms Designer.

Note

You must have at least version 2.0 of Unify VISION to perform this export.

It is recommended that you generate SQL for the target database before performing the VISION export so that you may use the exported objects in the Forms Designer.


Importing Data -- Overview

There are several types of imports that can be done to get external data into the Workbench repository.

The first is generic and imports from ASCII files in the proprietary VSC format.

The second accompanies a release of the Visible Analyst Workbench that is distributed solely to users of the Arthur D. Little IRMA product and its associative data modeling methodology so that IRMA users can view their data models as entity relationship diagrams.

KnowledgeWare (IEW/ADW) format.

Excelerator Excel format.

SQL format.

AS/400 DDS (Data Description Specification) format.

Application Browser format.

Powersoft's PowerBuilder format.

RDBMS Catalog import.

UNIFACE import format.

Note

The import utility will make significant modifications to your project's repository. For this reason it is a good practice to backup the project to which you are importing prior to the import. In this way you can easily recover from any unintentional project changes.

After you have prepared the data file whose contents you want to import into the Workbench, there are three stages to the import: Preparation, Verification and the Import Procedure.

________

See Also

VSC-Format Repository Exports

Workbench Utilities


Preparation

You must first decide on the format of the imported data. You can choose from the formats listed in the Import Overview. Next, you must decide upon the import options, that is, how the Workbench should handle imported data vis-a-vis the information already residing in the project's repository. (See Figure 7-3 of the Workbench manual .) You have three choices:

Overwrite All tells the workbench to add everything in the import file to the Workbench regardless of whatever might already be there. The Workbench will overwrite existing data or create new records and fields as necessary.

Overwrite None indicates that nothing already in your repository is to be touched. Import file information that would cause such an overwrite will be ignored.

Type List gives you a detailed means to customize the import.

Import Customization

Customization allows you to make flexible choices on what repository types and what fields within those types will be imported. Furthermore, you can specify how import data/existing data collisions will be handled. (See Figure 7-5 of the Workbench manual.)

You can choose, for each repository type (e.g., data element, control couple, etc.) or compound type (e.g., All Entity Types, All Standard FDD types, etc.), whether items of that type within the import file are to be imported by checking the Include in Import box for that type. Note that you can set import characteristics for subtypes of the compound types individually, regardless of the settings you make for the compound type. For example, you can choose to import All Standard DFD types, but choose not to import Aliases and Miscellaneous items.

For each of the above types you have chosen to import, you can check off both the repository fields you wish to import and whether or not you want existing data in those fields to be overwritten.

You have additional flexibility with the Merge option. The basic idea of merging is that if a field exists in the import file and the corresponding field already in the repository is empty, the file data will be imported regardless of overwrite settings for the remaining fields of that repository item. In other words, for a given repository type that is set to be imported and that contains three fields, X, Y and Z, Table 7-6 of the Workbench manual explains how the Merge option will effect the importation of data fields for this item. What can be seen is that if Merge is on (the default setting), the Workbench will bring in all data fields for an item except for those fields that contain data and for which overwriting is prohibited. If Merge is turned off, if any field for a repository item is non-importable because of an overwrite restriction, no fields for that item will be imported. You should turn Merge off for a repository type only if this all-or-nothing approach suits your needs.

When you have completed your customization settings, you can review them by selecting the repository types in the dialog box list and noting the options set for each. (The easiest way to do this is with the up and down arrow keys.) If you have set some import characteristics for a compound type, say All Entity Types, and different ones for a subtype of that compound type, say Attributive Entities, when you display the characteristics for the compound type you will be informed that the those for the subtype are different.

Note

Customized import characteristics will be saved and will be applied to any future imports for which you pick Type List as the Import Option. You can modify these at the time of future imports and the changed characteristics will be saved. You can, however, reset them all (i.e., turn all customizations off) if you wish. In the Types to Import dialog box (see Figure 7-5 of the Workbench manual ), select All for the import type and toggle the Include in Import box on and then off. All options will then be reset, and you can save this status by pressing the OK button.

________

See Also

Verification

The Import Procedure

Workbench Utilities


Verification

Selecting OK from the Import dialog box will run the verification function to allow you to check to be sure that the import will be carried out as you expect. There are two reports that result from verification that you can view on the screen, print or save to a file. You should review these carefully.

Import File Error List

The Import File Error List (see Figure 7-6 of the Workbench manual ) will show, for all repository types, what will be done to them on import. In other words, it summarizes the import characteristics you specified. At the top are the compound types and below them are the individual types that either are not part of any compound type or that vary from the compound type to which they belong. At the bottom of the report are descriptions of errors in the import file, if any. The existence of errors means that the actual import cannot proceed until you correct them and rerun the import verification procedure.

Import File Overlap List

At the top of the Import File Overlap List (see Figure 7-7 of the Workbench manual) is the same summary of import characteristics as above. Below that is a report that shows, for every entry in the import file for which there is an overlap with data already in the repository, how the Import function will apply the import characteristics you specified in the customization dialog box.

________

See Also

Preparation

The Import Procedure

Workbench Utilities


The Import Procedure

To use the import utility, perform the following:

Select Import:

1.	Select the Import function from the Utilities menu. The Workbench will display the import dialog box. See Figure 7-3 of the Workbench manual.

Select the Format of the Import File You Want to Import:

2.	Select format of the import file, i.e., what application it comes from (SQL, IEW, etc.) from the list box. Then choose or enter the name of file you wish to import.

Choose your Import Options:

3.	Decide which import options you want: Overwrite All, Overwrite None or Type List, to customize your import. If you choose the last option, the Modify Type List button will become enabled.

Customize the Import:

4.	If you want to customize your import, press the Modify Type List button and follow the process outlined in Preparation. Pressing OK after making your choices will save the current selections. Pressing Cancel will revert to the previously saved import customizations, if any. See Figure 7-5 of the Workbench manual.

Verify the Import:

5.	Follow the process outlined in Verification. See Figures 7-6 and 7-7 of the Workbench manual.

Run the Import:

6.	After the verification step has run error-free, you can run the actual import. When it is complete, you will see the Import Action List (see Figure 7-8 of the Workbench manual). This again shows a summary of your import characteristics. Below that, it displays a list of every item in the import file and how it was handled by the Import function. If you notice that there was some major error in the way data was imported, you can delete the project and restore the backup you made before beginning the import procedure.

The import is now complete.

________

See Also

Workbench Utilities


VSC Format Imports

The Import selection on the Utilities menu allows you to load information into a project's data repository from an ASCII file. The ASCII file format required is the same as that generated by the VSC format of the repository export utility described in VSC-Format Repository Exports. This means that you may use the VSC format to export from one project and import into another project. You may also create an ASCII file in this format from some other application or database and import it into a Workbench project.

________

See Also

Workbench Utilities


Import from Excelerator

Project data should be exported from Excelerator using its E format, the default. Files in that format consist of a header record and data records. One E-file is created for each project. One data record in an E-file contains one entry from the Excelerator's repository. The import from Excelerator to the Workbench works one project or E-file at a time. The import procedure is outlined in The Import Procedure.

There are several issues involved in moving Excelerator repository items into the VAW:

Excelerator only allows names no longer than thirty-two characters, but the uniqueness rules are less strict than those of the Workbench. In Excelerator an object name must be unique only within its entry type (for example, a data element and a process may share the same name). An import naming convention has been developed to resolve possible problems: the Workbench appends names with the entry type name when several entries use the same name.

Excelerator may have more than seventy different entry types, depending on its configuration, and that number may grow in new versions of Excelerator. All Excelerator entry types can be divided into three categories:

1.	Entry types that have direct correspondence with Workbench entry types are converted to the Workbench type. Still, some of the attributes of such entries do not have corresponding attributes in the Workbench. These attributes may be lost or be moved to the Notes field during the transfer.

Almost all of the Workbench objects are among the Excelerator entry types. Missing are couples, interface table rows, information clusters, different module types, different entity types and domains.

2.	Entry types that don't have analogs in the Workbench are ignored.

3.	Diagrams are entries in the Excelerator repository. Because of the great differences between the way these two products draw diagrams, there would be so many problems with the conversion of Excelerator diagrams into Workbench diagrams that diagrams are ignored in the current release.

Excelerator allows both an input picture and an output picture for a data element. The Workbench will use whichever of these is present. If both exist, the output picture is used.

The list of the Excelerator entry types that can be imported into the Workbench follows. Only entry types from the basic Excelerator product (XL/IS) are included in the list. Those from others (XL/DB2, XL/CSP) would be ignored in any case.

Entry Types Imported from Excelerator

Excelerator ID	Excelerator Type Name	Workbench Entry Type
DAE	Data Entity	Entity
DAR	Data Relationship	Relationship
DAF	Data Flow	Data Flow
DAS	Data Store	Data Store
ELE	Data Element	Data Element
EXT	External Entity	External Entity
FUN	Function	Module
PPS	Primitive Process Spec	Process Description
PRC	Process	Process
REC	Record	Data Structure
DNR	Data N-ary Relationship	Associative Entity + Relationships
________

See Also

Workbench Utilities


KnowledgeWare IEW/ADW Import and Export

Project data from IEW (Information Engineering Workbench) can be exported to and imported from a set of four formatted text files. Those files are relational database files converted into an ASCII format. The file names are fixed by IEW. The following is a simplified description of these files:

OI.EXP	The object file. It contains entry names, types and internal IDs.

AI.EXP	The association file. It contains composition/location information and relationships.

PI.EXP	The property file. It contains non-text (short) object properties.

TI.EXP	The text file. It contains text (long) object properties: description and notes.

The import/export will work on a project basis; a Workbench project corresponds to a set of four formatted text files created by/exported to IEW.

Notes on Import

The import procedure is outlined in The Import Procedure. In IEW, a project is designated by the name of the directory in which it is stored. It is probable that the files exported from IEW will be stored in the project's directory.

Some IEW attributes get translated to Workbench data elements and some to data structures. If an attribute is a concatenation in IEW, then it is imported as a data structure. Only top-level attributes and concatenations go directly to the composition field of an entity. Attributes that are members of a concatenation are placed in the composition field of the proper data structure. Relationships that are members of concatenations are not placed in the composition field of the data structure; they are imported as relationships.

Local data types are not imported as Workbench repository entries. They only supply the physical characteristics for the associated attributes (data elements).

The Workbench does not allow entities and relationships in the composition of a data flow. Only data flows and attributes from an IEW flow expression can go to the data flow composition field.

The Workbench does not support exact values for a relationship's cardinality. All values greater than one are interpreted as many.

Text fields (IEW definition and comments) get reformatted to fit sixty-character lines. For Workbench entries with the composition field (entities, data structures, data flows, etc.), the IEW definition is imported as the Workbench description and is limited to two lines.

Notes on Export

An export from the Workbench in IEW format will cause four files to be created in your transient file path. See their descriptions earlier in this Help topic.

In IEW, an attribute (data element ) cannot exist without being, at some level, in the composition of an entity. Thus, free-standing data elements and data structures will not get exported to IEW. All of the data elements and data structures from the full decomposition of an entity (excluding associator/elements) are exported as attributes of that entity, and data structures generate concatenations.

In IEW an attribute can only describe one entity. Thus, each Workbench data element or data structure generates as many IEW objects as the number of entities where it is used in the composition field.

In ADM (Associative Data Model) entities, used in the IRMA-import version of the Workbench only, group elements generate concatenations. Non-root key elements are not exported, but if a non-root key element is located just under a group element, the corresponding relationship is added to the concatenation.

The physical information of data elements generate IEW local data type objects.

Data flow decomposition is limited to data flows and data elements or data structures that are used in the composition field of an entity.

For Workbench entries that have three text fields (description, notes and a third one -- values & meanings, process description, etc.), the description field and the third field are concatenated into an IEW definition.

For relationships, text fields for both relationship directions are merged to form one IEW text field.

The IEW requires relationships to be named in both directions. The export procedure generates the relationship name "reverse of ..." for the reverse direction of a Workbench unidirectional relationship.

The IEW requires that a creator user name be attached to each object. On export to IEW, this will be set to VAW for each object exported.

General Notes

There are several other issues involved in moving data between the IEW repository and the Workbench:

Creation and modification dates will be transported.

The IEW only allows names no longer than thirty-two characters, but the uniqueness rules are less strict than those of the Workbench. Further, IEW has different rules for the characters allowed in an object name. The import and export routines have naming conventions to resolve possible problems.

The IEW objects that have direct correspondence with Workbench entry types are converted to the Workbench type. Still, some of the attributes of such entries do not have corresponding attributes in the Workbench. These attributes may be lost or be moved to the Notes field during the transfer. Entry types that don't have analogs in the Workbench are ignored.

The list of the IEW objects that can be imported into the Workbench follows:

IEW Objects for Import/Export

IEW Object	IEW Type Code	IEW Workstation	Workbench Entry Type
Attribute Type	10003	Planning, Analysis	Data Element or Data Structure
Entity Type	10007	Planning, Analysis	Entity (fundamental, associative, attributive)
Relationship Type	20044	Planning, Analysis	Relationship
Function	10058	Planning	Function
Process	10000	Planning, Analysis	Process
Data Flow	10008	Analysis	Data Flow
Data Store	10012	Analysis	Data Store
External Agent	10002	Analysis	External Entity
Global Data Type	10016	Analysis	Domain
Local Data Type	10048	Analysis	Data Element Physical Info
________

See Also

Workbench Utilities


Import from SQL

The SQL import utility allows you to create a Workbench data model from SQL DDL statements. Like other utilities, you can execute it by selecting Import from the Utilities menu. The program will read the SQL file, search for supported DDL statements and generate Workbench entities, data elements, and corresponding relationships.

The SQL Source File

An SQL file for import is a free-format ASCII file with the following characteristics:

Tokens (i.e., SQL keywords) are separated by spaces, tabs, and new-line characters.

Single line comments are introduced with two dashes (-- )or an exclamation mark (!).

Multi line comments are introduced with /* and terminated by*/ and you cannot have nested comments

Only DDL statements get the Workbench's attention; all others are ignored. Each create table statement will generate an entity. Each column in the table will generate data elements in the composition field of the entity, with physical information. The create table statements can conform to Ansi-92 standards and are dialect dependent.

There are three types of entities, Fundamental, Associative and Attributive. The Analyst will determine the entity type based upon the foreign key references. If no foreign key constraints are defined in the create or alter table statements then no relationship information will be generated.

Alter Table Statements

If a foreign key is referenced outside the scope of the current create table statement, most dialects will create an Alter Table Statement at the end of the schema. The Analyst will read these alter table statements and generate the appropriate entities if they don't exist and will populate the entity with the primary and foreign keys, check constraints, and unique key indexes if this information is provided.

Check Constraints

The Analyst supports table and column check constraints as well as primary and foreign key constraints on columns.

If more than one constraint exists for a column, the constraints are appended to the first in the order they are read, separated by a comma and the naming convention will be the name of the first constraint read.

Tables are allowed multiple constraints. If no name exists the constraint will be defined using the table name and if there are duplicate constraint names then each instance will be suffixed with an indexed number.

Primary and Foreign Key Clauses

A primary key clause will generate a [PK] prefix before the names of the data elements that are components of the primary key in the entity's composition field.

A foreign key clause will generate a relationship bearing the name of the foreign key. In the case of an unnamed foreign key, the relationship will be named Related to. The entity in which the foreign key clause is found will be the destination entity for the relationship; the entity referenced by the foreign key will be the source entity. The relationship's cardinality on the source entity end will be set to 1:1 and that on the destination entity end will be set to 0 : many. If the entity in which the foreign key is found is a attributive entity,(i.e. fully dependent on the parent entity) then the relationship's cardinality on the source will still remain 1:1 but that on the destination entity end will be set to 0:1.

Data Element Naming Convention

The import utility will maintain the uniqueness of the generated data element names. If two or more columns under different tables have the same name but have differing datatypes, the column names will be suffixed with a index numbering scheme. If the import utility generates an element and the data type is not supported by the Analyst, the element is defined as a domain and the type is undefined.

Domains

The import utility will support an object type called domain if importing Rdb or SQLServer dialects.

Unique Indexes

Create unique indexes will generate alternate keys in an entity as long as there is a primary key defined or the index is part of a concatenated primary key for the entity. If no primary key exists for the entity then the unique index will be referenced as a primary key.

Performance Indexes

Create indexes ( that is non-unique indexes ) will generate performance indexes in an entity.

Comments on Tables and Columns

Any comments associated with a particular column or table will appear in the repository description field of the object  There is a upper limit of 160 characters per comment.

Stored Procedures

If your dialect supports stored procedures, the Analyst will create a module with a subtype stored procedure when a stored procedure is encountered upon import. The text associated with every stored procedure in the DDL will be stored in the module description field in the VAW. If using Informix you must have an "end procedure" statement following the stored procedure. If using SQLServer, you must include a <nl>Go<nl> after each stored procedure. For Rdb you must have an "end module" and for Oracle7 Server a balanced begin/end blockis required. Currently Rdb is the only dialect to support a module. When a module is encountered upon import  a corresponding stored procedure is created in the VAW repository and the text associated with the module is stored in the module description field.

Triggers

Rdb, Oracle7 Server, and SQLServer dialects support triggers. For SQLServer, the trigger must be followed by a go statement or an EOF. Each trigger is associated with a table; it is always fired after and the Analyst will support insert, delete or update commands. For Oracle7 Server each trigger is associated with a table, it can be fired before or after and the Analyst will support insert, delete, update with a column list and a firing scope for either the row or table. For Rdb the support t is the same as Oracle7 Server except the firing scope is specified as part of the trigger body.

Tablespace

Create Tablespace statements will generate a tablespace object in the repository. If an entity or index references a tablespace, the linkage will be maintained. For SQLServer, the sp_addsegment() and sp_extendsegment() stored procedures will also generate a tablespace object. You must have dba privileges to extract physical properties.

Identity Clause Support

SQLServer System 10 is the only dialect to support identity clauses. If a numeric data type is encountered and the identity clause follows this data type in the SQL DDL then upon import VAW will create this column with the autoinc data type.

_______

See Also

Workbench Utilities


DDS Import

An IBM AS/400 DDS (Data Description Specification) import allows the creation of a data model from DDS statements, and is similar to an SQL import. A DDS source file is an ASCII file with 80 character, fixed length, column position formatted lines. The format is as follows:

DDS Source File Format

Field #	Columns	Meaning
1	1-5	Line number.
2	6	Always 'A'.
3	7	'i' indicates the line is a comment.
4	17	'R' = record, 'K' = key, '  ' = element.
5	19-28	Record/element name ( 10 characters ).
6	30-34	Length ( elements only ).
7	35	Storage type ( elements only ):
		'P' = packed dec., 'S' = zoned dec.,
		'B' = binary, 'F' = float,
		'A' = character, 'H' = hexadecimal,
		'L' = date, 'T' = time,
		'Z' = time stamp.
8	36-37	Decimal places.
9	45-80	Attributes:
		ALWNULL = allow null
		DFT(value) = default
		TEXT( 'text' ) = comment
		VARLEN = variable length ( character ).
		FLTPCN(*DOUBLE) = double precision.
If the attributes for one element do not fit in columns 45-80, they can be continued on the following line(s) in columns 45-80. Key specifications follow the element specifications. Below is a DDS Sample

00010A	R	PERSON			TEXT('Entity Person')
00020A	* Elements
00030A		PERSON_ID	10	A	TEXT('Person ID')
00040A		NAME	40	A	TEXT('Name')
00050A		INFO	400	A	TEXT('Info') ALWNULL
00060A					VARLEN
00070A		WEIGHT	6	P2	DFT(200.00)
00080A		HEIGHT	4	P1	DFT(6.0)
00090A	* Key Components
00100A	K	PERSON_ID
________

See Also

Data Description Specification (DDS) Generation

Workbench Utilities


Import Data from the Application Browser.

Data from the Application Browser can be imported into the Workbench. COBOL code can be put into the Application Browser's Code Base and viewed in its diagrams. This import procedure will enter this COBOL information into the repository of a Workbench project created in the Workbench, using the Import function from the Utilities menu.

Conversion Information

COBOL Data Division items will be converted into data structures and data elements. The overall structure of the code will create structure chart items in the Workbench project's repository. When you print reports on such a project, structure chart items will have diagram location references. These references will appear as "|virtual". This is because the import procedure creates a virtual diagram in the Workbench while creating structure chart items from Application Browser Code Base information. You can generate structure charts from this repository information.

In addition to the procedure modules, files, data structures, and data elements created, one data only module is created for each COBOL module (source file). It contains the 01 level Data Division definitions. The name of this module is the COBOL source module name with the suffix "_DATA".

If a paragraph contains a PERFORM statement that executes a single paragraph, a standard invocation is created. If multiple paragraphs are performed, for example PERFORM P1 THRU P5, a logical module would be created with the name P1..P5 with a lexical inclusion invocation to it. Invocations for the individual paragraphs are created from the P1..P5 module. GOTO statements between these paragraphs will generate control connections between the modules in the Workbench.

FALLTHRU statements are usually ignored because their action is implied by the standard method of connecting modules. However, in the case of pathological connections that jump out and then back into the list of paragraphs executed by a PERFORM THRU block, FALLTHRU statements are converted into control connections to show the flow through modules outside the list.

A CALL statement in COBOL that calls an external source module will generate an invocation from the calling module to the top module of the called program module hierarchy. Any parameters used with the CALL statement in the original COBOL code will be lost in the current version of the Workbench.

OCCURS clauses in the COBOL source are semantically translated properly into the Workbench if the OCCURS value is a simple numeric. Complex OCCURS clauses containing DEPENDING ON, INDEXED BY, etc., are placed into the item's Notes field.

Other Conversion Information

Copy libraries used in the original COBOL source will be expanded in-line and incorporated into the Workbench repository in their expanded forms.

Currently, the RENAMES statement in COBOL is not supported in the Workbench.

COBOL paragraph comments will be placed in the Notes field of the module representing the paragraph.

The external name for a COBOL file will appear in the Notes field of the file in the Workbench.

A Workbench data structure is created for each non-lowest-level item in a COBOL Data Division data definition.

Lowest-level items, including non-subdivided level 01 items and level 77 items, will become data elements.

Level 88 statements will have their values listed in the Values & Meanings field of the data element with which it is associated in the COBOL source.

Naming Considerations

There are certain name transformations that occur during the import because of different naming rules in the Application Browser and the Workbench. First, Application Browser names that begin with a number are prefixed with the letter "A" to conform to the Workbench rule that names must begin with a letter. Second, a suffix is added to Application Browser names that are used in different places with different meanings, so that they can be distinguished in the Workbench. During the import, an intermediate list of names is created. Names from the COBOL Data Division hierarchy are appended to the item name, separated by periods. Then the names are shortened, keeping only the information necessary to make the names unique. Because of the forty-character name length limit in the Workbench, characters may be removed from the middle of the suffixes and numbers added to maintain uniqueness within the name length limits.

Code Generation Implications

The source code of a COBOL paragraph is saved in the Module Description field of the Workbench module that gets generated from the paragraph. If you later want to generate code from the Workbench project, you should first make sure you have made the correct settings in the Shell Code Generation Options dialog box. This is accessed by selecting Code Generation Options from the Options menu. In the box labeled Included Module Information, be sure that the Module Description item is checked, so that the Module Description field is included in the generated code. Also, make sure that the Code button is selected so that the Module Definition field is interpreted as code and not just as a comment.


Powersoft's PowerBuilder Interface

Data Model information can be transferred between the Workbench and the PowerBuilder application development system from Powersoft. This information includes entity and attribute definitions, all extended attributes that have been defined and validation rules. This information is stored in the PowerBuilder system tables.

To transfer data to PowerBuilder:

Select Export from the Utilities menu, choose "PowerBuilder" and press OK.

The process is similar to SQL schema generation in that you must choose what data you want to generate. SQL DDL statements will be created, which will then be executed against the PowerBuilder system tables. This will, in turn, create tables, columns, extended attributes and validation rules.

To import database definitions from PowerBuilder:

Select Import from the Utilities menu, choose the PowerBuilder format.

Note

The directory where PowerBuilder is installed must be included in your PATH, because the Workbench needs to execute PowerBuilder programs to transfer data. The current PowerBuilder database will be used for the import or export. This information is stored in the PB.INI file under the [database] heading.

See Also

Understanding Repository Fields

PowerBuilder Extended Attributes

Physical Characteristics Repository Fields


RDBMS Catalog Import

Data Model information can be transferred between any of the supported RDBMS's and the Workbench and in a seamless fashion. This function will populate a VAW project database with the data model information as defined in the RDBMS. The supported RDBMS's are Gupta's SQLBase,SQLServer and System 10,and Oracle7 Server. Please refer to the individual RDBMS for installation guidelines.

The information captured includes all entity and attribute definitions, any key information, as well as triggers, constraints and stored procedures, if your RDBMS supports them. Refer to SQL DDL import for more information.

To import RDBMS database definitions into the VAW:

Select Import from the Utilities menu, choose "RDBMS Catalog" and press OK.

The Extract Database Location Information dialog box will be displayed. This dialog box will query you for your RDBMS specific connection information such as connection string, database name, schema name and user name. Refer to the Workbench Database Managers for more information on the dialog box.

The VAW will read the RDBMS database definitions, convert them to SQL DDL and display an import action list (see figure 7-8 of the VAW manual), showing a summary of what objects will be imported. If this import action list is correct, simply choose the Import button at the bottom of the screen and the repository will be populated with your data model information. You can then proceed to have the VAW automatically generate an ERD from the data model information that was imported.

________

See Also

SQL DDL Import

RDBMS Catalog Export


UNIFACE Interface

Data Model information can be transferred between the Workbench and the UNIFACE application development system from UNIFACE. The VAW import/export is fully compatible with UNIFACE v5.2. The information transferred includes entity and attribute definitions, including short descriptions and notes fields, primary and alternate keys, and relationships based upon the foreign key definitions. This information is stored in the conceptual schema derived using IDF.

To transfer data to UNIFACE:

Select Export from the Utilities menu, choose "UNIFACE" and press OK.

Data Model information will be exported to an ascii file in the UNIFACE CASE Interface Format (CIF). This file can be imported into UNIFACE using the CASE load feature.

To import database definitions from UNIFACE:

Choose the SQL dialect you would like the conceptual schema data types and interface syntax to map to by choosing SQL Dialect from the Options menu.

Select Import from the Utilities menu, and choose the UNIFACE format.

Select the CIF file to import. This file is created using the CASE unload feature of UNIFACE to export a conceptual schema to the CASE Interface Format. You can use the point n' click method to highlight the file or type in the filename and PATH.


Diagram Parameter File Format

A parameter file is generated and maintained for each Workbench diagram created or updated by the Workbench Save operation. The file contains the instructions necessary to draw the symbols, lines and text which comprise the diagram.

There are five separate types of a diagram parameter files, one for each diagram type. Although there are five different types, the format of each is nearly identical. The overall diagram parameter format includes a header record and one record for each symbol, line, and text entry. The subtle differences between the four types center on the symbol types, line types and line terminators supported by each diagram type. These differences are noted below.

The format of all objects (symbols, lines and text) in versions prior to 3.1 were maintained in a coordinate system of 960 x 522 pixels, suitable for CGA. To support the more recent EGA and VGA standards and Windows, versions 3.1 and later of the product maintain all screen coordinate pairs (X, Y) in a world coordinate system of 3072 x 3756 pixels. This coordinate system will allow the Workbench to evolve with video standards supporting a maximum resolution of 2048 x 2048 pixels.

The name assigned to a diagram parameter file is generated during the diagram Save operation from information contained in a project treefile. There are five treefiles maintained for a project, one for each diagram type. A diagram parameter file name for the data flow diagram type is generated by concatenating the project name with next sequential file number. The next sequential file number is produce by adding one to the previous file number (LAST) maintained in the treefile. For example, a project name of TELL and a value of 1 for the last file number would produce a parameter file name of TELL0001. A diagram parameter file name for the structure chart type is generated in a similar manner. An exception to this procedure is the last file number (LAST) located in the treefile; for the FDD type it is initialized to 9601, structure chart type it is initialized to 3001, for the entity relationship type, 6001 and for the unstructured type, 9001. For example, the first structure chart is created for project TELL would be TELL3001. For more information regarding the format of a treefile refer to the treefile format discussion which follows this section.

The maximum number of diagram parameter files maintained for a project is determined by the Workbench configuration. The following table details the maximum number of diagrams for each diagram type and configuration:

Version	Diagrams per Diagram Type
Educational	10
Professional	600
Overall Structure

The file format appears as shown below. Note that except for the first item below, which lists the number of symbol, line and text items, respectively, in the diagram, the remaining items are arrays. There is one array element for each symbol, line or text item, whichever is the case. Further, all of the symbol items for each symbol will be listed on a single line in the file. So, for each of the NUMSYM symbols on the diagram (i.e., with values of I numbered from 1 to NUMSYM), there will be NUMSYM lines of symbol information. Then there will be NUMLIN lines of information describing lines on the diagram, then NUMTXT lines of information about text, followed by the font table.

NUMSYM, NUMLIN, NUMTXT

SULX(I), SULY(I), SLRX(I), SLRY(I), SCXD(I), SCYD(I), SYMLYR$(I), STY$(I), SYMASLN$(I), SYMCOL(I), SYMTYP(I), DRAW.LEN, SYMDC$(I)

LINTYP(I), LINTRM(I), LSX(I), LSY(I), LEX(I), LEY(I), SEGLN(I), ASSYMS(I,1), ASSYMS(I,2), LINCOL(I)

TTYPE(I), TASYMLN(I), TFONT(I), TEDFMT$(I), TULX(I), TULY(I), TLRX(I), TLRY(I), TEXT.LEN, TEXT$(I)

Font Table

Definitions of File Structure Items

NUMSYM	=	Number of symbols contained in diagram.
NUMLIN	=	Number of lines contained in diagram.
UMTXT	=	Number of text entries contained in diagram.
SULX(I)	=	Upper left X coordinate of symbol.
SULY(I)	=	Upper left Y coordinate of symbol.
SLRX(I)	=	Lower right X coordinate of symbol.
SLRY(I)	=	Lower right Y coordinate of symbol.
SCXD(I)	=	X coordinate of relative center of symbol.
SCYD(I)	=	Y coordinate of relative center of symbol.
SYMLYR$(I)	=	If parent symbol of nested decomposition or if off-page connector, then equals alpha designator of child or connected page, otherwise equal to null.
STY$(I)	=	Stylizing instructions for symbol.
SYMASLN$(I)	=	Lines associated with symbol, separated by commas.
SYMCOL(I)	=	When viewing a data flow diagram: if > 0 then is file number of nested decomposition. if < 0 then is file number of connected page.
	=	When viewing a structure chart: if the symbol type is an information cluster then is number of modules defined for it.
	=	When viewing an FDD: if the symbol is a function that has been spawned to a DFD, this is the diagram number of the top DFD
	=	Otherwise equals zero.
SYMTYP(I)	=	0 If symbol not part of methodology, otherwise:
		For data flow diagrams:
		1 = Yourdon process  2 = Yourdon file
		3 = Yourdon source/sink  4 = G&S process
		5 = G&S data store  6 = G&S external entity
		For FDDs:
		1 = Process  14 = Function
		For structure charts:
		15 = module 16 = library module
		17 = macro 18 = library macro
		19 = data only module 20 = information cluster
		21 = on-page connector 22 = off-page connector
		23 = operating environment
		For ERDs:
		34 = entity 35 = associative entity
		36 = attributive entity
DRAW.LEN	=	length (in bytes) of symbol drawing instruction that follows.
SYMDC$(I)	=	Symbol drawing instruction.
LINTYP(I)	=	Line type for data flow diagrams:
		1 = single  2 = bold
		3 = double bold  4 = double
		5 = wide double  6 = dotted
		7 = single dashed  8 = bold dashed
		9 = dashed arc 10 = arc
		11 = open ctrl flow 12 = filled ctrl flow
		20 = dashed elbow 21 = elbow
		For structure charts:
		13 = Generic Couple 14 =Data Exception Couple
		15 = Data Couple  16 =Control Couple
		17 = Data Connection 18 =Control Connection
		19 = Loop
LINTRM(I)	=	line terminator for data flow diagrams and structure charts:
		1 = solid 2 = open
		3 = double solid 4 = double open for structure  charts
		5 = lexical inclusion 6 = decision
		7 = decision and lexical inclusion
		For entity relationship diagrams, there is a special packed format. Contact Visible Systems if more information is needed.
LSX(I)	=	X coordinate of starting point.
LSY(I)	=	Y coordinate of starting point.
LEX(I)	=	X coordinate of ending point.
LEY(I)	=	Y coordinate of ending point.
SEGLN(I)	=	If positive then is line number of next segment. If negative then is last segment and points back to first segment.
ASSYMS(I,1)	=	If negative then equals symbol number of symbol attached to beginning of line, otherwise equals 0.
ASSYMS(I,2)	=	If positive then equals symbol number of symbol attached to end of line, otherwise equals 0.
LINCOL(I)	=	Workbench versions as of 2.2 through and including 3.0a, this is not functional. It continues to be accidental in version 4.0 for data flow diagrams, however the structure chart type will utilize this field.
	=	If the line type (LINTYP) is a couple, LINCOL is set to the associated invocation line.
TTYPE(I)	=	Usage of text:
		-1 = Process # or G&S Data Store #
		1 = symbol  4 = line
		2 = data flow 5 = control flow
		3 = paragraph 6 = caption
TASYMLN(I)	=	If non-zero then equals symbol number or line number that text is associated with.
TFONT(I)	=	Font table index: for each text item, the sequential number of a typeface name in the Font Table that applies to that text item.
TEDFMT$(I)	=	Formatting options for text, concatenated and enclosed in double quotes.
		B = bold C = center
		I = italic F = flush
		U = underline W = wrap
		P = up S# = point size
		D = down
TULX(I)	=	Upper left X coordinate.
TULY(I)	=	Upper left Y coordinate.
TLRX(I)	=	Lower right X coordinate.
TLRY(I)	=	Lower right Y coordinate.
TEXT.LEN	=	Length (in bytes) of text that follows.
TEXT$(I)	=	Text entry, embedded within phrase are special characters to control formatting.
Font Table	=	List of font family and typeface names for each font used on the diagram, separated by commas. The font family identifiers will be integers corresponding to the Windows constants (listed in WINDOWS.H) representing font families:
		FontFamily#TypefaceName, FontFamily#TypefaceName, ...
________

See Also

Treefile Format


Treefile Format

In its most general application, a treefile contains the information necessary to distinguish, from among the other files in a project's directory, the diagram parameter files which belong to a particular project. It also maintains the mapping between the diagram label assigned to a diagram during a Save operation and the physical diagram parameter file known to the operating system.

There are five treefiles maintained for every project created by the Workbench. These five distinct treefiles share the same overall format. The treefile is a sequential ASCII file with variable length records, each terminated by a carriage return/line feed sequence. It consists of a single treefile header record, plus treefile entry records for each diagram in the project. Each treefile entry contains information related to its associated diagram.

The name of the data flow diagram treefile is formed by concatenating the project name with the literal TREE. For example, a project name of CRAB would have a treefile name of CRABTREE. The generation of the structure chart treefile is similar; however, a DOS file extension of SC is appended to the treefile name (e.g. CRABTREE.SC). For ERDs, the extension is ER, FD for functional decomposition and US for unstructured.

Example treefile for data flow diagram:

Header Record:	1, 3, 3, 1, A, V4.2, 1
Entry Records:	A$A%1&1894'1(0)1*1+1,CONTEXT DIAGRAM AA$A%2&2044'1(1)1*+1,DIAGRAM 1 AAA$A%3&1367'1(1)1*+1,DIAGRAM 1.1
Example treefile for structure chart:

Header Record:	1, 3, 3003, 1, A, V4.2,1
Entry Records:	ADAAB$%3001&3557'6(0)1*0004+2,SC ADAAC$%3002&3267'6(0)1*0004+2,SC ADAAD$%3003&399'6(0)1*0004+2,SC
Example treefile for FDD:

Header Record:	1, 6, 9606, 1, A, V4.2,1
Entry Record:	AJGAF$%9605&2161'W(0)1*+2,ORDER FULFILLMENT SYSTEM
Example treefile for ERD:

Header Record:	1, 5, 6007, 1, A, V4.2,1
Entry Records:	AGAAH$%6007&535'8(0)1*+2,GHLP AGAAE$%6004&780'8(0)1*+2,MAIN VIEW AGAAD$%6003&468'8(0)1*+2,TEST VIEW 1
Example treefile for unstructured:

Header Record:	1, 5, 6006, 1, A, V4.2,1
Entry Records:	AGAAA$A%6002&163'8(0)1*+2,CLUSTER 1 AGAAD$C%6003&1015'8(0)1*+2,CPG CLUSTER DIAGRAM AGAAE$C%6004&1015'8(0)1*+2,NEW CLUSTER
Header Record Format

TYPE, ENTRIES, LAST, BFLAG, PARENT$, VERSION$, CONTROL
TYPE	Unused, always equal to 1.
ENTRIES	The number of treefile entries that follow, this also indicates the number of diagrams in the project.
LAST	The last file number used for a diagram parameter file in the project.
BFLAG	Unused, always equals 1.
PARENT$	Unused, always equals A.
VERSION$	Prior to v2.11 - unused, always equal to A. As of v2.2 - equals V + VAW version number.
CONTROL	Unused, always equals 1.
Entry Records Format

A treefile entry consists of a single string, the fields within which are delimited by special characters, as described below.

Alpha designator	For a data flow diagram, this field will maintain the parent child relationships between diagrams within the tree file, using an ASCII scheme. The first level of any project is level A. Therefore all tree file entries begin with the letter A. Children are assigned an alphabetic character from the letter A through h (lower case h) for a total of forty possible children. For example, the children of diagram A are AA, AB, AC, etc.
	For non-DFDs, there are no parent child relationships to maintain, so the ASCII scheme is different. The alpha designator is always comprised of five characters. Of these five characters, the first character of the designator is always A. The remaining four characters are generated by mapping the four digit file number (FILE NUMBER) described below to the capital letters of the alphabet. The mapping procedure transforms the digit with a value of 0 to A, 1 to B, 2 to C, 3 to D ... 9 to J. For example, a file number of 3001 will produce a designator of ADAAB.
Layer	(Delimited by "$") Unused, always equals A.
File Number	(Delimited by "%") This, in conjunction with the project root, is used to form the DOS file name of the diagram parameter file. For example, if this were a 3, and the project root was CRAB then the diagram parameter file name would be CRAB0003.
File Size	(Delimited by "&")File size in bytes. This is not currently used by the program and may not be accurate.
Storage Format	(Delimited by " ' ")
	For Workbench versions prior to 5.0:
	In versions prior to 3.1, it was unused and always equal to 1. Beginning with version 3.1, this field identifies the storage format of the bit image for a diagram. A bit image for a diagram will be created by the diagram Save operation as long as the FAST DIAGRAM DRAW option is enabled.
	2 = CGA  (640 x 200), 2 color
	3 = Hercules (720 x 348, monochrome)
	4 = EGA  (640 x 200, 16 color)
	5 = EGA  (640 x 350, monochrome)
	6 = EGA  (640 x 350, 16 color)
	7 = VGA  (648 x 480, monochrome)
	8 = VGA (640 x 480, 16 color)
	For Workbench version 5.0+:
	W = Windows (world coordinate system)
Symbol Number	(Delimited by "(") For data flow diagrams this field contains the symbol number of the symbol in the parent diagram to which the diagram relates. In other words, it identifies the parent symbol of which the diagram is a nested decomposition. It equals zero if the diagram is not a nested decomposition.
	For non-DFDs, this field is always zero because their symbols cannot be decomposed.
Menu Placement	(Delimited by ")") Identifies the relative position of the diagram label as displayed in the diagram selection routine. This number only has significance within a single level associated with a single parent.
Diskette Finder	(Delimited by "*") Unused, equals either 1 or null.
Page Size	(Delimited by "+") Indicates diagram's page size:
	1 or 2= standard page size
	3 = easel
	4 = multi-page
Label	(Delimited by ",") Diagram label, may be up to forty characters.
________

See Also

Diagram Parameter File Format


VAW.INI File Format

There is a file in the Workbench installation directory named VAW.INI. This file initially contains the default settings for various functions in the tool. When you make changes, such as varying the default line type or the SQL dialect, they are recorded in this file so that in your next Workbench session, the tool will continue to act as you had requested in the past.

Most of the settings in the file should not be edited by you. Rather, you should let the Workbench maintain it. However, there are limited circumstances in which you might want to make some changes, and they are discussed below.

Specifying LAN Version Workbench Default Settings

For the LAN version of the Workbench, default settings can be accessed from one centralized location so that all users will start with the same setup information. These defaults can later be overridden by users. This is most useful to set a network's drive and path preferences for projects and temporary files generated by the Workbench.

Edit the VAW.INI file, located in the Workbench installation directory.

Insert the statement "Default Data Path=" for project files, and insert the appropriate drive and directory.

Insert the statement "Transient Data Path=" for temporary files, and insert the appropriate drive and directory.

When a user accesses the Workbench from a node on the network for the first time, the Workbench will create a new initiation file named VAW#.INI, where # is the number the network assigns to the user's node, and copy the contents of VAW.INI into the new file.

Extending the Workbench Repository

New fields, called user-defined attributes, can be defined in a project's repository, allowing you to extend the information that can be stored with an object. The field information that can be stored includes name, type and length.

To establish new repository fields for a new project:

Edit the VAW.INI file, located in the Workbench installation directory. Insert the following configuration statement for each new data field:

User Attribute n= name[,type number] [,length[,scale]]

where the following definitions apply:

n -	a unique number assigned to each user-defined field.

name -	a title given to the field.

valid type -	a name in the list of Workbench-supported types.

length -	the size of the field.

scale -	the number of digits to the right of the decimal point.

Save the above changes.

The user-defined fields now denoted in the VAW.INI file will appear in any project you subsequently create.

Note

There is a maximum of 100 user-defined attributes per project, i.e., each object can have no more than 100 additional fields attached.

To add the user-defined fields to an already-existing project:

Modify the VAW.INI file as described above.

Create a new, temporary project by selecting New Project from the File menu.

Export the contents of this new project using the VSC format. Select Export from the Utilities menu and click the VSC button.

Make the project you want to contain the new fields the current project by choosing Select Project from the File menu.

Import the data you previously exported from the temporary project into this project by choosing Import from the Utilities menu. Be sure to use VSC as the import format.


Customizing an SQL Dialect

The VAW will allow you to define a user-defined dialect or you can customize a supported dialect, altering the DDL that is generated from a data model to suit the needs of your particular DBMS.

After selecting the Options menu function SQL Dialect for Schema Generation, you can choose an existing supported dialect or select the user-defined dialect. Once a dialect is chosen, you can then Generate SQL from the Repository menu and generate SQL DDL from your defined data model that will include all possible options specified in the SQLDIAL.TBL, located in the VA sub directory. In this file you can you can customize any dialect or create your own user-defined dialect, if you need an SQL dialect that the Workbench does not yet support. The customization procedure is as follows.

Keep a backup of the original file:

1.	Make a copy of the file \VA\SQLDIAL.TBL so that you can restore it and start over in case you make some serious errors.

Edit the dialect description table:

2.	With an ASCII text editor, edit the file SQLDIAL.TBL. Each dialect is described in a section beginning with the name of the dialect in brackets. Search for [sql dialect name], which is at the beginning of each section describing a dialect.

3.	You will see the various possible options listed followed by a colon and then either a yes or no, indicating whether or not the option applies, or some numeric value, describing a length constraint. These values should be changed by you to reflect the requirements of your SQL dialect.

Select applicable data types:

4.	This is followed by a section defining the available data types for the customized dialect. For any data type that is not supported by your dialect, the text following the colon should be deleted. Alternatively, the entire line can be deleted. For data types available in your dialect, you must also indicate how many parameters are to be passed to SQL when indicating a certain data type. Examine how it is done in other dialects if you have questions.

For example, examine the definition for the data type decimal. You will notice three possible syntax's: DECIMAL(,), DECIMAL(), and DECIMAL. The first indicates that SQL would expect a definition of a decimal data type to include both the field length and the number of decimal places, i.e., DECIMAL(6,2). Similarly, DECIMAL() would describe a declaration with just one length value, and DECIMAL would contain no length value. You will have to consult the documentation for your SQL dialect to find out how it expects data types to be defined and what the numbers mean to that specific dialect.

Note

In the LAN version, this file is Read Only. Someone with network supervisor privileges will have to change the file to Read/Write before editing can be done.

________

See Also

SQL Schema Generation


Workbench Features to Support ADL IRMA

These features are in the Visible Analyst Workbench so that the Arthur D. Little IRMA tool and its associative data modeling (ADM) users can

view their data models as entity relationship diagrams,

combine ADM entities on their DFDs with Workbench data flow diagrams,

se all of the Repository, entity relationship modeling, data flow diagraming and other features of the Workbench on ADM imported data.

Importing IRMA Projects

Data Imported

Data stored by IRMA can be directly imported into a Visible Analyst Workbench project repository. Items imported include domains, data elements, and entities, with all supporting information.

Generating Relationships

For each associator element, relationships between entities will be automatically generated and named, with the associator elements retained in the project's repository, as well. The way relationships are transported from IRMA to the Workbench is illustrated by Figure D-1 of the Workbench manual. The way the entities appear in IRMA is shown in Figure D-1(a). The Workbench will create a relationship from one entity to another when the domain of an associator under one entity refers to another entity. In IRMA, each element has an element ID. If reversals are specified, that is, if the reversal field of an associator under one entity contains the element ID of the associator under the other entity, and vice versa, then the Workbench will be able to create bidirectional relationships. This is shown in Figure D-1(c). If reversals are not specified, then the Workbench can create relationships between the entities but has no way of knowing if relationships are the reverse of one another and which relationship is the reverse of which. In that case, unidirectional relationships are created, each with the name of the corresponding associator. This is shown in Figure D-1(b).

The cardinality (Min/Max) of generated relationships will be retrieved from the associators. The cardinality of a relationship is the cardinality of the reversal of an associator. (If there are any other factors effecting cardinality between the root entity and the associator, such as an optionality, these will be taken into account.) You can see this, also, in Figure D-1 of the Workbench manual.

Generating Relationship Names

Since relationships are implicit, not explicit, in IRMA, there are no existing names for relationships and the Workbench must create them. In an attempt to create readable names, the Workbench does some analysis on the name of the associator on which a relationship is based, possibly making some degree of alteration in it, and sandwiches it between the entity names to come up with the relationship name. The names that are generated won't always be perfect; if they don't quite suit your needs, you are free to change them.

The rules for the process are illustrated below. If associator2 is subordinate to entity2 and is an associator for the relationship from entity2 to entity1, then a descriptive relationship name will be constructed as follows:

If associator2 is in form of	Then relationship name is
entity2 that text entity1	text
entity2 that text	text of
entity2 text entity1	is text
entity2 text	is text of
text entity1	is text
text	is text of
For example, if the name of entity1 is "car" and that of entity2 is "person",

Associator2	Entity 2	Relationship Name	Entity 1
Person That Owns Car	Person	Owns	Car
Person That is Car Owner	Person	Is Car Owner of	Car
Person Owning Car	Person	Is Owning	Car
Person Being Car Owner	Person	Is Being Car Owner of	Car
Owner of Car	Person	Is Owner of	Car
Car Owner	Person	Is Car Owner of	Car
Import Procedure

The import procedure is identical to other imports, which is described in The Import Procedure.

When the import is complete, everything you entered into your IRMA project will have been transferred to the Workbench repository and names will have been assigned during the import. You can change these names either on view diagrams that you create or in the repository, if you wish.

The import procedure does not create any views, although there is always, implicitly, a global view of the project in the repository. You can print that immediately or you can convert it into an editable view, if it not too big to edit. Use the View of Data Model function from the File menu for these tasks.

An activity log is produced during the import. This log will list the relationships created. If item names are modified due to the differing constraints imposed by the two products, they are also marked in the log. The log will be placed in the Workbench's transient file directory.

Imported IRMA Text

In IRMA, you can add descriptive information to entries' text definition screens, including the *= text. The Workbench import software will correctly wrap this text and not break it in the middle of words, as IRMA does. (See Figure D-3 of the Workbench manual.)

Functionality Differences for Imported IRMA Projects

The Analyze operations normalization, key analysis and key synchronization are not allowed for projects that contain IRMA items. These functions are handled implicitly by the associative data model, so they do not need to be redone in the Workbench.

SQL Schema Generation supports the complex associative data model structures created by IRMA.

Entity Attribute Structure

The repository composition field for an entity imported from IRMA will show the complete hierarchy structure that you defined in IRMA. (See Figure D-2 of the Workbench manual.) This is a protected field. The definition of an element can be displayed by jumping to that item using the repository Jump key, the same way you can jump between the entries for entities and relationships. This is described in Understanding the Repository Dialog Box.

________

See Also

Entity Relationship Diagrams

Importing Data into the Repository

SQL Schema Generation


Glossary

Choose the first letter of the term for which you want a definition.

A	B	C	D	E	F	G	H	I

J	K	L	M	N	O	P	Q	R

S	T	U	V	W	X	Y	Z


A

Abstract Class

Aggregation

Alias

Alternate Key

Analysis

Analysis, Structured

Associative Entity

Attribute

Attributive Entity


B

Backup

Balance

Boilerplate

Boilerplate Keyword

Branch

Business Planning


C

Candidate Key

Caption

Cardinality

Check Constraint

Child

Class

Class Attribute

Class Hierarchy

Class Method

Cluster

Cluster Diagram

Cluster View

Code Generation

Conditional Invocation

Connector

Constraint

Constructs

Context Diagram

Control Bar

Control Connection

Couple


D

Data Connection

Data Element

Data Flow

Data Modeling

Data Only Module

Data Store

Data Store Number

Decompose

Delimiter

Denormalization

Design, Structured

Diagram

Diagram Type

Discriminator

Display Format

Drag Down


E

Elbow

Element

Encapsulation

Entity. Associative

Entity, Attributive

Entity, Fundamental

Entry

Error

External Entity


F

File

File Lock

Foreign Key

Free Entity Pool

Friend

Function

Fundamental Entity


G

Global Change

Global View


I

Individual Change

Information Cluster

Information Hiding

Inheritance

Instance

Interface Table Row

Invocation Line


K

Key


L

Label

LAN

Lexical Inclusion

Library Macro

Library Module

Line Orientation

Local Change

Lock


M

Macro

Macro, Library

Messaging

Method

Methodology

Migrate Key

Module

Module, Library

Multi-User

Multiple Inheritance


N

Nest

Node

Normalization


O

Object

Object Modeling

Off-Page Connector

On-Page Connector

Orientation

Overloading


P

Page Connector

Parameter File

Parent

Performance Index

Physical Characteristics

Physical Information

Planning

Point-To-Point

Primary Key

Print Queue

Process

Process Number

Process View

Project

Pseudo-Relationship


Q

Qualifier


R

Rebuild

Record Lock

Relationship

Repository

Restore

Role

Root

Rules


S

Save

Security

Segment

Shell Code Generation

Snap

Source/Sink

Spawn

Split

Storage Type

Stored Procedure

Structured Analysis

Structured Design

Stylize

Subflow

Symbol


T

Table

Terminator

Tool Set

Toolbox

Tree

Treefile

Trigger


U

Unstructured

User Name

User ID

Utility


V

View

Virtual Diagram

Visibility


W

Warning

Wildcard Find

Wildcard Select


Abstract / Virutal Class
Abstract / Virtual Class

A class that cannot be instantiated and is created only for the purpose of organizing a class hierarchy or defining methods and attributes that will apply to derived classes.


Aggregation

A special form of association between classes, in which one class is composed of a group of classes.


Alias

An Alias is another name by which one can refer to a repository item other than the label with which it is defined. For more information, see Alias.


Alternate Key

An alternate key is a candidate key that is not used as the primary key.


Analysis

Analysis is done by the Analyze function, which examines a diagram or larger portion of a project for its concordance with Workbench and methodology rules. It is designed to inform you of completeness and logic errors that exist at any given moment. Error and Warning messages are issued. For more information, see Analyzing Data Flow Diagrams, Analyzing FDDs --Overview, Analyzing Structure Charts and Analysis for Entity Relationship Diagrams.


Associative Entity

The associative entity (sometimes called a junction, intersection or concatenated entity, a gerund or a correlation table) is basically a relationship about which you want to store information. It can only exist between two other entities. For more information, see ERD Symbols, Entity Symbols, Data Modeling Overview and Attributive Entity.


Attribute
Attribute, Element, Data Element, Column

An attribute is another term for a data element, an atomic piece of data. In relational database parlance, they are referred to as columns. For more information, see Understanding Repository Fields, Data Modeling Overview and Data Element Physical Information.


Attributive Entity

The attributive entity is used to show data that is wholly dependent upon the existence of a fundamental entity. It is also used to show repeating subgroups of data. For more information, see ERD Symbols, Entity Symbols, Data Modeling Overview and Associative Entity.


Backup

Backup allows you to backup a Workbench project to a floppy diskette, to multiple floppies or to a file server. For more information, see Backing Up a Project.


Balance

Balancing has two meanings within the Workbench. First, it is a means of assuring that the data flows on a set of DFDs are consistent. The rule for data flow balancing is as follows: If a data flow is used as a net input or net output (it doesn't matter which) at any level, all occurrences of that data flow (or decompositions of that data flow) on lower levels must be of the same direction (either input or output). For more information, see Analyzing Data Flow Diagrams, Net Data Flows and Data Flow Balancing Examples.

Second, the Model Balancing function balances data elements and/or entities used in your data model (ERDs) against existing data flow diagrams to ensure completeness and consistency. For more information, see Process/Data Model Balancing.


Boilerplate

Boilerplate diagrams do not represent project designs, but instead represent standard text and graphics that are available for insertion into other diagrams. For more information, see The Uses of Different Diagram Types and Using Boilerplates.


Boilerplate Keyword

Keywords are available for use in boilerplate diagrams. If any of the keywords are present in a boilerplate that is loaded into a diagram, they will automatically be replaced by information such as the date the diagram was created or last edited, etc. For more information, see Using Boilerplate Diagram Keywords.


Branch

A branch of a project is the set of all data flow diagrams that have been decomposed from a single process on a single parent diagram. For more information, see Understanding Project Trees.


Candidate Key

A candidate key is an attribute or set of attributes that uniquely identifies an occurrence of an entity. If it consists of more than one attribute, it is called a composite key.


Caption

A caption is free-form text entered on a diagram. It is not attached to any line or symbol, as is an object label. For more information, see Entering Text.


Cardinality

A relationship's cardinality shows how many instances of one entity or class type relate to how many instances of the entity or class type at the other end of the relationship. For more information, see Relationship Cardinality Notation.


Check Constraint

A check constraint (sometimes called a 'check condition'), in SQL parlance, is a statement within a  table's schema that applies some business or validation rule to it. If this rule, called a 'search condition', has a scope of single column, it is referred to as a 'column check' constraint; if the search condition, has a scope of more than one column, it is referred to as a 'table check' constraint. For more information, see Adding SQL Schema Generation Information.


Child

A child is an object that is the product of some form of decomposition of a "parent". These objects can be data flows, functions, or processes. For more information, see Splitting Data Flows, Functional Decomposition Diagrams and Nested Decomposition.


Class

A template for defining the methods and attributes for a particular type of object. All objects of a given class are identical in form and behavior but contain different data.


Class Attribute

A special kind of attribute that is stored in the class definition rather than in the instance of a class. Also known as a static attribute.


Class Hierarchy

A tree structure representing the relationships among classes.


Class Method

A special kind of method that is invoked by sending a message to a class rather than the instance of a class. Also known as a static method.


Cluster

A cluster is a grouping of entities which can be displayed as one symbol on a diagram. It's purpose is to reduce the amount of displayed detail. Note that a cluster is distinct from an information cluster. A cluster is created in the repository and entities are added to its composition field. A cluster view can then be created by the Workbench to display the pseudo-relationships between clusters rather than real relationships between specific entities. For more information, see Overview of Clusters, The View Functions, Cluster Diagrams, ERD Symbols, Entity Symbols, Data Modeling Overview, Associative Entity and Attributive Entity.


Cluster View
Cluster View, Cluster Diagram

A cluster view is a view of your data model, substituting clusters which you have created for some or all of the entities in your model. For more information, see Overview of Clusters, The View Functions and Cluster Diagrams.


Conditional Invocation

The conditional is the diamond shaped structure chart terminator. A conditional terminator may be attached to only the invoking or starting point of an invocation line. It shows that conditions apply to the invocation. It is used primarily to indicate a decision. For more information, see Invocation Lines and Terminators for Invocation Lines.


Connector

There are two meanings for the term connector within the Workbench. The first refers to page connector symbols that link the pages of a multiple-page diagram or that link structure chart modules on a single page. For more information, see Linking Multiple Page Diagrams.

The second refers to the lines between functions, between processes and from functions to processes, on FDDs. They allow you to specify the hierarchical relationships between the functional elements of your model. For more information, see FDD Connection Lines and Drawing Connectors.


Constraint

A constraint, in SQL parlance, is a statement within a schema for a table. A PRIMARY KEY statement is a constraint. A FOREIGN KEY statement is a constraint. A CHECK statement is a constraint. For more information, see Adding SQL Schema Generation Information.


Constructs

The Workbench provides the capability to store entire diagrams or sections of diagrams as Constructs. They may be thought of as library files for saving whole or partial diagrams which you may wish to reuse throughout a project or in different projects. For more information, see Using Constructs.


Context Diagram

The Yourdon methodology of structured analysis allows you the option of working with context diagrams. Context diagrams are simply top level diagrams having only one process that represents the entire system, to show its relation to its environment. For more information, see Structured Analysis Methods Overview.


Control Bar

The Control Bar displays a row of buttons above the diagram workspace that gives you quick access to certain Workbench functions. For example, to add a symbol to a diagram you simply press the button representing the symbol entry function and then press the button for the symbol you want to add. For more information, see Control Bar.


Control Connection

A control connection is a variety of invocation line that describes a one-way transfer of control between modules. It is drawn as a line with a filled in circle on one endpoint and an arrowhead on the other. The arrowhead is optional. A control connection can carry couples that represent control information passed with the transfer of control. For more information, see Structure Chart Line Types, Invocation Lines and Terminators for Invocation Lines.


Couple

A couple is a structure chart line type. It represents information passed between program modules. Data couples are the data parameters that get passed between program modules. Control couples are the control parameters that are being passed between modules upon invocation or return. For more information, see Data Couples, Control Couples, Generic Couples and Interface Table Rows (ITRs).


Data Connection

A data connection is a variety of invocation line that describes a one-way transfer of data between a module and a data only module. It is drawn as a line with an open circle on one endpoint and an arrowhead on the other. The arrowhead is optional. A data connection can carry couples that represent passed data items. For more information, see Structure Chart Line Types, Invocation Lines and Terminators for Invocation Lines.


Data Flow

A data flow is a structured analysis line type that represents the movement of data within a system. It can depict either an atomic piece of information or a collection of it. Non-atomic data flows can be decomposed (split) into subflows ("children" of the data flow). For more information, see Drawing Lines, Structured Analysis Methods Overview, Splitting Data Flows, and Net Data Flows.


Data Modeling

Data modeling is a means of describing the structure of and relationships within the data of a current or planned system or enterprise. In the Workbench, this is done with Entity Relationship Diagrams (ERDs) For more information, see Data Modeling Overview.


Data Only Module

A data only module is simply a collection of data, analogous to a data store or a common area. This kind of module cannot be invoked, since it contains no instructions, only data. The data can be shown being used by one or more modules. For more information, see Symbol Set for Structure Charts, Structure Chart Symbols, Macro, Library Macro and Library Module.


Data Store
Data Store, File

A data store or file (depending upon what methodology you are using) is a container which temporarily holds data while it is flowing between different processes on a data flow diagram. For more information, see Data Flow Diagram Symbols, Data Stores and Physical Files and Data Store Numbering.


Data Store Number

In the Gane and Sarson methodology of structured analysis, each data store in the set of DFDs is given a number. For more information, see Data Store Numbering.


Decompose, Decomposition, Split, Nest

In the Workbench, to decompose means to break down into smaller pieces, so that more detail may be displayed. A process can be decomposed into a child diagram so that the inner workings of the process can be shown. A data flow can be decomposed (split) to show its components. For more information, see Nested Decomposition, Generation of Process Decomposition Diagrams, Functional Decomposition Diagrams and Splitting Data Flows.


Delimiter

Item names entered into the composition field may contain up to forty characters each and may consist of any upper or lower case letters, numbers, spaces, periods, underscore characters and hyphens, but the first character must always be a letter. Asterisks may be used to denote comments, with all characters following the asterisk on a line being ignored. All other characters in the field are considered delimiters, and are used to separate items and components entered into this field. For more information, see Composition.


Denormalization

The process by which duplicate data is introduced into a stable, fully normalized data structure, to facilitate access and improve performance. According to Fleming and von Hale (Handbook of Relational Database Design), you should consider duplicating one or a few nonvolatile columns from a parent, ancestor, or one-to-one child table to expedite table lookups in frequent or critical requests.


Diagram

A diagram is simply a collection of symbols, lines and text that depicts something with some meaning to you. You can collect related diagrams, which can be constructed using some methodology or which can be unstructured, into projects within the Workbench. For more information, see The Diagraming Process.


Diagram Type

The Workbench allows you to create diagrams of several types: data flow diagrams, functional decomposition diagrams, structure charts, entity relationship diagrams and unstructured diagrams, depending on your needs. For more information, see The Uses of Different Diagram Types.


Discriminator

A data element that is used to distinguish between different subtypes when the denormalization option for a relationship is set to collapse child. For example, if you had a supertype named Employee, and subtypes named Salaried Employee and Hourly Employee, and collapse child was the denormalization option, the discriminator Employee Type would be used to differentiate between the two types of employees.


Display Format

This object will allow you to define the display format for the data element. The object is assigned a name and the actual mask representation of a display format is entered into the Format field. You can reference the display format in the Display field of a particular element. If you do not know the name of the display format you already defined, you can use the search key by placing your cursor in the Display field and then choosing Search on the bottom of the repository screen. This will search the repository for all display formats defined.


Drag Down

Dragging down is a means of balancing data flows during the process of decomposing (nesting) a process on a DFD. The data flows that enter or leave the process on the parent diagram are added as net input or net output data flows on the child diagram. For more information, see Nested Decomposition and Net Data Flows.


Encapsulation

A technique in which data is packaged together with its corresponding procedures. In object-oriented technology, the mechanism is the object.


Entity
Entity, Fundamental Entity

The entity (or, more properly, the entity type) is nothing more than some real-world object that you want to describe. The most generic type of entity is really a fundamental entity, but is usually called simply an entity. It is composed of data elements (also called attributes). In relational databases, these are referred to as 'tables'. For more information, see ERD Symbols, Entity Symbols, Data Modeling Overview, Associative Entity and Attributive Entity.


Entry

Each object stored in a project's repository has an entry with a label, containing its name, its entry type, and a host of additional information. For more information, see Repository Overview, Understanding the Repository Dialog Box and Understanding Repository Fields.


Error

An Error is a message issued by the Workbench analyzer which indicates that your project contains a violation of the Rules of the Workbench or one of its methodologies. It denotes a more serious violation than does a Warning. Note that you can look up all error and warning messages from the analyzer, plus all other Workbench error messages in the Help system. For more information, see Structured Design Overview and Analyzing Structure Charts.


External Entity, Source/Sink

An external entity or source/sink (depending upon what methodology you are using) is something outside the boundary of the system you are modeling that either sends data to your system or receives data from it. It is effectively a black box, in that what happens inside the external entity is not material to your system description. It is only there to make clear some of the environment in which your system resides. External entities are optional. A net input data flow can just as well be shown coming from nowhere as from an external entity. Note that an external entity has no relation to the entity that is a part of entity relationship modeling. It is simply an unfortunate collision of terminology. For more information, see Data Flow Diagram Symbols and Net Data Flows.


File Lock, Record Lock, Lock

The LAN Workbench utilizes the file and record locking mechanisms within Novell NetWare, or, for the generic network version, within DOS itself. For more information, see Multi-User Access to Projects.


Foreign Key

A foreign key is an attribute or set of attributes that identifies a candidate key of an entity at the opposite end of an attached relationship. Foreign keys are used to maintain referential integrity and should not exist for entities that do not have any attached relationships.


Free Entity Pool

The free entity pool is the collection of those entities that are not currently a member of a cluster. For more information, see Overview of Clusters, The View Functions and Cluster Diagrams.


Friend

A method or class that is given access to the private data of another class. Since this violates the principles of information hiding, friends should only be used where performance is an issue.


Function

A function is a symbol that appears on a functional decomposition diagram (FDD). FDDs give you the ability to do high-level planning of business functions (hereafter called simply functions) diagrammatically while concurrently populating the repository. You can enter functions that you define onto diagrams and break them down into successively finer gradations. At some point, one that is entirely up to you, you can break down functions into processes. These processes are semantically equal to the processes that appear on data flow diagrams. For more information, see Business Planning Analysis Methods and Functions. and Functional Decomposition Methodology Symbols,


Global, Local or Individual Change

Whenever you change (edit) text in the Workbench, you must decide whether the change is to be Individual, Local, or Global. If you choose Individual, the edit is applied to only the selected text. If the text is a label for a symbol that exists in more than one location and you change this particular instance of it, a new repository entry is created and it becomes a new repository item. If the new name is that of an existing object of that kind, it becomes a new location for that object. If you choose Local, the edit is applied to all occurrences of the selected text or label on the current diagram. If you choose Global the edit is applied to all occurrences of the selected text within the entire project. For more information, see Editing Existing Text and Labels.


Global View

Implicit in any data model is a global view, that is, a view containing all of the information in the repository. The Workbench will draw your global view for you as an editable diagram (if it is not larger than the dimensions of a multi-page diagram) or enter it into the print queue. For more information, see The View Functions and Create or Print a Global View.


Information Cluster

An information cluster is a specialized type of module. It is an aggregate of two or more modules and only one data only module. The information cluster is intended to combine all of the modules that would share a single data only module into a single compound symbol, for the purpose of diagram clarity and understanding. Drawing Information Clusters has a full description of how to add an information cluster to a diagram. For more information, see Symbol Set for Structure Charts and Structure Chart Symbols.


Instance

Some diagram objects, like data flows, data stores or entities, can appear in multiple places in a data or process model. An instance is one appearance of an object. For more information, see Data Stores and Physical Files.


Information Hiding

The technique of making the internal details of a class inaccessible to other classes, allowing the class to be changed without affecting how it is used.


Inheritance

A mechanism for creating classes in which the definition of one class can be based on another. The base class contains the basic definition, while the derived class implements only those features that need to be different.


Interface Table Row

An interface table row (ITR) represents a group of one type of couples and is drawn on the diagram to be a couple of that type. For more information, see Structure Chart Line Types and Interface Table Rows.


Invocation Line

An invocation is a line drawn from one module to another showing that the first module invokes (or calls) the second, with the implication that control will eventually return to the invoking module. The line is usually, but not always, drawn with an arrowhead terminator pointing to the invoked module. There are two variants of the invocation line called the control connection and the data connection. An invocation line can carry couples that represent data and control information passed with the invocation. For more information, see Structure Chart Line Types, Invocation Lines and Terminators for Invocation Lines.


Key

A key is a database term meaning something that provides a means of access to data. The Workbench allows you to specify the keys for your data model. For more information, see Data Modeling Overview, Composition, Associator Element, Normalization Analysis, Key Analysis and Key Synchronization.


Label

This is the name field by which every repository entry is accessed. An entry which refers to an object on a diagram maintains the identical label that appears on the diagram. Entries that are manually entered into the repository can be assigned any label that does not already appear in the repository. For more information, see Label.


LAN, Multi-User

The LAN version of the Visible Analyst Workbench adds powerful multi-user capabilities to the basic functionality of the Workbench. For more information, see Multi-User Access to Projects and Local Area Networking.


Lexical Inclusion

The lexical inclusion is the split line or hat shape terminator for structure chart lines. Its purpose is to show that the invoked module is logically separate but physically internal to the calling module. For more information, see Terminators for Invocation Lines.


Library Macro

This is a macro that is repeated in a system. A structure chart macro is a variety of a module that is included in-line in a program's code rather than being activated by reference. For more information, see Symbol Set for Structure Charts, Structure Chart Symbols and Library Module.


Library Module

This is a module that is executed in the same way each time it is invoked. It differs in usage from the standard module by the fact that its interfaces to other modules (if any) are hidden from the designer. For more information, see Symbol Set for Structure Charts, Structure Chart Symbols, Macro, and Library Macro.


Line Orientation, Point-To-Point, Snap, Elbow

There are numerous line types available for use in the Workbench. With certain exceptions, you can draw these line types in one of three orientations.

point-to-point mode, where you use the mouse to position both the start and end points of the line, having the line drawn between the two points.

snap mode, where you point and select a starting point then an end point, having the straight line snap into position on the horizontal or vertical plane.

elbow mode, where lines contain right angles and have only horizontal or vertical straight lines; you point and select a starting point then an end point. Except for the right angles, elbow lines work like arcs.

For more information, see Line Types.


Macro

A structure chart macro is a variety of a module that is included in-line in a program's code rather than being activated by reference. For more information, see Structure Chart Symbols, Library Module and Library Macro.


Messaging

The LAN version of the Workbench has a messaging system that allows all users to communicate easily over the network. The messaging feature gives access to NetWare's messaging while using the Workbench, and is invoked with function key [image]. For more information, see Messaging.


Method

A function contained within an object that provides services for manipulating the object that may or may not be accessible to other objects depending upon its visibility. Also known as a member function.


Methodology

A methodology is a set of rules or guidelines to help you model the various aspects of your system or enterprise. For more information, see The Rules, Rules Considerations, Data Repository Considerations, The Uses of Different Diagram Types, Symbols Recognized by the Yourdon Methodology and Symbols Recognized by the Gane & Sarson Methodology.


Migrate Key

Key Analysis can help you set up a consistent relational database key structure by migrating data elements (sometimes called attributes) which you designate as keys or parts of compound keys across relationships to associated entities and creating foreign keys. For more information, see Data Modeling Overview and Key Analysis.


Module

A structure chart module represents a contiguous sequence of program statements, in other words, a program, subroutine, function, etc. They come in various flavors (modules, library modules, macros, library macros), but they are all essentially capsules of instructions. There is a very loose relationship between the processes appearing in a process model and the modules appearing on a structure chart, in that the modules contain the code for performing the processes, but the correspondence is highly variable and subjective. For more information, see Symbol Set for Structure Charts and Structure Chart Symbols.


Multiple Inheritance

A scheme for structuring relationships among classes such the a class can be derived from more than one base class. The use of multiple inheritance permits overlap among class hierarchies, complicating the structure of the object model, but provides more flexibility for defining classes.


Node

A node is defined as concurrent access by a user. The number of network users that may access the Workbench program is limited only by the number of nodes purchased. For example, three nodes equals the ability to have three users concurrently accessing the Workbench. They may be any three users on the LAN For more information, see LAN Workbench Features and Capabilities.


Normalization

Normalization is a means of eliminating redundancy in data. It is a complex topic and is beyond the scope of this Help system. Since understanding normalization is key to effective database design, you should consult a text on the subject, such as one of those written by C. J. Date.

Normalization analysis does syntax analysis and also identifies certain possible relationship normalization errors. For more information, see Normalization Analysis.


Object

An object in the Workbench is some "thing" that you draw on a diagram or enter into your project's repository. There are numerous operations which you can perform on any object. If you click on a diagram object with the right mouse button, or if you click the right mouse button on an object when it is already selected, its Object menu will appear. On this menu are listed all of the operations you can perform on the object. You can select the task you want to perform from the Object menu. The selections available on the Object menu will vary somewhat because different objects have varying operations that can be performed upon them. For more information, see Selecting Diagram Objects, Moving Objects on a Diagram, Line Handles, Labeling Diagram Objects and Accessing the Repository.

When working with object-oriented techniques, an object is an instance of a class.


Object Modeling

Object modeling is a means of organizing software as a collection of discrete objects that incorporate both data structure and behavior. In the Workbench, this is done with Class Diagrams (CLDs) For more information, see Object Modeling Overview.


Overloading

The assignment of multiple meanings to the same method name. Each implementation must have a different set of arguments, so that the name, combined with the argument list, provides a unique name that can be used to resolved conflicts.


Page Connector

You can link pages of diagrams (except ERDs) to each other to break a large model down into pieces easier to read. In order to do this, you must place an off-page connector symbol on each linked diagram, labeled identically, and execute the Page function from the File menu. Page linking is not recommended for DFDs.

To avoid crossing lines on a structure chart diagram, it is often convenient to begin an invocation on one part of a diagram and complete it discontinuously on another part. For this, the on-page connector is used.

For more information, see Data Flow Diagram Symbols, Symbol Set for Structure Charts, Functional Decomposition Methodology Symbols , Page Connectors, and Linking Multiple Page Diagrams.


Parameter File

A parameter file is generated and maintained for each Workbench diagram created or updated by the Workbench Save operation. The file contains the instructions necessary to draw the symbols, lines and text which comprise the diagram. For more information, see Diagram Parameter File Format.


Parent

A parent is an object that has undergone some form of decomposition into "children". These objects can be data flows, functions, or processes. For more information, see Splitting Data Flows, Functional Decomposition Diagrams and Nested Decomposition.


Performance Index

A performance index is a non-unique index used to improve access to relational tables.


Physical Characteristics, Physical Information

For a data element or domain, physical information like data storage type and field length can be added. For more information, see Data Element Physical Information.


Planning, Business Planning

Functional decomposition diagrams (FDDs) give you the ability to do high-level planning of business functions diagrammatically while concurrently populating the repository. You can enter business functions (hereafter called simply functions) that you define onto diagrams and break them down into successively finer gradations. At some point, one that is entirely up to you, you can break down functions into processes. These processes are semantically equal to the processes that appear on data flow diagrams. For more information, see Business Planning Analysis Methods and Functions.


Primary Key

A primary key is a candidate key that not only uniquely identifies an occurrence of an entity, but also exists for every occurrence of that entity.


Print Queue

You can print diagrams either to hard copy or to a file. You have the option of printing the current diagram or of adding a number of diagrams to a queue and sending the whole group to be printed at some later time. For more information, see Printing Your Work.


Process

A process is a DFD or FDD symbol that represents some form of activity that transforms data. For more information, see:

Nested Decomposition	Data Flow Diagram Symbols
Create a Process View	Symbols Recognized by the Yourdon Methodology
Net Data Flows	Symbols Recognized by the Gane & Sarson Methodology
Process Numbering	Functional Decomposition Methodology Symbols
	Business Planning Analysis Methods and Functions


Process Number

Each process in a set of DFDs is given a number. For more information, see Process Numbering.


Process View

A process view is a view of your data model based upon an individual process. It shows all of the entities and relationships in your model whose data flows into or out from the selected process. For more information, see The View Functions and Create a Process View.


Project

A project is a collection of diagrams of various diagram types and a repository (if you have chosen to create one) that ties them all together. For more information, see Before You Begin, Understanding Projects and Creating a New Project.


Pseudo-Relationship

In a cluster diagram, clusters are shown joined by pseudo-relationships wherever at least one entity in one cluster is joined by a relationship to at least one entity in the other cluster. For more information, see Cluster Diagrams


Qualifier

An attribute of an object that distinguishes among the set of objects at the many end of an association.  When a qualifier is used, the effective cardinality of the association is reduced. Even though the qualifier is specified for  the from class, an attribute is maintained in the to class.


Rebuild

Rebuild allows you to convert a project from an earlier Workbench version format to the current format or to recreate a project that may have become corrupted due to a power failure, etc. For more information, see Rebuilding a Project.


Relationship

A relationship is the graphical representation of the database concept of the "relation" that can exist between two tables. For more information, see Relationship Lines, Drawing Relationships, Labeling a Relationship, ERD Line Terminators, Data Modeling Overview, Key Analysis and Key Synchronization.


Repository

A repository is a database for a project that contains information both captured from your diagrams and entered directly by you. For more information, see The Repository, Btrieve: The Workbench Database Manager and Data Repository Considerations.


Restore

Restore allows you to restore a Workbench project from one or more floppy diskettes or from a file server. For more information, see Restoring a Project.


Role

An attribute that uniquely identifies one end of a relationship. Roles provide a mechanism for viewing a binary association as a traversal from one object to a set of associcated objects. Even though the role is specified for  the from class, an attribute is maintained in the to class.


Root

The root of a project is the one- to four-character name of the project. Unless you tell the Workbench to do otherwise, the project root will also be the name of the directory in which project data is stored. For more information, see Before You Begin, Understanding Projects, Creating a New Project.


Rules

The Rules of the Workbench is a set of features and functions that, collectively, allow you to develop projects under the discipline of a structured methodology. For more information, see Visible Rules Overview.


Save

All of your work during an editing session on a particular diagram can be saved or discarded. When you edit an existing diagram, the changes do not become a permanent part of the diagram until it is saved. Therefore, if you want to save your work, be sure to open the File menu and select the Save function as the last step before quitting work on any diagram. For more information, see Saving Your Work.


Security

The Security function on the Options menu will turn on the security system for the single-user version of the Workbench. The Workbench will allow you define the users who will be able to have access to projects within the Workbench. For more information, see Security in the Single-User Workbench.

Access to program and project files is limited to users defined as having access to the network, access to the \VA directory, access to each particular project and granted rights to modify a project, as opposed to the right to view only. For more information, see LAN Workbench Features and Capabilities and Getting Up and Running on the Network.


Segment

Lines can have multiple segments that will allow you to have start and end points distant from each other. For more information, see Line Types.


Shell Code Generation, Code Generation

The Workbench allows you to generate code for the skeletons of programs in the C and COBOL languages and for IBM External Source Format (ESF). For more information, see Shell Code Generation.


Spawn

The purpose of the Spawn function for FDDs is to create a process model extension of your broad functional decomposition and allow you to carry out a detailed analysis. With Spawn, you indicate a lower level function, one which you have decomposed on the FDD into processes, and Spawn it. The Workbench will create DFDs containing these processes, to which you can add all of the other elements normally contained on DFDs. For more information, see Using Spawn with FDDs.


Storage Type

The physical storage type for a data element can be specified in the repository. For more information, see Physical Characteristics Repository Fields and Domains.


Stored Procedure

A stored procedure, in SQL parlance, is a procedure that is compiled and stored in an SQL database dictionary and can be execute when called by the procedural code. This call can be initiated by the user, by a trigger, by a check constraint or by another stored procedure. Not all SQL dialects support stored procedures. For more information, see Adding SQL Schema Generation Information.


Structured Analysis

Structured analysis is a way of examining and displaying the various activities that go on in a system or enterprise. It encourages specification of the broader aspects of the system and then decomposing these larger views into finer and more readily understandable pieces. Structured analysis is another term for data flow diagraming and is loosely interchangeable with the term process modeling. For more information, see Structured Analysis Methods Overview.


Structured Design

The purpose of structured design is to provide a technique for translating specifications generated using structured analysis into computer programs. The Yourdon/Constantine structured design (structure chart) methodology is intended to maintain as much design freedom as possible for the user, while providing design evaluation against known poor design practices. Error and warning messages are generated when structure charts are analyzed. For more information, see Structured Design Overview.


Stylize

The Stylize function allows you to enhance the appearance of symbols or change the size of any symbol in a diagram. For more information, see The Stylize Function.


Subflow

A subflow is the "child" of a data flow that results from a decomposition or "split data flow" operation. For more information, see Splitting Data Flows.


Symbol

Symbols are one of the three classes of objects (along with lines and text) which can be added to diagrams. The Workbench contains predefined sets of symbols that can be used to represent specified things in structured methodology diagrams, or anything you choose on unstructured diagrams. For more information, see:

Drawing Modes	The Uses of Different Diagram Types
Drawing Symbols	Business Planning Analysis Methods and Functions
Methodology Symbols	Snap Symbols
Structure Chart Symbols	Control Bar
Entity Symbols	Toolbox
The Stylize Function


Terminator

Terminators can be added to one or both ends of most lines either for aesthetic or semantic purposes. They convey meaning in certain modeling methodologies. For more information, see Overview of Drawing Lines, Line Types, Terminators for Invocation Lines, ERD Line Terminators, Auto Labeling Lines, Adding or Changing Lines and Default Line Selections.


Tool Set

The Workbench is available in a Data Modeling Tool Set or a Process Modeling Tool Set, or one that combines the capabilities of both. Additionally, you can purchase capabilities for shell code generation and extended export and import capabilities. For more information, contact Visible Systems.


Toolbox

The Toolbox contains the symbols available for the diagram type for the diagram on which you are working. You can select them from the Toolbox to add to your diagram. In the same manner you can pick the large T button to add caption text to the diagram or the \ (line) button to add a line. For more information, see Toolbox.


Tree, Treefile

Within each project, diagrams are automatically stored in a tree structure referred to as the project tree or treefile. There are separate treefiles within a project, one for the project's DFDs and others for structure charts, ERDs, FDDs, boilerplate and unstructured diagrams. The treefile for DFDs is arranged in a hierarchical structure, and makes use of indentation to depict relationships between diagrams on different levels, child/parent relationships, etc. For more information, see Understanding Project Trees and Treefile Format.


Trigger

A trigger, in SQL parlance, is a procedure that executes under certain conditions to apply some referential integrity, business or validation rule to some part of your database. Depending upon the SQL dialect, it can be set to 'fire', i.e., execute the procedure, on insert and/or update and/or delete. For more information, see Adding SQL Schema Generation Information.


Unstructured

Unstructured diagrams are not linked to the repository. They are simply free-standing diagrams. They can be put to any use you desire. For more information, see The Uses of Different Diagram Types and Unstructured Projects Versus Unstructured Diagrams.


User Name, User ID

Any user of the Workbench can have (and in the LAN version must have) a user name and ID so that the Workbench can identify the rights he or she is assigned. For more information, see Information About Your Copy of the Workbench, Security in the Single-User Workbench, Implementing Security, Project-Level Security -- Assigning Project Access Rights, Messaging, Reviewing Project Activity and LAN Help Function.


Utility

The Workbench includes a Utilities menu which allows you to perform data conversion and copying functions at the project level. These functions are an important part of the overall housekeeping tasks that should be used to backup and maintain the organization of your project files. For more information, see Workbench Utilities.


View

A view is an ERD containing a selection of entity types and the relationships between them. Since certain data objects may interact in different ways at different times, you have the option to look at these distinct interactions in different combinations on different views. For more information, see The View Functions.


Virtual Diagram

A Virtual Diagram is one created when importing data from the Application Browser tool. The extracted COBOL information is entered into the Workbench repository and a virtual structure chart diagram is created so that the relationships between code structural elements can be maintained within the Workbench. You can generate structure charts from this repository information by choosing Draw VIRTUAL Chart from the File menu.


Visibility

The degree to which an attribute or method can be seen by other classes. Public members have global visibility. Private members are only accessible to member functions and friends. Protected members are accessible to derived classes and friends. Implementation members are only accessible to the class itself.


Warning

A Warning is a message issued by the Workbench analyzer which indicates that your project contains a violation of the Rules of the Workbench or one of its methodologies. It denotes a less serious violation than does an Error. Note that you can look up all error and warning messages from the analyzer, plus all other Workbench error messages in the Help system. For more information, see Structured Design Overview and Analyzing Structure Charts.


Wildcard Find

You can enter part of a label and perform a wildcard find to display all repository entries that have labels that begin with the characters you entered. For more information, see Wildcard Select, Repository Overview and Repository Searches.


Wildcard Select

You can enter part of a label and perform a wildcard select to locate the first matching label in the repository that begins with the characters you entered. For more information, see Wildcard Find, Repository Overview and Repository Searches.