[an error occurred while processing this directive]
 

Advanced Topics in Object Technology

Bertrand Meyer, Summer semester 2003

Announcements Description Schedule Grading Textbooks Slides Contacts

Still available: last year's page.

Announcements

31 March 2003

  • Register to the course: Please send an email
    To: atot-course@se.inf.ethz.ch
    Subject: ATOT 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.
  • Reading assignment for Monday 7 April 2003: OOSC2 Chapters
    • Chapter 1: Software quality
    • Chapter 28: The software construction process
  • Updated version of the slides for lecture 1
  • Changed semester schedule (order of lectures 7 to 13)

Description


Title and code

Advanced Topics in Object Technology
Course code: 37-250
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.

Prerequisites

Good programming experience.

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
  • Two specific technologies: Eiffel and .NET

Topics

  • Quality issues
  • Lifecycle
  • Abstract Data Types
  • Object model choices
  • Design by Contract.
  • Beyond Design by Contract: specification and proof issues.
  • Inheritance techniques
  • Design patterns
  • Typing issues.
  • Covariance and catcalls.
  • Language design for flexible typing.
  • Reconciling the object-oriented paradigm with other approaches: functional, logic.
  • High-level system structuring.
  • Role of graphical formalisms.
  • Seamless and reversible development.
  • Specific issues of reuse-oriented development.
  • Library design principles.
  • Concurrent object-oriented development: issues, constraints, existing proposals, implementations.
  • Concurrency variants: multi-threading, distribution.
  • Object-oriented project management.
Schedule

Weekly schedule

  • Monday 9.00 - 11.00, IFW E42.
  • Wednesday 10.00 - 12.00, IFW E42.

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

Semester schedule (tentative)

Monday 31 March Lecture 1: Introduction, Quality issues, Software lifecycle
Wednesday 2 April Lecture 2: EiffelStudio and Project presentation (by Karine Arnout)
Monday 7 April Lecture 3: Modularity, Reusability, Abstract Data Types
Wednesday 9 April Lecture 4: Objects
Monday 14 April Lecture 5: Genericity
Wednesday 16 April Lecture 6: Aspect-Oriented Programming (Guest lecture by Philippe Lahire, University of Nice, France)
Monday 21 April No lecture (Easter)
Wednesday 23 April Lecture 7: Inheritance (by Karine Arnout)
Monday 28 April Lecture 8: Inheritance (continued)
Wednesday 30 April Lecture 9: Inheritance (continued)
Monday 5 May Lecture 10: Design by Contract (by Karine Arnout)
Wednesday 7 May Lecture 11: Design by Contract (continued by Bernd Schoeller)
Monday 12 May Lecture 12: Design by Contract (continued by Susanne Cech)
Wednesday 14 May Lecture 13: Exception handling, Design by Contract outside of Eiffel (by Karine Arnout)
Monday 19 May Lecture 14: Design principles
Wednesday 21 May Lecture 15: Design principles (continued)
Monday 26 May Lecture 16: O-O design: a collective exercise
Wednesday 28 May Lecture 17: O-O design: a collective exercise
Monday 2 June Lecture 18: Typing issues, covariance
Wednesday 4 June Lecture 19: Typing issues, covariance (continued by Karine Arnout)
Monday 9 June Lecture 20: Agents and event-driven design
Wednesday 11 June Lecture 21: Agents and event-driven design (continued by Karine Arnout)
Monday 16 June Lecture 22: From design patterns to components
Wednesday 18 June Lecture 23: From design patterns to components (continued) (also: Project deadline)
Monday 23 June Lecture 24: Concurrency
Wednesday 25 June Lecture 25: Concurrency (continued)
Monday 30 June Lecture 26: Project collective correction and preparation of the exam
Wednesday 2 July Final exam


Grading

  • 60% Project: Development of a "Pattern wizard" (Deadline: 18 June 2003)
  • 40% Exam: 2 July 2003

Textbook


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

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

Slides


All links are to documents (PDF by default).

Lecture 1: Introduction, Quality issues, Software lifecycle
Lecture 2: EiffelStudio and project presentation
Lecture 3: Modularity, Reusability, Abstract Data Types
Lecture 4: Objects
Lecture 5: Genericity
Lecture 6: Aspect-oriented programming (guest lecture)
Lecture 7: Inheritance
Lecture 8: Inheritance (cont'd)
Lecture 9: Inheritance (cont'd)
Lecture 10: Design by Contract
Lecture 11: Design by Contract (cont'd)
Lecture 12: Design by Contract (cont'd)
Lecture 13: Exception handling, Design by Contract outside of Eiffel
Lecture 14: Design principles
Lecture 15: Design principles (cont'd)
Lecture 16: A design example
Lecture 17: O-O design: a collective exercise
Lecture 18: Typing issues, covariance
Lecture 19: Typing issues, covariance (cont'd)
Lecture 20: Agents and event-driven programming
Lecture 21: Agents and event-driven programming (cont'd)
Lecture 22: From design patterns to components
Lecture 23: From design patterns to components (cont'd)
Lecture 24: Concurrency
Lecture 25: Concurrency (cont'd)

Contacts

 

  • Send all email relative to this course to this address. It will reach the professor and assistants. Do not use their personal addresses or your message may be missed.
  • Contact assistant for the course: Karine Arnout (http://se.inf.ethz.ch/people/arnout, Office: RZ-F7)
  • Webmaster: Click here.