Presentations at ICSE and VSTTE






  The following presentations from our ETH group in the ICSE week (International Conference on Software Engineering, San Francisco) address important issues of software specification and verification, describing new techniques that we have recently developed as part of our work building EVE, the Eiffel Verification Environment. One is at ICSE proper and the other at … Read more




How good are strong specifications? (New paper, ICSE 2013)






  A core aspect of our verification work is the use of “strong” contracts, which express sophisticated specification properties without requiring a separate specification language: even for advanced properties, there is no need for a separate specification language, with special notations such as those of first-order logic; instead, one can continue to rely, in the … Read more




ESEC/FSE 2013: 18-26 August, Saint Petersburg, Russia






The European Software Engineering Conference takes place every two years in connection with the ACM Foundations of Software Engineering symposium (which in even years is in the US). The next ESEC/FSE  will be held for the first time in Russia, where it will be the first major international software engineering conference ever. It comes at … Read more




Negative variables and the essence of object-oriented programming (new paper)






In modeling object-oriented programs, for purposes of verification (proofs) or merely for a better understanding, we are faced with the unique “general relativity” property of OO programming: all the operations you write (excluding non-OO mechanisms such as static functions) are expressed relative to a “current object” which changes repeatedly during execution. More precisely at the … Read more




A fundamental duality of software engineering






A couple of weeks ago I proposed a small quiz. (I also stated that the answer would come “on Wednesday” — please understand any such promise as “whenever I find the time”. Sorry.) Here is the answer. The quiz was: I have a function: For 0 it yields 0. For 1 it yields 1. For … Read more




Domain Theory: precedents






Both Gary Leavens and Jim Horning commented (partly here, partly on Facebook) about my Domain Theory article [1] to mention that Larch had mechanisms for domain modeling and specification reuse. As Horning writes: The Larch Shared Language was really all about creating reusable domain theories, including theorems about the domains.  See, for example [2] and … Read more




Domain Theory: the forgotten step in program verification






  Program verification is making considerable progress but is hampered by a lack of abstraction in specifications. A crucial step is, almost always, absent from the process; this omission is the principal obstacle to making verification a standard component of everyday software development. 1. Steps in software verification In the first few minutes of any … Read more




Aliasing and framing: Saint Petersburg seminar next week






In  last Thursday’s session of the seminar, Kokichi Futatsugi’s talk took longer than planned (and it would have been a pity to stop him), so I postponed my own talk on Automatic inference of frame conditions through the alias calculus to next week (Thursday local date). As usual it will be broadcast live. Seminar page: here, … Read more




Seminar sessions in Saint Petersburg: CafeOBJ and the frame issue






The Saint Petersburg software engineering seminar has two sessions today (29 March 2012, 18 local time, see here for the date and time in your area), broadcast live: By Kokichi Futatsugi from KAIST (Japan): Combining Inference and Search in Verification with CafeOBJ. By me: Automatic inference of frame conditions through the alias calculus. See details … Read more