nl en

Coordination and Component Composition


Admission requirements

Recommended prior knowledge

Basic knowledge of automata theory, mathematical logic and concurrency.


The advent of component based systems, service oriented architectures, and massive coarse-grain concurrency supported by multi-core platforms presents new challenges in software engineering. These trends bring forth issues involving formal models for compositional construction of software, as well as interaction protocols; connector or glue-code programming; loose inter-component coupling; dynamic reconfiguration; composition, and coordination of components by third parties. All of these issues must be satisfactorily addressed in the context of distributed concurrent systems. Traditional software construction techniques and their underlying formalisms fall short in meeting these challenges.

Course objectives

The objective of this course is to study the challenging software engineering issues involved in the design, development, analysis, and formal verification of concurrent parallel or distributed systems, component based software, service oriented architectures, and cloud computing. The students learn the shortcomings of existing techniques for construction of complex concurrent systems by composing independent pieces of functionality, and study the current frontier research that attempts to address them.


The most recent timetable can be found at the students' website.

Mode of instruction

Lectures, literature study, and presentations.

Course load

Total hours of study: 168 hrs. (= 6 EC)
Lectures: 26:00 hrs.
Self-study: 139:00 hrs.
Examination: 3:00 hrs.

Assessment method

Class projects, homework assignments, student presentations, and final exam.

Reading list

Collection of papers and book chapters assigned by lecturer.


  • You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.

Contact information

Lecturer: Farhad Arbab