Hide menu

TDDD05 Component Based Software

Course information and literature


The course gives an introduction into methods and systems for component-based design and development. The course treats several component models (Corba, JavaBeans, EJB, COM) and modern composition systems, such as aspect-oriented programming, template metaprogramming. We will also address certain aspects of webservices and give also an introduction to the Software as a Service (SaaS) paradigm.

This course is not a programming course. The lectures present concepts of component models and composition systems.

To give a better illustration of some of these concepts and some practical training, the course has an optional lab series with programming assignments in Java Reflection, Enterprise Java Beans, and Aspect-J. The lab series can only be taken as a whole. See the lab page for more information and registration.

If each lab assignment is solved correctly and completely by its deadline, a bonus of four points will be added to the score in the written exam. Also, the successfully completed lab moment will be listed in your Ladok account. Lab attendance and bonus are only applicable to students who are properly registered on the course for the first time in 2011.

Beyond the lab series, we also suggest some additional optional programming exercises that you can do on your own, using freely accessible software tools. For these, there is no supervision, no submission, no correction and no bonus. We therefore recommend that you form small, informal working groups such that you can help each other if there should be problems.

Course literature

  • Component Software, Beyond Object-Oriented Programming, second edition, by Clemens Szyperski. Addison-Wesley, 2002. ISBN 0-201-74572-0.

    Most chapters of the Szyperski book will be covered by lectures, at least at some degree. It also serves as background reading, providing more details on some of the topics that can not be treated exhaustively in the lectures. References to the corresponding chapters will be given on the slides as appropriate. Chapters 2, 3, 18, 19, 26, 27, 28 will not be taken up. Moreover, there are some lectures (F11-18) that are not covered by the book.

Lecture material

The slide material of some of the lectures can be found in this directory.
The material may be subject to change without notice.

Other references

On general issues and foundations: On Java Reflection: On CORBA: On EJB: On SOA / Web services:
  • S. Weerawarana, F. Curbera, F. Leymann, T. Storey, D. Ferguson: Web Services Platform Architecture. Prentice Hall, 2005.

  • W3C World-Wide Web Consortium, Web services activity (for SOAP, WSDL standards)

  • Sun: Java Web Services (esp., XML processing)

  • Java & Web Services hands-on tutorial by Welf Löwe

  • OMG: BPMN

  • Orchestra Designer BPMN/BPEL open source modeling tool

  • M. Papazoglou, W. van den Heuvel: Business Process Development Life Cycle Methodology. Communications of the ACM 50(10), Oct. 2007.

  • F. Curbera: Component Contracts in Service-Oriented Architectures. IEEE Computer 40(11):74-80, Nov. 2007.

On Software Architecture:
  • M. Lindvall, D. Muthig: Bridging the Software Architecture Gap. IEEE Computer 41(6): 98-101, June 2008.

On AOP:
  • Aspect-oriented programming: Introduction. Special Issue, Communications of the ACM 44(10), October 2001.

  • G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, J. Irwin: Aspect Oriented Programming. Proc. ECOOP'97, Springer LNCS, June 1997.

  • A. Rashid et al.: Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe. IEEE Computer 43(2), Feb. 2010, pp. 19-26.

On template metaprogramming:
  • K. Czarnecki, U. Eisenecker: Generative Programming. Addison-Wesley, 2000.

On MDA:
  • A. Kleppe, J. Warmer, W. Bast: MDA Explained: The Model Driven Architecture (TM): Practice and Promise. Addison-Wesley, 2003.
    Available for students as electronic copy in Kvartersbibliotek B.

  • S. Mellor, K. Scott, A. Uhl, D. Weise: MDA Distilled. Addison-Wesley, 2004.

On parallel components:
  • H. Kuchen: A Skeleton Library. Technical report 6/02-1, Univ. Münster, Germany, 2002.
    Describes an implementation of MueSLi, a skeleton-based parallel programming system using C++ templates and functional features.

  • The Skeletal Parallelism homepage with links to relevant projects, maintained by M. Cole, U. Edinburgh


Page responsible: Peter Bunus
Last updated: 2012-02-21