120 likes | 731 Views
Integration of Java Generics Into The jmle Tool Within The Eclipse IDE. Adrian Kostrubiak, 10/7/08. Overview. JML and jmle Review Article Review JML: notations and tools supporting detailed design in Java An overview of JML tools and applications JACK: A Java Constraint Kit
E N D
Integration of Java Generics Into The jmle Tool Within The Eclipse IDE Adrian Kostrubiak, 10/7/08
Overview • JML and jmle Review • Article Review • JML: notations and tools supporting detailed design in Java • An overview of JML tools and applications • JACK: A Java Constraint Kit • jmle: A tool for executing JML specifications via constraint programming • Executing JML Specifications of Java Card Applications: A Case Study. • Technology Exposé
JML Review • Exists in annotations before code modules • Behavioral interface specification language • Formally specify module behavior • Java Modeling Language • Design by Contract (DbC) • Java style syntax
JML Example Code /*@ assignable \nothing; ensures \result == j + k; */ int sumOfTwo(int j, int k) { return(j+k); } // can only be called with ints > 0 /*@ assignable myVal; requires j > 0; ensures myVal == \old(myVal) - j; */ void subtract(int j) { myVal = myVal - j; }
jmle Review • jmle • Takes code with JML embedded (comments) • Creates a Java constraint program • Executed with the Java Constraint Kit • jmle in Eclipse • Program itself not run • Runs constraint program • Eases checking and understanding of constraints
Moving Forward With jmle • Currently little generic support in JML and none in jmle • Implementing generics into jmle • Implementing enum types into jmle • Push jmle from mere academic pursuit into actual industry
Article Review • G. T. Leavens, K. R. M. Leino, E. Poll, C. Ruby, and B. Jacobs. JML: notations and tools supporting detailed design in Java. In OOPSLA 2000 Companion, Minneapolis, Minnesota, pages 105–106. ACM, Oct. 2000.
Article Review • L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry, G. T. Leavens, K. Rustan, M. Leino, and E. Poll. An overview of JML tools and applications. International Journal on Software Tools for Technology Transfer, 7(3):212-232, June 2005.
Article Review • S. Abdennadher, E. Krämer, M. Saft and M. Schmauss. JACK: A Java Constraint Kit. In Electronic Notes For Theoretical Computer Science, volume 64, pages 1-17. September 2002.
Article Review • B. Krause and T. Wahls. jmle: A tool for executing JML specifications via constraint programming. In L. Brim, editor, Formal Methods for Industrial Critical Systems (FMICS ’06), volume 4346 of Lecture Notes in Computer Science, pages 293 – 296. Springer-Verlag, August 2006.
Article Review • N. Cantaño, T. Wahls. Executing JML Specifications of Java Card Applications: A Case Study.
Technology Exposé • And now, jmle in action!