textbe project and issues

29
TextBe Project and Issues JGS

Upload: china

Post on 24-Feb-2016

42 views

Category:

Documents


0 download

DESCRIPTION

TextBe Project and Issues. JGS. Current Pipeline Implementation. Challenges. Weak Metamodel. External Process. Bad Threading. Other Issues. Complex Installation Difficult Manual Build. Problems. Batik / Graphviz. Revised Design. Current Pipeline Implementation. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TextBe  Project and Issues

TextBe Project and Issues

JGS

Page 2: TextBe  Project and Issues

Current Pipeline Implementation

T2M •Parser Generator Kit (EMFText)•EMF model of BT (‘.bt’)

M2M •Atlas Transformation Language (ATL)•EMF model of Graphviz (never stored)

M2T •Java Emitter Templates 2 (JET2)•Graphviz source code (‘.dot’)

T2G •Graphviz Visualisation Compiler (dot)•Standard Vector Graphics format (SVG)

G2G •SVG Display Component (Apache Batik)•Eclipse Standard Windowing Toolkit (SWT) embedded viewer

Page 3: TextBe  Project and Issues

Challenges

T2M •Parser Generator Kit (EMFText)•EMF model of BT (‘.bt’)

M2M •Atlas Transformation Language (ATL)•EMF model of Graphviz (never stored)

M2T •Java Emitter Templates 2 (JET2)•Graphviz source code (‘.dot’)

T2G •Graphviz Visualisation Compiler (dot)•Standard Vector Graphics format (SVG)

G2G •SVG Display Component (Apache Batik)•Eclipse SWT embedded viewer

External Process

Bad Threading

Weak Metamodel

Page 4: TextBe  Project and Issues

Other Issues

• Complex Installation• Difficult Manual Build

Page 5: TextBe  Project and Issues

ProblemsIssue Consequence To Address…

Difficult to Install Hard to start using Installation Package

Difficult to Build Hard to start improving Build Process

Threading Unreliable Function Replace Batik

External Process Unreliable Function Replace Graphviz

Weak Metamodel Hard to integrate/reuse Replace Meta model

Page 6: TextBe  Project and Issues

Batik / Graphviz

• Create .dot

Eclipse

• Convert to SVG

Graphviz • Pass to viewer

Eclipse

• Generate Image

Batik • Display Image

Eclipse

Page 7: TextBe  Project and Issues

Revised Design

• BT• ModelT2M • Model

• DOTM2T • DOT• ZestT2G

Page 8: TextBe  Project and Issues

Current Pipeline Implementation

T2M •Parser Generator Kit (EMFText)•EMF model of BT (‘.bt’)

M2M •Atlas Transformation Language (ATL)•EMF model of Graphviz (never stored)

M2T •Java Emitter Templates 2 (JET2)•Graphviz source code (‘.dot’)

T2G •Graphviz Visualisation Compiler (dot)•Standard Vector Graphics format (SVG)

G2G •SVG Display Component (Apache Batik)•Eclipse Standard Windowing Toolkit (SWT) embedded viewer

Page 9: TextBe  Project and Issues

Dot4zest … as it should be

Page 10: TextBe  Project and Issues

HTML labels

Page 11: TextBe  Project and Issues

HTML labels<?xml version="1.0" encoding="UTF-8"?><table border="0" cellborder="0" cellpadding="3" bgcolor="white">

<tr><td bgcolor="black" align="center" colspan="2">

<font color="white">State #1</font></td>

</tr><tr>

<td align="left" port="r3">&#40;3&#41; l -&gt; &bull;'*'r

</td></tr><tr>

<td align="left" port="r3">&#40;3&#41; l -&gt; '*' &bull;r

</td></tr><tr>

<td align="left" port="r4">&#40;4&#41; l -&gt; &bull;'n'

</td></tr><tr>

<td align="left" port="r5">&#40;5&#41; r -&gt; &bull;l

</td></tr>

</table>

Page 12: TextBe  Project and Issues

Challenges

T2M •Parser Generator Kit (EMFText)•EMF model of BT (‘.bt’)

M2M •Atlas Transformation Language (ATL)•EMF model of Graphviz (never stored)

M2T •Java Emitter Templates 2 (JET2)•Graphviz source code (‘.dot’)

T2G •Graphviz Visualisation Compiler (dot)•Standard Vector Graphics format (SVG)

G2G •SVG Display Component (Apache Batik)•Eclipse SWT embedded viewer

External Process

Bad Threading

Page 13: TextBe  Project and Issues

Batik Squiggle EmbeddedDescription ‘Eclipse SVG Plugin’:“The project goal is to develop an Eclipse plugin for the Apache SVG framework 'Batik'. The plugin adds editors, views and wizards to deal with scaleable vector graphics.”

SVG Browser does not work ID: 1187629 If I right-click on an SVG file within Eclipse, and choose "Open With > SVGBrowser", nothing visible happens in Eclipse. Running Eclipse from the command line, I see the following trace:

java.lang.Error atorg.apache.batik.util.ApplicationSecurityEnforcer.setDevBase(Unknown Source)

Page 14: TextBe  Project and Issues

The Revised Design Strikes Back

• BT• ModelT2M

• Model• ZestM2T

Page 15: TextBe  Project and Issues

Solution Components

• IFigureProvider– Interface defined by Zest (actually GEF)– Generates structured nodes

• Visitor– Generated by Ecore by default– Follows the containment structure,

unless advised to to do things differently

Page 16: TextBe  Project and Issues

Custom Figure for BT

Page 17: TextBe  Project and Issues
Page 18: TextBe  Project and Issues
Page 19: TextBe  Project and Issues
Page 20: TextBe  Project and Issues
Page 21: TextBe  Project and Issues
Page 22: TextBe  Project and Issues

Revised Model

Page 23: TextBe  Project and Issues

So,this is better?

Page 24: TextBe  Project and Issues
Page 25: TextBe  Project and Issues
Page 26: TextBe  Project and Issues
Page 27: TextBe  Project and Issues
Page 28: TextBe  Project and Issues

BT Semantic MysteriesItem Issue

Relations What are they?

What is their structure?

What are their arguments?The source code has some sort of path notation,but the documentation does not define it.

Component Sets

What are they?

What legal behaviors can they exhibit? (Type?)

NOPs Is there such a thing as a ‘non-behaviour’?(The example source code has it!)

Variable Binding

Is there such a thing as a “Behavior Match”(The example source code has it!)

Page 29: TextBe  Project and Issues

Linked Projects• Semantic Checker

– Written in C++ (Version??? Interface???)– Semantic Check through Graph Grammar Reduction– Recommendation: Re-implement using VIATRA

• Animator– Script-based decoration of dot file with colors– Limitations: No semantic checks, disconnected from model– Recommendation: Implement a BT VM using an execution instance model.– Then add painter to new GEF visualizer

• Visual Debugger– Hooks are added to SVG via Java-Script injection– Limitations: Brittle, potentially not portable, security issues– Recommendation: Implement as hooks into GEF visualizer or using Eclipse debugger

infrastructure.