Refactoring Software Packages via Community Detection from Stability Point of View

11/26/2018
by   Mohammad Raji, et al.
0

As the complexity and size of software projects increases in real-world environments, maintaining and creating maintainable and dependable code becomes harder and more costly. Refactoring is considered as a method for enhancing the internal structure of code for improving many software properties such as maintainability. In this thesis, the subject of refactoring software packages using community detection algorithms is discussed, with a focus on the notion of package stability. The proposed algorithm starts by extracting a package dependency network from Java byte code and a community detection algorithm is used to find possible changes in package structures. In this work, the reasons for the importance of considering dependency directions while modeling package dependencies with graphs are also discussed, and a proof for the relationship between package stability and the modularity of package dependency graphs is presented that shows how modularity is in favor of package stability. For evaluating the proposed algorithm, a tool for live analysis of software packages is implemented, and two software systems are tested. Results show that modeling package dependencies with directed graphs and applying the presented refactoring method, leads to a higher increase in package stability than undirected graph modeling approaches that have been studied in the literature.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/11/2016

Package equivalence in complex software network

The public package registry npm is one of the biggest software registry....
research
03/08/2023

PyGenStability: Multiscale community detection with generalized Markov Stability

We present PyGenStability, a general-use Python software package that pr...
research
12/03/2018

On the Relationship Between Modularity and Stability in Software Packages

Modular and well-written software is an ideal that programmers strive to...
research
08/20/2019

Preserving Command Line Workflow for a Package Management System using ASCII DAG Visualization

Package managers provide ease of access to applications by removing the ...
research
06/28/2023

Characterizing Deep Learning Package Supply Chains in PyPI: Domains, Clusters, and Disengagement

Deep learning (DL) package supply chains (SCs) are critical for DL frame...
research
03/03/2022

License Incompatibilities in Software Ecosystems

Contemporary software is characterized by reuse of components that are d...
research
12/06/2022

intensitynet: Intensity-based Analysis of Spatial Point Patterns Occurring on Complex Networks Structures in R

The statistical analysis of structured spatial point process data where ...

Please sign up or login with your details

Forgot password? Click here to reset