Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Approaches to clustering for program comprehension and remodularization
Advances in software engineering
Dynamic analysis for reverse engineering and program understanding
ACM SIGAPP Applied Computing Review
Reengineering legacy systems for distributed environments
Journal of Systems and Software
Initial recommendations for improving maintenance strategy
Systems engineering for business process change
Identification of High-Level Concept Clones in Source Code
Proceedings of the 16th IEEE international conference on Automated software engineering
A user-assisted approach to component clustering
Journal of Software Maintenance: Research and Practice
Reverse engineering web applications: the WARE approach
Journal of Software Maintenance and Evolution: Research and Practice - Special issue: Web site evolution
Extraction and Visualization of Architectural Structure Based on Cross References among Object Files
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01
Applications of clustering techniques to software partitioning, recovery and restructuring
Journal of Systems and Software - Special issue: Applications of statistics in software engineering
The Design and Implementation of a Framework for Automatic Modularization of Software Systems
The Journal of Supercomputing
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
Search-based improvement of subsystem decompositions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Revisiting the ΔIC approach to component recovery
Science of Computer Programming - Software analysis, evolution and re-engineering
Program restructuring using clustering techniques
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
An improved methodology on information distillation by mining program source code
Data & Knowledge Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Improving Web site understanding with keyword-based clustering
Journal of Software Maintenance and Evolution: Research and Practice
A modified genetic algorithm for software clustering problem
AIC'06 Proceedings of the 6th WSEAS International Conference on Applied Informatics and Communications
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
A Visual Framework for the Definition and Execution of Reverse Engineering Processes
VISUAL '08 Proceedings of the 10th international conference on Visual Information Systems: Web-Based Visual Information Search and Management
Clustering for Monitoring Software Systems Maintainability Evolution
Electronic Notes in Theoretical Computer Science (ENTCS)
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Structure-Based Partitioning of Large Ontologies
Modular Ontologies
Discovery of architectural layers and measurement of layering violations in source code
Journal of Systems and Software
Software clustering based on behavioural features
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Applying genetic algorithm for the development of the components-based embedded system
Computer Standards & Interfaces
Automatic generation of abstract views for legacy software comprehension
Proceedings of the 3rd India software engineering conference
An approach for architectural layer recovery
Proceedings of the 2010 ACM Symposium on Applied Computing
Architecture recovery and evaluation aiming at program understanding and reuse
QoSA'07 Proceedings of the Quality of software architectures 3rd international conference on Software architectures, components, and applications
The clustering algorithm of design pattern using object-oriented relationship
ICCSA'07 Proceedings of the 2007 international conference on Computational science and its applications - Volume Part III
Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm
Advances in Engineering Software
Package Fingerprints: A visual summary of package interface usage
Information and Software Technology
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
Journal of Software Maintenance and Evolution: Research and Practice
Identifying cloned navigational patterns in web applications
Journal of Web Engineering
An investigation of clustering algorithms in the identification of similar web pages
Journal of Web Engineering
Easing software evolution: change-data and domain-driven approach
Proceedings of the 5th India Software Engineering Conference
Clustering methodologies for software engineering
Advances in Software Engineering
Recovering design patterns to support program comprehension
Proceedings of the 2nd international workshop on Evidential assessment of software technologies
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
Fast, scalable detection of "Piggybacked" mobile applications
Proceedings of the third ACM conference on Data and application security and privacy
A new hierarchical clustering technique for restructuring software at the function level
Proceedings of the 6th India Software Engineering Conference
Optimizing decomposition of software architecture for local recovery
Software Quality Control
Visualizing the refactoring of classes via clustering
ACSC '11 Proceedings of the Thirty-Fourth Australasian Computer Science Conference - Volume 113
Leveraging design rules to improve software architecture recovery
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
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
DroidLegacy: Automated Familial Classification of Android Malware
Proceedings of ACM SIGPLAN on Program Protection and Reverse Engineering Workshop 2014
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
As valuable software systems become older, reverse engineering becomes increasingly important to companies that have to maintain the code. Clustering is a key activity in reverse engineering that is used to discover improved designs of systems or to extract significant concepts from code.Clustering is an old, highly sophisticated, activity which offers many methods to meet different needs. The various methods have been well documented in the past, however conclusions from the general clustering literature may not apply entirely in the reverse engineering domain. In this paper, we study three things: some clustering algorithms, some metrics that quantify the coupling between entities to be clustered, and how these entities are represented abstractly. Our objective is to establish whether and why each could be used for software remodularization.The results are compared using three quality criteria: design quality (cohesion and coupling), comparison with an expert decomposition, and size of the clusters obtained. The experiments were conducted on three public domain systems (gcc, Linux and Mosaic) and a legacy telecommunications system.Among our findings, we confirm the importance of carefully choosing the scheme that is used to describe the entities being clustered.