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.

ERC Advanced Investigator Grant: Concurrency Made Easy

    + I have just been granted a five-year, 2.5-million euro Advanced Investigator Grant of the European Research Council. The "I" is appropriate because these are personal awards, although many people helped with the development of the base technology (SCOOP) and the preparation of the proposal. The project is called Concurrency Made Easy and is an attempt to disprove the conventional wisdom that concurrent programming has to be horribly hard; instead, we want to make it simple and natural, consistent with programmers' accepted (sequential) modes of thinking. The text of the proposal is available online; we have positions open for postdocs, PhD students and a research engineer.

Annotated bibliography

    + Most entries in my publication list are now annotated with a short description of the purpose and context of each publication, old or new.

Blogs

    + My personal blog covers a broad range of opics in technology.

    + I also make more or less regular contributions to the Communications of the ACM blog.

Touch of Class textbook

    + The introductory programming textbook, Touch of Class, applying "outside-in" and " inverted curriculum" ideas, based on seven years of teaching introductory programming at ETH, published by Springer Verlag, is now available. The book page has extensive information and links to videos etc.

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

    + June 2011: the Russian translation, again by Vladimir Billig and again excellent, has now been published.

Forthcoming events

Outstanding events in the next few months:

    + We have just announced the theme and speakers for next year's school (2-8 September 2012), in the unique setting of the Hotel del Golfo in the island of Elba: Innovative Languages for Software Engineering, with a speaker list including Martin Odersky (Scala), Ivar Jacobson (UML), Roberto Ieruschalimchy (Lua), Simon Peyton-Jones (Haskell) and me (Eiffel). The registration page is open. We limit the number of participants to ensure a successful experience of interacting with the speakers, and the 2011 school sold out quickly.

    + TOOLS 2012 will be held in Prague, 31 May to 4 June, with many associated conferences in addition to the main event, TOOLS EUROPE.

    TOOLS 2012 is the 50th edition of TOOLS and will be a particular joyous event, with the theme The Triumph of Objects. Watch out for the impressive list of keynote speakers and the Call for Papers, available in the next few weeks.

    + The 7th European Computer Science Summit — the yearly conference of Informatics Europe — in Milan, 14-16 November 2011. Details to be announced in the coming weeks. ECSS is the opportunity both to discuss our research and eduction issues and to hear from some of the luminaries in our field.

Two events no longer "forthcoming" but memorable enough to be mentioned:

    + A unique gathering of the top names in software engineering: Future Of Software Engineering Symposium, at ETH, 22-23 November 2010. The speakers were: Barry Boehm, Manfred Broy, Patrick Cousot, Erich Gamma, Yuri Gurevich, Michael Jackson, Rustan Leino, David Parnas, Joseph Sifakis, Niklaus Wirth, Pamela Zave, Andreas Zeller.

    + On November 24, just after FOSE: the symposium "Eiffel at 25".
    + SEAFOOD 2010, Software Engineering Advances For Outsourced and Offshore Development, in Saint Petersburg, Russia (one of the most beautiful cities on earth), June 17-18, with keynotes by Ivar Jacobson, Richard Soley and Andrey Terekhov (and me).

Compact courses for industry, October-November 2011

In the fall we are offering a new series of one-day compact courses for industry in Zurich, taught by me with, in some cases, co-lecturers. The schedule (subject to slight changes) is:

    + 27 October: Software Engineering for Outsourced and Distributed Development (with Peter Kolb and Martin Nordio).
    + 17 November: Software requirements analysis
    + 18 November: Software Testing and Verification (with Carlo Furia and Sebastian Nanz)
    + 23 November: Agile Methods: the Good, the Bad and the Ugly (new seminar!)
    + 24 November: Concepts and Constructs of Concurrent Computation (with Sebastian Nanz)
    + 25 November: Design by Contract

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.)

Portraits of computer scientists

I have had and continue to have the privilege of attending many computer science events and the even greater privilege of meeting outstanding computer scientists. Around 2004 (I wish I had thought of it earlier) I started to take pictures, inspired by what Paul Halmos did for mathematicians. The result is my "Gallery of Computer Scientists" which I continue to extend on every occasion.

 

 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: from 2002 to 2010 we published the Journal of Object Technology, which has become the leading international journal on objects and components. The editor-in-chief is now Oscar Nierstrasz, who took over from Richard Wiener, and the responsibility for the publication is now with AITO. JOT is bimonthly, available online, and free for 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 verification of contrat-equipped software components, including both proofs and tests.

    + Developing the SCOOP model for concurrent computation.

    + Continuing to develop our techniques for automatic, push-button testing of components through the AutoTest framework, now a standard part of EiffelStudio —. AutoTest routinely finds bugs in software, in a totally automatic fashion with no hand-written test cases (”Test while you lunch”).

    + Developing our CloudStudio environment for Web-based collaborative software development, including a radically simpler approach to configuration management.

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

    + Teaching or co-teaching numerous courses (see next).

 

 Teaching

Below is a partial list of the courses I regularly teach with the help of other members of our chair. The links are to recent home pages of the courses, but to be sure to get the most recent check the general teaching page.

The material for all of our courses, including in particular all slides, is available online from the corresponding course pages. If you are an instructor and want to use some of that material for your courses, feel free to do so with attribution (and if you have the time do tell us). If you only see PDF versions and want the source — usually PowerPoint for my own material, although some of my colleagues use other technologies — just write to me.

    + Introduction to Programming (compulsory course, 1st year): the first programming course taken by all CS majors, based on the "Touch of Class" textbook.

    + Software Architecture (compulsory course, 2nd year): reviews abstract data types, design patterns and other fundamental software architecture principles; also includes an introduction to non-programming, non-design aspects of software engineering.

    + Software Engineering ("core course", 3rd year): a presentation of the field, with emphasis on non-programming, non-design aspects (I have not taught this course since 2008 but probably will do it again in the future).

    + Software Verification (bachelor's/master's, "focus" course for the Software Engineering master's track), with Carlo Furia and Sebastian Nanz: a comprehensive survey of verification techniques, both static and dynamic.

    + Concepts of Concurrent Computation, with Sebastian Nanz (bachelor's/master's): a comprehensive survey of concurrent programming techniques, with a specific part devoted to concurrent O-O approaches, particularly SCOOP.

    + Distributed and Outsourced Software Engineering, with Peter Kolb (bachelor's/master's): as far as I know was the first course on outsourcing in a CS department (i.e. with a technical, not business focus); evolved into a course on distributed development. Includes a distributed project in collaboration with many other universities.

    + Open-Source EiffelStudio: a project course, offered every semester, where students contribute software to an open-source project.

    + "Languages in Depth" series: Eiffel programming (bachelor's/master's). An exploration of the Eiffel method and language.

    + "Languages in Depth" series: Java and C# programming, with Carlo Furia. Teaches the fundamentals of programming in Java and C#, explores many advanced concepts, and compares the two languages.

    + "Languages in Depth" series: C# programming (bachelor's/master's); currently not taught separately but integrated with the Java course (previous entry). May be taught offered on its own again in the future.

    + Software Engineering Seminar (master's): an introduction to recent research literature in software engineering, The theme changes every year; in 2010 it was empirical software engineering.

 

 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. Most entries are accompanied by a paragraph or two describing the publication's scope and my view of it now.

Most widely circulated books: Object-Oriented Software Construction, second edition, Prentice Hall; .NET course (actually a video course); and the introductory programming textbook Touch of Class.

 

 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.)

 

 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.

    + Expertyze: expert. The company provides expertise in software litigation, litigation avoidance and project rescue.

    + President of Informatics Europe, the organization of European computer science departments. 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, since 1989. TOOLS stands for Technology of Object-Oriented Languages and Systems and is devoted to all advanced practical techniques for software development.

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

    + A few earlier achievements of which I draw some pride: 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 ESEC, 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 and president 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), 2004-2011; chair of the committee, 2009-2011. Member of IFIP Working Group 2.3 (programming methodology) since 2003. 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 of ACM's nominating committee (committee in charge of nominating candidates for president and other top offices of the ACM), 2007-2008. Member (ex officio as earlier winner) of the committee for the IEEE Harlan D. Mills Award since 2011. Elected to Academia Europea, 2011.

    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. IEEE Harlan D. Mills Award, 2010. ERC (European Research Council) Advanced Investigator Grant recipient, 2011.

    My paper Reusability: The Case for Object-Oriented Design appears in the list of the most influential papers published by IEEE Software in its 25-year history.

    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