100 likes | 239 Views
Bandera transition. Should Bandera become integrated with Eclipse?. Topics. Pros/Cons of using Eclipse Modules effected Approach Guidelines for design, implementation, and testing Misc issues. Pros/Cons of using Eclipse. Two separate issues: GUI and AST
E N D
Bandera transition Should Bandera become integrated with Eclipse?
Topics • Pros/Cons of using Eclipse • Modules effected • Approach • Guidelines for design, implementation, and testing • Misc issues
Pros/Cons of using Eclipse • Two separate issues: GUI and AST • Con: more work to get command line client • Pro/Con: re-design or re-implement most of GUI • Con: lost time for developing new features • Can the Eclipse AST provide enough information or would it be good to just transition to new latest SOOT? • Con: Eclipse is out of our control directly • Con: API/AST is a moving target?
Pros/Cons (contd) • Pro: cross platform/window management/file management • Pro: speed? • Pro: Plug-in architecture • Pro: Make it an easier transition for “real” developers to start using Bandera • Will distribution/installation be effected? • Con: SWT less supported than Swing • Con: footprint is large • Con: UI menu sharing problematic • Pro: don’t have to re-implement some features • Pro: integration of development env with application being developed
Modules effected • GUI – probably a complete re-write • Session management • File management • Counter example interpretation • Every module!!! • Plug-ins • Abs engine • BSL Compiler • BIRch • Counter Example • BFA • BFA UI • Slicer • Slicer UI • Bandera (Session ….)
Approach • Complete re-design or just re-implement the necessary portions (porting)? • Make as many modules as possible into plug-ins and take advantage of the Eclipse plug-in architecture?
Guidelines • Pre/Post conditions (in Javadocs) • Assertions – use JDK assert • Unit testing should be used (JUnit, XMLUnit, etc.) • Integration/regression testing – re-design • Javadocs!!!! • Every method needs some form of comment • Every field needs some form of comment • Author! Version, suggest see, • Explicit imports • Pre/post (any format -> prefer english!!!) • Collection<type> suggested • @param • @return • @exception suggested • @see suggested • Design documents - optional
Misc • What backends should be supported? • JPF, Spin, dSpin, BIRch, HSF-Spin, … • Is it possible to define an API and a set of common tools so that others can implement and maintain the backends? • Cadena and Bandera interaction?