|
| |
Links
|
| |
|
|
| |
News & events
|
|
For conferences and seminars we organize, and my own talks, see the Events page.
| | 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.
| |
ERC CME project
|
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.
| |
Annotated publication list (by date)
|
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.
| |
Technology blog
CACM blog (all authors)
|
Touch of Class textbook
| |
Touch of Class page
Amazon book page
Springer book page
|
June 2011: the Russian translation, again by Vladimir Billig and again excellent, has now been published.
| |
Touch of Class, Russian translation
(See also this
article by the translator)
|
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.
| | LASER 2012
|
|
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.
| | TOOLS 2012
Still of interest: TOOLS 2011
|
|
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.
| | ECSS 2010
|
|
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.
| | Future Of Software Engineering
|
|
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).
| | SEAFOOD 2010
|
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
| | Compact courses: info and registration.
|
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).
| |
ISO standard
ECMA Eiffel standard
|
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.)
| | Russian OOSC; see also article (page 24 of magazine)
Japanese (bookstore site)
|
|
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.
| | Gallery
|
|
| |
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.
| | Chair of Software Engineering
|
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.
| | JOT at www.jot.fm
|
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.
| | 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.
| | Intro prog
|
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.
| | Soft arch
|
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).
| | Soft eng
|
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.
| | Verification
|
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.
| | Concurrency
|
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.
| | DOSE
|
Open-Source EiffelStudio: a project course, offered every semester, where students contribute software to an open-source project.
| | Open-Source Lab
|
"Languages in Depth" series: Eiffel programming (bachelor's/master's). An exploration of the Eiffel method and language.
| | Eiffel
|
"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.
| | Java
|
"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.
| | C# (2007)
|
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.
| | SE Seminar
|
| |
Research
|
The Chair's research page has details of individual research projects. Here is an overview.
| | Chair's research page
|
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.
| | The agent mechanism (PDF)
For password see below
|
We are active in the ECMA standard committee, which delivered the first Eiffel standard in 2005 (revised 2006).
| | ECMA Eiffel standard
|
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.
| | Trusted components paper (ICSE keynote)
(also:1998 paper)
|
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.
| | Class proofs
|
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.
| | SCOOP project page
|
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.
| | Autotest
|
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
|
|
| | Touch of class (book page)
SIGCSE paper on our approach
|
Graphics and games
|
The EiffelMedia library is a comprehensive framework for graphics and animations.
| |
EiffelMedia
|
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.
| |
Games @ ETH
|
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.
| | Contract extraction
|
| | From patterns to components
|
For conference organizers I have collected a list of some available
talk topics and the associated abstracts.
| | Talk titles and 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.
| | Available projects
|
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.
| | 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.
| | Publications page
|
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.
| | "OOSC" book page
.NET Training Course (Amazon)
"Touch of Class" book page
|
| |
Work in progress
|
Drafts of ongoing work. Available at the moment:
| | Work in progress
|
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.)
| | ETL3 page
|
| |
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.
| | Eiffel Software
|
Expertyze: expert. The company provides expertise in software litigation, litigation avoidance and project rescue.
| | Expertyze
|
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.
| | Informatics Europe
|
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.
| | TOOLS EUROPE
|
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.
| |
Siberia 77
|
Other personal web pages
| |
Eiffel Software page
|
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.
| |
Acad. Tech
IFIP TC2
WG2.3
Academia Europea
|
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.
| |
Jolt awards
Dahl-Nygaard award
ITMO announcement
ACM press release
|
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.
| |
35 top picks in Software
O-O reusability paper
|
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.
| |
SD quiz
More dubious honor
Docs and
authors
|
| |
Contact information
|