      With Class Newsletter Number 2 - 12 September 1994  
    

1 - MicroGold Software Distributes With Class 2.0 Beta

Mike Gold of MicroGold Software has started the initial
distribution of With Class Version 2.0 Beta to selected
developers.  This version provides greater compliance for the
Rumbaugh Object Management Technique (OMT).  It is written in
Visual C++ with the Document View Architecture, MDI (multiple
document interface), and OLE 2.0 support.   The most significant
capability of this new version is the scripting language for
report generation and code generation.   

2.  Using With Class 2.0 Beta with Scripting Language

The following are the steps to use With Class 2.0 Beta to create
OMT class diagrams, create reports, and generate C++ code:
- Create the class diagram,
- Save the diagram and the internal With Class data base.
- Identify a provided With Class script or create a new script
that accesses the internal data base to create reports and C++
code.
- Generate a text file for a report or C++ code listing by
running the script.

3.  With Class 2.0 Beta Scripting Language

The scripting language provides a means to create custom reports
and C++ code files.   Previous versions of With Class had an
internal data base that was accessible only from the internal C++
program.   It was difficult to make even the most minor changes
to reports or generated C++.   Just to provide a new C++ comment
or change the indention of C++ statements required a new With
Class program.   Previous versions of With Class were not
extendible.   This version is a highly extendible, modifiable
CASE tool.   With the new scripting language, any user can create
their own scripts to create their own customized reports and
language files.   Scripts can be written to generate source code
for any language and library.    The following is a very short
script (script1.sct) to generate a C++ header file:
---------Sample With Class Script - SCRIPT1.SCR----------------
// Class: CLASS

class CLASS : public [BASE_CLASSES]
{
  [ATTRIBUTES]
  public:
  [OPERATIONS]
  [ATTRIBUTE_TYPE Get$ATTRIBUTE_NAMES$() {return ATTRIBUTE_NAME;
} ]
}

------------Sample With Class Diagram Information-----------------
Base Class - Vehicle
Class - Car
Attributes: speed, gasQuantity
Operations: start, stop

----------------Sample Script Output File car.h--------------------

// Class: Car 
class Car : public Vehicle
{   
   int speed;
   int gasQuantity;
public:      
   void start();
   void stop();
   Getspeed(){return speed;}
   GetgasQuantity(){return gasQuantity;}
}

4.  Major Components of the With Class Scripting Language

There are several components of the With Class scripting
language:
(a) Class diagram and internal database - these hold system and
class information e.g. classes, attributes, operations, etc.  
The class diagram and the internal database is the information
that the script uses to create script output files.
(b) Script - a script is a set of sentences which consist of
keywords, literals, repeat operator [], and concatenation
operator $.   For example, script1.scr above is a sample script.
(c) Script Editor - any text editor, e.g. Windows Notepad.   One
uses the text editor to create scripts.
(d) Script Executor - With Class "Generate" menu item executes a
script. 
(e) Script Output File - When a script is executed, then an
output file, e.g. a report, a C++ header file, a C++ source file,
or any text file is created.
(f) Script Keywords - Keywords are special terms that represent
information in the internal With Class database.   Sample
keywords are CLASS, BASE_CLASSES, ATTRIBUTES, and OPERATIONS.  
All keywords are in upper case.  When a script is executed, then
actual model information is substituted in the output file.   For
example, the actual model information, e.g. Car is substituted
for the keyword CLASS.
(g) Literals - a literal is any character or number that a user
enters into a script.   When a script is executed, then the
literal is placed into the output file.  For example, a literal
in the above program is // Class: .
(h) Concatenation Operator $ - the symbol $ means to connect a
literal and a keyword.  For example, Get$ATTRIBUTE_NAME  connects
the literal Get and the keyword ATTRIBUTE_NAME.   When executed,
the result is GetSpeed. 
(i) Repeat Operator [] - the symbol [] causes the keyword or
literal to be repeated.  For example, [ATTRIBUTES] causes a list
of attributes to be placed into the output file.

(4) With Class 2.0 Beta Volunteer Script Writers

Currently there are several With Class 2.0 Beta volunteer script
writers who are creating scripts for code generation for Borland
C++, Visual C++, and Eiffel.   If you are interested in creating
a specific script on a volunteer basis, contact Mike Gold at
MicroGold Software. 

Current With Class Info - With Class 1.6 is available from
MicroGold Software 696 Birch Hill Drive, Bridgewater, NJ, 08807
telephone 908-722-6438 (voice and fax) and
71543,1172@compuserve.com.   On CompuServe, you may find the
shareware version of With Class 1.6 in the Borland Forum -
Borland C++ for Windows - Non Tech Cust Service with the file
name wclass16.zip.   On the Internet,  With Class is available at
oak.oakland.edu in the pub\msdos\windows3 directory with the file
name wclass16.zip. 

Newsletter provided by With Class User Group 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 in
C++, Eiffel, and other languages.  Comments and suggestions on
this newsletter are solicited.



