Empirical answers to fundamental software engineering questions






This is a slightly reworked version of an article in the CACM blog, which also served as the introduction to a panel which I moderated at ESEC/FSE 2013 last week; the panelists were Harald Gall, Mark Harman, Giancarlo Succi (position paper only) and Tony Wasserman. For all the books on software engineering, and the articles, … 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: 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