----------------------------------- / A N A L Y S T T O O L K I T / ----------------------------------- || || \/ --------------------------------------------------------- / Copyright (C) Chinook Software Group 1986, 1988, 1991 / / all rights reserved / --------------------------------------------------------- || || || \/ ========================== / Chinook Software Group / / P.O. Box 24536 / / Denver, CO. 80224 / ========================== ======================================================== / This tool suite enables a user to perform top-down / / system specification using the Structured Analysis / / Methodology ( Data Flow Diagrams ). Diagrams are / / entered and manipulated graphically, but stored in / / textual form for easy access by other tools. Support / / is provided for data dictionary generation and / / analysis, as well as for analysis of the DFDs. / ======================================================== - 1 - *** NOTICE: PLEASE READ *** This document is the companion to the SHAREWARE CHINOOK Software ATK product. This software has no artificial limitations on functionality or periodic reminder screens of any kind. The CHINOOK SOFTWARE GROUP address and registration fee request appear at the startup of certain tools only. This document and the attendant software is provided as-is and without warranty as to correctness or suitability for any specific application. The CHINOOK SOFTWARE GROUP disclaims any responsibility for the use or misuse of this software by any individual or entity, for any purpose whatever. This disk, with this document on it, may be copied and distributed in its entirety, freely, but may not be modified or sold. If you find ATK instructive and useful, registering your copy with us for $35 will go a long way toward allowing its authors to continue its development. In return, you will be placed on our mailing list to receive information about future releases and other products. In addition, you will be given special consideration with regard to future releases of ATK, and will be sent additional documentation including detailed file formats, evaluation rules, and reference pages for all functions. The asking price of $35 represents more than an order of magnitude price break when compared with similar products currently available. Your support is both needed and appreciated. Please send your contribution to: The Chinook Software Group P.O. Box 24536 Denver, CO. 80224 TABLE OF CONTENTS Introduction............................................1 This Document......................................1 Tool Synopsis......................................2 Installation............................................4 Hardware Requirements..............................4 Supplied Software..................................5 Procedures.........................................6 Floppy System.................................6 Hard Disk Systems.............................6 The Graphic Editor (GED)................................8 Command Overview...................................8 Controlling GED....................................9 Basic Operation...................................10 The Context Diagram..........................11 Prompts and messages.........................11 Description of a process.....................11 The Cursor...................................12 Commands..........................................13 Exiting GED..................................13 Redrawing a DFD..............................13 Deleting a DFD...............................13 Aborting a DFD...............................13 Saving a DFD.................................13 Naming a DFD.................................13 Printing a DFD...............................13 Creating Objects.............................14 Moving Objects...............................15 Erasing Objects..............................15 Naming Objects...............................15 Customizing GED...................................15 The Data Dictionary....................................17 Dictionary Syntax.................................17 Data Dictionary Builder (DDBUILD)......................20 Command Overview..................................20 Data Dictionary Evaluator (DDEVAL).....................21 Command Overview..................................21 The Analysis Tool (ANAL)...............................22 Command Overview..................................22 Report Generator.......................................24 Command Overview..................................24 Miscellaneous Tools....................................26 ATTACH............................................26 GEDPS.............................................26 PS................................................26 KB................................................27 Index..................................................28 - 3 - Introduction Introduction The Structured Analysis methodology allows a user to perform a top-down specification of a system from a data viewpoint. The methodology is not limited to software development, but functions well at the requirements and system design levels also. The resulting set of diagrams and the data dictionary augments any documentation effort, and provides a concise, clear picture which may be dynamically maintained along with the system it describes. This Document This document is intended to acquaint those already knowledgeable in the Structured Analysis methodology with the ATK tool package and its use. For those unfamiliar with Structured Analysis techniques, Tom DeMarco's Structured Analysis and System Specification* is strongly recommended. A rudimentary knowledge of IBM/PC operation is also assumed. In particular, the reader is expected to know how to load his or her mouse driver (if any), which port the printer is attached to, the meaning of the DOS PATH variable, and the desired arrangement of files on his or her hard disk (if any). This document provides basic functional information in a tutorial format. Each tool in the set is described, and some examples are provided to illustrate the most common usage. No attempt is made to cover every option or variation possible. It is hoped that a user will grasp the underlying principles of operation quickly, and be able to produce useful work before fully understanding every detail of every command. The document is not complete, but we believe it to contain as much information as the average user will need. If you believe some information should be added to this tutorial to make the toolset more useful, please let us know. Be sure to consult the README.TXT and UPDATE.DOC files to get any changes or additions made late in the production cycle. * Structured Analysis and System Specification, DeMarco, ISBN 0-13-854380, Yourdon Press (Prentice Hall), 1979. Analyst Tool Kit Shareware - 1 - Revision 012494 Introduction Tool Synopsis The ATK is a collection of application software designed to facilitate the development, analysis, and maintenance of a set of DFDs (data flow diagrams) and their associated data dictionary: + A GRAPHIC EDITOR, called GED, which allows DFDs to be interactively entered and manipulated. Unlike a generic graphics package, GED is specifically designed to work with standard DFD symbology and conventions. GED produces an ASCII format file as output, which can be read (and modified) by text editors as well as the other tools in the package. + A DATA DICTIONARY builder, called DDBUILD, which can read the output of the graphic editor and produce the skeleton Data Dictionary. The data dictionary is an ASCII formatted file which can be read and modified by text editors as well as the DFD EVALUATOR. + A DATA DICTIONARY EVALUATOR, called DDEVAL, which reads the completed data dictionary, parses it for errors, and produces an exception listing. + A DATA FLOW DIAGRAM EVALUATOR, called ANAL, which reads the data flow diagram files and the data dictionary, and reports on conformance to the Structured Analysis methodology guidelines. + A REPORT GENERATOR, called RG, which formats the output of the other tools. It has knowledge files produced by ATK, but may be used as general-purpose formatter. Other tools are also included: + A PostScript GENERATOR, called GEDPS, which converts DFD files into PostScript representations suitable for sending to PostScript printers or layout tools. + A DFD REUSE HELPER, called ATTACH, which copies entire DFD subtrees for backup or reuse on other designs. This version of ATK was originally intended for classroom use and provides an environment in which to study the Structured Analysis method. It was discovered, however, to be practical for a range of small design efforts, and is being offered as SHAREWARE at a price to suit a market neglected by comparable products. Analyst Tool Kit Shareware - 2 - Revision 012494 Introduction The toolkit features: + 8 levels of decomposition below the context diagram. + Data dictionary evaluation limited only by available memory. + Flat ASCII data file formats easily accessible to other tools. + PostScript output from DFDs, suitable for printing or incorporation as EPS documents in publishing systems like Ventura Publisher. + Full function on vanilla PC hardware configurations, with no mouse, math coprocessor, or expensive graphics cards required. + Full support for a mouse, if present, including mapping mouse presses to any desired function. Analyst Tool Kit Shareware - 3 - Revision 012494 Installation Installation Hardware Requirements The toolset primarily targets an IBM PC computer with: + a minimum of 256K of main memory + a standard IBM color graphics adapter (CGA, EGA, VGA)* + a printer capable of doing graphic output (optional, if hardcopy not necessary)** + two 360K floppy drives, or one floppy and a hard drive. + DOS version 2.0 or higher (DOS 3.0 or higher is helpful) The product will run on most all IBM PC compatibles with an appropriate graphics card. The product will run on an IBM PC/AT with an appropriate graphics card. The product will run on an IBM PS2 with an appropriate graphics card. The product will generate conforming PostScript output for DFDs. The product does not require a mouse, but will support one if present*** . The product does not require nor use a math coprocessor. The product can be evaluated with a single low-density floppy, albeit with some annoyance. * For Hercules cards, Microsoft requires that the program MSHERC.COM be run before the card is recognized. No other special action need be taken to use Hercules cards. ** Graphic output can be supported with the standard PrtSc function support (if a compatible printer is provided), Epson 9-pin printers in any supported graphics mode, HP Laserjet- type printers, or Postscript. More support is on the way. *** As a note to mouse users, many older mouse drivers did not understand and support EGA and VGA graphics modes. If loading your mouse driver and then running GED does not result in a visible mouse cursor, you should contact your mouse vendor for an updated driver. Analyst Tool Kit Shareware - 4 - Revision 012494 Installation Supplied Software The product is shipped on a single floppy disk containing the appropriate versions of the tool executables, a printable version of this manual, and some example material. At least the following files will be present on your distribution disk: + README.TXT A printable file containing errata, additions, or other noteworthy material. + GED.EXE The Graphics Editor program. + DDBUILD.EXE The Data Dictionary builder/updater program. + DDEVAL.EXE The Data Dictionary evaluator program. + ANAL.EXE The Data Flow Diagram Analyzer program. + CONFIG.ANA A sample configuration file for the analysis tool. This file is optional, and is consulted by ANAL if available. + CONFIG.GED A sample configuration file for the graphics editor. This file is optional, and is consulted by GED if available. + GEDPS.EXE The Postscript generator. + GEDPS.PS The Postscript dictionary for the Postscript generator. This file is required, and is consulted by GEDPS. + CONFIG.GPS A sample configuration file for the Postscript generator. This file is optional, and is consulted by GEDPS if available. + RG.EXE The page formatting utility. + CONFIG.RG A sample configuration file for the report generator. This file is optional, and is consulted by RG if available. + DOC A subdirectory containing application notes. + SAMPLES1 A subdirectory containing some pre-written DFDs for practice use, and an example of a data dictionary. + *.TXT Any other required up-to-date information Analyst Tool Kit Shareware - 5 - Revision 012494 Installation Procedures BEFORE YOU DO ANYTHING ELSE WITH THIS DISK, MAKE A BACKUP COPY! Use the diskcopy command as described in your operating system manual to make a copy of the disk. Put the original disk in a safe place and use the copy for the remainder of your work. Floppy System If you are using a dual floppy system the easiest way to use the toolset is to put the tool executables in drive A: and a disk to contain your work in drive B:. The sample material from the supplied disk may be copied to the B: drive for modification, if desired. Make a system disk using the command FORMAT B:/S with your regular system disk in drive A, and a NEW disk in drive B. Copy all the *.EXE files from your distribution disk (Disk #1) to the new system disk by placing the distribution disk in drive A, and using the command XCOPY A:*.EXE B: /V. You can now use ATK by booting off of the new ATK system disk, and placing the working disk in drive B:. You should make the B: drive the default drive, and the directory holding your DFD files the current directory. (The files CONFIG.RG, CONFIG.ANA, and CONFIG.GED should either be here or on drive A: if you intend to use them.) The A:\ drive should be included in your PATH, so the operating system can find the tools. PATH with no arguments will display the current path setting. The path is usually set by the AUTOEXEC.BAT file when the machine is first booted. You can install the tools on a single floppy if desired. Your projects will be very limited if this is not at least a 720K drive. Hard Disk Systems Hard disk installations vary with individual user preference. Keep the following points in mind for your hard disk installation. + The tools are standard executables and use no overlays; the tools may reside together or separately, and are subject to the same rules which your operating system uses to locate any type .EXE file (e.g., PATH). + The DFDs being worked on are, by default, in the current directory. This means that each set of DFDs (each project) must reside in a separate directory. Analyst Tool Kit Shareware - 6 - Revision 012494 Installation + The files CONFIG.GED, CONFIG.ANA, and CONFIG.RG must reside in the current directory, in the directory pointed to by environment variable "ATK", or in the directory containing the GED.EXE, ANAL.EXE, RG.EXE (DOS 3.0 and above). Each set of DFDs (each project), may have its own set of setup files. One easy way to install ATK on a hard disk is as follows: 1) Select a directory to install ATK in. Assume for now it is C:\ATK. 2) Change directories to the directory to install into. 3) Place the ATK disk in your floppy drive. Assume for now it is drive A: 4) Issue the DOS command: XCOPY A:*.* . /S /V This will copy all the files and save the subdirectory structure. 5) If you have a second ATK installation disk, place it in the floppy drive and repeat step 4. 6) Edit your AUTOEXEC.BAT file. This will normally be C:\AUTOEXEC.BAT. a) Add a line: SET ATK=C:\ATK b) Modify the line that begins with PATH or SET PATH. Add the following to the end of the line: ;C:\ATK c) Save and exit. The next time you reboot, you will have the GED tools available from anywhere on your disk, and the system configuration files for GED will be found (and can be modified) in C:\ATK. Analyst Tool Kit Shareware - 7 - Revision 012494 The Graphic Editor (GED) The Graphic Editor (GED) The graphic editor, called GED, is the means by which graphic representations of DFDs are entered, viewed, and manipulated. The output of GED is a graphic rendition of the DFD on a CRT or graphic printer, and an ASCII file containing a formatted description of the DFD which the analysis tools can read. The DFD file may be created or manipulated with any text editor which doesn't put extraneous characters into the file. This would normally only be done in environments which can't support GED. (i.e. no graphics card) Command Overview The simplest invocation is to type GED at the system prompt. This would cause GED to consult the file CONFIG.GED in the current directory, if such a file exists, and to call the context diagram to the screen, if it exists. If no context diagram exists in the current directory, GED will provide a screen for its creation. This would be the proper beginning of a new project. GED, like the other tools in ATK, has a configuration file to contain all the frequently used options; once set in the configuration file, the tool can just be run with the command line GED. However, command line options are also available for overriding items in the configuration file. The full command line syntax for GED is as follows: GED [-flags] [initial-diagram-number] where brackets [] indicate optional specifications Some flags are: -q loads diagrams "quietly", that is, without detailed error reporting. -Eeditor uses 'editor' as the minispec editor instead of EDLIN -ppath uses 'path' as the project directory instead of the current directory, if it exists. -m6 will set the graphics mode to mode 6 (B&W-600x200). This is useful if a user has an EGA or VGA card, but the only screen capture utility available only works in CGA mode. If the user has a VGA card, but wishes to capture a monochrome drawing (such as in WordPerfect), -m17 (B&W 640x480) would be the appropriate flag. NOTE THAT EPSON AND HP PRINTERS ARE SUPPORTED DIRECTLY Analyst Tool Kit Shareware - 8 - Revision 012494 The Graphic Editor (GED) BY GED; the -m flag should not be necessary if you have an Epson or HP-compatible printer. The initial-diagram-number is specified in standard DFD dot notation. Example: 0.2.3 is the diagram describing the third process in the diagram describing the second process in the diagram below context. Remember that if no diagram number is given, the context diagram will be called or created. The context diagram has the special number -1, and the diagram describing the context process is 0. Example: GED -q -pB:\MYPROJECT\ 0.2.5 will invoke GED, and silently load DFD number 0.2.5 from the directory B:\MYPROJECT\. Controlling GED The majority of commands within GED are given using the function keys located to the left of the main keyboard (on an IBM PC). The default mapping of GED commands to these keys is shown below. The file CONFIG.GED provides for remapping most of the keys, should our choices not be yours. A complete list can be found in GEDCONFIG.DOC. In the list below, means to hold the shift key down before pressing the indicated function key, while means to do the same with the alt key. create process visit DFD name object name DFD create external create text move object unassigned create store double save DFD abort DFD create flow route redraw DFD exit GED visit child visit parent delete object delete DFD Most operations can also be done by holding down the Alt key and typing the mnemonic for the action. For example, a process can be created with Alt-P. the escape key is used to cancel a partially completed operation. Analyst Tool Kit Shareware - 9 - Revision 012494 The Graphic Editor (GED) <^P> produces hardcopy of current DFD. You must have a printer capable of graphic rendition installed, and you have properly configured the printer driver.* <^A> calls the analysis tool (ANAL) from within GED. Only the current diagram is analyzed. <^S> performs a system escape. A DOS prompt appears and any DOS operation may be performed within the limits of available memory. The DOS command EXIT will return you to the graphic editor. <<> (less than key) will increase the size of the current object. <>> (greater than key) will decrease the size of the current object. A-F9 (The F9 key pressed with the Alt key) will visit (or create) the minispec of the current process by invoking a text editor. Ins The insert key will bring up a menu of objects that can be created. Del The delete key will delete the current object (after confirmation). C-PgUp (The PgUp key pressed with the Control key) will visit the parent of the current DFD C-PgDn (The PgDn key pressed with the Control key) will visit the child of the current process. Finally, GED can also be controlled using an optional mouse. Each mouse button can have an assigned action; for commands like Move and Create Flow, the mouse buttons get temporary new assignments. The default mouse actions are Visit Parent for the left button, Visit Child for the right button, and Move for the middle button (if any). Mouse buttons also have context-sensitive meanings. For instance, pressing the left button after starting a Flow identifies the endpoint, while the right button identifies a route point. Prompts requiring yes or no answers can be answered Yes by pressing the left button, and No by pressing the right button. Basic Operation Basic graphic concepts and operations for constructing and manipulating DFDs are summarized below. The manual provided to * For example, with an IBM PC, an IBM printer, and a CGA card, you must run GRAPHICS before invoking GED. If PostScript output is desired, GEDPS may be run after the GED session is completed. Epson 9-pin and HP printer compatibles are supported in any graphics mode, through CONFIG.GED. Analyst Tool Kit Shareware - 10 - Revision 012494 The Graphic Editor (GED) registered users contains a more complete description of each of the commands available. The Context Diagram DFDs are organized in the familiar inverted tree structure. The root node of every DFD tree is called the context diagram. If GED is called with no DFD number specified, the context diagram will be called. If the context diagram does not exist, it will be created. The context diagram, numbered -1, has only one process intended to show the scope of the project at hand. The process number is 0. (GED will draw this process for you in the context diagram, however, lower-level diagrams will contain nothing but text when they are first created.) The name of the context diagram is "CONTEXT" and cannot be changed.* To try this on a real diagram, try the command line GED -p sample1 from your installed ATK directory (Use Alt-X to exit when you wish). See Exercise 1 for step-by-step details. Prompts and messages GED will prompt the user for information and confirmation in a number of circumstances. GED will also supply informational messages as appropriate times. These messages will always appear on the last two lines of the screen. User-entered input will always appear on the last line of the screen. User-entered input is always terminated by the key, and is always cancelled through the key. Any "yes" or "no" response can be answered with a y or n. The default is "yes". To see a sample message, press the key. You should get the message Diagram has no parent., since the context diagram is always the root of the DFD tree. See Exercise 2 for step-by-step instructions. Description of a process The description of process 0 in the context diagram is DFD 0. A DFD inherits its number and name from the number and name of the process it decomposes. * GED is very configurable; a number of absolutes, such as this one, can be modified or overridden via the configuration file. The usage described in the tutorial is the usual usage. Please consult the section on Customizing GED, and the .DOC and .TXT files for details on these other uses. Analyst Tool Kit Shareware - 11 - Revision 012494 The Graphic Editor (GED) The names of DFDs below context are user selectable, however the analysis tool (ANAL) will complain if the name of a DFD does not match the name of the process it decomposes. A DFD must have at least one process, and should have no more than 8 (up to 50 are supported, however). DFDs in the tree are visited by using the 'visit child' (F9), 'visit parent' (Shift-F9), or 'visit DFD' (Shift-F1) keys. If the visited DFD does not exist, it will be created. If you press the 'visit child' key while the cursor is not near any process, you will get the message No process found at current location. If you press the 'visit child' key while the cursor is in process 0 at the center of diagram -1; you will see diagram 0 become visible. If a process is so well-defined that it can be described textually rather than being decomposed, use the 'visit minispec' key (Alt-F9) to edit the text description. If the minispec does not exist, it will be created. If you decide to decompose the process later, GED will prompt you to delete the minispec. The Cursor When a DFD is on the screen, a graphic cursor will be visible. This cursor is used to point to graphic objects to be placed, erased, moved, named, or otherwise manipulated. The cursor is controlled by either the mouse or the cursor pad keys on the right side of the keyboard of an IBM-PC or compatible. On machines with separate cursor and numeric pads, the cursor control can be switched to the numeric pad by turning off the Num Lock key. There are two cursor speeds. The numeric keypad/cursor keys will provide coarse motion in any of the 8 directions. A 'fine' cursor is available as well. The fine cursor will move left, right, up, and down via the 'H', 'L', 'K', and 'J' keys respectively. The 'C' key will always jump to the center of the screen. For an object on the screen to be selected, the cursor should be somewhere inside its perimeter (for closed objects), or very near the object (in the case of flows, flow splitters, and boundary points. For practice, press the Flow key (F7) while the cursor is over a process. Note that the message line now shows that you are trying to create a new flow from the selected process. Press the Cancel key (Esc) to cancel the operation. Exercise 2 covers this material. Analyst Tool Kit Shareware - 12 - Revision 012494 The Graphic Editor (GED) Commands The following sections summarize some of the main commands of GED. A full list of these commands can be found in ACTIONS.DOC. Exiting GED Pressing the 'exit GED' key (Alt-X) will prompt the user for saving changes and/or confirmation for exiting GED. If the user OKs exiting, GED returnes control to DOS. Redrawing a DFD A DFD may be re-drawn by pressing the 'redraw DFD' key (F8). This key is useful in eliminating occasional artifacts produced as a result of drawing and moving objects. You can get a feel for the speed of this operation by pressing F8 while a diagram is visible. Deleting a DFD A DFD may be deleted (removed from the disk) by pressing the 'delete DFD' key (Shift-F10) when the DFD is being displayed. In deleting a DFD, all children and minispecs of that DFD will be deleted as well. To experiment with this, please create a diagram or set of diagrams you are willing to lose first. Aborting a DFD Pressing the 'abort DFD' key (Shift-F6) will discard all work done since the last time the DFD was saved. The DFD is re-read from disk and displayed. Saving a DFD Pressing the 'save DFD' key (F6) will cause the DFD as currently displayed to be written to disk. A new DFD is not persistent until it is saved. Naming a DFD Pressing the 'name DFD' key (Shift-F2) will allow for naming or re-naming the current DFD, except for the context diagram. Use this cautiously, since this name must agree with the name of the process it is decomposing in the parent diagram! Printing a DFD Pressing the 'Print DFD' key (Control-P) will redraw the screen, erase the cursor, and invoke the print sequence. NOTE: the shift-Print Screen key on your keyboard will NOT invoke GED's print functions; it will invoke your computer's print screen function. Analyst Tool Kit Shareware - 13 - Revision 012494 The Graphic Editor (GED) In some ways, printing a DFD is the trickiest part of GED. Details and hints can be found in PRINTING.DOC. There are 3 lines in the configuration file CONFIG.GED that control printing: the lines PRINTER TYPE, PRINTER PORT, and PRINTER MODE. As delivered, GED expects the user to have a Print Screen TSR loaded and properly configured. If you have an Epson printer on parallel port 1, you will want these 3 lines to be: PRINTER TYPE=Epson PRINTER PORT=LPT1: PRINTER MODE=-2 If you have an HP laserjet, you will want the first line to read PRINTER TYPE=HP and the others can stay the same. If you have a PostScript printer, see the section on GEDPS. Creating Objects In general, objects are created by moving the cursor to the desired screen location of the object, and pressing the appropriate 'create' key (F1, F3, F5, F7), or by selecting from the menu-like selection of the 'create-any' key (Ins). This holds true for processes, externals, and stores. An opportunity to name the created object will be provided. Names should be alphanumerics, space, dash, and underscore characters. Boundary points are automatically created at the end of flows which don't terminate on any other known object. Boundary points are not named. Flows are created by positioning the cursor on the object at which the flow will originate, pressing 'create flow' (F7), moving the cursor to the object where the flow will terminate, and pressing 'create flow' again. GED will prompt for a flow name; if the flow did not terminate where you desired, the Cancel key (escape) will allow you to start again. The direction of the flow can be altered with the 'double' key (Shift-F5) after the flow is created. If one end of a flow rests on another flow, a flow splitter will be created with no arrow at the junction. Flow splitters are not named*. Flows may be maneuvered around other objects by creating route points on them. Route points can be added while creating a flow using the 'route' key (Shift-F7). If you add an unwanted route point, you can cancel it by pressing the escape key. You may then continue with the flow. Route points may also be added and deleted later. * Flow splitters are implemented as route points in ATK. Analyst Tool Kit Shareware - 14 - Revision 012494 The Graphic Editor (GED) Stores come in single line and double line varieties. The 'create store' key initially draws a double line store. The 'double' key (Shift-F5) may then be used to toggle between the three representations (the single line may appear either above or below the store). Descriptions are a single line of arbitrary text which can be placed anywhere on the diagram by pressing the 'description' key ("). Descriptions are not analyzed in the diagram, so their contents do not conform to other objects' naming conventions. Moving Objects An object may be moved by selecting the object with the cursor and pressing 'move object' (F4). The selected object will disappear, and the cursor will change to an icon of the moved object. The user then moves the cursor to the desired location for the object, and 'move object' pressed again. The operation is so designed that hitting the 'move object' key twice without moving the cursor will cause no change in the object's position. Flows may not be moved directly. They are automatically moved when objects they are connected to are moved. A flow name may be moved to any point on the diagram; the position is relative to the two endpoints of the flow. If 'move object' (F4) is pressed while the cursor is on a flow line a route point object is created and can be moved. The flow line passes through each of its route points before terminating. Erasing Objects When 'delete object' (F10) is pressed with the cursor selecting some object, the object will be deleted. Deletion will prompt for confirmation, unless the user has configured GED otherwise. Naming Objects Pressing the 'name' key (F2) allows for the naming or re- naming of an object. When renaming an object, the usual DOS command-line editing capabilities are available: F1 or right arrow copies one character from the old name, delete removes one, and F3 copies the remainder of the old name. Customizing GED GED can be customized by entering configuration lines in the CONFIG.GED file. A few of these lines are described below. A complete set can be found in the ATK reference manual; a summary can be found in GEDCONFIG.DOC. ERROR=X Sets the error file to be the file X. This setting is recommended (e.g., ERROR=GED.ERR). Otherwise, Analyst Tool Kit Shareware - 15 - Revision 012494 The Graphic Editor (GED) errors print to the screen (where they are quickly erased). MODE=n Sets the graphics mode to the given number. For the IBM PC, examples are 6=B&W 640x200; 16=Color 640x350 EGA; 17=B&W 640x480 VGA; 18=Color 640x480 VGA. PROCESS COLOR=n Sets the color of processes to the color index given. These indices are mode- and palette- dependent. (Similarly for EXTERNAL, STORE, FLOW, TEXT) PRINTER TYPE=X Sets the type of printer to either Epson (the default) or HP. The printer mode depends on this type. PRINTER PORT=X Sets the printer port to the given name. Default is LPT1. The whole name, such as LPT1, must be used. The port can be directed to a file. PRINTER MODE=n Sets the printer mode For all drivers, the following modes are supported -2 Use current driver, preassigned modes -1 Use INT5 support (default if mode unspecified) For Epson 9-pin and compatibles, supported modes are 0 60 DPI 1 120 DPI 2 High speed 120 DPI (assigned modes 6,17,18) 3 240 DPI 4 80 DPI 5 72 DPI 6 90 DPI (assigned for other modes) For the HP Laserjet and compatibles, supported modes (and aspect ratios) are 0 75 DPI, 1-1 (default most video modes) 1 100 DPI, 1-1 2 150 DPI, 1-1 3 300 DPI, 1-1 4 75 DPI, 1-2 (default mode 6) 5 100 DPI, 1-2 6 150 DPI, 1-2 7 300 DPI, 1-2 8 150 DPI, 2-3 (default modes 15,16, Hercules) 9 300 DPI, 3-4 (best for EGA, but big--336K) EDITOR=X Sets the default editor for minispecs to path X. NOMOUSE Turns off mouse support, even if a mouse driver is loaded. Useful if running GED from an external application that wishes to retain control of the mouse. Analyst Tool Kit Shareware - 16 - Revision 012494 The Data Dictionary The Data Dictionary Flows and stores in a DFD are potentially decomposed into a series of more detailed flows and stores in the DFDs child. For instance, a flow named user-requests in a particular DFD would probably decompose into several flows in the child. The graphic representation of a DFD does not show the relationship between a flow and its decomposition. The Data Dictionary is an ASCII document specifying this and other relational information, and goes hand in hand with the set of data flows. Dictionary Syntax The Data Dictionary is an ASCII file, and consists of a list of sentences, each terminating with a period. A sentence consists of a left hand side followed by an equal sign followed by a right hand side. The left hand side consists of the name of the thing being described, such as the name of a flow or store. The right hand side consists of one of the following: + the term TBD meaning "To Be Defined". This is a place holder, indicating that a proper description will be supplied later. + the word PRIMITIVE, which defines an axiomatic entity not to be decomposed further. + a symbolic description of the item in terms of its component items. This description will include one or more other item names, and may use certain symbols to indicate sequences, repetition, choice, or optional components. The exact syntax of legal data dictionary statements is supplied in the manual, and is described in its own syntax. Persons familiar with formal language specification should have no trouble deciphering this description, but the beginning user will do better to study these prototype examples. Example: A = B + C + D. The item whose name is A is composed exactly of items B, C, and D. The plus sign thus denotes additive composition. Analyst Tool Kit Shareware - 17 - Revision 012494 The Data Dictionary Example: A = B + C + (D). The parentheses around item D indicate that it is optional. That is, an A must have a B and a C, and it may have a D in its composition. Example: A = B + C + {D}. The braces around item D indicate that zero or more iterations of D are required. A number may be used before the opening brace to indicate a lower limit on the number of iterations. Similarly, a number may be used after the closing brace to indicate an upper limit on the number of iterations. For instance, 1{digit}8 would specify a string of from one to eight digits (digit may have its own definition elsewhere in the dictionary). The absence of a number before the opening brace implies that a minimum of zero occurrences are permitted, while the absence of a number after the closing brace implies that a potentially infinite number of occurrences are possible. Notice, then, that A = B + (C) is the same as A = B + {C}1. Example: A = B + [ C | D ]. The bracket and the vertical bar together specify a list of choices. The example would be read, "A is composed of a B and either a C or a D". Notice that the choice is exclusive, that is, A may not contain both a C and a D. To make the choice itself an optional component, we could write, A = B + ([ C | D ]). which would be read "A is composed of a B, and may include either a C or a D". Whitespace (blanks, tabs, or newlines) may be freely included for readability. Since a single sentence may thus span more than one line, the period which ends the sentence is very important. A comment is a string of text bounded by asterisks. Comments are also terminated by new lines. Comments may be freely included virtually anywhere, even between items in a sentence. If a literal asterisk is needed, prefix it with a backslash. Example: A = B + * this is a comment * C + D. Example: * comments use the \* to identify themselves * To put some of the preceding information together, the following group of sentences specify the syntax of a FORTRAN style integer variable, which must start with one of the Analyst Tool Kit Shareware - 18 - Revision 012494 The Data Dictionary letters I thru N, and may contain one thru seven additional alphanumeric characters. integer_name = first_char + rest. first_char = [I|J|K|L|M|N]. rest = {[ALPHA|NUMBER]}7. ALPHA = letter_of_the_alphabet. NUMBER = DIGIT. letter_of_the_alphabet = PRIMITIVE. DIGIT = PRIMITIVE. Notice that the above description could have been written in a variety of ways, some of them being more concise. The sentence "NUMBER = DIGIT." may seem useless, since it does not decompose NUMBER. In fact, it specifies that NUMBER and DIGIT are aliases , which means that they may be used interchangeably. This feature is useful in a variety of scenarios, such as when portions of a project are specified by different individuals who choose different names for the same thing. Study the data dictionary file called SAMPLE.DCT provided in the SAMPLE subdirectory of the product disk for examples of data dictionary language usage and style. Analyst Tool Kit Shareware - 19 - Revision 012494 Data Dictionary Builder (DDBUILD) Data Dictionary Builder (DDBUILD) DDBUILD is a convenience tool which will scan one or all of the DFDs in a project and extract all the flow and store names used into a preliminary form in the data dictionary. Names appear only once, no matter how many times they are encountered, and are defined equal to TBD. While DDBUILD knows nothing about the intended relationships among the names, it does save the user a tremendous amount of initial typing. The user may then employ any text editor to fill in the necessary information as it becomes available. DDBUILD will create a new data dictionary if one does not exist, or it will append to an existing dictionary. Consider then, that if you change the name of an item in the DFD set and rerun DDBUILD, the new name will be added, but the old name will remain. Command Overview The simplest invocation is to type DDBUILD at the system prompt. In this case DDBUILD will build or add to a file called DATA.DCT in the current directory the names of all flows and stores found in all the DFDs on the primary chain. NOTE: The primary chain is the chain including -1 and all DFDs whose first number is 0, such as 0.2.3. It is possible to create DFDs with other digits in the first position, such as 3.4.2. These DFDs are considered to exist on "side chains", and are normally invisible to the analysis tools. Side chains are a way of keeping DFDs around without having them enter into the analysis. Such DFDs may be copied (ATTACH, or DOS COPY command) to make them "active". Notice that DFDs are given filenames which correspond to their dot specifications minus the dots, and file extensions of .DFD. The full command line syntax for DDBUILD is as follows: DDBUILD [-flags] [dfd dfd ... dfd] where brackets [] indicate optional specifications. possible flags are: -i suppress case sensitivity, e.g., 'ABC' will be treated the same as 'abc'. -ppath path to use to find DFDs instead of the current directory Flags are optionally followed by a list of one or more DFDs to add to the dictionary. The default is to add all DFDs on the main path (-1 and 0*) Analyst Tool Kit Shareware - 20 - Revision 012494 Data Dictionary Evaluator (DDEVAL) Data Dictionary Evaluator (DDEVAL) DDEVAL will read a project's data dictionary and DFDs and report errors and omissions in the specifications. When invoked by its name alone, it will look for a file called DATA.DCT in the current directory, and will produce its report to the screen. DDEVAL will perform a somewhat detailed analysis of the dictionary, and is able to report such things as aliasing problems, items which are defined but never used, and items which are undefined. Command Overview The simplest invocation is to type DDEVAL at the system prompt. In this case DDEVAL will evaluate the data dictionary file DATA.DCT and give a report to the CRT. The full command line syntax for DDEVAL is as follows: DDEVAL [-flags] where brackets [] indicate optional specifications. possible flags are: -i ignore case in comparisons (Hello = HELLO) -ppath use 'path' to locate the data dictionary to evaluate. Example: DDEVAL -PB:\MYSTUFF\ will evaluate the data dictionary and DFDs in directory B:\MYSTUFF. Analyst Tool Kit Shareware - 21 - Revision 012494 The Analysis Tool (ANAL) The Analysis Tool (ANAL) Just as DDEVAL performs an analysis from the standpoint of the data dictionary, the tool ANAL performs a similar analysis from the standpoint of the DFDs themselves. Each DFD is examined and a list of potential errors is produced. Most of the evaluation rules apply to a single diagram while a few require a DFD to be examined in context with its parent. In addition, ANAL uses the data dictionary, which it expects to be called DATA.DCT, to determine flow decomposition and aliasing, and can then look for consistency in the diagrams. Thus, it is wise to build as much of the data dictionary as possible before using ANAL, to avoid excessive numbers of errors concerning flows. Command Overview The simplest invocation is to type ANAL at the system prompt. In this case ANAL will examine all the DFDs it can find on the primary chain, and make its report to the standard output. The full command line syntax for ANAL is as follows: ANAL [-flags] [dfd] where brackets [] indicate optional specifications. possible flags are: -a load data dictionary (DATA.DCT) to resolve aliases for flows and stores. The -na flag suppresses loading the dictionary. The default is to load the dictionary. -i ignore case in comparisons. The -ni flag does not ignore case in comparisons. The default is to ignore case. -ppath look for DFDs under the directory 'path' DFD is specified in standard dot notation. Example: ANAL -i -pB:\MYSTUFF\ 0.2.3 Two major categories of errors are detected. + Object usage errors which include such things as processes with no flows, duplicate names, and data sources/sinks. + Boundary errors which catch problems occurring across the parent/child interface such as the sudden appearance of a single-line store, or the disappearance of a flow. Also, some cosmetic errors are detected. + Diagrams with too many processes + Diagrams with double line stores where single line stores are expected A description of the customization of the analysis process is provided in full in the manual. The analysis configuration Analyst Tool Kit Shareware - 22 - Revision 012494 The Analysis Tool (ANAL) file is CONFIG.ANA. Each of the 11 tests can be set to ON or OFF (default is ON). The tests are: process flows store flows process child or minispec flow endpoints flow names duplicate names store double external context parent child name check parent child flows in parent child flows out and configuration switches: ignore case alias checking The example in the SAMPLES1 directory is excellent for illustrating this tool. Invoking ANAL will give 30 odd lines of errors; half of them are because some processes do not have child diagrams or minispecs. If we decide we aren't ready to have that level of scrutiny yet, we add the line process child or minispec = OFF to our CONFIG.ANA file. Running ANAL again will give about half-a-dozen errors and warnings. As is typical, 4 of them have to do with naming conventions. A flow that is called 'source code' in one diagram is called 'source language' in another. The data dictionary is used to document and resolve these problems. A line in the data dictionary stating source code = source language. will assert this truth (the period is critical). Similarly, we enter a line process output = output. Running ANAL -a -ni still has 4 error lines, because the diagram has Process Output (and we entered process output). Running ANAL -a -i now has only two warning lines. They indicate that in diagram 0.5, the flows in and out of a store are named, and the name is not an alias of the store. An explanation of why this is an error is that if you have a aluminum recycling bin, you want to make sure no one is putting paper into it. No one has told the data dictionary that a servicable process is a kind of awaiting process (one that can now be serviced). Analyst Tool Kit Shareware - 23 - Revision 012494 Report Generator Report Generator The Report Generator, called RG, is a pretty printer utility capable of paginating the output from the various tools and providing page header and/or footer capability. The utility will access a file, called CONFIG.RG, to obtain default formatting parameters, and can additionally be used to provide simple formatting for arbitrary user generated files. Command Overview The simplest invocation is to type RG {type} at the system prompt, where {type} is a single digit 1,2,or 3, designating the data dictionary, dictionary exceptions, or DFD tree exceptions respectively. The utility looks for the files DATA.DCT (data dictionary), DICT.ERR (data dictionary exceptions), or DFDS.ERR (DFD tree exceptions) and will automatically invoke DDBUILD, DDEVAL, DDPP, or ANAL to produce them if they are not found. If the output of a tool has been directed to a file with a name other than that expected by RG, the filename should be specified after {type}. NOTE: For the automatic tool invocation to work, a copy of COMMAND.COM must be available on the PATH. A variety of command line options are available with RG, as well as some complex possibilities for CONFIG.RG. The full command line syntax for RG is as follows: RG [flags] report-type [report file] Possible flags are; -op Output the printer initialization string before printing any text, and output the printer term string after printing all text. -ml k Use k as the page offset (left margin) -mt k Use k as the top margin -mb k Use k as the bottom margin -st s Use string spec s as the report title -sh s Use string spec s as the page header -sf s Use string s as the page footer -l k Use k as the page length in lines -w k Use k as the page width in characters Analyst Tool Kit Shareware - 24 - Revision 012494 Report Generator -r k Prepare report number k report Meaning intermediate file type --------- ---------------- ------------- 1 data dictionary [data.dct] 2 data dictionary exceptions [dict.err] 3 DFD-tree exceptions [dfds.err] 4 Generic print file report ---------- 5-9 User defined reports ---------- report file: A report file can be any legal MS-DOS file name The file name will support alternate drives and paths Each report will have a default name (see above). The default titles of user-defined reports can be stored in the preference file. String notation "..." is supported on the command line to collect a string including spaces, except for characters '<', '>', '|', '+', and '=' which may not be used within them (MS- DOS gets them!). Example: RG -r2 will generate the data dictionary exception report to the screen Example: RG -op -r3 -of LPT1: will generate the DFD exception report, and print it to the default printer, using printer initialization strings. Example: RG -r4 "-stCurrent Listings,nl,nl" list.txt -f list.out will generate a user-defined report called Current Listings from a file called list.txt and put it in a file called list.out. Analyst Tool Kit Shareware - 25 - Revision 012494 Miscellaneous Tools Miscellaneous Tools All of the following tools support a -? command line switch to give complete command line syntax; the following descriptions provide the usual usage. ATTACH Data flow diagrams (and their associated minispecs) may need to be reused from one project to the next, or from one part of the project to the next. Also, sets of diagrams may need to be backed up from time to time. The tool provided for these jobs is attach. Attach syntax is ATTACH [-sSOURCE-DIR] [-dTARGET-DIR] From-DFD[*] To-DFD The source and target directories may contain drive and directory information. Use the optional asterisk (*) to copy the entire tree--without it a single DFD will be copied. GEDPS Postscript has become the page description language of choice for desktop publishing. When presenting DFDs, a neat diagram is essential. ATK provides encapsulated PostScript files as output from the GEDPS tool. GEDPS syntax is GEDPS [-r] [-foutput-file-or-device] DFD[*] The asterisk is used for wildcarding and is not useful if the documents are incorporated in a desktop publishing system. The output is normally directed to the screen, so the -f flag is normally supplied. The -r flag is used to rotate the diagrams from their normal landscape orientation on 8-1/2" by 11" paper to portrait mode. The file GEDPS.PS is the Postscript prologue. GEDPS can take either filenames or DFD numbers. For desktop publishing applications, put only one DFD in an output file. PS Without a desktop publishing system, it can be difficult to print Postscript files. Traditional Postscript printers are controlled through the serial port, one of the weaker areas of the IBM PC design. A tool which supports simple flow- controlled serial port protocol is required--in the absence of other public domain offerings, we include PS. PS is a very simple program which uses the built in commands to communicate with the serial port. Because of this, PS may lose received characters sometimes. This tradeoff was made in the name of full portability. PS syntax is Analyst Tool Kit Shareware - 26 - Revision 012494 Miscellaneous Tools PS [-p[COM]<1,2,3,4>] [-w] [-b 1200|2400|4800|9600] filename ... The default port is COM2; COM3 and COM4 are only supported if the BIOS (INT14) recognizes them. The port characteristics should be set in advance (for IBM PCs, via the MODE command). The -w option is used to wait after all the files have been sent (in case of suspected error messages); pressing any key will exit after download is complete. The -b option is used to set the baud rate for the COM port. KB The CONFIG.GED file allows remapping of keys via lines of the form key-code=action Rather than supply a chart to look up key codes, the KB program prints those codes in the appropriate format. ASCII characters are represented by their codes. Sample actions include PROCESS EXTERNAL STORE DESCRIPTION FLOW CHILD PARENT ROUTE KB also reports mouse codes, if a mouse is detected. See ACTIONS.DOC for more details. Analyst Tool Kit Shareware - 27 - Revision 012494 Index Index A prompt, 11 abort DFD, 13 PS, 26 alias, 19 R ANAL, 2, 5, 10, 12, 22, RG, 2, 5, 24 24 route point, 14, 15 ATTACH, 2, 26 S B save DFD, 13 boundary point, 14 side chain, 20 C T chain, 20 TBD, 17 child, 12, 13 text editor, 8, 16 CONFIG.ANA, 23 U CONFIG.GED, 15, 27 user input, 11 CONFIG.RG, 24 context diagram, 11 cursor, 12, 14 D data dictionary, 2, 17, 20, 21, 22, 25 DDBUILD, 2, 20 DDEVAL, 2 delete, 15 delete DFD, 13 DeMarco, Tom, 1 description, 15 double, 14, 15 E editor, 8, 16 F floppy, 6 flow, 14, 15 flow splitter, 14 G GED, 2, 5 GEDPS, 2, 26 GEDPS.PS, 26 graphic cursor, 12, 14 H hard disk, 6 I input, 11 M minispec, 10, 12, 13, 16 mouse, 10, 16 move, 15 N name DFD, 13 name object, 15 P primary chain, 20 primitive, 17 print, 4, 9, 10, 13, 16, 26 process, 11