Hide menu

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 Study Guide describes the goals (emphasis added) for this course as
Students should be able to list methods and systems for component-based design and development. Students should be able to describe component models such as Corba, JavaBeans, EJB, COM. Students should be able to exemplify and describe SOA-based systems. Students should be able to apply techniques for modern software composition techniques such as metaprogramming, generative programming, aspect-oriented programming and cloud computing.
These goals are specific goals derived from the general goals stated in the Higher Education Ordinance Annex of Qualifications contains the following excerpts on the requirements of a student who receives the degree of Master of Science in Engineering:
demonstrate knowledge of the disciplinary foundation of and proven experience in his or her chosen field of technology as well as insight into current research and development work, and
demonstrate both broad knowledge of his or her chosen field of technology, including knowledge of mathematics and the natural sciences, as well as a considerable degree of specialised knowledge in certain areas of the field.
demonstrate the capacity for teamwork and collaboration with various constellations, and
demonstrate the ability to present his or her conclusions and the knowledge and arguments on which they are based in speech and writing to different audiences in both national and international contexts.
demonstrate the ability to create, analyse and critically evaluate various technological solutions

Course description

The emphasis in this course is on reading and viewing material, answering questions and provide summaries of papers read, and only perform minor lab assignments in some of the technical areas covered by the course. The justification for this organization of the course is that the topic of component-based design, and software architectures, is a topic that will require you to reason about larger systems and methods for building them, using knowledge from research papers rather than the limited hands-on experiences you would gain by performing lab work. It is assumed that you have some proficiency in reading scientific papers in the area of software engineering, and you will use that ability extensively in this course. It is imperative that you train yourselves in understanding contemporary research in software engineering in preparation for your thesis projects, and the area of component-based software development is a recent research area that lends itself particularly well to this type of course.

However, as a complement to reading papers, and to provide an illustration of some of these concepts in component-based software development, the course has a lab series with programming assignments in Java Reflection, and a component framework.

See the lab page for more information and registration.

For each lab assignment that is solved correctly and completely by its deadline, bonus points will be added to the score in the written exam. Also, the successfully completed lab assignment 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.

Course organization

The course has an introductory lecture, but is apart from that organized around a set of seminars at which you will discuss suggested solutions to a number of questions on the topics of the course. For hands-on experience with some of the techniques relevant to building component-based software, the course also features a number of lab sessions. Apart from this, you are encouraged to ask for assistance if you require to help you preparing for the seminars. We will be able to arrange informal meetings or meetings in the whole class if you so wish.

Page responsible: Ola Leifler
Last updated: 2014-03-14