Eclipse plug-in for the JML interface Marius Hillenbrand ITI - - PowerPoint PPT Presentation

eclipse plug in for the jml interface
SMART_READER_LITE
LIVE PREVIEW

Eclipse plug-in for the JML interface Marius Hillenbrand ITI - - PowerPoint PPT Presentation

Eclipse plug-in for the JML interface Marius Hillenbrand ITI Karlsruhe 1 it is THE modern IDE for Java provides powerful coding support like: code templates, code completion import management 2 it is THE modern IDE for Java


slide-1
SLIDE 1

1

Eclipse plug-in for the JML interface

Marius Hillenbrand ITI Karlsruhe

slide-2
SLIDE 2

2

  • it is THE modern IDE for Java
  • provides powerful coding support like:

– code templates, code completion – import management

slide-3
SLIDE 3

3

  • it is THE modern IDE for Java
  • provides powerful coding support like:

– code templates, code completion – import management

  • well-documented plug-in interfaces
  • freely available via eclipse.org
  • => very popular and widely distributed
slide-4
SLIDE 4

4

Eclipse Architecture

  • everything is a plug-in
  • plug-ins plug into other plug-ins' extension points
slide-5
SLIDE 5

5

plug-in functionality

  • JML Specification Browser currently entry point

for JML input

  • allow proof invocations from within Eclipse

– allows development and proof launching in one place – entry in context menu pops up a selection dialog

  • plug-in separated from KeY

– only plug-in needs eclipse to build/run – core functionality stays independent of IDE

slide-6
SLIDE 6

6

Working example: Proof Obligations for a method

  • PayCard example from the JML quicktour

– invoke proof of normal_behavior spec of

PayCardJunior.charge(int amount) from within eclipse

slide-7
SLIDE 7

7

future work

  • clean up JML proof loading

– separate specification model from user interaction

  • make the JML Specification Browser an (optional) view
  • allow proof re-use with updated sources
  • allow to start a proof from within the source code

editor (identify spec by keywords)

  • allow OCL specs, too (unify handling)