Hierarchical clustering for software architecture recovery

O Maqbool, H Babri - IEEE Transactions on Software …, 2007 - ieeexplore.ieee.org
Gaining an architectural level understanding of a software system is important for many
reasons. When the description of a system's architecture does not exist, attempts must be …

Architecture reconstruction: Tutorial on reverse engineering to the architectural level

R Koschke - International Summer School on Software Engineering, 2006 - Springer
Software architectures are described by different views which depend upon the concerns of
the respective stakeholders. Far too often, software architectures are not documented …

Reverse engineering of object oriented code

P Tonella - Proceedings of the 27th international conference on …, 2005 - dl.acm.org
During software evolution, programmers devote most of their effort to the understanding of
the structure and behavior of the system. For Object-Oriented code, this might be particularly …

The weighted combined algorithm: A linkage algorithm for software clustering

O Maqbool, HA Babri - Eighth European Conference on …, 2004 - ieeexplore.ieee.org
Software systems need to evolve as business requirements, technology and environment
change. As software is modified to accommodate the required changes, its structure …

A graph-based clustering algorithm for software systems modularization

B Pourasghar, H Izadkhah, A Isazadeh… - Information and Software …, 2021 - Elsevier
Context: Clustering algorithms, as a modularization technique, are used to modularize a
program aiming to understand large software systems as well as software refactoring. These …

Learning-theoretic foundations of algorithm configuration for combinatorial partitioning problems

MF Balcan, V Nagarajan, E Vitercik… - … on Learning Theory, 2017 - proceedings.mlr.press
Max-cut, clustering, and many other partitioning problems that are of significant importance
to machine learning and other scientific fields are NP-hard, a reality that has motivated …

Extending the reflexion method for consolidating software variants into product lines

R Koschke, P Frenzel, APJ Breu, K Angstmann - Software Quality Journal, 2009 - Springer
Software variants emerge from ad-hoc copying in-the-large with adaptations to a specific
context. As the number of variants increases, maintaining such software variants becomes …

Software clustering using dynamic analysis and static dependencies

C Patel, A Hamou-Lhadj, J Rilling - 2009 13th European …, 2009 - ieeexplore.ieee.org
Decomposing a software system into smaller, more manageable clusters is a common
approach to support the comprehension of large systems. In recent years, researchers have …

Multi-objective search-based software modularization: structural and non-structural features

N Sadat Jalali, H Izadkhah, S Lotfi - Soft Computing, 2019 - Springer
Software modularization techniques are employed to understand a software system. The
purpose of modularization is to decompose a software system from a source code into …

Cooperative clustering for software modularization

R Naseem, O Maqbool, S Muhammad - Journal of Systems and Software, 2013 - Elsevier
Clustering is a useful technique to group data entities. Many different algorithms have been
proposed for software clustering. To combine the strengths of various algorithms …