Chair of Software Engineering


Chair of software engineering:
Topics for student projects



We offer projects to ETH students -- semesterarbeit, diplomarbeit, Master's projects -- across a number of software engineering topics, all related to the same general goal: construction of high-quality software through reuse ("Trusted Components"), object technology, development of formally proved software.

Below is a list of currently available projects in related areas:

The list is indicative and subject to change. If you are an ETH student and interested in one or more of these topics, please contact one of the members of the team and we'll be happy to talk to you.  

 Object-oriented libraries ("Formula-1 programming")

Library design is a demanding task but also among the most rewarding in software development, since it builds foundations for the long term. Producing a good set of library classes involves both theory (as there is no good library with a clear conceptual framework for the corresponding application domain) and careful implementation work.

Principles of library design, involving both high-level concepts and down-to-earth rules on naming, interface conventions, documentation etc., have been refined for many years in connection with the Eiffel libraries. They yield a uniform style that supports library extension and facilitate reuse.

The projects in this area include developing new libraries, based on sound theory, or extending existing libraries to support new needs. Attention to quality is of the utmost importance; in library design there is no such thing as a detail. It's Formula-1 programming: the place where the best techniques are first tried for later generalization to ordinary development.


 Proofs and formal development

It is now possible to develop industrial-size programs in a completely formal manner, to produce a result that has mathematically proved correctness properties, verified by automatic tools. (For a short introduction to the area see Ken Robinson's slides at UNSW.) Such approaches have so far been applied mostly to the development of systems, in particular for mission-critical developments such as train and car control systems, defense, aerospace. Here we are especially interested in obtaining proven components. This topic is at the same time fairly new, promising, and full of challenges.

We currently focus on the Atelier B development and proof workbench from Clearsy, which presents one of the most complete approaches, and rests on sound theory (The B Book, J-R Abrial, Cambridge University Press). We also look at other popular systems, such as the PVS prover from SRI International.


 Component validation and Design by Contract


 .NET and Web Services

We have several possible projects involving the .NET framework, ASP.NET, and applications to Web Services.

See also the .NET Contract Wizard project above. Some of the concurrency projects listed next will also involve .NET mechanisms: remoting, multithreading etc.  

 General O-O development


 Concurrency, distribution

We are starting an extensive development in the area of concurrent, multi-threaded and distributed programming, involving full-fledged application of O-O techniques. There will be a number of student projects available in connection with this development.  


In addition to projects directly related to the main themes of our work we have a few of a more general nature.

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