                 Quick Start to Use With Class

Steps to Initially Run With Class

>> In Windows, run With Class from Windows, e.g. "File Run WC.EXE"
or double click the With Class icon
>> In With Class, select "File - Editor Setup" and enter 
notepad.exe or your preferred Windows editor and if desired 
enter your working directory, e.g. car
>> Select "File - Set Directory" to create a new directory, e.g c:\car
>> Select "File - Printer Setup" to select your printer

Steps to Create a Class Diagram Using With Class

>> Create a directory for Car Products, e.g., c:\md car
>> Run With Class from Windows
>> Select "File - New"
>> Select "File - SaveAs" e.g., c:\car\car.omt
>> Select "Methodology - Rumbaugh" to set the desired graphic notation
>> Select Class Icon
>> Enter the class name, e.g., Car
>> Enter each attribute in the form <Class/Type> <Attribute Name>,
e.g., int gasQty and select Add
>> Enter each operation in the form <return class/type>
<operation name> <argument class/type argument name>, e.g.,
int getGasQty () and void setGasQty (int aGasQty) and select Add
>> Double click OK to create the class
>> Place the class symbol on the page
>> Select "File - Save" to save the diagram
>> Select "Print" to print the diagram

Steps to Create the Data Dictionary (Specifications) Using With Class

>> Run With Class from Windows
>> Select "File - Open" e.g., c:\car.omt
>>Select "Specs - System"
>> Enter system specification information, e.g.  system name, 
enclosing system, access, imports
>> Double click on a class, e.g., Car
>> Select "Specification"
>> Enter class information, e.g., description, visibility, 
concurrency, cardinality, persistence
>> Double click on an attribute to bring up the Attribute
Specification Form
>> Enter attribute information, e.g. visibility, initial value,
minimum value, maximum value
>> Double click on an operation to bring up the Operation 
Specification Form
>> Enter operation information, e.g. precondition, postcondition,
transformation  
>> Select "Generate - Make Data Dictionary" and enter the dictionary
file name, e.g., c:\car\carspec.dic
>> Select "File - Edit File" and enter the dictionary file name,
e.g., c:\car\carspec.dic
>> In the Edit Box, select "File - Exit"

Steps to Generate C++ Code Using With Class

>> Run With Class from Windows
>> Select "File - Open", e.g., c:\car\car.omt
>> Select "Generate - Options" and select C++ code generation options  
>> Select "Generate - Generate Code"
>> Select "File - Edit File" and select a ".h" or ".cpp" file for review

Note - to ensure the generated .h and .cpp files are placed in the
correct directory you may need to select "File - Edit File" and select
the desired directory.  After you have generated code, switch to your 
C++ environment to create a project, to create a main function, and 
to compile, link, and run.

Steps to Reverse Engineer  a Class Diagram from C++ Code Using With Class

After C++ code has been generated from a class diagram, many additions 
must be made to the C++ code for messages, transformations (rules, 
expressions, equations, algorithms), correctness assertions 
(preconditions, postconditions, invariants), comments, etc.  Later 
in a project you may desire to create a class diagram from the code 
you're working on.  This is called reverse engineering.  It is the 
creation of a diagram from source code.   With Class reverses updated 
C++ code that was originally generated using With Class.  Each file 
should have only one .h or .cpp file in it.  

>> Ensure all applicable C++ .h and .cpp files are in a single directory
>> Run With Class from Windows
>> Select "Generate - Reverse"
>> Choose the directory of the C++ files
>> Initially, select a single header file and select "add" to 
reverse the file
>> Select "File - SaveAs" xxx.omt to save the new diagram
>> Later, choose several header and/or cpp files to reverse

Quick Start provided by Richard Felsinger, RCF Associates, 960 Scottland 
Dr, Mt Pleasant, SC 29464  803-881-3648 (voice & fax) E-mail 
71162.755@compuserve.com  8/31/94.  RCF Associates provides consulting 
and training services in object-oriented analysis, design, and 
programming for C++, Eiffel, and other languages.
