Logical dependencies: extraction from the versioning system and usage in key classes detection

Adelina Diana Stana1 and Ioana Şora1

  1. Politehnica University, Piaţa Victoriei Nr. 2
    300006 Timişoara, jud. Timiş, România
    stana.adelina.diana@gmail.com; ioana.sora@cs.upt.ro

Abstract

The version control system of every software product can provide important information about how the system is connected. In this study, we first propose a language-independent method to collect and filter dependencies from the version control, and second, we use the results obtained in the first step to identify key classes from three software systems. To identify the key classes, we are using the dependencies extracted from the version control system together with dependencies from the source code, and also separate. Based on the results obtained we can say that compared with the results obtained by using only dependencies extracted from code, the mix between both types of dependencies provides small improvements. And, by using only dependencies from the version control system, we obtained results that did not surpass the results previously mentioned, but are still acceptable. We still consider this an important result because this might open an important opportunity for software systems that use dynamically typed languages such as JavaScript, Objective-C, Python, and Ruby, or systems that use multiple languages. These types of systems, for which the code dependencies are harder to obtain, can use the dependencies extracted from the version control to gain better knowledge about the system.

Key words

logical dependencies; logical coupling; mining software repositories; versioning system; key classes; co-changing entities; software evolution

Digital Object Identifier (DOI)

https://doi.org/10.2298/CSIS220518025S

How to cite

Stana, A. D., Şora, I.: Logical dependencies: extraction from the versioning system and usage in key classes detection. Computer Science and Information Systems, https://doi.org/10.2298/CSIS220518025S