Time to resurrect PSP?






Let us assume for the sake of the argument that software quality matters. There are many ingredients to software quality, of which one must be the care that every programmer devotes to the job. The Personal Software Process, developed by Watts Humphrey in the 1990s [1], prescribes a discipline that software developers should apply to … Read more




The right forms of expression






If you want to know whether your_string has at least one upper-case character, you will write this in Eiffel: if  ∃ c: your_string ¦ c.is_upper then … Such predicate-calculus boolean expressions, using a quantifier ∀ (“for all”) or ∃ (“there exists”) are becoming common in Eiffel code. They are particularly useful in Design by Contract … Read more




Questionnaire on deployed, formally verified systems






A group of us is preparing a survey on systems that have been both formally verified and deployed for actual use. To make sure we do not forget any important development, we have devised a questionnaire. If you have experience with such a system, please help by filling the questionnaire. It only includes a few … Read more




New video lecture: distances, invariants and recursion






I have started a new series of video lectures, which I call “Meyer’s Object-Oriented Classes” (MOOC). The goal is to share insights I have gained over the years on various aspects of programming and software engineering. Many presentations are focused on one area, such as coding, design, analysis, theoretical computer science (even there you find … Read more




Fan mail






Received this today from a heretofore unknown correspondent (I don’t often check Facebook Messenger but just happened to). Name removed (I am not sure he would want me to identify him), text translated from another language into English. Hello, thanks for your book “Object-Oriented Software Construction” [read in a translation]. I read it after a … Read more




Things to do to an algorithm






What can you do to or with an algorithm? In other words, what is a good verb to substitute for the hyphen in   “— the algorithm”? You can learn an algorithm. Discovering classical algorithms is a large part of the Bildungsroman of a computer scientist. Sorting algorithms, graph algorithms, parsing algorithms, numerical algorithms, matrix algorithms, graphical … Read more




New master program at SIT: Webinar tomorrow






The Schaffhausen Institute of Technology (SIT) is holding a Webinar tomorrow with a set of three talks by: Serguei Beloussov, founder of Acronis and president of SIT; Michael Widenius, CTO of MariaDB and creator of MySQL Server; and Mauro Pezzè, my colleague at SIT, who will present the new master program that we have just … Read more




Getting a program right, in nine episodes






About this article: it originated as a series of posts on the Communications of the ACM blog. I normally repost such articles here. (Even though copy-paste is usually not good, there are three reasons for this duplication: the readership seems to be largely disjoint; I can use better formatting, since their blog software is more … Read more




Notations you didn’t even know you could use






Consider the following expression: ∃ c: s   ¦   moisture (c) = soft This is obviously mathematics. To express such a property in a programming language, you have to write a function containing a loop that iterates through the elements of s. Right? Wrong. The above construct is valid Eiffel. It’s a consequence of recent … Read more