Course Description

The continuous advances in programming technology is changing the way in which applications are developed. A particularly important trend is the widespread emergence of open and distributed systems, running on top of global networks (internet). This has caused, for instance, a change in focus for programming language research, since existing frameworks have proven difficult to adapt to the complex and heterogeneous environments of such open distributed systems.

New programming paradigms, such as e.g. coordination, component-oriented programming, mobility have as a result started appearing to attempt to address the shortcomings of classical program development methods. Important trends are a focus on interface specification, on defining services independent on any execution environment hosting the service.

One focus of programming language research is known as Development of Component Based Software (DSBC), which is an attempt to define the basis for the design and development of distributed applications based on reusable software components.

Given the wealth of proposals for such component based frameworks, the course will focus on a few representative frameworks as examples.

The course lectures will be given in English.

Course Aims

Course Schedule and Professors

The lectures begin on September 21.

Lectures will take place every Wednesday at 15.00 in the 6602 Lecture Hall, with a duration of two hours.
The course coordinator (and main professor) is Lars-Åke Fredlund, however certain lectures may be given by other members of the LSIIS department.

To communicate with the course coordinator send an email to lfredlund at; there is also a course web page where course information will be published.

The course has 4 ECTS points.


Students will be graded based on an in-depth study and evaluation of a particular framework for component-based software design or development. Students will present a seminar on their chosen topic, and write a report containing approximately 15-20 pages.


The lecture notes used in the course are in English, and are made available to the students on this web page (after each lecture). Note that the sequence in which the lecture notes are given below does not necessarily coincide with the order in which the lectures are presented.

Practical Study

The practical study consists of studying in detail one of the aspects of component based development introduced in the class, and apply it to the development of a study example.

The choice of an example to study can be made freely. During previous courses we have used as examples a travel agency booking system, and an online auction system as examples. Both these examples can be chosen again this year.

More information regarding the practical study

Some written notes regarding the practical study can be found here


Study Example: The Travel Agency

The travel agency sells "travel packages" to customers. A travel package contains a set of travel items, which can typically be:

A user of the travel agency submit booking requests for travel packages; such by necessity have only partial information. For example: requests for airplane tickets typically have no airline specified, time information is partial ("wish to travel in the morning")

Interactions simplified:

This general problem description can be extended to treat additional themes such as the introduction of time and timing deadlines, interfaces, etc.

Some key concerns:

Study Example: The online auction system

The auction system sells items to the highest bidder. In the the auctions participate bidders, and each auction is moderated by an (auction) agent. At the start of each auction, the auction agent informs the potential bidders about the characteristics of the item to be sold, and the starting price. During the auction process, bidders may enter and exit the auction system, always informing the auction agent of that fact.

The auction agent receives the bids of the bidders. Each bid is either accepted or rejected, depending on the price offered. The decision (reject or accept) is communicated to the bidder. If a bid is accepted, the new (highest) price is communicated to all bidders.

When a bidder is informed of a new price, he/she may make a new bid, wait (do nothing), or leave the auction.

The auction finishes by awarding the item to the bidder who has provided the bid of the highest value. The auction agent informs all bidders of the result of the auction. Thereafter a new auction (for a new item) may begin.

This general process description can (should) be extended to new additional themes such as the inclusion of time (deadlines for bids), bidder strategies, interface descriptions, etc.

Example frameworks and themes to explore in the practical study:

The student may choose alternative areas of study, after consultation with the professors of the course.

Component Based Software as a part of master degree programmes

The course is included in various Master programmes of the Computer Science Faculty of UPM, including the European Master on Software Engineering (EMSE).