*****************************************************************************************
* AUTHOR: Chirag Patel & Ujjaval Parikh *
* COURSE: Object Oriented Analysis and Design *
* PROF: Dr. Lechner *
* DATE: April 22, 1997 *
* *
* SUBMIT: Conversion of JPArc to HTML *
* PATH: /usr/proj3/case/96f522/cpatel/jp2html/doc/report.txt *
*****************************************************************************************
Table of Contents
1. Introduction
2. BDE Drawings
2.1 Juice Plant Schema
2.2 BDE (Block Diagram Editor)
2.3 SMA (State Model Architecture)
2.4 JP Layout Passive
2.5 JP Layout Active
2.6 Timer State Machine
2.7 Temperature ramp
2.8 Path Assigner
2.8.1 Reserve path
2.8.2 Set Up Path
2.8.3 begin pumping
2.8.4 Stop pumping
2.8.5 Release Path
2.9 Enhanced Operator Class
2.9.1 OPINIT
2.9.2 OPSCPT
2.9.3 OPSCMD
2.9.4 OPIDLE
2.9.5 OPPCMD
2.9.6 OPSWAI
2.9.7 OPTOUT
2.10 Batch
3. Methodology
3.1 PS to gif Conversion
3.2 bde2ht
3.3 c2html
4. JP2html Demo (How to browse)
5. Problems Encountered
5.1 Bug Fixes
5.2 Known Limitations
5.3 Bugs
6. Future Plans
1. Introduction
===============
The main purpose of this project was to convert the existing
idraws into the bde format and then convert these bde drawings into
gif format so that they can be viewed via a network browser.
New BDE graphs were created from the existing idraws.
These graphs were drawn using the following version of BDE
/usr/proj3/case/96su523/bdelog/fjara/bde/executables/bde
All the graphs in the state diagram for the Juice Plant
schema were drawn using the above version of bde.
All the drawings were available in the idraw format in the
directories of the students from previous semesters. The paths
are listed along with the descriptions of each states in section 2
for Graphs. We used the idraws in those directories to recreate the
drawings in bde.
The main drawing for the Juice Plant schema is available in
the following directories
/usr/proj3/case/96f522/cpatel/JP2html/html/JPArchitecture.dat
JPArchitecture.dat file contains all the drawings including
a higher level graph of the Juice Plant Simulation. It also contains
the bde drawings for the active classes like Batch, Timer, Operator,
Path Assigner, and Temperature Ramp. These drawings were converted so
that the graphs can be viewed via the web browser. This was achieved
using bde2ht9.
2. BDE Drawings
===============
The names of the bde graphs contained in the JPArchitecture.dat
are described in the following sections.
2.1 Juice Plant Schema:
----------------------
This file contains the main upper level diagram of the Juice
Plant Schema which shows the relationships between the BDE, SMA,
JP Layout Passive, and JP Layout Active
** Adapted from: We created this graph so that a higher level graph is available.
2.2 BDE (Block Diagram Editor):
-------------------------------
This graph contains the Block Diagram Editor classes and their
relations to each other.
** Adapted from: /usr/proj3/case/95f522/95folc/base/doc/lcp_architecture_oct96.idraw
2.3 SMA (State Model Architecture):
-----------------------------------
This bde drawing contains the higher State Model Architecture classes and the
service classes and their relationships.
** Adapted from: /usr/proj3/case/95f522/95folc/base/doc/lcp_architecture_oct96.idraw
2.4 JP Layout Passive:
----------------------
This is a bde drawing of all the passive classes of the Juice Plant Simulation
** Adapted from: /usr/proj3/case/95f522/95folc/base/doc/lcp_architecture_oct96.idraw
2.5 JP Layout Active:
---------------------
This bde drawing contains all the active classes of he Juice Plant Simulation
** Adapted from: /usr/proj3/case/95f522/95folc/base/doc/lcp_architecture_oct96.idraw
2.6 Timer State Machine:
------------------------
This bde drawing consists of the few timer states - Timer_init, set_timer,
timer_tick, reset_timer, and timer_fire.
** Adapted from: /usr/proj3/case/94s523/94solc/base/doc/opfigures/fig11.idraw
2.7 Temperature Ramp:
---------------------
This bde drawing contains the bde drawing for the active class Temperature
Ramp. The following subsections contain the appropriate drawings for each of the
states of the Temperature Ramp. These are drawn as captions (GX's) in the bde drawings
2.7.1 Created: This bde graph contains the source code logic for the
'created' state of the Temperature Ramp
2.7.2 Controlling: This bde graph contains the source code for the
'controlling' state of the Temperature Ramp
2.7.3 Complete: This bde graph contains the source code for the 'complete'
state of the temperature Ramp.
** Adapted from: /usr/proj3/case/94s523/95solc/base/doc/opfigures/fig13.idraw
2.8 Path Assigner:
------------------
This graph contains the bde drawing for the active class Path Assigner. The
following graphs are the subsequent states of the Path Assigner. These are drawn
as captions (GX's) in the bde drawings
2.8.1 Reserve path: This bde drawing contains the source code logic for the
'Reserve path' state of the Path Assigner
2.8.2 Set Up Path: This bde drawing contains the source code logic for the
'Set up path' state of the Path Assigner
2.8.3 Begin Pumping: This bde graph contains the source code for the
'Begin Pumping' state of the Path Assigner
2.8.4 Stop Pumping: This bde graph contains the source code for the
'Stop Pumping' state of the Path Assigner
2.8.5 Release Path: This bde graph contains the source code for the
'Release Path' state of the Path Assigner
** Adapted From: /usr/proj3/case/94s523/94solc/base/doc/opfigures/fig14.idraw
2.9 Enhanced Operator Class:
----------------------------
This graph is a bde drawing of the active class Enhanced Operator Class of
the Juice Plant Simulation. The subsequent states of the Enhanced Operator class
are described as follows. These are drawn as captions (GX's) in the bde drawings
2.9.1 OPINIT: This bde drawing contains the source code for the 'Operator
Initialization' state of the Enhanced Operator Class
2.9.2 OPSCPT: This bde drawing contains the source code for the 'Process
script' of the Enhanced Operator Class
2.9.3 OPSCMD: This bde drawing contains the source code for the 'Get Cmd'
state of the Enhanced Operator Class
2.9.4 OPIDLE: This bde drawing contains the source code for the 'Wait for
EOL' state of the Enhanced Operator Class
2.9.5 OPPCMD: This bde drawing contains the source code for the 'Process
one command' state
2.9.6 OPSWAI: This bde drawing contains the 'Wait for timeout' state of
the Enhanced Operator class.
2.9.7 OPTOUT: This bde drawing, as the name suggest, contains the 'Wait
for timer' state of the Enhanced Operator class.
** Adapted from: /usr/proj3/case/94s523/94solc/base/doc/opfigures/fig5.idraw
2.10 Batch:
-----------
This is a bde drawing of the active class Batch of the Juice Plant
Simulation.
** Adapted From: /usr/proj3/case/94s523/94solc/base/doc/opfigures/fig3.idraw
3. Methodology:
===============
After the bde drawings were completed, each drawing was converted into
a .ps file (post script format) so that these .ps files can be converted
into gif format as described ins ection 3.1.
3.1 ps to gif Conversion
------------------------
All the postscript .ps files created via bde were converted using
ps2gif on Neptune. This ps2gif conversion was achieved using the ps2gif from
the following directory:
/usr/proj3/case/95f523/base/ps2gif/
We applied ps2gif from the above directory to convert all the .ps
files mentioned above.
3.2 bde2ht
----------
For this project we used the bde2ht9 version of bde2src. In order to use
bde2ht9, we manipulated the JPArchitecture.dat file so that it had all the proper
input to bde2src.
The following procedure was followed to manipulate the data file.
We replaced the FSID of the nodes to the HGID numbers so that the graphs
can be linked correctly to each other
3.3 c2html
----------
c2html was used to convert the related source code for each state or
subsections of the bde drawings mentioned in section 2.
4. JP2html Demo (How to browse)
===============================
The bde drawings can be viewed via netscape or any other web browser.
The user must go the following directory while using netscape or any web browser.
go to the site http://www.cs.uml.edu/~lechner
click on the 96f522/JPArchitecture2html Project Menu
This will give a listing of all the drawings of the Juice plant Simulation.
You can start with the main drawing Juice Plant Schema or click on each individual ones to
view that particular state.
Clicking on the top part of any node will bring the user to the child
drawing of that particular node (if it exists). Clicking in the middle will bring
the user to the source code of that particular node. Clicking on the bottom part
of the node will bring the user to the HA of that particular state or class. If any of
the links don't exist it will not do anything.
5. Problems Encountered
=======================
While working on this project, we found a few bugs within bde and in
the other sections. They are listed as follows. Some of the bugs were fixed
with the help of Prof. Lechner.
5.1 Bug Fixes:
--------------
1. The html files that were created had extra unrecognized
characters in them. This was happening because the array in the source
file was not null terminated. This was fixed by adding a null character
at the end of the name string.
2. Divided the node into 3 hotspots so that the top part can be
linked to the appropriate child graph. The middle hotspot for source code
and the bottom hotspot to link to the HA's.
5.2 Known Limitations:
----------------------
1. In BDE, currently, only 8 bendpoints can be created on a link.
2. BDE keeps on crashing if the outer borders are crossed frequently
via the mouse.
3. BDE also crashes when the mouse movements are fast and when the
user constantly deletes and creates the objects (eg. nodes, links etc.)
4. None of the EDIT menu options work. They are not implemented.
5. In BDE, when there are spaces/indents left in the captions (GX)
when writing text, the spaces before the text are not saved and all the
text is seen in the same line when the drawing is opened next time in bde.
There was a workaround for this. Instead of spaces, we used dots (.) and
the graphs were saved with these dots. This will give a proper indent
but the graphs would still show all the dots.
6. The ps2gif conversion can only be run on Neptune.
5.3 Bugs:
---------
1. The bendpoint menu gives 6 options but only Solid Forward
is available. Even when the other options are chosen, only Solid Forward
option works.
2. Eventhough the links look straight in BDE, when converted to
ps format, the coordinates are rounded up and the links do not look
straight.
3. When bde2src creates a .map file, it creates a path upto the
public_html directory.
4. The link labels, created in bde, do not stay at their proper
places but they all move to the middle of the screen in html. The bde
graph looks fine since this is not a problem with bde but it is a problem
in the bde2src.
6. Future Plans
===============
1. Create a script to append tags.log file.
2. Get rid of the absolute path on the bde2src so that the files
can be created locally.
3. Give c2html a target so that it creates files and moves them to
the demo directory.
4. Make the fonts bigger in the bde drawings so that they can be
viewed properly on an overhead projector.