Distributed Software Engineering Laboratory

Peter Kolb, Bertrand Meyer, Martin Nordio, Fall 2013


Course description

252-0273-01L Distributed Software Engineering Laboratory

Web page at the computer science department: 252-0273-01L

Student article about the laboratory in VIS Visionen (student magazine).

Information about the laboratory as a reserach project.

A remarkable phenomenon is affecting the software development scene: the massive transfer of developments to countries such as India and Russia offering highly qualified manpower at rock-bottom salaries. The outsourcing business is already in the hundreds of billions of dollars, causes employment fears among Western programmers, and has consequences on just about every aspect of software development (including education). Offshoring also serves as a magnifier of most of the issues of software engineering, including for example requirements analysis and quality control.

This course explores the offshoring phenomenon from a technical software engineering perspective, providing a set of guidelines for making outsourced projects succeed, through both management approaches (in particular the CMMI) and technical solutions in areas of requirements, specification, design, documentation and quality control. The presentation is based on experience of outsourcing at ABB and other companies.

The participants will take part in a case study exploring techniques for making an offshored project succeed (or recover from problems).

This course provides students with a clear view of the offshore software development phenomenon, enabling them to participate successfully in projects outsourced partially or totally, and also helping them define their own career strategies in the context of outsourcing's continued growth.

A Distributed Project

The course project will be in collaboration with other universities. Preliminary partners are:


Course books

Further reading

About Software engineering: About Requirements engineering: About Design patterns:


Day Time Room
Tuesday (exercise) 09:00-10:00 and 12:00-13:00 RZ F 21
Tuesday (lecture) 10:00-12:00 RZ F 21


In this course, gloablly distributed teams will implement board and card games using Eiffel.

The project will be managed using Github.

All content is located at https://github.com/DOSE-ETH/dose2013. It is a private repository that you can only access once we have added you as a member.


Date Lecture Title Video Slides Readings
17.09.2013 1 Distributed Software Engineering Laboratory PDF Overview article:
The Unspoken Revolution in Software Engineering Bertrand Meyer, 2006
Design and code reviews in the age of the internet Bertrand Meyer, 2008
24.09.2013 2 Introduction same as last week
01.10.2013 3 Requirements Engineering PDF On Formalism in Specifications
08.10.2013 4 Requirements exercise (Martin Nordio)   none  
15.10.2013 5 Requirements Engineering same as week 3 IEEE 830 (accessible through ETH network)
22.10.2013 6 Preparation for Outsourcing PDF
29.10.2013 7 Introduction to CMMI PDF CMMI for Development, Version 1.3
05.11.2013 8 CMMI -- Process Areas and Generic Practices PDF (same as last week) CMMI for Development, Version 1.3
12.11.2013 9 Agile Software Development PDF
19.11.2013 9 CMMI exercise: Processes and Practices Exercise
26.11.2013 10 CMMI -- Process Areas and Generic Practices II PDF (same as before)
03.12.2013 11 Agile Software Development II PDF (same as before)
10.12.2013 12 Risk Management PDF
17.12.2013 13 Final presentation (starting at 09.15am)

Exercise Material

Date Title Slides
24.09.2013 Communication exercise PDF
01.10.2013 Introduction to Git
08.10.2013 Introduction to Eiffel - Part 1 Link to PDF
15.10.2013 Introduction to Eiffel - Part 2 same as last week
22.10.2013 Introduction to Eiffel - Part 3 same as last 2 weeks
29.10.2013 Discussion of project progress
05.11.2013 Introduction to Eiffel - Tuples and Agents same as in previous weeks
12.11.2013 Discussion of project progress
19.11.2013 Using Agile practices
26.11.2013 Discussion of project progress
03.12.2013 Code presentation and discussion
10.12.2013 Presentation of prototypes


Assistant Office Phone Language
Christian Estler RZ J8 044 632 76 84 German / English
Julian Tschannen RZ J3 044 632 44 49 German / English


Assignments for Developers

Title Deadline
Assignment 1: Setup 24.09.2013
Assignment 2: Requirements Consolidation 27.10.2013
Assignment 3: API Design 07.11.2013
Assignment 4: Testing and API Consolidation 13.11.2013
Assignment 5: Implementation 13.12.2013

Assignments for Requirements Engineers (only Australia & Brazil)

Title Deadline
Assignment 0: Setup 03.09.2013
Assignment 1: Requirements Document 01.10.2013
Assignment 2: Requirements Consolidation 27.10.2013
Assignment 3: Acceptance Test Plan 07.11.2013