cool_faqv6.ppt - rjl 050904 1 cool faqs (05f522 rev.) cool faqs (05f522 rev.)cool faqs (05f522 rev.)...

23
COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs COOL FAQs (05f522 rev.) (05f522 rev.) COOL FAQs (05f522 COOL FAQs (05f522 rev.) rev.) ACRONYMS ACRONYMS What is an OOSEE OOSEE ? What is MDD? What is COOL? What is COOL? COOL Interfaces COOL Interfaces What is BDE? What is BDE? BDE Features-1 BDE Features-1 BDE Features-2 BDE Features-2 BDE Status - 05s523 BDE Status - 05s523 What is GEN? What is GEN? CHGEN External View CHGEN External View CHGEN Internals CHGEN Internals CHGEN Options CHGEN Options How to invoke chgen How to invoke chgen Database Conversions Database Conversions Current Work-arounds Current Work-arounds What is bde2sch? What is bde2sch? GEN/LCP Interfaces GEN/LCP Interfaces LCP/Operator Interfaces LCP/Operator Interfaces CVS Interfaces CVS Interfaces What is CVS? What is CVS? GENCPP External View GENCPP External View List of slides:

Upload: jonah-kristian-carter

Post on 13-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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:

Page 2: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 3: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 4: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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)

Page 5: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 6: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 7: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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)

Page 8: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 9: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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+)

Page 10: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 11: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 12: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 13: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 14: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 15: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 16: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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>]

Page 17: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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)

Page 18: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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:

Page 19: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.

Page 20: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 21: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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

Page 22: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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.)

Page 23: COOL_FAQv6.ppt - RJL 050904 1 COOL FAQs (05f522 rev.) COOL FAQs (05f522 rev.)COOL FAQs (05f522 rev.) ACRONYMSACRONYMS OOSEEWhat is an OOSEE? What is MDD?

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