As a software system evolves, its architecture will drift. System changes are often done without considering their effects on the system structure. These changes often introduce s...
John B. Tran, Michael W. Godfrey, Eric H. S. Lee, ...
The main goal with this paper is to motivate and coin a variation of literate programming which we call elucidative programming. Elucidative programming is oriented towards progra...
This paper presents a framework for software architecture recovery and restructuring. The user speciļ¬es a high level abstraction view of the system using a structured pattern la...
We combine type inference and concept analysis in order to gain insight into legacy software systems. Type inference for COBOL yields the types for variables and program parameter...
Experimental evaluation of clustering techniques for component recovery is necessary in order to analyze their strengths and weaknesses in comparison to other techniques. For comp...
Call graphs are commonly used as input for automatic clustering algorithms, the goal of which is to extract the high level structure of the program under study. Determining the ca...
Derek Rayside, Steve Reuss, Erik Hedges, Kostas Ko...
ng the Accessor Classification Approach to Detect Abstract Data Types icle presents an approach to identify abstract data types (ADTs) in source code. For each structured type deļ...
Software change requests are often formulated as requests to modify or to add a specific feature or concept. To implement these changes, the features or concepts must be located i...
Software system documentation is almost always expressed informally, in natural language and free text. Examples include requirement speciļ¬cations, design documents, manual page...
Giuliano Antoniol, Gerardo Canfora, Andrea De Luci...