System partitioning and its measure, L. Belady and C. Evangelisti
@Article{ belady.evangelisti:system,
title = {System partitioning and its measure},
author = {L. Belady and C. Evangelisti},
journal = {Journal of Systems and Software},
volume = {2},
pages = {23--29},
year = {1981},
note = { A method to perform automatic clustering of data
structures and calls is described. A metric to quantify the
complexity of the resulting partitioning is given},
class = {Software_Reverse_Engineering, Reverse_Design,
Metric-Based_Methods_in_Reverse_Design,
Automated_Reverse_Design, System_Modularization}
}
Assessing Modularization and Code Scavenging Techniques, G. Canfora and A. Cimitile and G. Visaggio
@Article{ canfora.cimitile.ea:assessing,
author = {G. Canfora and A. Cimitile and G. Visaggio},
title = {Assessing Modularization and Code Scavenging Techniques},
journal = {Journal of Software Maintenance: Research and Practice},
volume = {7},
number = {5},
pages = {317-332},
month = {September-October},
year = {1995},
abstract = {},
class = {Software_Reverse_Engineering, Reverse_Design,
System_Modularization }
}
A Case Study of Applying an Eclectic Approach to Identify Objects in Code, Canfora, G. and Cimitile, A. and De Lucia, A. and Di Lucca, G. A.
@InProceedings{ canfora.cimitile.ea:case,
author = {Canfora, G. and Cimitile, A. and De Lucia, A. and Di
Lucca, G. A.},
title = {A Case Study of Applying an Eclectic Approach to Identify
Objects in Code},
booktitle = {International Workshop on Program Comprehension},
pages = {136--143},
year = {1999},
month = may,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Precise Method for Identifying Reusable Abstract Data Types in Code, G. Canfora and Aniello Cimitile and M. Tortorella and M. Munro
@InProceedings{ canfora.cimitile.ea:precise,
author = {G. Canfora and Aniello Cimitile and M. Tortorella and M.
Munro},
title = {A Precise Method for Identifying Reusable Abstract Data
Types in Code},
pages = {404-413},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1994},
year = {1994},
publisher = {IEEE Computer Society Press},
month = sep,
abstract = {This paper presents the results of research within the
$RE^{2}$ project of a refinement of two existing methods
for identifying reusable abstract data types. These methods
are based on the relationships existing between the user
defined types and procedure-like components that use them
in their headings and on direct dominance trees and strong
direct dominance trees that are refinements of the call
directed graph of a program. It shows how these methods can
be used to give a more precise set of reusable abstract
data types. The method is then applied to a program and the
results are compared with the existing method.},
class = {Software_Reverse_Engineering, Re-Use,
Software_Reverse_Engineering, Reverse_Design,
System_Modularization }
}
A Reverse Engineering Method for Identifying Reusable Abstract Data Types , G. Canfora and A. Cimitile and M. Munro
@InProceedings{ canfora.cimitile.ea:reverse*3,
author = { G. Canfora and A. Cimitile and M. Munro },
title = { A Reverse Engineering Method for Identifying Reusable
Abstract Data Types },
booktitle = { WCRE~'93: Proceedings of the 1993 Working Conference on
Reverse Engineering, {\rm (Baltimore, Maryland; May 21-23,
1993)}},
year = { May 1993 },
pages = { 73-82 },
publisher = { IEEE Computer Society Press (Order Number 3780-02)},
abstract = { },
class = {Software_Reverse_Engineering, Reverse_Design,
System_Modularization }
}
Software Salvaging and the Call Dominance Tree, Cimitile, A. and Visaggio, G.
@Article{ cimitile.visaggio:software,
author = {Cimitile, A. and Visaggio, G.},
title = {Software Salvaging and the Call Dominance Tree},
journal = {Journal of Systems Software},
year = {1995},
volume = {28},
pages = {117--127},
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Automatic Clustering of Software Systems using a Genetic Algorithm, Doval, D. and Mancoridis, S. and Mitchel, B.S and Chen, Y. and Gansner, E.R.
@InProceedings{ doval.mancoridis.ea:automatic,
author = {Doval, D. and Mancoridis, S. and Mitchel, B.S and Chen, Y.
and Gansner, E.R.},
title = {Automatic Clustering of Software Systems using a Genetic
Algorithm},
booktitle = { Proceedings of the International Conference on Software
Tools and Engineering Practice},
year = {1999},
month = aug,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Resolving Uncertainties in object oriented re-architecturing of procedural code, Gall, H. and Klösch, R. and Weidl, J.
@InProceedings{ gall.klösch.ea:resolving,
author = {Gall, H. and Klösch, R. and Weidl, J.},
title = {Resolving Uncertainties in object oriented
re-architecturing of procedural code},
booktitle = { Proceedings of the 7th International Conference on
Information Processing and Management of Uncertainty in
Knowledge Based Systems},
year = {1998},
month = jul,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Reengineering Concepts, Techniques and Tools for Component Extraction, Girard, J.F and Briand, L.
@TechReport{ girard.briand:reengineering,
author = {Girard, J.F and Briand, L.},
title = {Reengineering Concepts, Techniques and Tools for Component
Extraction},
institution = {CRIM, Montreal, Canada},
year = {1996},
number = {CRIM95/04-26},
month = may,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Metric-based Approach to Detect Abstract Data Types and Abstract State Encapsulation, Girard, J.F. and Koschke, R. and Schied, G.
@Article{ girard.koschke.ea:metric-based,
author = {Girard, J.F. and Koschke, R. and Schied, G.},
title = {A Metric-based Approach to Detect Abstract Data Types and
Abstract State Encapsulation},
journal = {Journal on Automated Software Engineering, Kluwer Academic
Publishers},
year = {1999},
volume = {6},
number = {4},
pages = {357--386},
month = oct,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Comparison of Abstract Data Type and Objects Recovery Techniques, Girard, J.F. and Koschke, R.
@Article{ girard.koschke:comparison,
author = {Girard, J.F. and Koschke, R.},
title = {A Comparison of Abstract Data Type and Objects Recovery
Techniques},
journal = {Journal Science of Computer Programming, Elsevier},
year = {2000},
volume = {36},
number = {2--3},
pages = {149--181},
month = mar,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Finding Components in a Hierarchy of Modules - a Step towards Architectural Understanding, Jean-Francois Girard and Rainer Koschke
@InProceedings{ girard.koschke:finding,
author = {Jean-Francois Girard and Rainer Koschke},
title = {Finding Components in a Hierarchy of Modules - a Step
towards Architectural Understanding},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1997},
publisher = {IEEE Computer Society Press},
year = {1997},
abstract = {This paper presents a method to view a system as a
hierarchy of modules according to the information hiding
ideas and to identify architectural component candidates in
this hierarchy. The result of the method eases the under
standing of a system's underlying software architecture. A
prototype tool implementing this method was applied to
three systems written in C (each over 30 Kloc). For one of
these systems an author of the system created an architec
tural description. The components generated by our method
correspond to those of this architectural descrip tion in
almost all the cases. For the other two systems most of the
components resulting from the method corre spond to
meaningful system abstractions.},
class = {Software_Reverse_Engineering Reverse_Design
System_Modularization }
}
System structure analysis: clustering with data bindings, D. Hutchens and V. Basili
@Article{ hutchens.basili:system,
title = {System structure analysis: clustering with data bindings},
author = {D. Hutchens and V. Basili},
journal = {{IEEE} Transactions on Software Engineering},
volume = {{SE}-11},
number = {8},
pages = {749--757},
year = {1985},
note = { The use of cluster analysis as a tool for system
modularization is examined. It appears that the clustering
of data bindings provides a meaningful view of system
modularization},
class = {Software_Reverse_Engineering, Reverse_Design,
System_Modularization}
}
Playing detective: reconstructing software architecture from available evidence, Kazman, R. and Carričre, S.J.
@TechReport{ kazman.carričre:playing,
author = {Kazman, R. and Carričre, S.J.},
title = {Playing detective: reconstructing software architecture
from available evidence},
institution = {Software Engineering Institute},
year = {1997},
optkey = {CMU/SEI-97-TR-010},
type = {Technical Report},
number = {CMU/SEI-97-TR-010},
address = {Pittsburgh, USA},
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
International Workshop on Program Comprehension, Koschke, R. and Eisenbarth, T
@InProceedings{ koschke.eisenbarth:international,
author = {Koschke, R. and Eisenbarth, T},
title = {International Workshop on Program Comprehension},
booktitle = {A Framework for Experimental Evaluation of Clustering
Techniques},
year = {2000},
month = jun,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Atomic Architectural Component Detection for Program Understanding and System Evolution, Koschke, R.
@PhDThesis{ koschke:atomic,
author = {Koschke, R.},
title = {Atomic Architectural Component Detection for Program
Understanding and System Evolution},
school = {University of Stuttgart},
year = {2000},
address = {Universit\"atsstrasse 38, 70569 Stuttgart, Germany},
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
An Incremental Semi-Automatic Method for Component Recovery, Koschke, R.
@InProceedings{ koschke:incremental,
author = {Koschke, R.},
title = {An Incremental Semi-Automatic Method for Component
Recovery},
booktitle = { Working Conference on Reverse Engineering },
pages = {256--267},
year = {1999},
month = oct,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Unified Framework for Expressing Software Subsystems Classification Techniques, Lakhotia, A.
@Article{ lakhotia:unified,
author = {Lakhotia, A.},
title = {A Unified Framework for Expressing Software Subsystems
Classification Techniques},
journal = {Journal Systems Software, Elsevier Science Publisher},
year = {1997},
volume = {36},
pages = {211--231},
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Generating Linkage between Source Code and Evolvable Domain Knowledge for the Ease of Software Evolution, Yang Li and Hongji Yang and William Chu
Available as .
@InProceedings{ li.yang.ea:generating,
author = {Yang Li and Hongji Yang and William Chu},
title = {Generating Linkage between Source Code and Evolvable
Domain Knowledge for the Ease of Software Evolution},
booktitle = {Proceedings of IEEE International Symposium on Principles
of Software Evolution (ISPSE2000)},
publisher = {IEEE Computer Society Press},
year = {2000},
editor = {},
chapter = {},
pages = {},
address = {Kanazawa, Japan},
month = {Nov},
url = {},
abstract = {Business software systems unexceptably need to be evolved
to cater for new/changed requirement coming from market or
adapt to new operating environment. One of the most
significant problems in current software evolution practice
is that software maintainers usually find it quite
difficult to locate the program sections in source code
which need to be modified and to identify the extent to
which the changes in these program sections could affect
the rest of the software system. In this paper, we propose
a knowledge engineering based approach to solving this
problem. In particular, we match a software program with a
pre-defined domain knowledge base in the representation of
simplified semantic network we proposed in order to link
the source program with its domain level interpretation.
The domain knowledge base contains only important domain
knowledge where potential evolutions could occur, which
reduces the size of the knowledge base. Moreover, a domain
oriented program partitioning method is also proposed to
cut a program into self-contained modules with manageable
size. In these ways, the computational complexity involved
in generating the linkage is significantly reduced which
makes this approach applicable. An example shows that
software evolution can be easily carried out as the domain
knowledge it links with evolves. },
keywords = {software evolution, knowledge engineering, program
partitioning, evolvable domain knowledge, semantic
network},
note = {This paper gives engineering-oriented considerations to
link generation between domain knowledge and source code
prior to successful software evolution.},
class = {Software_Evolution Knowledge-Based_Concept_Assignment
Using_graphs Change_Impac
Cognitive_Processes_in_Human_Program_Understanding Metrics
Reverse_Design Re-Design System_Modularization
Recovery_of_Software_Architecture
Metric-Based_Methods_in_Reverse_Design Alteration
Human_Oriented_Concept_Assignment_by_Informal_Reasoning
Intermediate_Representations_of_Source_Code
Software_Reverse_Engineering }
}
Towards Building a Smarter Domain Knowledge Recovery Assistant, Yang Li and Hongji Yang and William Chu
Available as .
@InProceedings{ li.yang.ea:towards,
author = {Yang Li and Hongji Yang and William Chu},
title = {Towards Building a Smarter Domain Knowledge Recovery
Assistant},
booktitle = {Proceedings of the 24th IEEE Annual Computer Software and
Applications Conference (COMPSAC2000)},
publisher = {IEEE Computer Society Press},
year = {2000},
editor = {},
chapter = {},
pages = {},
address = {},
month = {Oct},
url = {},
abstract = {Legacy systems need to be ``salvaged'' to prolong their
life circle. One way for such a salvation is to recover and
maintain domain knowledge embedded in legacy code. It is
our observation that existing methods or tools for domain
knowledge recovery from source code did not provide
maintainers with sufficient assistance to reduce the size
of analysable program sections, identify program sections
having intensive domain knowledge and maintain the belief
of a network of domain knowledge extracted from source code
which can accommodate change of belief coming from a user.
In this paper, we introduce techniques which can provide
software maintainers with smart assistance for the
above-mentioned three issues. },
keywords = {program partitioning, program readability metric, belief
network, domain knowledge recovery},
note = {We incorpate human psychology knowledge with the design of
a domain knowledge recovery tool.},
class = {Automated_Reverse_Design
Knowledge-Based_Concept_Assignment Reverse_Engineering_Tool
Model_Generating Reverse_Specification
Cognitive_Processes_in_Human_Program_Understanding Metrics
Reverse_Design System_Modularization Domain_Analysis
Recovery_of_Software_Architecture
Metric-Based_Methods_in_Reverse_Design
Human_Oriented_Concept_Assignment_by_Informal_Reasoning
Software_Reverse_Engineering }
}
A Reverse Engineering Approach to Subsystem Structure Identification, M\uller, H.A. and Orgun, M.A. and Tilley, S.R. and Uhl, J.S.
@Article{ muller.orgun.ea:reverse,
author = {M\"uller, H.A. and Orgun, M.A. and Tilley, S.R. and Uhl,
J.S.},
title = {A Reverse Engineering Approach to Subsystem Structure
Identification},
journal = {Journal of Software Maintenance: Research and Practice},
year = {1993},
volume = {5},
number = {4},
pages = {181--204},
month = dec,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Composing subsystem structures using (K,2)-partite graphs, H. Muller and J. Uhl
@InProceedings{ muller.uhl:composing,
title = {Composing subsystem structures using (K,2)-partite
graphs},
author = {H. Muller and J. Uhl},
booktitle = {{IEEE} Conference on Software Maintenance},
pages = {12--19},
year = {1990},
note = {},
class = {Software_Reverse_Engineering, Reverse_Design,
System_Modularization}
}
Applying Concept Formation Methods to Object Identfication in Procedural Code, Sahraoui, H. and Melo, W. and Lounis, H. and Dumont, F.
@InProceedings{ sahraoui.melo.ea:applying,
author = {Sahraoui, H. and Melo, W. and Lounis, H. and Dumont, F.},
title = {Applying Concept Formation Methods to Object Identfication
in Procedural Code},
booktitle = { International Conference on Automated Software
Engineering },
pages = {210--218},
year = {1997},
month = nov,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Architectural Design Recovery using Data Mining Techniques, Kamran Sartipi and Kostas Kontogiannis and F. Mavaddat
@InProceedings{ sartipi.kontogiannis.ea:architectural,
author = {Kamran Sartipi and Kostas Kontogiannis and F. Mavaddat},
title = {Architectural Design Recovery using Data Mining
Techniques},
booktitle = { European Conference on Software Maintenance and
Reengineering },
pages = {129-139},
year = {2000},
month = feb,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Pattern Matching Framework for Software Architecture Recovery and Restructuring, Kamran Sartipi and Kostas Kontogiannis and F. Mavaddat
@InProceedings{ sartipi.kontogiannis.ea:pattern,
author = {Kamran Sartipi and Kostas Kontogiannis and F. Mavaddat},
title = {A Pattern Matching Framework for Software Architecture
Recovery and Restructuring},
booktitle = {International Workshop on Program Comprehension},
pages = {37-47},
year = {2000},
month = jun,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Component Clustering Based on Maximal Association, Kamran Sartipi and Kostas Kontogiannis
@InProceedings{ sartipi.kontogiannis:component,
author = {Kamran Sartipi and Kostas Kontogiannis},
title = {Component Clustering Based on Maximal Association},
booktitle = { Working Conference on Reverse Engineering },
pages = {103-114},
year = {2001},
month = oct,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Graph Pattern Matching Approach to Software Architecture Recovery, Kamran Sartipi and Kostas Kontogiannis
@InProceedings{ sartipi.kontogiannis:graph,
author = {Kamran Sartipi and Kostas Kontogiannis},
title = {A Graph Pattern Matching Approach to Software Architecture
Recovery},
booktitle = { International Conference on Software Maintenance },
pages = {408-419},
year = {2001},
month = nov,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Alborz: A Query-based Tool for Software Architecture Recovery, Kamran Sartipi
@InProceedings{ sartipi:alborz,
author = {Kamran Sartipi},
title = {Alborz: A Query-based Tool for Software Architecture
Recovery},
booktitle = {International Workshop on Program Comprehension},
pages = {115-116},
year = {2001},
month = may,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
A Software Evaluation Model Using Component Association Views, Kamran Sartipi
@InProceedings{ sartipi:software,
author = {Kamran Sartipi},
title = {A Software Evaluation Model Using Component Association
Views},
booktitle = {International Workshop on Program Comprehension},
pages = {259-268},
year = {2001},
month = may,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Concept analysis for module restructuring, P. Tonella
@Article{ tonella:concept,
author = {P. Tonella},
title = {Concept analysis for module restructuring},
journal = { IEEE Computer Society Transactions on Software
Engineering},
year = {2001},
volume = {27},
number = {4},
pages = {351--363},
month = apr,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
ACDC: An Algorithm for Comprehension-Driven Clustering, Vassilios Tzerpos and Richard C. Holt
@InProceedings{ tzerpos.holt:acdc,
author = {Vassilios Tzerpos and Richard C. Holt},
title = {ACDC: An Algorithm for Comprehension-Driven Clustering},
booktitle = { Working Conference on Reverse Engineering },
year = {2000},
month = nov,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
MoJo: A Distance Metric for Software Clustering, Vassilios Tzerpos and Richard C. Holt
@InProceedings{ tzerpos.holt:mojo,
author = {Vassilios Tzerpos and Richard C. Holt},
title = {MoJo: A Distance Metric for Software Clustering},
booktitle = { Working Conference on Reverse Engineering },
year = {1999},
month = oct,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
On the Stability of Software Clustering Algorithms, Vassilios Tzerpos and Richard C. Holt
@InProceedings{ tzerpos.holt:on,
author = {Vassilios Tzerpos and Richard C. Holt},
title = {On the Stability of Software Clustering Algorithms},
booktitle = {International Workshop on Program Comprehension},
year = {2000},
month = jun,
publisher = { IEEE Computer Society Press },
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}
Software Botryology: Automatic Clustering of Software Systems, Vassilios Tzerpos and Richard C. Holt
@InProceedings{ tzerpos.holt:software,
author = {Vassilios Tzerpos and Richard C. Holt},
title = {Software Botryology: Automatic Clustering of Software
Systems},
booktitle = {International Workshop on Large-Scale Software
Composition},
year = {1998},
month = aug,
class = {Encapsulation_and_Finding_Objects_in_Legacy_Code
System_Modularization Reverse_Design
Software_Reverse_Engineering}
}