Toward a design environment for recovering and maintaining the structure of software systems
ACM SIGSOFT Software Engineering Notes
Search based reverse engineering
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Recovering High-Level Structure of Software Systems Using a Minimum Description Length Principle
AICS '02 Proceedings of the 13th Irish International Conference on Artificial Intelligence and Cognitive Science
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
An empirical study of the robustness of two module clustering fitness functions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Search-based improvement of subsystem decompositions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
A technique for automatic component extraction from object-oriented programs by refactoring
Science of Computer Programming - Special issue on new software composition concepts
IEEE Transactions on Software Engineering
Spectral and meta-heuristic algorithms for software clustering
Journal of Systems and Software - Special issue: Software reverse engineering
A language-independent software renovation framework
Journal of Systems and Software - Special issue: Software reverse engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Revisiting the ΔIC approach to component recovery
Science of Computer Programming - Software analysis, evolution and re-engineering
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Efficient allocation of distributed object-oriented tasks to a pre-defined scheduled system
International Journal of Computers and Applications
Software project management with GAs
Information Sciences: an International Journal
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
Getting the most from search-based refactoring
Proceedings of the 9th annual conference on Genetic and evolutionary computation
The multi-objective next release problem
Proceedings of the 9th annual conference on Genetic and evolutionary computation
A search-based approach for dynamically re-packaging downloadable applications
CASCON '07 Proceedings of the 2007 conference of the center for advanced studies on Collaborative research
Search-based refactoring for software maintenance
Journal of Systems and Software
A modified genetic algorithm for software clustering problem
AIC'06 Proceedings of the 6th WSEAS International Conference on Applied Informatics and Communications
Performance-based modeling and restructuring of object oriented software for pipeline architecture
Journal of Computational Methods in Sciences and Engineering - Selected papers from the International Conference on Computer Science, Software Engineering, Information Technology, e-Business, and Applications, 2004
Search-based refactoring: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Search Based Software Engineering [SBSE]
A study of project selection and feature weighting for analogy based software cost estimation
Journal of Systems and Software
Automated Design Improvement by Example
Proceedings of the 2007 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the sixth SoMeT_07
Finding building blocks for software clustering
GECCO'03 Proceedings of the 2003 international conference on Genetic and evolutionary computation: PartII
An approach for architectural layer recovery
Proceedings of the 2010 ACM Symposium on Applied Computing
Journal of Systems and Software
Journal of Software Maintenance and Evolution: Research and Practice
Software packaging approaches: a comparison framework
ECSA'11 Proceedings of the 5th European conference on Software architecture
Search based software engineering
ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part IV
Survey: A survey on search-based software design
Computer Science Review
An analysis of the effects of composite objectives in multiobjective software module clustering
Proceedings of the 14th annual conference on Genetic and evolutionary computation
Clustering methodologies for software engineering
Advances in Software Engineering
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Advances in evolutionary multi-objective optimization
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Evaluating the importance of randomness in search-based software engineering
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Putting the developer in-the-loop: an interactive GA for software re-modularization
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Mixed-Integer Linear Programming Formulations for the Software Clustering Problem
Computational Optimization and Applications
Cooperative clustering for software modularization
Journal of Systems and Software
Efficient software clustering technique using an adaptive and preventive dendrogram cutting approach
Information and Software Technology
Hi-index | 0.00 |
Large software systems tend to have a rich, complex structure. This structure is typically represented as a directed graph, which we call a module dependency graph (MDG). In MDGs, source-level components and their inter-relationships are represented as nodes and directed edges, respectively.When proper documentation is not available, software analysis tools can be used to recover MDGs automatically. Usually, even for well-designed systems, the recovered MDGs are large and complex. One way of making complex MDGs more accessible is to partition their nodes so that closely related nodes are grouped into composite nodes called clusters.In this paper we describe a system that augments source code analysis tools by supporting the automatic partitioning of MDGs. In addition, we demonstrate our system's effectiveness by applying it to examples of software systems.Our approach treats clustering as an optimization problem, and uses a Genetic Algorithm (GA) to search the extraordinarily large solution space of all possible partitions of an MDG for a good (possibly optimal) partition. Essential to the GA is a set of supporting algorithms we developed to quantify the quality of a partition using the relations between MDG nodes and clusters of nodes as the primary measuring parameter.