                 Welcome to With Class 95 - Version 2.52  
MicroGold Software, Inc 311 East 81st Street, New York, NY USA 10028
Telephone 908-722-6438 e-mail 71543.1172@compuserve.com
MicroGold Home Page go http://turnpike.net/emporium/M/mercator/mgold

Key Readme.txt Topics:  Part I Installations Procedures and Release Notes, Part II Report Scripts, Part III Code Generation Scripts from Class Diagrams, Part IV Code/Report Generation Scripts from State Diagrams, Part V Add-on Products and Services, Part VI Registration and Purchase Costs. 

***Part I Installations Procedures and Release Notes

1. With Class 95 (Version 2.52) New Features: This version provides reverses files over 32K,
uses long file names, has printing improvements, supports class diagram/state diagram/object interaction diagram, import C++, and reverse C++ header capabilities.  This version creates a .bak file and generates files greater than 32K.  Use the variable CLASS_NAME not CLASS.  See statinfo.wri and codegen.wri for details on generating C++ and other language code from class diagrams and state diagrams.

2. Installation Procedures (Requires Windows 95)

a) For shareware users, copy wclass95.zip into a directory, e.g. WC2.  Unzip.  In Windows Program Manager, create the With Class icon by selecting "File New", "Program Icon", and entering WC2.EXE.  Follow the supplemental instructions below. 

b) For professional version users (disk receipt), insert disk1 into your floppy drive.  From the Windows Program Manager, run a:\install. When prompted, insert disk2 into your floppy drive.  From disk2, Windows DLL's are copied into WINDOWS\SYSTEM directory.  From disk2, the install program copies and over-writes currently installed DLL's in the C:\WINDOWS\SYSTEM.  To keep copies of your old DLL's copy or rename the following DLL's that may be in your C:\WINDOWS\SYSTEM directory: CTL3D32.DLL, MFCANS32.DLL, MFCO30.DLL, MFC30.DLL, MSVCRT20.DLL.   With disk2 in you optionally type EXPAND from the DOS prompt and manually extract the DLL's.  Follow the supplemental instructions below. 

c) For professional version users (e-mail receipt), copy and unzip wclass95.zip into a directory, e.g. wctemp2. In Windows select File - Run install.exe.  If required copy any new DLL's from wcdlls.zip into C:\WINDOWS\SYSTEM.  The With Class User Manual wc25man.zip is in MS Word 6.0 format.  Follow the supplemental instructions below. If you experience any installation problems call 803-881-3648 for installation support or send e-mail to 71162.755@compuserve.com.

d) Supplemental Instructions for all users

>> Ensure the following DLL's are in the C:\WINDOWS\SYSTEM directory: CTL3D32.DLL, MFCANS32.DLL, MFCO30.DLL, MFC30.DLL, MSVCRT20.DLL 

>> Ensure CTL3D32.DLL in your path, e.g. C:\WINDOWS\SYSTEM is in your autoexec.bat path statement.

>> Copy DATADIC1.DOT to the WINWORD\TEMPLATE directory if Microsoft Word 6.0 or later is present

>> In Windows, run With Class from Windows, e.g. "File Run WC2.EXE" or double click the With Class icon

3.  Installation Problems - If you experience a problem follow these steps:
a) use minimum config.sys without QEMM or other memory resident programs, 
b) ensure that the provided .DLL's are copied into the WINDOWS/SYSTEM directory, 
c) if you have a previous version of With Class, rename C:\WINDOWS\SYSTEM\WC2.INI so that With Class automatically creates a new WC2.INI) use the standard Windows VGA (640 x 480) screen resolution, 
d) If problems persist contact MicroGold Technical Support at 803-881-3648 e-mail71162.755@compuserve.com.

4.  Known Limitations with this version : 
a) Due to OLE constraints only 3 diagrams may be open at a time.  When you try to save the 4th diagram, you may get an error, e.g. Illegal File Name.  If you get this error, close one or more diagrams and save the diagram. 
b) Once an OLE object is inserted into a diagram using Insert New Object, it cannot be deleted. 
c) OLE Copy is experimental and may cause unpredictable results if you use Copy OLE menu command to copy, paste, and activate a diagram into MS Word 6.0. To copy a diagram into another Windows application, it is recommended that you use Copy for a bitmap copy.  
d) Cut is not implemented.
e) When reversing C++ header files, this version does not reverse template classes.  Any C++ header file that does not reverse properly should be sent to MicroGold at 71543,1172@compuserve.com.  Sample message is Subj: WC25 Reverse Error - The following statement compiles 
on Borland 4.5 but causes a With Class 2.5 Reverse Error - void addPassenger ( Passenger* const aPassenger);
f) Overloaded attributes/functions must have a $ following the name, e.g. number, number$, number$$, operate, operate$, operate$$.  This is to ensure that they have a unique name.  The $ does not print out in generated reports or code.
g) Once a relationship is placed, it cannot be moved.  To move a relationship, delete it then recreate the relationship.

5.  Primary Files in this release
- read95.txt and *.txt    Installation Instructions and Specific Language Code Generation Instructions
- wc2.exe       With Class Program
- wc2.hlp       With Class Help Program
- *.dll         DLL's used by With Class Program
- wc2tutor.wri  O-O Modeling Using With Class
- statinfo.wri  Instructions for Generating C++ from State Diagrams
- codegen.wri   Instructions on Generating Code Using Scripts
- *.sct         Text Script Files for custom reports and code generation
- *.omt         Class diagrams to test code generation scripts
- datadic1.dot  Microsoft Word 6.0 document template for a data dictionary

***Part II Report Scripts

6.  Report Scripts for Reports, Tables, and Data Dictionaries.
With Class has many scripts to create reports and data dictionaries.  You should run these and add/delete script statements.  Also, if you want to collect information not in a With Class specification, then use an unused field to collect the information you desire.  For example, if you want to collect index information on a class use the class_invariant field to collect index information.  The following are the report scripts that may be used with class diagram, e.g. cppcar.omt:
RPTALL.SCT - Prints all specification information for the system and classes
RPTSYS.SCT - Prints specification information for the system
RPTCLASS.SCT - Prints all specification information about classes
RPTATTR.SCT -  Prints attribute specification information
RPTOPER.SCT - Prints operation specification information
RPTCPP.SCT - Prints key C++ information.
RPTDICT.SCT - Prints a data dictionary report.
RPTRELAT.SCT - Prints relationship information.
TABSYS.SCT - System Table - a comma delineated ASCII file for import
TABSYSOP.SCT - System Operation Table - a comma delineated ASCII file for import
TABCLASS.SCT - Class Table - a comma delineated ASCII file for import
TABATTR.SCT - Attribute Table -  a comma delineated ASCII file for import
TABOPER.SCT - Operation Table - a comma delineated ASCII file for import
TABRELAT.SCT - Relationship Table - a comma delineated ASCII file for import
DDCLASS.SCT - Data Dictionary - a comma delineated ASCII file for import.

The following are the report scripts that may be used with a state diagram, e.g. ST1STATE.OMT:
RPTSTATE.SCT - Prints all state/transition specification info
TABSTATE.SCT - State Transition Table - a comma delineated ASCII file for import.
DDSTATE.SCT - Data Dictionary of State Names - a comma delineated ASCII file for import.

The following are the report scripts that may be used with a system interaction diagram showing events and an object interaction diagram showing messages, e.g. CAROBJ.OMT:
RPTSYIN.SCT - Prints all system/interaction (event) specification information.
RPTOBJ.SCT - Prints all object/interaction specification info
TABSYSIN.SCT - Prints a System Interaction Table
TABOBJ.SCT - Object Interaction Table - a comma delineated ASCII file for import.
TABOBMSG.SCT - Message Table - a comma delineated ASCII file for import
DDSYSIN.SCT - Data Dictionary system and interaction system names from system interaction diagram.
DDOBJ.SCT - Data Dictionary of Object Names - a comma delineated ASCII file for import.

***Part III Code Generation Scripts from Class Diagrams

7.  Generating ANSI C++ from a class diagram.  There are three sets of scripts for generating ANSI C++.  CPPHEAD0.SCT and CPPFUNC0.SCT generates the minimum C++.  These generate include file declarations, data member declarations, and function member declarations.  You must use the C++ compiler generated constructors, operator=, and destructor.  These scripts may be used when you have reversed C++ header files.  CPPHEAD1.SCT and CPPFUNC1.SCT are the normal C++ code generation scripts.  Additionally, they generate the default constructor, constructor with arguments, copy constructor, operator=, operator==, operator<< for cout, and operator>> for cin.  CPPHEAD2.SCT and CPPFUNC2.SCT generate the maximum C++.  Additionally, they generate numerous 1 to M accessor functions (add, remove, exists, etc) and provide limited exception handling with throw statements.  To test these scripts, copy CPPMAIN.CPP and CPPCAR.OMT into a directory, e.g. ANSICAR.  In With Class open CPPCAR.OMT, select Generate - Generate Class Code", enter H or CPP for the file extension, select Browse and CPPHEAD0.SCT or CPPFUNC0.SCT, go to your C++ environment, open CPPMAIN.CPP, create a project, add the cpp files to the project, compile, link, and run.  The following are the scripts:
CPPHEAD0.SCT - Creates minimum header file; test with CPPCAR.OMT and CPPMAIN.CPP  
CPPFUNC0.SCT - Creates minimum .CPP file; test with CPPCAR.OMT and CPPMAIN.CPP  
CPPHEAD1.SCT - Creates a header file; test with CPPCAR.OMT and CPPMAIN.CPP  
CPPFUNC1.SCT - Creates a .CPP file; test with CPPCAR.OMT and CPPMAIN.CPP  
CPPHEAD2.SCT - Creates maximum header file; test with CPPCAR.OMT and CPPMAIN.CPP with ANSI C++ try and throw statements
CPPFUNC2.SCT - Creates maximum header file; test with CPPCAR.OMT and CPPMAIN.CPP with ANSI C++ try and throw statements  
CPPHEAD3.SCT - Creates maximum header file; test with CPPCAR.OMT and CPPMAIN.CPP with ANSI C++ try and throw statements
CPPFUNC3.SCT - Creates maximum header file; test with CPPCAR.OMT and CPPMAIN.CPP with ANSI C++ try and throw statements  

8.  Generating Microsoft Visual C++ from a class diagram.  The following are the Visual C++ Code generation scripts:
VC15HDEX.SCT - Creates header file for Windows .EXE project; test with vc15car.omt (min code gen)
VC15FUEX.SCT - Creates .CPP file for Windows .EXE project; test with vc15car.omt (min code gen)
VC15HEAD.SCT - Creates header file for QuickWin project; test with vc15car.omt and vc15main.cpp
VC15FUNC.SCT - Creates .CPP file for QuickWin project; test with vc15car.omt and vc15main.cpp
VC15HD1.SCT - Creates max header file for QuickWin project; test with vc15car1.omt and vc15main.cpp
VC15FU1.SCT - Creates max .CPP file for QuickWin project; test with vc15car1.omt and vc15mai1.cpp
VCSERHD.SCT - Creates header file with serialize function
VCSERFUN.SCT - Creates .CPP file with serialize function
VC2HDEX.SCT - Creates Visual C++ 2.X header file with CList
VC2FUEX.SCT - Creates Visual C++ 2.X header file with CList
VC2HD*.SCT and VCFU*.SCT - Creates Visual C++ 2.X files

9.  Generating Borland C++ from a class diagram.  The following are the Borland C++ Code generation scripts:
BC4HEAD.SCT - Creates header file for Borland 4X; test with bc4car.omt and bcmain.cpp
BCFUNC.SCT - Creates .cpp file for Borland 3/4; test with bc3car.omt/bc4car.omt and bcmain.cpp
BC3HEAD.SCT - Creates header file for Borland 3X; test with bc3car.omt and bcmain.cpp

10.  Generating ANSI C Code from a class diagram.  The following are the ANSI C Code generation scripts:
CHEAD1.SCT - Creates .H file from ANSICAR.OMT and CMAIN.C
CFUNC1.SCT - Creates .C file from ANSICAR.OMT and CMAIN.C. 

***Part IV Code Generation and Report Generation Scripts from State Diagrams

11.  Generating ANSI C and C++ from State Diagrams.  See statinfo.wri.  When using state scripts select "Generate State Code".  Select "Generate Class Code" only when using class scripts.  The following are the C and C++ code generation scripts:

STAHEAD1.SCT - Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST1MAIN.CPP.
STAFUNC1.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.OMT and ST1MAIN.CPP.
STAHEAD2.SCT-  Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST1MAIN.CPP.
STAFUNC2.SCT-  Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.SCT and ST1MAIN.CPP.  
STAHEAD3.SCT - Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST1MAIN.CPP.
STAFUNC3.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.SCT and ST1MAIN.CPP.
STAHEAD4.SCT - Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST1MAIN.CPP.
STAFUNC4.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.SCT and ST1MAIN.CPP.

STAANSI1.SCT - Creates C function; test with ST1STATE.OMT and ST1MAIN.CPP.
STAANSI2.SCT - Creates C function; test with ST1STATE.OMT and ST1MAIN.CPP.

The following ST2*.SCT scripts generate ANSI C++ with try and throw statements.
ST2HEAD1.SCT - Creates .H file, eg CONTROLL.H; test with ST2STATE.OMT and ST2MAIN.CPP.
ST2FUNC1.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST2STATE.SCT and ST2MAIN.CPP.
ST2HEAD2.SCT - Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST2MAIN.CPP.
ST2FUNC2.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.SCT and ST2MAIN.CPP.
ST2HEAD3.SCT - Creates .H file, eg CONTROLL.H; test with ST1STATE.OMT and ST2MAIN.CPP.
ST2FUNC3.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.SCT and ST2MAIN.CPP.
ST2HEAD4.SCT and ST2HEAD5.SCT - Creates .H file, eg CONTROLL.H; test with ST2STATE.OMT and ST2MAIN.CPP.
ST2FUNC4.SCT and ST2FUNC4.SCT - Creates .CPP file, eg CONTROLL.CPP; test with ST1STATE.OMT and ST2MAIN.CPP.

***Part V Add-on Training and Consulting Products and Services

12. Training and Consulting Services and Products Using With Class 
a) RCF Associates offers custom training and consulting services using With Class with object-oriented design projects with object-oriented languages.  The following services and products are offered.
- Custom model development (drawings and specifications) for a system based upon your requirements statement and block diagram.
- Executable prototype for a system in C++, Eiffel, Ada, Visual Foxpro and other languages based upon your model (diagrams and specifications).
- Custom With Class scripts for reports and code generation for your specific language, class library, and coding standards.
- On-site training course "Object-Oriented Modeling with CASE and C++".  Course is one to five days customized to your requirements including modeling your system during the course.
Customer satisfaction is guaranteed.  For information contact Richard Felsinger, RCF Associates, 960 Scottland Dr, Mt Pleasant, SC 29464 803-881-3648 e-mail 71162.755@compuserve.com 

b) "Object-Oriented Modeling, C++ Programming, and Scripting" tutorial (300 pages) with 3 complete "charter to C++" case studies may be ordered from RCF Associates.  This book-length tutorial features an in-depth "how to" create diagrams, specifications, scripts, and C++ programs in With Class using the Rumbaugh Object Management Technique (OMT).  The tutorial has a large number of diagrams, With Class scripts, and C++ code listings. Tutorial contents: 1 - Introduction to O-O Modeling, 2 - Basic O-O Entities and Models, 3 - Using O-O CASE Tools, 4 - Modeling the System and Classes in the Object Model, 5 - Modeling Attributes in the Object Model, 6 - Modeling Operations in the Object Model, 7 - Modeling the Association Relationship in the Object Model, 8 - Modeling the Aggregation Relationship in the Object Model, 9 - Modeling Generalization Specialization in the Object Model, 10 - Modeling System Input and Output Events in the Dynamic Model, 11 - Modeling States and Transitions in the Dynamic Model, 12 - Modeling Messages in the Dynamic Model, 13 - Modeling Operations (Transformations) in the Functional Model, 14 - Modeling Complex Systems 15 - Modeling the System - The System Object Model, 16 - Modeling System Events and States - The System Dynamic Model, 17 - Modeling the System Inputs, Outputs, and Operations - The System Functional Model, 18 - Modeling Classes and Relationships - The Object Model, 19 - Modeling Interactions (Messages) and States - The Dynamic Model, 20 - Modeling Operations - The Functional Model, 21 - Creating Scripts with a Scripting CASE Tool, 22 - Creating Scripts for the Object, Dynamic, and Functional Models, 23 - Creating C++ Code Generation Scripts, 24 - Creating C++ Scripts to Generate Finite State Machine Code.  Case Studies: Coffee Control System, Automobile Cruise Control System, Currency Control System. To receive a three hole laser printed copy of "Object-Oriented Modeling, C++ Programming, and Scripting" send $25.00 plus $5.00 Shipping and Handling ($15.00 Shipping and Handling for orders outside the US) to Richard Felsinger, RCF Associates, 960 Scottland Dr, Mt Pleasant, SC 29464 telephone 803-881-3648 e-mail 71162.755@compuserve.com.

c) With Class ScreenCam Training Tutorial - A four disk training tutorial is available "Object-Oriented Modeling Using With Class".  This screen cam video requires a 1024x768 video resolution and a sound card.  The following are the topic in this screen cam video:  Using the With Class CASE Tool (Overview), Creating Class Diagrams, Specifications, and Code in the OMT Object Model, Creating State Diagrams, Specifications, and Code in the OMT Dynamic Model, Creating Object Interaction Diagrams, Specifications, and Code in the OMT Dynamic Model, Creating Functional Operation Specifications and Code in the OMT Functional Model.  These screen cam training videos are very easy to use.  Just execute each SceenCam file, watch the on-screen demonstration of creating diagrams, specifications, and code, and listen to the instructor explain each step.  To order the ScreenCam Training Videos send $25.00 plus $5.00 Shipping and Handling ($15.00 Shipping and Handling for orders outside the US) to Richard Felsinger, RCF Associates, 960 Scottland Dr, Mt Pleasant, SC 29464 telephone 803-881-3648 e-mail 71162.755@compuserve.com.

Part VI With Class Registration and Purchase Costs

13.  Registration and Purchase Costs
a) $69 + s/h Shareware Registration - After 30 days, shareware users should register and forward $69.00 + S/H ($10 US and $20 Outside US) to MicroGold.  You will receive an expanded registered version a 25 class limit.
b) Professional Version $295 - The professional version of With Class has unlimited classes, states, and objects. It has the capability to reverse an unlimited number of C++ header files.  It ships with additional scripts and full written documentation.  Additional With Class User Manuals are $25.    
c) Multi-user site licenses, contact MicroGold Software at 908-722-6438 e-mail 71543.1172@compuserve.com.
d) Special Bundle Offer for Intro CASE Tools.  With Class 1.6 and StateMaker 3.1 are introductory CASE tools especially suited for new CASE tool and C++ users.  With Class 1.6 is specialized to generate C++ code for Borland 3X, Borland 4X, and Microsoft Visual C++ 1.5.   With a single click With Class 1.6 generates all major C++ constructs including streamable classes from a class diagram.  StateMaker 3.1 is used to create state transition diagrams and to generate C/C++ code.  Both With Class 1.6 and StateMaker 3.1 have a reverse engineering capability.  This bundle of With Class 1.6 and StateMaker 3.1 (program disks plus manuals) is available for $99.00 plus $5.00 S/H ($10 S/H for orders outside the US).

14. Free Newsletters - To receive e-mail newsletters and announcements, please send your e-mail address to Michael Gold, MicroGold Software at Internet 71543.1172@compuserve.com or CompuServe 71543,1172.  We will periodically send out newsletters, announcements, and new scripts.  Also, please send in the e-mail address of anyone who is interested in object-oriented CASE tools.  Also, for technical questions please e-mail questions to the above address.  Periodically, MicroGold uploads demo and shareware tools to the Internet.  Currently the educational shareware version (10 class limit) of With Class is at the following FTP sites: oak.oakland.edu/SimTel/win3/pgmtools/wclass25.zip and cica.indiana.edu.  On CompuServe wclass.zip is in the CASE/CASE forum and WINSHARE/PROGRAMMING.  On CompuServe type GO IBMFF and enter wclass.zip to find the latest version of the shareware With Class.

Thank you for using With Class, Michael Gold, MicroGold Software, Inc

