2010 14th European Conference on Software Maintenance and Reengineering (2010)
Mar. 15, 2010 to Mar. 18, 2010
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/CSMR.2010.45
Dependency injection is a recent programming mechanism reducing dependencies among components by delegating them to an external entity, called a dependency injection framework. An increasingly popular approach to dependency injection implementation relies upon using Java annotations, a special form of syntactic metadata provided by the dependency injection frameworks. However, uncontrolled use of annotations may lead to potential violations of well-known modularity principles. In this paper we catalogue “bad smells”, i.e., modularity-violating annotations defined by the developer or originating from the popular dependency injection frameworks. For each violation we discuss potential implications and propose means of resolving it. By detecting modularity bad smells in Java annotations our approach closes the gap between the state-of-the-art programming practice and currently available analysis techniques.
dependency injection, modularity, Java annotations, coding smells, configuration
M. van den Brand, A. Serebrenik and S. Roubtsov, "Detecting Modularity "Smells" in Dependencies Injected with Java Annotations," 2010 14th European Conference on Software Maintenance and Reengineering(CSMR), Madrid, Spain, 2010, pp. 244-247.