University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew...

13
University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon

Transcript of University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew...

Page 1: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

University of British Columbia

Software Practices Lab

Experiences Building

Research Tools

Andrew Eisenberg&

Terry Hon

Page 2: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Building Research Tools in Eclipse• Linked Editing (Terry)

– good and bad

• Mapping graphical editor to source code (Andrew)– works well

• Weaving into Eclipse (Andrew)– not ideal

• Using GEF as a text editor (Andrew)– works, but messy

Page 3: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Page 4: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Linked Editing

• Supported– Linking multiple positions in files– Simultaneous changes for all linked

positions

• Not supported– Cursor updates– Linking different code

Page 5: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Good, Bad, and Ugly

• Graphics <==> Source mapping (good)

• Weaving into the Eclipse framework (bad)

• Using GEF as a text editor (ugly)

Page 6: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Editing Equations

Page 7: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Compile

@StateChart(...)public class AcceptCadrString { ... char c = 'c'; char a = 'a'; char d = 'd'; char r = 'r'; char x = 'x'; public boolean g() { return length++ < MAX_LENGTH; }}

Mapping from a non-textual display

Display

Byte code/

Expanded AST

Stored

Source

......

...

<Field int x><Field int

y

>

<Field int

y

>

<Type

i

n

t

>

<Name X>

<Class

Sh

ip

>

<@Previous>

<@Get…> <@Set…><@CombineRight>

Render

Good

Page 8: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Good results

• Once it worked…it worked

• Got lots for free:– syntax highlighting– error highlighting– clicks on different views– refactoring

Page 9: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Weaving into JDT core

• ajc does not work– OSGi classloading issues

• Ajeer (dynamic weaver for Eclipse)– performance issues

• Used ant scripts1. extracted original JDT core jar2. weaved3. recreated jar4. copied to new location

Overall, fairly restrictive

Bad

Page 10: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Works, with restrictions

• ITDs Accessible Through Content Assist

• Advice can be applied internally only

• Cannot access pointcuts externally

Page 11: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Quirkiness: GEF as Text Editor• Arrow keys (Ctrl/Shift behavior)

• Mouse behavior

• Tabs not displayed

• Artifacts with selection

Ugly

Page 12: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Artifacts with selection

My Editor

(ETMOP Editor)

JDT Editor

Page 13: University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.

Andrew Eisenberg and Terry Hon — University of British Columbia

Overall

• Eclipse is extensible, but only in some limited defined ways

• If you are willing to get your hands dirty– Lose forward/backward compatibility if

internal APIs used