Distributed and Outsourced Software Engineering

Peter Kolb, Bertrand Meyer, Martin Nordio, Fall 2012



03.12.2012 — The slides for the lecuters "Requirements", "Outsourcing" and "Agile" have been updated.

21.11.2012Assignment 5 has been added.

21.11.2012Risk Management slides are available.

14.11.2012Assignment 4 has been added.

07.11.2012Design by Contract material from this week's exercise has been added.

24.10.2012Assignment 3 has been added.

23.10.2012Lecture and exercise material from this week's course has been added.

22.10.2012Assignment 2 has been added.

11.10.2012Assignment 1 has been added.

11.10.2012 — Slides from the exercise Introduction to Eiffel - Part 2 and the lectutre on requirements are available.

03.10.2012 — Slides from the exercise Introduction to Eiffel - Part 1 are available.

01.10.2012 — The slides for the third lecture are available.

25.09.2012 — The exercises will now always start at 9am unless we announce otherwise.

24.09.2012 — The slides for the second lecture are available.

24.09.2012 — The exercise session on Tue. Sept. 25th will start at 9.15 am.

18.09.2012 — The video of today's introduction lecture is available on Youtube.

18.09.2012Assignment 0 has been added.

17.09.2012 — Lecture slides of the first lecture are now available.

13.09.2012 — There will be no exercise in the first week of the semester. Exercises will start on Tuesday, Sept. 25th.

25.06.2012 — The web page was created. See also last year's page.

Course description

252-0273-01L Distributed and Outsourced Software Engineering

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

Article about the course

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 patterns:


Day Time Room
Tuesday (exercise) 09:00-10:00 (starting Sept. 25th) IFW A 32.1
Tuesday (lecture) 10:00-12:00 (starting Sept. 18th) IFW A 32.1


The project will be managed using Github.

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

Project Deadlines

The project deadlines are available in the Github wiki.



Date Lecture Title Video Slides Readings
17.09.2012 1 Introduction to Distributed and Outsourced Software Engineering 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
25.09.2012 2 Preparation for Software Outsourcing and Offshoring   PDF  
02.10.2012 3 CMMI - The CMMI Model PDF CMMI for Development, Version 1.2, August 2006.
09.10.2012 4 Requirements Engineering PDF On Formalism in Specifications
16.10.2012 5 Requirements Engineering II PDF (same as 09.10)  
23.10.2012 6 CMMI -- Process Areas and Generic Practices PDF (same as 02.10) CMMI for Development, Version 1.2, August 2006.
30.10.2012 7 Discussion of CMMI and CMMI Exercise
06.11.2012 8 CMMI -- Process Areas and Generic Practices II PDF (same as 02.10)
13.11.2012 9 Outsourcing PDF
20.11.2012 10 Risk Management PDF FMEA
27.11.2012 10 Agile Software Development PDF

Exercise Material

Date Title Slides
25.09.2012 Communication, Communication, Communication PDF
02.10.2012 Introduction to Eiffel - Part 1 PDF
09.10.2012 Introduction to Eiffel - Part 2 PDF
16.10.2012 Discussion of Assignment 1
23.10.2012 Introduction to Eiffel - Tuples and Agents PDF
30.10.2012 EiffelStudio - the Eiffel IDE PDF
06.11.2012 Design by Contract PDF
13.11.2012 AutoTest PDF
20.11.2012 Open discussion on project progress
27.11.2012 --


Assistant Office Phone Language
Christian Estler RZ J8 044 632 76 84 German / English


Title Deadline
Assignment 0: Setup 02.10.2012
Assignment 1: Scope Document 17.10.2012
Assignment 2: Requirements 31.10.2012
Assignment 3: API Design 14.11.2012
Assignment 4: Testing and API Consolidation 21.11.2012
Assignment 5: Implementation 18.12.2012

Valid XHTML 1.0 Strict