bdeug_2000.ppt 1 - rjl rev. 2k/05/03 bde is a block diagram editor written in c++ using x11/motif as...

16
bdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu g++ compiler. Bde’s CVS repository: CVSROOT = $CASE/95s523/95sbde/base/Master. The purpose of bde is to capture the semantics of software design diagrams that support various CASE tools and track design changes. The latest text version of a User Guide for bde is in $CVSROOT/bde/doc/bdeUserGuide.tex,v Bde Bde Overview Overview

Upload: damon-cain

Post on 17-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 1 - RJL rev. 2k/05/03

• Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu g++ compiler. Bde’s CVS repository: CVSROOT = $CASE/95s523/95sbde/base/Master.

• The purpose of bde is to capture the semantics of software design diagrams that support various CASE tools and track design changes.

• The latest text version of a User Guide for bde is in $CVSROOT/bde/doc/bdeUserGuide.tex,v (which does not contain these diagrams.)

Bde Bde OverviewOverview

Page 2: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 2 - RJL rev. 2k/05/03

How to Build BDEHow to Build BDE

This procedure will check out and build the current version of bde (CVS tag bde2alpha_rv, for alpha platforms):

• Type (or add to your .login):

“setenv CVSROOT /usr/proj3/case/95s523/95sbde/base/Master”

“setenv CXX g++ <RET>‘‘ • To check out the bde tree (src, doc, etc.) from

its CVS repository into your $CWD, type “cvs co -r bde2alpha_rv bde”.

• To build Makefiles, type “cd bde; xmkmf -a”.

• To compile and link bde, type “make -e”.

Page 3: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 3 - RJL rev. 2k/05/03

How to Run BDEHow to Run BDE

• This shell script executes the current most stable version of bde:

/usr/proj3/case/95s523/95sbde/bde/executables/bde

• Type (or add to your .login)

“alias runbde ‘<above path>‘ <RET>‘‘ then type “runbde” each time you run bde.

• Bde currently (Jan 2000) compiles on alpha workstations but not on DecStations or vax platforms.

• Bde has been ported to DEC/alpha machines (jupiter or cs) and partially re-implemented in Java.

Page 4: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 4 - RJL rev. 2k/05/03

Bde File ProcesssingBde File Processsing

New

Open

Save

SaveAs

Print

Exit

To see bde’s pop-up FILE menu, click the leftmost button in the top-row menu of bde’s main window.

FileFile Edit Edit Options

Object XMethodDrawingMenu

bde drawing canvas

window

(Only work - they belong on the ObjectXmethod menu)

Pop-upmenu:

bde status message display window

Page 5: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 5 - RJL rev. 2k/05/03

Bde File Menu - 1Bde File Menu - 1New/Open/PrintNew/Open/Print

New opens a new unnamed file and its first graph or diagram. A text widget prompts for a graph title. (TBD: Better initial defaults.)

Open displays a File Selection table and prompts for a .dat file to open.* If successful, it displays the Graph Table and prompts for a diagram to edit. (TBD: Change default .dat file type to .bde.)

Print opens a menu with options to Print-Current- or Print-All- diagrams, or to save a PostScript or a gif version of the current diagram to a file named <filename>_<HGid>.{ps or gif}.*

* Filename is the input file name, and HGid is the graph table identifier of the diagram currently displayed. PS and GIF formats are not available at present (2k0503) due to bugs in fprint.cc and a need to integrate $CASE/97s523/bde2gif/yuwong/bde into bde.

Page 6: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 6 - RJL rev. 2k/05/03

Bde File Menu - 2Bde File Menu - 2Save/SaveAs/ExitSave/SaveAs/Exit

• Save saves a named file, overwriting a previous file by that name. It will not save a new file without a name - use SaveAs for this.

• SaveAs prompts for a name by which to save a file being edited. All diagrams in the file will be saved, whether changed or not.

• Exit terminates the editor. (The user is prompted to Save the current file first.)

• If bde crashes, the database is usually saved to a file called bdeabort.dat.

Page 7: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 7 - RJL rev. 2k/05/03

Bde’s O-O Drawing Menu Bde’s O-O Drawing Menu

Node

Link

Bendpoint

Text

Graph

Create

Move

Delete

Resize

Restyle

Restyle Sub-menu

Selected ‘Class’ is checked here

Selected Method is checked here

Restyle options depend on the selected class: (e.g., node shape, link pattern, or diagram type.)

• Class + Method determine the initial state for each canvas drawing operation.

• For each operation, select exactly one mouse-selected object which is highlighted. (Some operations like Delete require confirmation by a second click.)

• Bendpoint and Text operations require prior selection of a node, link or caption parent.

(These two Radio Button Sets appear to the left of bde’s drawing canvas. A new edit mode class or method can be selected anytime, in any order.)

Page 8: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 8 - RJL rev. 2k/05/03

Bde Node OperationsBde Node Operations

NODE 2NODE 1 NODE 3

• To Create a node click at its desired center position. (Clicking means pressing mouse button 1 down then up without moving it.)

• To Move a node, click to select and highlight it, then drag to new location. (Dragging means moving the mouse with mouse button 1 held down.)

• Delete a node by double-clicking within its border. (Node Delete is not permitted until all attached links are deleted.)

• Resize a node by clicking to highlight it then dragging to a new size. (After node resize, attached links retain their bendpoints and shape, and internal text remains left-justified.)

• Restyle to select a non-default node shape from the Restyle submenu.

Page 9: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 9 - RJL rev. 2k/05/03

NODE 2NODE 1NODE 3

• Create a link by dragging the mouse from a source node to a destination node. (Link endpoints will be on node borders.)

• Delete a link by double-clicking on it (link text is deleted also)• Restyle arrow head/tail direction, width and pattern options on

each link segment (since 96su523/fjara project).• Use Reverse to cycle through arrow head/tail option

(to be merged with Restyle). • Use Restyle to select a non-default line pattern or width.• Set new default style from the Restyle menu

(to be merged with Reverse.)• Move does not apply to Links. See Bendpoint Move.

Bde Link OperationsBde Link Operations

Page 10: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 10 - RJL rev. 2k/05/03

Bde Bendpoint OperationsBde Bendpoint Operations

Bendpoints are points where links start or end, change direction or drawing style. For bendpoint operation, first select a link; this will highlight the link and its bendpoints, to avoid selecting the wrong type of object. Then:

• Create a new successor bendpoint by clicking on an existing one. • Move a bendpoint by dragging it. (Endpoints are not movable.)

• Delete a bendpoint by clicking on it. (Endpoints are not deletable.)

(The first and last bendpoints (link ‘endpoints’) are treated specially.)

State 1 Off

State 2Ready

State 3 On

State 4 Abort

HP1

Old HP2 = New HP3New HP2

Page 11: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 11 - RJL rev. 2k/05/03

BDE Text Operations - 1BDE Text Operations - 1

NODE 2NODE 1

NODE 3 Attrib1 Attrib2

• To enter/append text, select a node, link, or graph caption box. This highlights the 'parent' object with which the text is associated and its class whose actions are specialized. (To edit X11/Motif text, use arrow keys to position the cursor to the left and delete text to its right.)

• All text is located relative to, and moves with, its associated object. If a line of text is dragged, its successors (in creation order) belonging to the same parent are dragged along.

• Initial whitespace (indents) are not preserved.

• Line edits after initial entry are not yet supported. (One work-around is to Text-edit the saved *.dat file)

(A Second Graph caption box)Graph caption box line 1Graph caption box line 2

(1 HN-label+ 2 HA-rows)

(1 CG border +2 GX text-lines)

Page 12: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 12 - RJL rev. 2k/05/03

NODE 2NODE 1NODE 3 Attrib1 Attrib2 ****

After selecting the method and highlighting the parent :• Create a text item by typing into the Motif-style text widget.

• Move a text item after creation by dragging it (e.g. label2)

Successor lines move with the one dragged (e.g. Label3).• Delete a text item by clicking on it. (Are successors deleted?).• To add more text to a Node: change NodeAttribute on the

top-row Options Menu from HN to HA and repeat Create Text.• Add more text to a Link or a Graph Caption by repeating

Create Text and selecting the same parent object.

(Graph caption box)

Label1 Label2 Label3

BDE Text Operations - 2BDE Text Operations - 2

Page 13: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 13 - RJL rev. 2k/05/03

Bde Entity TypesBde Entity TypesFI Holds file path and date information (TBD)FO Holds font table info (X11, menu, PostScript)HG Identifies one diagram or GraphCG One Caption (block) of its parent HGGX One text line of its parent CGHN One Node (block) of its parent HGHA One text line of its parent HNHL One directed Link between two HN’sHI One link label of its parent HLHP One ‘bend’Point of its parent HLGD Graph Defaults - diagram drawing stylesXB Text Block: SuperClass of GX and HA. (New schema)

[New bde schema format in 96f523/bdecode/cparisi]. TBD: made HI a third subclass of XB [Ref: 96f523/bdecode/jsingh]

SY, TK: Symbol and ToKen tables (decomposition of XB text)[97f522/bde2java/hhuang/bde maintains XB-text = SY and ToKen xRefs.]

Page 14: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 14 - RJL rev. 2k/05/03

BDE Data Model BDE Data Model (96subde_schema.sch)(96subde_schema.sch)

HG

HN

HL

CG

GX HA HI

GD

HP

TT

TA

out

in(meta-schema)

TABLE TYPES USED IN BDE:*

HG Identifies one diagram or Graph

HN One Node (block) of its parent HG

HL One directed Link between two HNs

CG One Caption (block) of its parent HG

GX One text line of its parent CG

HA One text line of its parent HN

HI One link label of its parent HL

HP One ‘bend’Point of its parent HL

GD Graph Default drawing styles

FO Font table info (X11, PS, menu)

TT Table description meta-table

TA Attribute description meta-table

Page 15: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 15 - RJL rev. 2k/05/03

BDE Data Model (new schema)*BDE Data Model (new schema)*

FI

HG

HN

HL

CG

GX HA HI

GDSY

SV

XB

TK

HP

TT

TA

SD

*[SV,TT,TA from gen/ver_11; XB by cparisi[1]; SD,SY,TK by hhuang[2];

FI,GS,AV TBD.]

out

in

(genv9+ meta-schema)

(bdesym project)

New Table Types:FI = File infoSD = Symbol DictionaryXB = generic teXt BlockSY = SYmbolTK = ToKenSV = Schema VersionGS = Graph StyleAV = M:N Relation

GS-->AS>--TA

GS

AV[1] $CASE/96f523/bdecode/cparisi/bde][2] $CASE/97f522/toolProjects980927/bde2java/hhuang/bde]

Page 16: BdeUG_2000.ppt 1 - RJL rev. 2k/05/03 Bde is a Block Diagram Editor written in C++ using X11/Motif as its GUI. Bde is built using imake, make and the gnu

bdeUG_2000.ppt 16 - RJL rev. 2k/05/03