Chair of Software Engineering

Trusted Components course: home page

Bertrand Meyer, Winter semester 2002

                                    Still available: Last year's page
                                    The official ETH page about this course
Announcements Description Schedule Grading Reading assignments Other links Report topics Slides



[Posted 27 January 2003] As announced, here is the text of last year's midterm exam. Note that this was a midterm rather than a final exam, covering only the first part of the program.

[Posted 27 January 2003] Slides added for lecture on formal modeling of pointer programs. See slide links.

[Posted 17 January 2003] Talk by Erich Gamma on "Contributing to Eclipse" in the second part of next Monday's lecture, January 20, 10:05-11. In the first part, 9:15-9:50, I will finish the discussion of .NET language support. Note slightly shifted schedule to give Erich enough time for his presentation. His talk is open to the public, so feel free to mention it to others.

[Posted 17 January 2003] Sun delegates paper:

[Posted 13 January 2003] Reading assignment for next class (Wednesday): draft of event paper.

[Posted 13 January 2003] A rare fit of leniency: deadline for project moved to 20 January, 9:15.

[Posted 6 January 2003] As announced in class, the class on Wednesday will be a guest lecture by Mr. Philipp Oser of ELCA, on the L.E.A.F. framework; see an overview on the ELCA site. For the slides see this address (PowerPoint) or this one (PDF) (if the links don't work yet try again starting Tuesday afternoon).

You will also be invited, on Wednesday, to fill in an survey asking for your evaluation of the course so far. Please take the time to answer the questions -- it will help improve the course.

[Posted 6 January 2003] Slides have been added on the .NET lecture. See slide links.

[Posted 6 January 2003] Explanations and suggestions regarding the project on B development may be found, courtesy Bernd Schoeller, at

[Posted 6 January 2003] The final exam will be on February 5 (Wednesday). The topics will include everything studied until January 22nd (inclusive).

[Posted 13 December 2002] Special class this Monday (Dec 16): Ivar Jacobson from Rational will talk about UML (of which he is one of the three co-designers), the Rational Unified Process and Object Technology. This session is public, so feel free to bring in any colleagues who may be interested. Ivar will also present a Distinguished Lecture in the Colloquium in the afternoon.

[Posted 11 December 2002] The slide links below now include a link to today's lecture (building system, after Abrial) and the corresponding paper.
Added after class: Please make sure to read the slides before Monday's lecture. You may not understand everything but you should be familiar with the basic ideas. Use the article for supplementary explanations.

[Posted 8 December 2002] A clarification about project 2 (tests for GRAPH classes). We are not providing an effective version of the classes. (Sorry if I caused confusion when quickly answering a question on this matter after class last week.) The idea of the project is to prepare tests on the sole basis of the specification, with someone else being expected to run the test. You have to exert your attention to studying the specification (the contract form), preparing the most comprehensive test suite you can, and providing arguments as to why you think the test suite is comprehensive. But you don't run it yourself. I known it's surprising at first but undoubtedly you will understand the purpose of the exercise.

[Posted 8 December 2002] The slide links below now include links to Karine Arnout's slides on testing for the next lecture.

[Posted 28 November 2002] Bernd Schoeller prepared a deferred version of the GRAPH classes for project 2. You can find it here.

Terminology: from now on we'll talk of Projects 1, 2 and 3 since it was unfortunate that project A was about B and project B about something else! The terminology has been corrected below.

[Posted 27 November 2002] Note the FATS seminar, Formal Approaches To Software, Wednesdays at 16:15 IFW E42. Themes are directly related to those of the class.

[Posted 27 November 2002] Bernd Schoeller will hold a session to discuss the project on Thursday (28 November), 10-12, IFW E42.

[Posted 25 November 2002] About the project: I know students have lots of questions, especially on Project 2; we will address them through a special session to be announced soon. The deadline for choosing your project has been moved to December 15 since we haven't started on B yet.

[Posted 20 November 2002] Added book chapter on axiomatic semantics (see slide links below), from my book Introduction to the Theory of Programming Languages. See reading assignment below): read the chapter for next week.

[Posted 20 November 2002] I just realized that the project information for the Graph project (Project 2) was on another Web page. Sorry for the confusion. Please use the present Web page as the one of reference; the other one will be redirected to it shortly. The file is

[Posted 20 November 2002] General note: it's very disruptive when a few students come late from the break. Please observe the announced time for restarting. Ten minutes is not fifteen, twenty or twenty-five.

If it's a technical problem, reliable sources have told me that it is in fact possible to find clocks for sale in Zürich.

[Posted 20 November 2002] The link to the second lecture (see next entry) had a typo; my apologies. It is fixed now.

[Posted 18 November 2002] Included slides of 2nd lecture (Design by Contract). See in slide links below.

[Posted 18 November 2002] Included slides of all three talks by Scott Meyers last week. See in slide links below.

[Posted 12 November 2002] Two guest lectures this week: Scott Meyers Monday (yesterday); Miguel de Icaza on Mono, Wednesday 13 November, note special time 9-11. For both see announcements.

[Posted 6 November 2002] Make sure to attend the seminar by Luca Cardelli today at 16:15. See

[Posted 28 October 2002] Grading scheme confirmed (as announced in class last week). Please read carefully here!

[Posted 28 October 2002] No class this Wednesday. Volkan Arslan will present instead an introduction to Eiffel and EiffelStudio.

[Posted 28 October 2002] First set of slides posted, covers first few lectures.



Title and code

Trusted components: principles, techniques, standards
Course code: 37-239


The prospect of component-based development is one of the greatest hopes for the advancement of software engineering. But it assumes that the components are of high enough quality. Surprisingly, no real standards exist in this area. This course will explore the techniques available to guarantee that components can be trusted.


The course will start out as lectures but some topics will be handled through student presentations. Every student will be expected to choose a topic within the scope of the course and prepare a possible presentation on it.

Topics (provisional list)

Principles of reuse - Component technologies: COM, NET, CORBA, J2EE - Specifying components - Design by Contract - Techniques for testing components - Techniques for proving components - Component documentation - Towards a component quality standard.


Experience with O-O development and, preferably, a component model.

 Final schedule

Note new schedule:

    + Monday 9:00 - 11:00, IFW A 32 (corrected)
    + Wednesday 10.00 - 12.00, RZ-F21

Office hours: Tuesday 14:15-16, or by appointment. RZ-F2.


 Grading and deadlines

Important: this course has no end-of-semester exam. The grading will be based on two elements, each accounting for 50% of the grade:

    + Midterm exam, early January, covering all topics seen until December.

    + Project, to be turned in January 15. Pick one of three subjects:

      + 1.  Formally develop and prove small program in B.
      + 2.  Write test suite for a class library whose contract we will provide.
      + 3.  Write qualification report for commercial component (COM, EJB or .NET) of your choice (choice must be approved in advance, by 30 November).


 Reading assignments

For 27 November at the latest: read the Axiomatic semantics book chapter.


 Other links

I don't know of any university course with the same topic as ours, but here is one paper that covers neighboring topics, by Bruce Weide at Ohio State.

 Report topics

 Slides (PDF)

All links are to documents (PDF by default) and require a password. Only the first few links are applicable; below the the line, the links are placeholders for slides of future lectures.

Lecture 1
Lecture 2
Axiomatic semantics (chapter from the book Introduction to the Theory of Programming Languages

Slides of lectures by Scott Meyers (no password by kind permission of the author, note the copyright):

Lecture 4 (contracts and testing, by Karine Arnout): HTML or PDF
Lecture 5 (B), to be added.
Lecture 6: Building authorization, by Abrial -- slides and paper
Lecture 7: the .NET component model, slides available in PowerPoint and PDF.
Lecture 8: Proving Program Pointer Properties.

Lecture 8
Lecture 9
Lecture 10

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