Upload
jonah-kristian-carter
View
213
Download
0
Embed Size (px)
Citation preview
COOL_FAQv6.ppt - RJL 050904 1
COOL FAQs COOL FAQs (05f522 rev.)(05f522 rev.)
• COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.)
• ACRONYMSACRONYMS
• What is an OOSEEOOSEE?
• What is MDD?
• What is COOL?What is COOL?
• COOL InterfacesCOOL Interfaces
• What is BDE?What is BDE?
• BDE Features-1BDE Features-1
• BDE Features-2BDE Features-2
• BDE Status - 05s523BDE Status - 05s523
• What is GEN?What is GEN?
• CHGEN External ViewCHGEN External View
• CHGEN InternalsCHGEN Internals
• CHGEN OptionsCHGEN Options
• How to invoke chgenHow to invoke chgen
• Database ConversionsDatabase Conversions
• Current Work-aroundsCurrent Work-arounds
• What is bde2sch?What is bde2sch?
• GEN/LCP InterfacesGEN/LCP Interfaces
• LCP/Operator InterfacesLCP/Operator Interfaces
• CVS InterfacesCVS Interfaces
• What is CVS?What is CVS?
• GENCPP External ViewGENCPP External View
List of slides:
COOL_FAQv6.ppt - RJL 050904 2
ACRONYMSACRONYMS
API Application Programmer InterfaceADTF Analysis and Design Task Force (OMG)CASE Computer-aided SwEngCOOL Collaborative O-O LaboratoryGUI Graphic User InterfaceMDD Model-Driven DevelopmentOODB Object-Oriented DatabaseOOSE Object-oriented Software Engineering OMG Object Management GroupPIM Platform-independent ModelPSM Platform-specific ModelUML Unified Modeling Language
COOL_FAQv6.ppt - RJL 050904 3
What is an OOSEEOOSEE?
An OO SwEng Environment isan integrated development environment (IDE) or framework, whose purpose is to provide automated support for an object-oriented approach to software engineering.
COOL_FAQv6.ppt - RJL 050904 4
What is MDD?
Model-Driven Development (MDD) implies [semi-]automatic code generation from (partly graphic) models for static structure and dynamic behavior.
This is the focus of OMG’s Model Driven Architecture (MDA) and Microsoft’s Software Factory (MSSF)
COOL_FAQv6.ppt - RJL 050904 5
What is COOL?What is COOL?
COOL (Object-oriented CASE Lab)is UML’s own home-grown OOSEE.
COOL currently consists of:•BDE, block diagram editor(s)
(evolves in 91.523 SwEng classes)•LCP, life cycle prototyper(s)
(evolves in 91.522 OOA&D classes)•GEN, database API generator(s)
(Used by all yy{f/s}{522/523} projects).COOL uses CVS* for version control._____
* CVS = Concurrent Version System
COOL_FAQv6.ppt - RJL 050904 6
COOL InterfacesCOOL Interfaces
BDE
GEN
LCP
Simulation Models
pr_util Support Library
Design Diagram Database
Data Models
State Models
pr_*.c, schema.h files
(Conversionrequired)
(WWW)
ExecutablePrototype
DatabaseC/C++ CodeGENerator
Block Diagram
Editor
BDE
COOL_FAQv6.ppt - RJL 050904 7
What is BDE?What is BDE?BDE, a generic editor for block diagrams,
is COOL’s primary design capture tool.
Current convertible diagram styles include:
•Data Structure Diagrams (DSDs) (DSD’s define EERA data models for
the static structure of GEN databases)
•Program Structure Chart Diagrams (SCDs are annotated program call trees)
•State Transition Diagrams (STDs) (STD’s define event-driven State Models
for dynamic behavior of LCP classes)
COOL_FAQv6.ppt - RJL 050904 8
BDE Features-1BDE Features-1
• Draw nodes of various shapes
• Attach text to diagrams or nodes
• Connect nodes by edges or links
• Move or resize nodes or captions
• Attach labels to inter-node links
• Recompute node-link intersections
• Use only one button of mouse
• Annotate diagrams with captions
COOL_FAQv6.ppt - RJL 050904 9
BDE Features-2BDE Features-2
•Store multiple diagrams in a file
•Save diagrams as .PS and .GIF
•Capture semantics for COOL use
•Capture and replay mouse events*
•Capture and replay VMNetDB updates*_____*Capture and replay via bdelog/genlog (genv12+)
COOL_FAQv6.ppt - RJL 050904 10
BDE Status - 05su523BDE Status - 05su523• Chgenv13 at $CASE/gen/ver_13 supports bde on 2
$HOSTTYPE platforms under 2 versions of generated code pr_util_[no]log (4 bde executables from same bde/src code).
• The bde repository at CVSROOT = $CASE/95s523/95sbde/base/Master
has the latest version tagged bde050823.
• My sandbox for bde bugfixes is ~lechner/bde2alpha_rl/sandbox/bdeNT050526/bdegen13/bde
• Conditional code for log and replay have been merged into bde and into chgenv13.
• Further testing and bug fixing is TBD.
• TBD: Migrate bde to Fox/OpenGL (platform-independent)..
• The bde2java project is is incomplete and not up to date. Repository: CVSROOT = $CASE/96s523/bde2jav1/base/Master
• Bde2pc was based on $CASE/wxWindows 1.65; not in CVS; it is deprecated because it is incomplete, slow and obsolete.
COOL_FAQv6.ppt - RJL 050904 11
What is GEN?What is GEN?A pair of programs (chgen, gencpp) which generate data-compatible C or C++ code to manage design databases for COOL and persistent data for arbitrary applications:chgen:
•generic database ‘C’ code generatorgencpp:
• generic database C++ code generator.
chgen and gencpp support normalized EERA* data models in schema files and compatible persistent database formats.
EERA = Entity/Relation/Attribute data model, extended with multiple inheritance.
COOL_FAQv6.ppt - RJL 050904 12
CHGEN External ViewCHGEN External View
• Generic database code generator• Manages a persistent ASCII database • Based on EERA data model • Reads DB definition in schema.sch• Emits schema.h and pr_*.c files
• Used in BDE, LCP and applications______*EERA = Entity-Relation-Attribute Data Model,
Extended with 1:M genspec or inheritance relations,associating each superclass instance to one instanceof one or more subclasses.
COOL_FAQv6.ppt - RJL 050904 13
GENCPP External ViewGENCPP External View
• Database code generator that represents all table rows as C++ class instances.
• Alternate API for chgen-style database management code.
• Options provide either STL Containers or chgen-style linked lists (but not both).
• Chgen-compatible external format.
• Chgen-equivalent database schema.
COOL_FAQv6.ppt - RJL 050904 14
CHGEN generates API utilities which:• Compile and link to an application• Load/unload a persistent database• Convert between
•external ASCII database content•internally linked VMNetDB*
• Access and navigate resident DB.• Optionally generates code to log
and/or replay DB changes (genv11+)
CHGEN InternalsCHGEN Internals
______ *VMNetDB = Virtual-Memory-resident Network DB with 1-to-many linked lists, N-ary associations, and surrogate primary and foreign keys.
COOL_FAQv6.ppt - RJL 050904 15
Chgen’s input is a schema.sch file that declares an ExtendedER Data model (a subset of UML Class Diagrams)
• With a schema.sch file argument, chgen generates source files pr_*.c and schema.h.
• Without this argument, chgen gives a list of optional arguments.*
• Options are defined in chgen’s User Manual.**
_________* See next slide – how to invoke chgen** -nobp, -ansi were the non-default options before genv13.
CHGEN OptionsCHGEN Options
COOL_FAQv6.ppt - RJL 050904 16
How to invoke chgenHow to invoke chgen• saturn.cs.uml.edu(11)> setenv CASE /usr/proj3/case
• saturn.cs.uml.edu(12)> $CASE/gen/ver_13/chgen/executables/chgen
• gendir = /usr/proj3/case/gen/ver_13/chgen
• exec = /usr/proj3/case/gen/ver_13/chgen/executables/alpha/chgen13
• Running chgen on saturn.cs.uml.edu [alpha]. Compiled: (1374528B Jul 27:14:30) DATE_OF_CHGEN_RELEASE = A@
• Chgen V 13 by 05s523, report errors to Dr. Lechner:
• CHGEN_RELEASE_DATE = 050727:1430
• CHGEN-F-INVARGS, Usage: [-keysize=n] [-bp] [-noansi] [-quiet] [-validate] [-noforward] [-maxviews=n] [-noorder] [-gendbschema] [-metafile] [-nosource] [-datinput] [-log] [-viewname <viewname>]
COOL_FAQv6.ppt - RJL 050904 17
Database ConversionsDatabase Conversions
BDE
bde2SM
GEN
LCP
Simulation Database
schema.h, pr_*.c files
Design Diagram Database
Schema.sch
bde2ht
WWW
*.HTM
JP2BDE
bde2sch[schema.msdat]
(s2t)
COOL_FAQv6.ppt - RJL 050904 18
Current Work-aroundsCurrent Work-arounds
LCPrun
FlowControl (VMNetDB)
State Model View(SM,ST,TR,ET,EI,EN,FT,GC) schema.sch
bde2ht
browsers
*.HTM
Data Model View(SV, TT, TA, VD)
GENcode(genv14)
application
ApplicationData View
t2b
LCPinit
(STD’s)(EERDs)
BDE
pr_load
SM2bde
GENmeta(s2t)
pr_*.c, schema.h
(meta-data)
(StateModel
tables)
(State Modelsdeclared as const strings)
BDE View(compile and link)
Display-only use of bde:Display-only use of bde:
COOL_FAQv6.ppt - RJL 050904 19
What is bde2sch?What is bde2sch?• A database schema defines record types or classes
together with implied tables or container classes which hold instances of these records or objects.
• If an EERA diagram is saved from bde, bde2sch will convert it into schema.sch format for chgen/gencpp.
• Bde2sch is a tandem combination of b2t and t2s.Its intermediate result t is a pair of tables TT and TA.TT and TA are generated by chgen –metafile.
• Bde Work-around: The schema.sch file may also be prepared manually using a text editor.
COOL_FAQv6.ppt - RJL 050904 20
GEN/LCP InterfacesGEN/LCP Interfaces
GENLCP
Simulation Models
Database Utilities
Design Diagram Database
(#-include schema.h; compile&link pr_util.a;
pr_load TT,TA)
WWW
*.HTMSchema.sch
Simulation Actions
(Database conversion)
Operator Interface
COOL_FAQv6.ppt - RJL 050904 21
LCP/Operator InterfacesLCP/Operator Interfaces
Database Utilities
(#-include schema.h;compile&link pr_util.a;
pr_load TT,TA)
*.HTMLDBDEApplication
Software
LCP
Alternate Operator
Interfaces:
Simulation Database
WWWeb
BDE
COOL_FAQv6.ppt - RJL 050904 22
CVS InterfacesCVS Interfaces
BDE
GENCVS
LCP
Simulation Database
DB-Support Library
Design Diagram Database
CVS repository(includes Source code)
(CVS = Concurrent Version Control System)
(CVS manages a repository of source code and documentation.)
COOL_FAQv6.ppt - RJL 050904 23
What is CVS?What is CVS?CVS = Concurrent Version System
is a wrapper around RCS.*
CVS supports:• Multiple versions of ASCII files • Optimistic concurrency control• Multiple checkouts of the same file • File version compression via diff• Merging of non-overlapping changes
CVS update detects, and concurrent users resolve, conflicting changes._______* RCS = Revision Control System