Linköpings universitet IDA Department of Computer and Information Sciences Ola Leifler EXAM 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 procedures. • 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, U=FX. If the ECTS grading should be missing in the Ladok entry, please contact the course secretary. 1 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? (2p) (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) 2 (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! 3