Chair of Software Engineering

Bertrand Meyer

 
 New   Overview   Current   Teaching   Research   Positions
& Projects
 
 Courses   Publications   Work in progress   Non‑ETH   Personal   Contact 

 
 Winter views from our floor
 
City and lake, dawn       City and Ütliberg, mid-day       City and lake, a gray moment       Sunset on the Ütliberg  (Click for
 full views)
Dawn City & Ütliberg, mid-day City & lake, gray moment Sunset on the Ütliberg

 
 
 
 

 News & events

For conferences and seminars we organize, and my own talks, see the Events page.

Touch of Class is out

    + My introductory programming textbook, Touch of Class, applying "outside-in" and " inverted curriculum" ideas, based on six years of teaching introductory programming at ETH, published by Springer Verlag, is now available.

    The full title is: Touch of Class: learning to program well with objects and contracts.

    + Next book signing: Paris, Le Monde en Tique bookstore, October 10 (Saturday), 15:00-18:00.

New blog

    + I have started a blog, covering my direct interests but extending to many topics in technology.

Forthcoming

    + Informatics Europe has its annual conference, the European Computer Science Summit, in Paris on Oct. 8-9, with a workshop for department chairs on Oct. 7. ECSS has a particular cachet this year with the inclusion of the official launching of ACM Europe and an ACM Award banquet honoring Turing Award winners and ACM fellows. Keynote speakers include Joseph Sifakis (2007 Turing Award), Wendy Hall (ACM President), Mark Harris (Intel), Georg Gottlob (Oxford) etc. on the theme "Informatics Among the Sciences". Deadline for early registration is Sept. 22.

Compact courses for industry

We just offered a series of coordinated compact courses (industry seminars) in the second half of June 2009:

    + Requirements engineering (18 June, one day).

    + Design by Contract (22 June, one day).

    + Software testing and verification: state of the art (23-24 June, two days).

    + Distributed and Outsourced Software Engineering (25-26 June, two days, also serves as pre-conference tutorial for the SEAFOOD conference).

A new series will be presented in early 2010.

Slightly older news

    + Eiffel is now an ISO standard: Eiffel Analysis, Design and Implementation Language, November 2006. Also available as the second edition of ECMA standard 367 (different title, same contents, free access).

    + Object-Oriented Software Construction, 2nd edition available in Russian in a beautiful translation by Vladimir Billig. (March 2007: now also in Japanese, by Hiroshi Sakoh, whose translation of the first edition also drew much praise.)

Recent events

   We recently organized several major events:

    + Every September we organize the LASER Summer School on software engineering, in the idyllic setting of Elba island. We are again offering an outstanding program this year, Sept. 6 to 12, 2009. The theme is Software Testing: The Practice and the Science and the other speakers Alberto Avritzer (Siemens), Michel Cukier (University of Maryland), Yuri Gurevich (Microsoft Research), Tom Ostrand (AT&T), Mauro Pezzč (Milano) and Elaine Weyuker (AT&T, co-director of the school). Not to be missed.

    + TOOLS EUROPE 2009, June 29 to July 5, took place again at ETH Zurich like TOOLS 2007 and TOOLS 2008, with co-located conferences: TAP (Tests And Proofs), SEAFOOD (Software Engineering Advances For Outsourced and Offshore Development), ICMT and others. TOOLS EUROPE 2010 will move to Málaga, Spain, same week (28 June to July 4), and again with lots of associated events. Actually the name is now TOOLS Federated Conferences to emphasize the multi-conference nature of the event. For TOOLS proper (the core conference), the program chair is Jan Vitek from Purdue; the call for papers will be out shortly.

    + TAP: Tests And Proofs, devoted to the increasing convergence between these two approaches to software verification. The 2007 conference (PC chair: Yuri Gurevich) attracted about 40 participants with outstanding keynotes by Yuri Gurevich, Jonathan Ostroff and Yannis Smaragdakis; the LNCS proceedings are in press. TAP 2008 took place in April in Italy, under the leadership of Bernhard Beckert (Koblenz) and Reiner Hähnle (Chalmers). TAP 2009 will again be in Zurich during the TOOLS week, with Catherine Dubois as PC chair. Yuri Gurevich co-chairs the conference series.

    + SEAFOOD, the first international conference on Software Engineering Approaches For Outsourced and Offshore Development, 4-6 February 2007, Zurich. Co-chaired with Dr. Mathai Joseph, Executive VP of Tata Consultancy Services. SEAFOOD 2008 will take place together with TOOLS 2008 in the week of June 22.

    + VSTTE (Verified Software: Tools, Theories, Experiments, the concretization of Tony Hoare's "Grand Challenge" vision for a verifying compiler.

    + In October 2005, October 2006 and October 2008, ECSS (European Computer Science Summit), the first meetings ever of CS department chairs in Europe, with close to 100 participants each, leading to the creation of Informatics Europe, the European organization for computer science. ECSS 2007 was organized in Berlin by Hans-Ulrich Heiss and ECSS 2009 will be held in Paris under the leadership of Christine Choppy and Antoine Petit.

Portraits of computer scientists

 

 General

Our group is the Chair of Software Engineering at ETH Zurich. Our charter is to help the world build better software and build software better.

Complementary pages:

    + The Chair's site: individual pages of faculty & researchers, material for students (course and project pages), research project descriptions etc.

    + JOT: we publish the Journal of Object Technology (the leading international journal on objects and components). Bimonthly; available online; free to both authors and readers.

The present site and its companions don't just talk about us but seek to provide a repository of ideas and solutions on software engineering in all its variants, in particular:

    + Object technology, component development, reuse.

    + Design by Contract, formal methods, proofs, contract-based automatic testing.

    + Concurrent, distributed and real-time programming

    + Innovative educational approaches for computer science.

    + Tools, development environments, pleasant user interfaces.

ETH achieved worldwide fame in computer science for its brilliant tradition of language and system design. We strive to uphold this tradition in our own way.

 

 "What are you working on at the moment?"

Everything mentioned in these pages. Most recently:

    + Working with the ECMA TG4 committee on the ECMA/ISO Eiffel standard and writing the corresponding revision of "Eiffel: The Language".

    + Attempting to develop techniques for full, rigorous, mechanized proofs of contrat-equipped software components.

    + Developing the SCOOP model for concurrent computation.

    + Devising techniques for automatic, push-button testing of components through the AutoTest and CDD frameworks.

    + Writing the various books I have promised to deliver. Until recently I was working on Touch of Class.

 

 Teaching

Some of the courses I regularly teach with the help of other members of our chair:

    + Introduction to Programming (compulsory course, 1st year)

    + Software Architecture (compulsory course, 2nd year)

    + Software Engineering ("core course", 2nd year)

    + Software Verification (bachelor's/master's, "focus" course for the Software Engineering master's track)

    + Distributed and Outsourced Software Engineering, with Peter Kolb (bachelor's/master's)

    + Concurrent Object-Oriented Programming (Concurrent Programming 2) (bachelor's/master's)

    + Laboratory course: Open-Source EiffelStudio

    + "Languages in Depth" series: Eiffel programming

    + "Languages in Depth" series: Java programming, with Manuel Oriol and Marco Piccioni

    + "Languages in Depth" series: C# programming (bachelor's/master's)

    + Software Engineering Seminar (master's)

A special course in 2007:

    + Automated Debugging and Testing: a compact course over two weeks (11-22 June 2007), with Andreas Zeller from Saarbrücken (bachelor's/master's)

 

 Research

The Chair's research page has details of individual research projects. Here is an overview.

Eiffel

    Eiffel is not just a language but a general method for system construction, applicable from requirements analysis all the way through design, implementation and maintenance, in a seamless and reversible way. Eiffel is based on the principles of object technology and Design by Contract.

    If you knew Eiffel from a few years ago, you are both up to date -- the same principles continue to hold -- and not, as the language has been continuously refined, simplified and and extended.

    Two examples of a major development are the agent mechanism, which provides the power of functional languages in a typed O-O environment, and conversions, which complement conformance.

    We are active in the ECMA standard committee, which delivered the first Eiffel standard in 2005 (revised 2006).

Trusted Components

    Reuse is the best hope for major strides in software technology; without it we are condemned, Sisyphus-like, again and again to tackle the same problems or problem variants.

    But reuse scales up everything, flaws included. Without an obsessive focus on quality, the dangers of reusing components may offset the advantages.

    Trusted Components are reusable software elements accompanied by a precise definition and guarantee of their quality, including such factors as correctness, robustness, performance, security. Our work on Trusted Components, intended to lead to a Component Certification Center, is both "low-road" and "high-road": certify today's commercial components, to the extent possible; develop new components with mathematically proved properties.

Proving classes

    For the "high road" of trusted components, we are working on techniques for proving that classes satisfy their contracts.

Concurrent object-oriented programming

    Techniques used today to program concurrent applications -- for example with multithreading -- and distributed systems are woefully behind the advances made in programming languages and software design methods in other areas. The SCOOP model is a comprehensive effort to make concurrent and distributed programming simple and safe, taking advantages of object technology and Design by Contract. Over the past three years we have implemented SCOOP and applied it to a number of examples; like the rest of our software, this implementation is available for download.

Push-button component testing

    Thanks to contracts, it is possible to test library components completely automatically, without ever having to prepare test data. The Autotest tool applies this idea to existing libraries (those actually used by programmers, not academic examples) and regularly finds significant bugs. Available for download.

Persistence

    We are building mechanisms to let objects survive program execution; more generally, defining a seamless interface between object-oriented programming and databases.

Programming education

    I teach introductory programming at ETH, and have developed an innovative method (Inverted curriculum, "Outside-In") supported by a textbook in progress, Touch of Class, a large software library, Traffic, example applications such as the Flat Hunt game, and several papers.

    See also the next entry about games.

Graphics and games

    The EiffelMedia library is a comprehensive framework for graphics and animations.
    Among other applications, students of the 2nd-year "Software Architecture" course, students use EiffelMedia to develop video games; we requisition the main hall of the ETH for a public demonstration. The project lasts only 6 weeks but the students show remarkable mastery of software engineering concepts. See last year's games (all downloadable). This year the results should be even better thanks to continuing work on the EiffelMedia library and a game framework, again by students.

Other recent projects

    + .NET: with Emmanuel Stapf and Raphael Simon .NET: I have been active in the technology since mid-99 and took part in its introduction. We participate in the corresponding standards committee.

    + Discovering hidden contracts in ordinary libraries, such as the .NET collection library.

    + Turning patterns into components: to reuse is always better than to redo.

For conference organizers I have collected a list of some available talk topics and the associated abstracts.

 

 Positions and projects (i.e. if you want to work with us)

We have many attractive project topics, conceptual as well as applied, for ETH students (Semesterarbeit, Master's theses). Consult the current -- non-exhaustive -- list.

Assistant positions: we occasionally have positions available for PhD work in the topics listed on these pages. Most PhD students at ETH are "assistants": research employees of the university who also participate in teaching.

There is no specific call for candidates at the moment but we are always interested in CVs of exceptional candidates on the topics described in these pages. (Due to the amount of mail received we can't answer applications not retained.)

 

 Course information

All our courses have Web pages including syllabus, schedule, slides, sometimes video recordings of lectures, student evaluations etc. See the Chair's teaching page.

 

 Publications

The publications page. includes a complete publication list and links to online versions of most articles.

 

Here is some recent material. Newest book: not a real book but a video course on .NET. You can look it up on Amazon.

Most recent "real" book: Object-Oriented Software Construction, second edition, Prentice Hall. (If you have seen the first edition, from 1988, you don't know this book -- it's quite different, and much more extensive.)

I write a monthly column for Eiffel software on various Eiffel-related software topics.

 

 Work in progress

Drafts of ongoing work. Available at the moment:

    + Ongoing new edition of Eiffel: The Language (known as ETL3), in progress for several years. To access the chapters you need the user name Talkitover and the password etl3. (Yes, it does make sense to protect a Web page and publish the password. Don't ask.)

    + Towards Practical Proofs of Class Correctness (18 February 2003); paper series on Proving Properties of Programs with Pointers (November 2002, updated February 2003).

 

 Non-ETH activities

    + Eiffel Software (part of ISE Inc. in Santa Barbara): co-founder and Chief Architect. The company is best known for introducing the Eiffel method, language, and EiffelStudio development environment, covering the full lifecycle, not just programming. Also provides consulting and training in software engineering and object technology.

    + President of Informatics Europe, the new organization of European computer science departments, since its creation in 2006 following the two European Computer Science Summits at ETH (the first ever gatherings of CS/IT/Informatics department chairs in the region). We have an ambitious charter: to give computer science a solid place in the European landscape, and to serve as a network for the members of the discipline, with a particular focus on education and research.

    + Chairman of the TOOLS Conference Series, 1989-2003. TOOLS stands for Technology of Object-Oriented Languages and Systems and is devoted to all advanced practical techniques for software development. Altogether we organized 45 TOOLS conferences (US, Europe, Australia, China) and after a respite of a few years are starting again with TOOLS EUROPE.

    + Monash University, Melbourne, Australia: adjunct Professor (school of Computer Science and Software Engineering, CSSE) from 1998 to 2003.

    + A few earlier jobs of which I draw some vanity: I was instrumental in starting software engineering activities in France (the working group at AFCET, the annual conference "Congrčs de Génie Logiciel", the software engineering newsletter), the TSI journal (Technology and Science of Informatics, of which I was the founding editor-in-chief) and the European Software Engineering Conference (I was the first chair of its Steering Committee).

 

 Personal

Some tasks at ETH

    Member of computer science department's Ausschuss (executive committee) 2002-2007; member of study reform commission (the committee that prepared the redesign of the computer science curriculum, based on the new Bachelor-Master system, over 2002 and 2003); co-wrote report on systems support group (ISG) in 2002; in charge of CS colloquium in 2002 and again, with Peter Müller, for the Summer semester 2004; representing department at committee for 150-th anniversary of ETH (2003-2005); editor of the department's Web site, 2003-2004; overseeing the Department's library, 2003-2004; associate chair of the department, 2003-2004; chair, 2004-2006; in charge of Industrial Advisory Board, 2005-2007; department representative in "quantum-tera" (then "nano-tera") project, 2006-2007; member of Unterrichtskommission (curriculum committee) since April 2009.

Education

    Engineer from École Polytechnique, Paris, MS in Computer Science from Stanford University, Engineer from École Nationale Sup. Télécommunications, Paris, DEA from Université Pierre & Marie Curie (Paris VI), Maîtrise in Russian from Sorbonne (Paris IV, Prof. Jacques Catteau), Dr. Sc. in computer science from University of Nancy (advisors: Claude Pair, Jean-Pierre Finance).

Career

    Engineer then division head in the R&D department of Électricité de France (1974-1983), then Visiting Associate Professor (1983-1985) at the University of California, Santa Barbara, then co-founder of Eiffel Software in Santa Barbara, then (since October 2001) Professor of Software Engineering at ETH Zürich.

    Recently found on the Web: a 1977 picture from Novosibirsk.

Other personal web pages

    At Eiffel Software.

Memberships and awards

    Member of the French Académie des Technologies (originally CADAS) since 1991. Switzerland representative on IFIP TC2 (the Technical Committee on programming of the International Federation for Information Processing) since 2004; chair of the committee since April 2009. Member of IFIP Working Group 2.3 (programming methodology). Member of the board of IMAG, 2005-2008. Member of the scientific board of U. Paris VI (P & M Curie) since 2008. Member of the IEEE 60th Anniversary Award committee (2007). Member (2007-2008) of ACM's nominating committee.

    Jolt Award (1997, for Object-Oriented Software Construction, second edition). (First) Dahl-Nygaard prize for object technology, 2005. Honorary doctorate from Technical University ITMO of Saint Petersburg, 2006. ACM Software System Award (for the design of Eiffel), 2007. ACM Fellow, 2009.

    I seem to serve as answer for quizzes (one of them a dubious honor), and feverishly track my rating on the ResearchIndex rankings of all-time Most Cited Authors and Most Cited Documents in computer science.
 

 Contact information

Mailing address

Department of Computer Science
CH-8092 ETH-Zentrum
Zürich, Switzerland
 

Physical address

RZ-Gebäude, Raum J6
Clausiusstrasse 59
Zürich 6
 

Other

Phone: +41/44-632-0410
Fax: +41/44-632-1435
Email: click here
This page: http://se.ethz.ch/~meyer
 
Secretary: Claudia Günthart, RZ-J7, +41/44-632-8346


Meyer home  -   Publications  -  Events  -  Chair of Software Engineering  -  CS Department