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 for this course as

After this course, students should be able to
  1. describe technical platforms, conditions for and challenges with the development of larger, component-based software systems
  2. Describe component models and application platforms such as, for example, Enterprise Java Beans, OSGi, CORBA and Web Services
  3. Relate industrial and theoretical issues in the development of larger, component-based software systems to contemporary software development methods and techniques such as aspect-oriented programming and model-based development
  4. Analyze and critically evaluate a technical platform for component-based software development and relate its properties to Software Engineering research.
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:

[Students should be able to]:
  1. 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
  2. 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.
  3. demonstrate the capacity for teamwork and collaboration with various constellations, and
  4. 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.
  5. 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 on component-based software techniques, provide summaries of reaserch papers read, learn about techniques for building component-based software and provide a tutorial for other students on a chosen topic. 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 as well as 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 train 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 research papers, and to provide an illustration of some of these concepts in component-based software development, the course features a series of lab assignments in Java Reflection, and a component framework.

See the lab page for more information and registration.

Assessment and grading

Before each seminar, there will be an assignments for you, either related to writing papers on a selected topic, or learning hands-on about a component framework, and you will discuss the outcome of each assignment with other students.

All goals will also be assessed in the written reports that you are supposed to produce during the course, on a topic that you choose yourselves.

These are the requirements for passing UPG2:

  • Handing in summaries of papers
  • Handing in Lab 1 report
  • Handing in Lab 2 report
  • Participating in a tutorial session on component technologies at the end of the course and handing in the report from lab 3.

These are the requirements for passing UPG3:

  • Submission of a draft report
  • Assessments of draft reports
  • Final submission of reports. Your final grade in the course will be determined by this submission.

Course organization

The course consists of:
  • 4 lectures that will include an introduction to the course and a general overview of each of the four domains targeted in the course
  • 5 seminars during which we will discuss papers, lab results and provide feedback
  • 10 lab sessions for hands-on experience with some of the techniques relevant to building component-based software

Attendance at seminars is mandatory.

See the timetable for more detailed information on the course timetable.

Page responsible: Lena Buffoni
Last updated: 2016-04-03