[an error occurred while processing this directive]
 

Object-Oriented Software Construction

Bertrand Meyer, Summer semester 2005

Announcements Description Schedule Grading Textbooks Readings Slides Project Contacts

Still available: last year's page.

Announcements

23 June 2005

  • Some additional information about the exam:
    • no helping material is allowed (keine Hilfsmittel erlaubt)
    • bring with you some blank sheets of paper on which you will solve the questions; we will provide the question sheets, but no answers written on these sheets will be taken into account
    • the chapters from "Object-Oriented Software Construction" are recommended reading for the exam; no questions will be asked in the exam about topics not covered in the lectures
    • the exam will last for 45 minutes (13:15 - 14:00)
  • The projects will be turned in no later than 30 June 2005 by emailing me (ilinca.ciupa@inf.ethz.ch) a zip or tgz file containing all the deliverables:
    • The source code of the project This means only the ace file and Eiffel classes (.e files). Do not use absolute paths in the ace file. Do not include any compilation output (compiled code, EiffelStudio project files, etc.) in the delivery.
    • A test suite (also only as source code)
    • Requirements document (in pdf format)
    • Documentation (in pdf format): user guide and developer guide. In the user guide, give very clear instructions for running the application.
  • Also list in the email the names of the people in the project group.

22 June 2005

  • The slides for lecture 21 (Agents and Tuples) are now available
  • The schedule of the lectures has been updated

14 June 2005

13 June 2005

8 June 2005

  • Lecture 18 has been on a design example. The slides are now available.

6 June 2005

3 June 2005

30 May 2005

  • The slides for lectures 14 (Presentation of EiffelStudio and Ace Files), 15 (Exception Handling), and 16 (Object Persistence) are now available
  • The tentative schedule for the lectures has been updated

26 May 2005

  • The ace files of the example for drawing in EiffelVision 2 have been updated

25 May 2005

24 May 2005

12 May 2005

  • An example for using drawing in Eiffel Vision 2 is available here

11 May 2005

9 May 2005

4 May 2005

  • The slides for lecture 8 (More on inheritance) have been updated
  • Please announce the project groups to the course assistant by Monday 9 May (groups of 2; it's permitted to work alone, but the amount of work is the same). Those who do not do it will be grouped randomly.

2 May 2005

  • The slides for lecture 7 (Inheritance) have been updated

29 April 2005

  • The new project specification is now available
  • The lecture on Wednesday 11 May and the first hour of the lecture on Monday 30 May will be dedicated to discussions and questions on the project. If you have questions in the meantime, email the course assistant.
  • Those who have not done so yet, please decide on the groups for the project by Wednesday 4 May and send the information by email to the course assistant.
  • The slides for lecture 9 (Design by Contract) are now available

25 April 2005

  • Slides for lecture 6 (Genericity) have been updated
  • Updated schedule for the lectures is now available

24 April 2005

  • Slides for lectures 7 and 8 (Inheritance) are now available
  • Updated versions in pdf format for lecture 4 (Objects) are now available

21 April 2005

  • Slides for lecture 4 (Objects) have been updated (pdf versions will be available soon)

17 April 2005

  • Slides for lecture 6 (Genericity) are now available

14 April 2005

  • The specification of the testing framework in the project will change. The updated version will be available next week.
  • Please decide on the groups for the project by Monday 25 April and send the information by email to the course assistant. If you can't decide until then, send an email explaining the situation.

12 April 2005

11 April 2005

10 April 2005

4 April 2005

31 March 2005

  • Slides of the first lecture are now on-line (see Slides)

29 March 2005

  • Register to the course: Please send an email
    To: oosc-course@se.inf.ethz.ch
    Subject: OOSC Course Participant
    Content:
    • Your name
    • Preferred email address
    • Status: Diplom student (what semester), Ph.D. student, other.
    • Taking the course for credit or not.
    • Attach a picture (JPEG, GIF, PNG) if you wish.

Description

Title and code

Object-Oriented Software Construction
Course code: 251-0250-00
See official ETH page on this course

Scope

This course will explore a number of issues, both practical and theoretical, raised by object technology, especially when applied to large, ambitious, long-running projects with high quality requirements.

Prerequisites

Some practice of object-oriented development and knowledge of an object-oriented language and basic design patterns. Attendance of the winter semester course 251-0239-00 Trusted Components is desirable.

Objectives

The goal is to provide students with solid knowledge of:

  • Object technology principles and methods
  • The practice of object-oriented analysis, design and implementation
  • Some open issues
  • Some recent developments
  • A specific technology: Eiffel

Topics

  • Review of elementary and advanced object-oriented mechanisms.
  • Theoretical basis: abstract data types.
  • Techniques and principles for producing reusable components and high-quality object-oriented software. Reuse issues.
  • Concurrent object-oriented development: issues, constraints, existing proposals, implementations, SCOOP model.
  • Typing issues. Covariance and catcalls. Language design for flexible typing.
  • Encapsulating behaviours along with data.
  • High-level system structuring. Role of graphical formalisms. Seamless and reversible development.
  • Metrics of object-oriented development.
  • Object-oriented project management. Lifecycle issues; the cluster model, seamlessness, reversibility.
  • From design patterns to reusable components.

Schedule

Weekly schedule

  • Monday 9.00 - 11.00, RZ F21.
  • Wednesday 13.00 - 14.00, RZ F21.

Office hours: By appointment. RZ J4.

Semester schedule (tentative)

Wednesday 30 March Lecture 1: Introduction, Modularity (1)
Monday 4 April Lecture 2: Modularity (2)
Wednesday 6 April Lecture 3: Abstract Data Types
Monday 11 April Lecture 4: Objects
Wednesday 13 April Lecture 5: Project Presentation
Monday 18 April Lecture 4: Objects (2)
Wednesday 20 April Lecture 4: Objects (3)
Monday 25 April Lecture 6: Genericity
Wednesday 27 April Lecture 7: Inheritance
Monday 2 May Lecture 8: Inheritance (continued)
Wednesday 4 May Lecture 8: Inheritance (continued)
Monday 9 May Lecture 9: Introduction to Patterns, Model View Controller and the Observer Pattern
Wednesday 11 May Lecture 10: Project Presentation
Monday 16 May No lecture (Pfingstmontag)
Wednesday 18 May Lecture 11: Design by Contract
Monday 23 May Lecture 12: Design by Contract (continued)
Wednesday 25 May Lecture 13: Design by Contract (continued)
Monday 30 May Lecture 14, 15: Presentation of EiffelStudio and Ace Files (first hour), Exception Handling (second hour)
Wednesday 1 June Lecture 16: Object Persistence
Monday 6 June Lecture 17: Testing Object-Oriented Software
Wednesday 8 June Lecture 18: A Design Example
Monday 13 June Lecture 19: Concurrency and Real-Time Systems
Wednesday 15 June Lecture 20: Design Principles
Monday 20 June Lecture 21: Agents and Tuples (1)
Wednesday 22 June Lecture 21: Agents and Tuples (2)
Monday 27 June Lecture 22: Typing Issues, Covariance
Wednesday 29 June Final exam

Grading

Important: No "Testat" is delivered or "mündliche Prüfung" provided for this course. The only way to get a grade is to take the exam and the project. This applies regardless of your department or status.

  • 60% Project: Development of an Object Spyglass.(Deadline: 30 June 2005)
  • 40% Exam: 29 June 2005

Textbook

Bertrand Meyer: Object-Oriented Software Construction, second edition. Prentice Hall, 1997.

Recommended:
Erich Gamma et al.: Design Patterns. Addison-Wesley, 1995.

Readings

Bertrand Meyer: The power of abstraction, reuse and simplicity: An object-oriented library for event-driven design . Springer-Verlag, Lecture Notes in Computer Science, 2003.

David L. Parnas: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, Communications of the ACM, 15, 12, (December 1972), p 1053 - 1058

C.A. R. Hoare: An Axiomatic Basis for Computer Programming. Communications of the ACM, 1969.

IEEE Std 1063: IEEE Standard for User Documentation

IEEE Std 1233: IEEE Guide for Developing System Requirements Specifications

IEEE Std 830: IEEE Recommended Practice for Software Requirements Specifications

Niklaus Wirth, Program Construction by Stepwise Refinement, Communications of the ACM, 14, 4, (April 1971), p 221-227

Karine Arnout, EiffelStudio: A Guided Tour

Slides

1, 2: Modularity PowerPoint PDF 1up PDF 4up
3: Abstract Data Types PowerPoint PDF 1up PDF 4up
4: Objects PowerPoint PDF 1up PDF 4up
5: Project and EiffelStudio Presentation PowerPoint PDF 1up PDF 4up
6: Genericity PowerPoint PDF 1up PDF 4up
7: Inheritance PowerPoint PDF 1up PDF 4up
8: More on Inheritance PowerPoint PDF 1up PDF 4up
9: Introduction to Patterns, Model View Controller and the Observer Pattern PowerPoint PDF 1up PDF 4up
10: Project Presentation PowerPoint PDF 1up PDF 4up
11: Design by Contract PowerPoint PDF 1up PDF 4up
12: Design by Contract (continued) PowerPoint PDF 1up PDF 4up
13: Design by Contract (continued) PowerPoint PDF 1up PDF 4up
14: Presentation of EiffelStudio and Ace Files PowerPoint PDF 1up PDF 4up
15: Exception Handling PowerPoint PDF 1up PDF 4up
16: Object Persistence PowerPoint PDF 1up PDF 4up
17: Testing Object-Oriented Software PowerPoint PDF 1up PDF 4up
18: A Design Example PowerPoint PDF 1up PDF 4up
19: SCOOP: Simple Concurrent Object-Oriented Programming PowerPoint PDF 1up PDF 4up
20: Design Principles PowerPoint PDF 1up PDF 4up
21: Agents and Tuples PowerPoint PDF 1up PDF 4up

Project

Project specification: Object Spyglass

Supporting material:

  • Example for using drawing in Eiffel Vision 2

Contacts

  • Send all email relative to this course to oosc-course at se.inf.ethz.ch. It will reach the professor and the assistant. Do not use their personal addresses or your message may be missed.
  • Contact assistant for the course: Ilinca Ciupa (http://se.inf.ethz.ch/people/ciupa, office: RZ J4)

 

Last modified: 23.06.2005 by Ilinca Ciupa