/* $PH/05f523/index.htm -
RJL050905; last rev: 050913 */
/* This is an index to the
01f523 course home page */
/* at cs.uml.edu/~lechner/05f5523
on the web. */
/* UML/CS account holders can
see much more at */
/* $PH = ~lechner/public_html and $CASE =
/usr/proj3/case.*/
/* RJLtalk2CS050921.htm*/
/* RJLtalk2CS060301.htm*/
91.523
Course Info:
Update for Fall 2005
(01f523): ./05f523Update.txt
Tentative Schedule, Fall
2005: 05f523Schedule.htm
05f523 Assignments 1 and 2: ./05f523asgnt1-2.txt
05f523 Assignment 3: ./05f523asgnt3.txt
Link to KDBC: Database
Concepts:
Links to slides and figures
in OOSE text:
Frequently-Asked Questions
(rev.050903):
COOLFramework
Risk Factors: $PH/05f523...
../cvs/cvsManualV10RevisionTree.html
../COOL-BDE
(Block Diagram editor)
Data Models for BDE:
../COOL-BDE/bdeUG_2005DataModels.ppt
../COOL-BDE/bdeUG_2005DataModels.mht
User Guide for BDE:
../COOL-BDE/BDEUserGuide2005/bdeUG_2005.htm,
bdeUG_2005.ppt
Pre-2005 Info on building
BDE:
../COOL-BDE/How2BuildBde_98s_hh.txt
../COOL-BDE/How2BuildBde_97s_faq.txt
BDE Browsing Alternatives -
RJL050919
../COOL-BDE/bdeBrowserAlternatives.htm
BDE Distributed applications:
SetGameProtocol:
./04fdsg_raReportR05f.doc
SetGame04f
Report: ./ DSetGameProjRept_ra_rl06f.doc
Information about bde2java:
$PH/COOL-BDE/bde2java/bde2java04f/bde2java04fStatus050924.txt
(This applet creates and edits multi-diagram files local
to your PC.)
Click here to run latest
version of bde2java (04f523/smandava,jma & 05s523/kyang):
$PH/COOL-BDE/bde2java/bde2java04f/bde2java/
../COOL-GEN (Code generators and data models):
Data Modeling Tutorial:
Object-Relational Databases:
Structure Chart documentation
(of genv11, gencpp, and the
code they generate):
$PH/COOL-GEN/gencpp/gensrcStructureCharts_nt.ppt
Structured Design is graphic
documentation of program organization in the form of labeled Call Tree diagrams
with argument flow labels on the call links, and looping and conditional
annotations on the caller end. These 34 slides by Naiyana Tansalarak are a
valuable contribution both to illustrate the value of Structure Charts for
program understanding and to document
COOL-GEN operation. (The call tree diagrams do not include link labels showing
call arguments, hence they are not complete Structure Charts).
Four types of COOL-GEN code
are documented:
(1) slides 1- 6: gen/src;
(2) slides 7-14: gencpp/src;
(3) slides 16-23: pr_*.c
code (output from genv11)
(4) slides 24-33: pr_*.cc
code (output from gencpp)
Slide 15 is a flow chart of
the refactoring process;
Slide 34 is the ERD for
schoodb.sch.
This test data model contains
five entity types; two are binary associations.
This is a partial list covering only the most significant
and comprehensive
versions of chgen. These
include genv8, genv10, genv11 and genv13.
genv8: $CASE/gen/ver_8/doc/{genv8_UserManual.*,
genv8_report.*}:
This is the easiest starting
point to learn chgen basics. It merged the genv7 project
that allowed either 8-byte
(the default) or 12-byte [option -keysize = 12] ASCII keys
and compressed them to 32-bit
unsigned ints, with another project that incorporated
access macros that later
incorporated change-logging.
The genv8 UserManual retains
the earlier tutorial and example of programming with the pr_*.c API.
It is also the last version
whose UserManual and Report docs are written in LaTex
(.tex, .dvi, .ps, .pdf)
genv10log: $PH/COOL-GEN/chgen_docs/genv10log_manual.pdf
This is the latest report
that covered all chgen options and a comprehensive tutorial
with complete example
code. It developed the first complete
solution
to the problem of logging and
replaying database changes with the goal of
debugging
state-based code designs and synchronizing multiple interactive users
for distributed collaboration
and competition.
genv11merge
(Karner and Spinney, 990512):
$PH/COOL-GEN/chgen_docs/genv11projectDocs/genv11_project.htm
This is the Final Report for
chgen version 11. This merged genv10log
with RRassman's set/get field log and replay macros. It added an option
(-datinput) to pr_load schema content from a <schema>.dat file, as an alternate to parsing a
<schema>.sch file.
Section 2.3 contains a good writeup on how to use
CVS (except for the cvs log command and
-A option)
Section 6 is a comprehensive
discussion of chgen evolution beyond
gencpp, with class-based concrete methods replacing pr_*.c's switch(tabletype)
case branching:
chgenv13
(05s523: sboddire, lmalladi, mmulaka, 050517):
$PH/COOL-GEN/05s523Genv13FRept_SBLMMM050519.doc
The genv13 project in
$PH/05s523 and $PH/04f522 was a significant upgrade
of genv12 to generate more
changes defined in bde/pr_util for bde log and replay.
In this respect it was
similar to NTrivedi's upgrade of genv11 to genv12.
Genv12 and genv13 changes
were also merged onto the main trunk
of the CVS repository with
non-branch tag RootOfGenv13
and branch tag
Genv13Bugfixing.
Genv13 also generates a new
file pr_accessors.c, which contains class-based
access functions for all
table attributes of its input schema.
[see Appendix F: Get|Set
Macros Expansion.]
These functions were
generated by macros in olc3common.h (in COOL-LCP below).
Genv13 now auto-generates
these macros as ghost functions for
the pr_set/getType macros,
with the goal of refactoring bde code to replace
all pr_set/get macro calls.
During summer 2005, RJL
upgraded chgenv13's build process for
dual-platform
log and nolog versions and
changed the default options to -ansi and -nobp;
the deprecated non-defaults
are now -noansi and -bp.
$PH/COOL-GEN/genv13
= $CASE/gen/ver_13
Gencpp:
$PH/COOL-GEN/gencpp/gencppFinalReport_km_mo.doc
$PH/COOL-GEN/gencpp/2kf522_gencpp_nt_rl.txt
$PH/COOL-GEN/gencpp =
$CASE/gen/gencpp
Gencpp is a C++ class and STL-container code generator
which evolved beyond genv11's recommendations.
For a comparison of gencpp
[-DUSE_STL] option effects
when generating bde/pr_util/pr_*.c[.cc] from
94sbde_schema.sch:
$PH/COOL-GEN/gencpp/gencppComparison/testgenv12bde/aareadme_testgenv12bde
Genjava:
This version of chgen is
written in Java and generates Java class code instead of C or C++.
The one on COOL-GEN is from
$CASE/02f522/genjavaProj/ntrivedi.
This is not the most recent
version of bde2java - it evolved further
by smandava and jma in
$CASE/04s522/bde2java04s.
The most recent version is in
$CASE/04s522/bde2java04s.
This is not browsable from
$PH yet. Its further enhancement
will be along the lines of
integrating it with genjava, as bde
gets integrated with gencpp.
Gencpp/genjava integration
comments to RAlmonte in 05s523:
http:/www.cs.uml.edu/~lechner/COOL-GEN/gencpp_genjavaIntegration050328.txt
My vision for Namespace and
Schema Integration for chgen/gencpp is proposed in
$PH/COOL-GEN/NamespaceAndSchemaIntegration050915.txt
../COOL-LCP
(Object Life Cycle Prototyper / State Model Interpreter)
$PH/COOL-LCP/JPsimProj_js_tk/jpsimreportRev03f.txtt
LCP (Life-Cycle Prototyping)
is based on an Event-driven State Model Interpreter.
This was inspired by the
Shlaer-Mellor text Object Life Cycles (P-H 1992).
That text modeled a
process-control plant for blending and pasteurizing fruit-juice.
Course 91.522 implemented
this simulator to demonstrate the GEN and LCP components.
The JPsim project continued
to evolve over 7 semesters: 95s, 95f, 96s, 96f, 97f, 01f and 02f.
The goal of the last (03f)
project was to compile the juice plant simulation
on a 64 bit Alpha machine
using genversion12. It did not succeed due to porting problems
which we anticipate to be
solved in chgen13.
In 1996, all the graphics in
the JPsim demo were converted to html and gif files with
hyperlinked hotspots in each
diagram node. Entity types on each EERD were linked
to their data declarations.
Active (Entity) Classes were also linked to their State Model
diagrams. States on these
diagrams were hyperlinked to their Action Routine source code.
The results can be browsed at
this URL:
$PH/COOL-LCP/JP2html/public_html/
(../COOL-LCP
also has links to other object-life-cycle prototype design projects.)
======================================================================
ADTF Discussion thread on
UML2/MDA:../OMG//uml2ocl_ed2gb050816.txt
Critique of Model-Driven Architecture: ../OMG/UML2MDA_JonKernCompuware0508.htm
Another Critique of MDA: ../OMG/uml2mdacritique020923.txt
User Involvement in
Requirements - ../OMG/GUIReqtsCaseStudy050805.txt
More OMG/ADTF UML2MDA doc
links: ../OMG
Links
to previous courses:
Syllabus for 91.523
(Obsolete/TBRevised): ./05s523syllabus050131.htm
Link to last semester's
91.523 course: ../05s523