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 such frameworks as examples.

The course lectures will be given in English.

Course Aims

Course Schedule and Professors

The course has 6 ECTS points (4 -- SBC and 2 for the practical part). Lectures will take place every Wednesday between 15 and 17 in the 3302 Lecture Hall.

The lectures begin on 14 October.
The course coordinator (and main professor) is Lars-Åke Fredlund although certain lectures may be given by other members of the LSIIS department.

Email address for course information: lfredlund at fi.upm.es

Examination

Students will be graded based on a practical study concerning component-based software. Students will present a seminar on a topic in component-based software (see examples below), and a 15-20 page report on the chosen topic.

Software Basado en Componentes as a part of the Master on Computational Logic (EMCL)

The course is included in various Master programmes of the Computer Science Faculty of UPM.

It is for instance included in the "European Master On Computation Logic (EMCL)" in which UPM participates together with other European Universities (Universidade Nova de Lisboa in Portugal, Technical Unversität Dresden in Germany, Universität Wien in Austria, Universitá de Bolzano in Italy). Those students who are in the "Ingeniería Superior en Informática" programme at UPM (or some of the Masters programmes) have the opportunity to obtain the title of Master from UPM (and the associated universities). For more information see the UPM web page for the masters programme.

Lectures (2008-2009)

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.

Caso práctico: Software basado en componentes)

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 common study example.

The use of a common example is meant to focus attention not on the particular example, but on the chosen development technique.

Study Example (2008): The Travel Agency

Note that the example will be changed for the 2009/2010 course; consider the below specification as an example.

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, interaces, etc.

Some key concerns:

Example frameworks and themes to explore in the practical study:

Explore component-based frameworks, such as CORBA, Erlang, WS-BPEL, Active X/OLE/COM, JavaBeans, ACE, Hector, Aglets, ...

Explore formalisms for architecture descriptions: Unicon, Rapide, Darwin, Leda, ...

Explore formal languages and tools for describing open and concurrent systems such as e.g. the pi-calculus and the mobility workbench, ...

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

Recommended Bibliography

Allen, R. y Garlan, D. (1997). A Formal Basis for Architectural Connection. ACM Trans. on Software Engineering and Methodology, 6(3):213–249.

Gamma, E., Helm, R., Johnson, R., y Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.

Johnson, R. (1997). Frameworks = (Components + Patterns). Communications of the ACM, p´ags. 39–42.

Magee, J. y Kramer, J. (1996). Dynamic Structure in Software Architectures. En Proc. of ACM FSE’96, p´ags. 3–14, San Francisco.

Meseguer, J. (1998). Formal Interoperability. En Proc. of the 1998 Conference on Mathematics in Artificial Intelligence, Florida. (http://rutcor.rutgers.edu/»amai/Proceedings.html).

B.Meyer: The Grand Challenge of Trusted Components, Proc. of the 25th Int. Conf. on SW Engineering, 2003, IEEE Computer Society

M. Shaw, D. Garlan: Software Architecture Perspectives on an Emerging Discipline. Prentice Hall, 1996.

Szyperski, C. (1998). Component Software. Beyond Object-Oriented Programming. Addison-Wesley.

Wegner, P. (1996). Interoperability. ACM Computing Surveys, 28(1):285–287.