EXAM TDDD05 Component-based Software 2014-10-23, 14:00–18:00 Hjälpmedel / Admitted material:

Linköpings universitet
IDA Department of Computer and Information Sciences
Ola Leifler
TDDD05 Component-based Software
2014-10-23, 14:00–18:00
Examinator: Ola Leifler
Jour: Ola Leifler (070-1739387), visiting ca. 15:00
Hjälpmedel / Admitted material:
Engelsk ordbok / Dictionary from English to your native language
General instructions
• This exam has 6 assignments and 3 pages, including this one.
• Please use a new sheet of paper for each assignment (1-6).
When you are done, please sort all your pages by assignment numbers, and
number them consecutively.
• Justify clearly all statements and reasoning. Explain calculations and solution
• Be precise in your statements. Unprecise formulations may lead to a reduction
of points.
• Write clearly. Unreadable text will be ignored.
• You may answer in either English or Swedish.
• Grading: U, 3, 4, 5. The preliminary threshold for passing (grade 3) is 50% of
the total number of points.
Where required, ECTS grades will be set by the LiU administration according
to the LiU guideline for direct translation from Swedish grades: 5=A, 4=B, 3=C,
If the ECTS grading should be missing in the Ladok entry, please contact the
course secretary.
1. (6 p.) Object-oriented programming concepts and component systems
(a) Explain the problems that affect independent vendors who implement components as subclasses in larger component frameworks.
Refer to the course literature when answering the question. (2p)
(b) What are the main empirically justified reasons for writing software
with reusable components? (3p)
(c) Explain why you would want to allow covariance in overloaded methods’ parameters. (1p)
2. (6 p.) Metaprogramming
(a) What is a dynamic base-level metaprogram? Explain the concept and
give an example. (2p)
(b) How are annotations in Java processed, and how can annotations be
used to provide information about classes and instances at runtime?
(c) What is a dynamic proxy, and what metaprogramming language features (in C# or other languages) allows for the creation of such dynamic proxies? (2p)
3. (6 p.) Component models
(a) How can you use an OSGi bundle (component) from another bundle? In your answer, explain the general OSGi concepts, and provide
a concrete example of a OSGi bundle that provides a service, and
another bundle that uses the service. (3p)
(b) According to the course literature, can JavaBeans be considered a
composable object model? Justify your answer. (1p)
(c) Describe the ”Root POA” in CORBA in the context of an example where there are several POA:s. (2p)
4. (6 p.) Messaging systems and Web Services
(a) In which contexts should Web Services be considered, and what would
be the reasons for rejecting Web Services as a means of integrating
components? (2p)
(b) What is the advantage of Messaging as opposed to Remote Method
Invocation according to Fowler? (2p)
(c) Describe BPEL. (2p)
5. (6 p.) Application frameworks and AspectJ
(a) What are the potential pitfalls of using AspectJ in industry, according
to Rashid et al? (1p)
(b) What is an advice in aspect-oriented programming? Give a general
definition and a code example using AspectJ. (2p)
(c) Enumerate three methods the Spring application framework uses for
resolving bean dependencies. (3p)
6. (6 p.) Software Architectures and perspectives
(a) When would the use of MDE be recommended? Give concrete examples. (2p)
(b) What was the main focus of papers published during the first 15
years of the CBSE symposium? (2p)
(c) What are the essential parts of an ADL according to the course literature? (2p)
Lab bonus: The optional Ladok moment for the timely completed optional lab
series has already been reported at the time of the exam where applicable. If
applicable, your exam score will be automatically increased with up to 6 lab
bonus points.
Good luck!