Module interconnection languages
Journal of Systems and Software
Using Neural Networks to Modularize Software
Machine Learning - Special issue on structured connectionist systems
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Practical reusable UNIX software
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
On the Automatic Recovery of Style-Specific Architectural Relations in Software Systems
Automated Software Engineering
Extracting and Restructuring the Design of Large Systems
IEEE Software
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
Chava: Reverse Engineering and Tracking of Java Applets
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
A Comparison of Graphs of Concept for Reverse Engineering
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A Scalable Approach to User-Session based Testing of Web Applications through Concept Analysis
Proceedings of the 19th IEEE international conference on Automated software engineering
Hybridizing evolutionary algorithms and clustering algorithms to find source-code clones
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Clustering the heap in multi-threaded applications for improved garbage collection
Proceedings of the 8th annual conference on Genetic and evolutionary computation
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
A desiderata for refactoring-based software modularity improvement
Proceedings of the 3rd India software engineering conference
Survey: A survey on search-based software design
Computer Science Review
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
In this paper we describe a two step process for reverse engineering the software architecture of a system directly from its source code. The first step involves clustering the modules from the source code into abstract structures called subsystems. The second step involves reverse engineering the subsystem-level relations using a formal (and visual) architectural constraint language. We use search techniques to accomplish both of these steps, and have implemented a suite of integrated tools to support the reverse engineering process. Through a case study, we demonstrate how our tools can be used to extract the software architecture of an open-source software package from its source code without having any a priori knowledge about its design.