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 components. 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 incompatibilities 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 efforts towards a solution for enabling compositions entailing 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