TDDD05 Component Based Software
Course information and literature
The course gives an introduction into theory, methods and systems for component-based design and development. The course treats several component models (CORBA, JavaBeans, EJB) and modern composition systems, such as aspect-oriented programming, template metaprogramming and invasive software composition. We will also address certain aspects of webservices and give also an introduction to model-driven development.
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 2013.
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.
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.
The slide material of some of the lectures can be found
in this directory.
The material may be subject to change without notice.
Other referencesOn general issues and foundations:
G. Beneken et al.: Componentware - State of the Art 2003. Background paper for the Understanding Components Workshop of the CUE initiative. Venice, October 2003.
K. Lau, Z. Wang: Software Component Models.
IEEE Trans. Softw. Eng. 33(10), Oct. 2007.
J. Bishop, N. Horspool: Cross-Platform Development: Software that Lasts. IEEE Computer 39(10): 26-35, Oct. 2006.
L. Baresi, E. Di Nitto, C. Ghezzi: Toward Open-World Software: Issue and Challenges. IEEE Computer 39(10): 36-43, Oct. 2006.
OMG homepage. Material on CORBA, UML, MDA.
SUN Microsystems Inc.: Java Reflection Tutorial, 2006.
On the IDA Solaris systems, man idlj shows how to use CORBA in the Java JDK (1.4 and later, assuming that a Java module was loaded).
F. Bolton: Pure Corba. Sams Publishing, 2001.
With code examples in both C++ and Java.
M. Aleksy, A. Korthaus, M. Schader: Implementing distributed systems with Java and CORBA. Springer, 2005.
CORBA special issue in Comm. ACM 41(10), Oct. 1998. (restricted access)
M. Henning: The Rise and Fall of CORBA. (Viewpoint article). ACM Queue 4(5), 2006.
E. Roman, R. P. Sriganesh, G. Brose: Mastering Enterprise JavaBeans, 3rd edition, for EJB 2.1 (Wiley, 2005) or
R. P. Sriganesh, G. Brose, M. Silverman: Mastering Enterprise JavaBeans 3.0 4th edition, for EJB 3.0 (Wiley, 2006)
JBoss, Open source EJB Container
- S. Weerawarana, F. Curbera, F. Leymann, T. Storey, D. Ferguson: Web Services Platform Architecture. Prentice Hall, 2005.
Sun: Java Web Services (esp., XML processing)
Java & Web Services hands-on tutorial by Welf Löwe
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.
M. Lindvall, D. Muthig: Bridging the Software Architecture Gap. IEEE Computer 41(6): 98-101, June 2008.
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.
K. Czarnecki, U. Eisenecker: Generative Programming. Addison-Wesley, 2000.
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.
Page responsible: Christoph Kessler
Last updated: 2013-04-19