Analyzing Impact of Dependency Injection on Software Maintainability

05/12/2022
by   Peter Sun, et al.
0

Dependency injection (DI) is generally known to improve maintainability by keeping application classes separate from the library. Particularly within the Java environment, there are many applications using the principles of DI with the aim to improve maintainability. There exists some work that provides an inference on the impact of DI on maintainability, but no conclusive evidence is provided. The fact that there are no publicly available tools for quantifying DI makes such an evidence more difficult to be produced. In this paper, we propose a novel metric, DCBO, to measure the proportion of DI in a project based on weighted couplings. We describe how DCBO can serve as a more meaningful metric in computing maintainability when DI is also considered. The metric is implemented in the CKJM-Analyzer, an extension of the CKJM tool that utilizes static code analysis to detect DI. We discuss the algorithmic approach behind the static analysis and prove the soundness of the tool using a set of open-source Java projects.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/16/2023

Automatic Specialization of Third-Party Java Dependencies

Modern software systems rely on a multitude of third-party dependencies....
research
09/09/2021

Cataloging Dependency Injection Anti-Patterns in Software Systems

Context: Dependency Injection (DI) is a commonly applied mechanism to de...
research
12/04/2017

A Quantitative Study of Java Software Buildability

Researchers, students and practitioners often encounter a situation when...
research
09/02/2020

Java Cryptography Uses in the Wild

[Background] Previous research has shown that developers commonly misuse...
research
06/03/2019

Static Code Analysis of Multilanguage Software Systems

Identifying dependency call graphs of multilanguage software systems usi...
research
09/24/2021

Can We Trust Tests To Automate Dependency Updates? A Case Study of Java Projects

Developers are increasingly using services such as Dependabot to automat...
research
10/27/2021

Stubbifier: Debloating Dynamic Server-Side JavaScript Applications

JavaScript is an increasingly popular language for server-side developme...

Please sign up or login with your details

Forgot password? Click here to reset