| |
[an error occurred while processing this directive] |
|
Object-Oriented Software Construction

Bertrand Meyer, Summer semester 2004
Still available: last
year's page.
Announcements
22 June 2004
- The final exam will be held June 30th in the 1 hour Wednesday session.
Feel free to view last years exam.
18 June 2004
- There will be no course on Monday. Please use this time for your
projects.
- Wendesday there will be a presentation on Object-Oriented Concurrency
by Piotr Nienaltowski. The presentation can be found here.
16 June 2004
14 June 2004
26 May 2004
17 May 2004
- Added some links to Eiffel.Net references after the Projects section.
10 May 2004
03 May 2004
22 April 2004
14 April 2004
07 April 2004
- The project description has been put online.
05 April 2004
17 February 2004
- 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: 0250
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
- Two specific technologies: Eiffel and .NET
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-J22.
Semester schedule (tentative)
| Monday 29 March |
Lecture 1: Introduction, Quality issues, Software
lifecycle |
| Wednesday 31 March |
Lecture 2: EiffelStudio and Project presentation |
| Monday 5 April |
Lecture 3: Modularity, Reusability |
| Wednesday 7 April |
Lecture 4: Abstract Data Types |
| Monday 12 April |
No lecture (Ostermontag) |
| Wednesday 14 April |
Lecture 5: Objects |
| Monday 19 April |
Lecture 6: Genericity |
| Wednesday 21 April |
Lecture 7: Inheritance |
| Monday 26 April |
Lecture 8: Inheritance (continued) |
| Wednesday 28 April |
Lecture 9: Design by Contract |
| Monday 3 May |
Lecture 10: Design by Contract |
| Wednesday 5 May |
Lecture 11: Design by Contract (by Joseph Ruskiewicz) |
| Monday 10 May |
Lecture 12: Object Persistence |
| Wednesday 12 May |
Lecture 13: Advanced inheritance mechanisms |
| Monday 17 May |
Lecture 14: Design principles |
| Wednesday 19 May |
Lecture 15: Design principles |
| Monday 24 May |
Lecture 16: A design example |
| Wednesday 26 May |
Lecture 17: O-O design: a collective exercise |
| Monday 31 May |
No lecture (Pfingstmontag) |
| Wednesday 2 June |
Lecture 18: From design patterns to components |
| Monday 7 June |
Lecture 19: O-O design: a collective exercise, Agents
and event-driven design |
| Wednesday 9 June |
Lecture 20: Concurrency and real-time systems |
| Monday 14 June |
Lecture 21: Typing issues, covariance |
| Wednesday 16 June |
Lecture 22: Typing issues, covariance (continued) |
| Monday 21 June |
Lecture 23: Agents and event-driven development (continued) |
| Wednesday 23 June |
Lecture 24: Exception handling |
| Monday 28 June |
Open |
| Wednesday 30 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.
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, 1972.
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
Slides
All links are to documents (PDF by default).
Lecture
1: Introduction, Quality issues, Software lifecycle (also PowerPoint)
Lecture
2: EiffelStudio and project presentation (also PowerPoint)
Lecture
3: Modularity, Reusability (also PowerPoint)
Lecture 4: Abstract Data Types (also PowerPoint)
Lecture 5: Objects (also PowerPoint)
Lecture 6: Genericity (also PowerPoint)
Lecture 7: Inheritance (also PowerPoint)
Lecture 8: Inheritance
(cont'd) (also PowerPoint)
Lecture 9:
Design by Contract (also PowerPoint)
Lecture 10:
Design by Contract (cont'd) (also PowerPoint)
Lecture 11:
Design by Contract (cont'd) (also PowerPoint)
Lecture 12: Object
Persistence (also PowerPoint)
Lecture 13: Advanced
inheritance mechanisms (also PowerPoint)
Lecture 14:
Design principles (also PowerPoint)
Lecture 15:
Design principles (cont'd) (also PowerPoint)
Lecture 16: A design
example (also PowerPoint)
Lecture 17: O-O design: a collective exercise (Download
the resulting application)
Lecture
18: From design patterns to components (also PowerPoint)
Lecture 19: Agents
and event-driven programming (also PowerPoint)
Lecture 20: Concurrency
and real-time systems (also PowerPoint)
Concurrent O-O principles (also PowerPoint)
Concurrent O-O principles
(cont'd) (also PowerPoint)
Lectures 21 and 22:
Typing issues, covariance (also PowerPoint)
Typing
issues, covariance (also PowerPoint)
Typing
issues, covariance (cont'd) (also PowerPoint)
Lecture 23: Agents
and event-driven programming (cont'd) (also PowerPoint)
Lecture 24:
Exception handling (also PowerPoint)
Exception
handling, Design by Contract outside of Eiffel (also PowerPoint)
Object-Oriented Requirements Annotator
Project
Links
Full
Eiffel on the .NET Framework
First
Eiffel .NET Program
Introduction
to Eiffel.net
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: Joseph Ruskiewicz (http://se.inf.ethz.ch/people/ruskiewicz,
Office: RZ-F22)
- Webmaster: Click here.
|