University of Twente Student Theses


An adapter-aware, non-intrusive dependency injection framework for Java

Roemers, Arnout (2013) An adapter-aware, non-intrusive dependency injection framework for Java.

[img] PDF
Abstract:Contemporary software systems are constructed by composing different software com- ponents. In strongly typed Object-Oriented Programming languages, it is common to encounter type incompatibilities between separately developed software components one desires to compose. Using the Adapter pattern to overcome these type incompat- ibilities is only an option if changing the source code of the software components is feasable, as references from objects to other objects are oftentimes hard-coded. The concept of Dependency Injection (DI) is aimed at mitigating the issue of hard-coded references. However, current implementations of DI are intrusive in ways that com- ponent developers need to foresee future use cases. As it is impossible to foresee all future use cases, composing type incompatible components remains difficult. This thesis presents our e�orts towards a solution for enabling compositions entail- ing unforeseen use, without changing any source code. This is achieved by combining the Adapter pattern and DI in a certain way. Our solution increases reuse and loose coupling in a non-intrusive way for newly developed components, but also for (legacy) components that were not developed with certain reuse in mind. Our research com- prises a validation of our solution concerning above composition problems, and the discovery of limitations and future improvements. This was done by defining and evaluating goals and requirements and by implementing a proof-of-concept of our con- ceptual solution. Using this proof-of-concept implementation, the validation includes a comparison with other (semi-)solutions and an evaluation of how it would be applied to real-world projects. The validation shows that in many situations our solution indeed solves above composition problems.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:54 computer science
Programme:Computer Science MSc (60300)
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page