Towards Anticipation of Architectural Smells using Link Prediction Techniques

08/20/2018
by   J. Andrés Díaz-Pace, et al.
0

Software systems naturally evolve, and this evolution often brings design problems that cause system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies among modules. The early detection of these smells is important for developers, because they can plan ahead for maintenance or refactoring efforts, thus preventing system degradation. Existing tools for identifying architectural smells can detect the smells once they exist in the source code. This means that their undesired dependencies are already created. In this work, we explore a forward-looking approach that is able to infer groups of likely module dependencies that can anticipate architectural smells in a future system version. Our approach considers the current module structure as a network, along with information from previous versions, and applies link prediction techniques (from the field of social network analysis). In particular, we focus on dependency-related smells, such as Cyclic Dependency and Hublike Dependency, which fit well with the link prediction model. An initial evaluation with two open-source projects shows that, under certain considerations, the predictions of our approach are satisfactory. Furthermore, the approach can be extended to other types of dependency-based smells or metrics.

READ FULL TEXT

page 14

page 15

page 16

research
08/08/2018

Can Network Analysis Techniques help to Predict Design Dependencies? An Initial Study

The degree of dependencies among the modules of a software system is a k...
research
02/12/2022

Revisiting the Impact of Dependency Network Metrics on Software Defect Prediction

Software dependency network metrics extracted from the dependency graph ...
research
11/07/2021

High-order joint embedding for multi-level link prediction

Link prediction infers potential links from observed networks, and is on...
research
05/29/2021

A Longitudinal Analysis of Bloated Java Dependencies

We study the evolution and impact of bloated dependencies in a single so...
research
09/01/2018

Attack Tolerance of Link Prediction Algorithms: How to Hide Your Relations in a Social Network

Link prediction is one of the fundamental research problems in network a...
research
11/15/2016

The NOESIS Network-Oriented Exploration, Simulation, and Induction System

Network data mining has become an important area of study due to the lar...
research
12/29/2022

Cross Version Defect Prediction with Class Dependency Embeddings

Software Defect Prediction aims at predicting which software modules are...

Please sign up or login with your details

Forgot password? Click here to reset