TDDD05 Component-Based Software
Course information and literature
The course gives an introduction into theory, methods and systems for component-based design and development.
GoalThe Study Guide describes the goals for this course as
After this course, students should be able to
- describe technical platforms, conditions for and challenges with the development of larger, component-based software systems
- Describe component models and application platforms such as, for example, Enterprise Java Beans, OSGi, CORBA and Web Services
- 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
- Analyze and critically evaluate a technical platform for component-based software development and relate its properties to Software Engineering research.
[Students should be able to]:
- 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
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 report, v. 1
- Assessments of reports, v. 1
- Submission of report, v. 2
- Assessments of reports, v. 2
- Final submission of reports. Your final grade in the course will be determined by this submission.
Course organizationThe course features an introductory lecture and a lesson, but is mostly organized around a set of seminars at which you will discuss lab results and paper feedback. For hands-on experience with some of the techniques relevant to building component-based software, the course features a number of lab sessions. There will be office hours weekly for questions related to the course. See the timetable for more detailed information on this.
Page responsible: Ola Leifler
Last updated: 2015-03-24