We seek to facilitate development of high quality software designs and architectures by using rigorous process definitions to guide application of the complex structure of relati...
A good architecture is a necessary condition to guarantee that the expected levels of performance, availability, fault tolerance, and scalability are achieved by the implemented s...
Giovanni Bricconi, Emma Tracanella, Elisabetta Di ...
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 specifies 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...