Formalizing architectural connection, R. Allen and D. Garlan
@InProceedings{ allen.garlan:formalizing,
author = {R. Allen and D. Garlan},
title = {Formalizing architectural connection},
pages = {71--80},
booktitle = {Proceedings of the 16th International Conference on
Software Engineering },
year = {1994},
publisher = {IEEE Computer Society Press},
month = may,
class = {Software_Reverse_Engineering, Reverse_Design,
Recovery_of_Software_Architecture}
}
Program Understanding and Maintenance with the CANTO environment, G. Antoniol and R. Fiutem and G. Lutteri and P. Tonella and S. Zanfei
@Unpublished{ antoniol.fiutem.ea:program,
author = {G. Antoniol and R. Fiutem and G. Lutteri and P. Tonella
and S. Zanfei},
title = {Program Understanding and Maintenance with the CANTO
environment},
year = {1998},
class = {Software_Reverse_Engineering,
Intermediate_Representations_of_Source_Code, Using_graphs,
Fundamental_Methods_in_Reverse_Design, Static_Analysis,
Static_Data_Flow_Analysis,
Recovery_of_Software_Architecture}
}
Connecting Software Components with Declarative Glue, B. W. Beach
@InProceedings{ beach:connecting,
author = {B. W. Beach},
title = {Connecting Software Components with Declarative Glue},
booktitle = {ICSE~14: Proceedings of the 14th International Conference
on Software Engineering, {\rm (Melbourne, Australia; May
1992)}},
pages = {120-137},
year = {May 1992},
abstract = {},
class = {Software_Reverse_Engineering, Reverse_Design,
Recovery_of_Software_Architecture }
}
Identifying Objects using Cluster and Concept Analysis, Deursen, A. van and T. Kuipers
Available as
split.pdf.
@InProceedings{ deursen.kuipers:identifying,
author = {Deursen, A. van and T. Kuipers},
title = {Identifying Objects using Cluster and Concept Analysis},
booktitle = {21st International Conference on Software Engineering,
ICSE-99},
publisher = {ACM},
year = {1999},
pages = {246--255},
url = {http://www.cwi.nl/~arie/papers/split.pdf},
abstract = {Many approaches to support (semi-automatic) identification
of objects in legacy code take the data structures as
starting point for candidate classes. Unfortunately, legacy
data structures tend to grow over time, and may contain
many unrelated fields at the time of migration. We propose
a method for identifying objects by semi-automatically
restructuring the legacy data structures. Issues involved
include the selection of record fields of interest, the
identification of procedures actually dealing with such
fields, and the construction of coherent groups of fields
and procedures into candidate classes. We explore the use
of cluster and concept analysis for the purpose of object
identification, and we illustrate their effect on a 100,000
LOC Cobol system. Furthermore, we use these results to
contrast clustering with concept analysis techniques.},
keywords = {remodularization, cluster analysis, concept analysis,
class diagram},
class = {Introduction_of_Abstract_Data_Types
Inter-module_Reorganizatio
From_Procedural_to_Object-Oriented Reverse_Design Re-Design
System_Modularization Recovery_of_Software_Architecture
Alteration Software_Reverse_Engineering }
}
Using Visualization for Architectural Localization and Extraction, Dean Jerding and Spencer Rugaber
Available as
postscript.
@InProceedings{ jerding.rugaber:using,
author = {Dean Jerding and Spencer Rugaber},
title = {Using Visualization for Architectural Localization and
Extraction},
booktitle = {Proceedings of the Fourth Working Conference on Reverse
Engineering},
publisher = {IEEE Computer Society Press Los Alamitos California},
year = {1997},
editor = {Ira Baxter and Alex Quilici and Chris Verhoef},
chapter = {},
pages = {},
address = {},
month = {},
url = {http://www.cc.gatech.edu/morale/papers/isvis_wcre.ps},
abstract = { Understanding the architecture of a program requires
determining both the major components into which the system
is broken and the ways in which the components interact to
accomplish the program's goals. Both static and dynamic
analyses of the software can aid in obtaining this
understanding. This paper describes an analysis technique
for gaining such understanding and a visualization tool
called ISVis that supports it. The technique is applied to
the problem of enhancing the Mosaic web browser by both
visualizing its architecture and finding the components of
the browser into which an enhancement should be inserted.
},
keywords = {software architecture extraction program visualization
dynamic analysis program understanding},
note = {},
class = {Visualization_for_Program_Understanding_and_Debugging
Software_Reverse_Engineering Software_Animation
Reverse_Specification Reverse_Design
Fundamental_Methods_in_Reverse_Design
Recovery_of_Software_Architecture Dynamic_Analysis }
}
SAAM: A method for analyzing the properties of software architectures, R. Kazman and L. Bass and G. Abowd and M. Webb
@InProceedings{ kazman.bass.ea:saam,
author = {R. Kazman and L. Bass and G. Abowd and M. Webb},
title = {{SAAM}: {A} method for analyzing the properties of
software architectures},
pages = {81--90},
booktitle = {Proceedings of the 16th International Conference on
Software Engineering },
year = {1994},
publisher = {IEEE Computer Society Press},
month = may,
class = {Software_Reverse_Engineering,
Recovery_of_Software_Architecture}
}
Assessing Architectural Complexity, Rick Kazman and Marcus Burth
@InProceedings{ kazman.burth:assessing,
author = {Rick Kazman and Marcus Burth},
title = {Assessing Architectural Complexity},
year = {1998},
publisher = {IEEE Computer Society},
class = {Software_Reverse_Engineering, Reverse_Design,
Recovery_of_Software_Architecture}
}
A Relational Approach to Support Software Architecture Analysis, Feijs L. and Krikhaar R. and Ommering R. van
@Article{ l.r.ea:relational,
author = {Feijs L. and Krikhaar R. and Ommering R. van},
title = {A Relational Approach to Support Software Architecture
Analysis},
journal = {Software - Practice and Experience},
year = {1998},
volume = {28},
number = {4},
pages = {371-400},
month = {April},
abstract = {This paper reports on our experience with a relational
approach to support the analysis of existing software
architectures. The analysis options provide for
visualisation and view calculation. The approach has been
applied for reverse engineering. It is also possible to
check concrete designs against architecture-related rules.
The paper surveys the theory, the tools and some of the
applications developed so far.},
keywords = {software structuring; reverse engineering; relational
algebra; software architecture},
class = {Software_Reverse_Engineering Reverse_Design
Recovery_of_Software_Architecture }
}
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 }
}
Assessing modular structure of legacy code based on mathematical concept analysis, C. Lindig and G. Snelting
@InProceedings{ lindig.snelting:assessing,
author = {C. Lindig and G. Snelting},
title = {Assessing modular structure of legacy code based on
mathematical concept analysis},
booktitle = {Proceedings of the 19th International Conference on
Software Engineering },
publisher = {IEEE Computer Society Press},
year = {1997},
key = {Concept Analysis},
class = {Software_Reverse_Engineering,
Recovery_of_Software_Architecture }
}
Developing an Approach for the Recovery of Distributed Software Architectures, Nabor C. Mendonça and Jeff Kramer
Available as
postscript.
@InProceedings{ mendonça.kramer:developing,
author = {Nabor C. Mendonça and Jeff Kramer},
title = {Developing an Approach for the Recovery of Distributed
Software Architectures},
booktitle = {6th IEEE International Workshop on Program Comprehension},
publisher = {IEEE Computer Society Press},
year = {1998},
pages = {28-36},
address = {Ischia, Italy},
month = {June},
url = {http://www-dse.doc.ic.ac.uk/~ndcm/wpc98.ps},
abstract = {The extraction of high-level architectural information
from existing software systems, or architecture recovery,
is a recent research area. This paper presents X-RAY, an
approach for recovering distributed software architectures.
X-RAY builds on previous work on architecture recovery and
more traditional reverse engineering techniques, as well as
on notations for architecture description. The key features
of the approach are illustrated through the depiction of a
step-by-step recovery experiment performed on a small yet
non-trivial distributed software system. Initial results
from an ongoing experiment involving a larger-scale system
are also discussed.},
keywords = {architecture recovery, software architecture, distributed
software},
note = {The paper describes the initial work on the X-RAY
architecture recovery approach and tools.},
class = {Software_Reverse_Engineering Reverse_Design
Recovery_of_Software_Architecture }
}
Requirements for an Effective Architecture Recovery Framework, Nabor C. Mendonça and Jeff Kramer
Available as
postscript.
@InProceedings{ mendonça.kramer:requirements,
author = {Nabor C. Mendonça and Jeff Kramer},
title = {Requirements for an Effective Architecture Recovery
Framework},
booktitle = {2nd ACM SIGSOFT International Software Architecture
Workshop (ISAW-2)},
publisher = {ACM Press},
year = {1996},
pages = {101-105},
address = {San Francisco, CA, USA},
month = {October},
url = {http://www-dse.doc.ic.ac.uk/~ndcm/isaw96.ps},
abstract = {In this paper we discuss how some limitations of current
reverse engineering approaches prevent them from recovering
architectures effectively from legacy systems. We classify
several reverse engineering tools and systems into five
distinct frameworks. We then propose a set of requirements
for an effective architecture recovery framework which
benefits from the main features of those five frameworks
and tries to overcome their identified limitations.},
keywords = {reverse engineering, architecture recovery, software
architecture},
class = {Software_Reverse_Engineering Reverse_Design
Recovery_of_Software_Architecture }
}
Architectural Extraction in Reverse Engineering by Prototyping - An Experiment, Sander Tichelaar and Stephane Ducasse and Theo Dirk Meijler
Available as
archiDocumentation.pdf.
@InProceedings{ tichelaar.ducasse.ea:architectural,
author = {Sander Tichelaar and Stephane Ducasse and Theo Dirk
Meijler},
title = {Architectural Extraction in Reverse Engineering by
Prototyping - An Experiment},
booktitle = {Proceedings ESEC - FFSE 97 Workshop on Object-Oriented
Reengineering},
publisher = {Technical University of Vienna},
year = {1997},
editor = {Serge Demeyer and Harald Gall},
month = {August},
url = {http://iamwww.unibe.ch/~tichel/archiDocumentation.pdf},
abstract = {In this workshop paper we present a prototype approach to
help the extraction of architectural information in the
re-engineering process. Commonly the re-engineering
life-cycle has been defined as a succession of the
following tasks: analysis of requirements model capture
"understanding the system" problem detection problem
analysis reorganization and change propagation. We have
evaluated the benefit of a prototyping approach with a
focus on model capture. Although prototyping is a known
approach to evaluate the application feasibility costs
comparison and validation of choices we focus in this paper
on the aspects of prototyping that are helpful for
re-engineering.},
keywords = {architectural extraction prototyping FAMOOS},
note = {This work is part of the ESPRIT project FAMOOS: A
Framework-based Approach for Mastering Object-Oriented
Software Evolution},
class = {Software_Reverse_Engineering Model_Generating
Reverse_Specification Inter-module_Reorganization
Reverse_Design Re-Design Recovery_of_Software_Architecture
Alteration }
}
The Orphan Adoption problem in Architecture Maintenance, Vassilios Tzerpos and R.C. Holt
@InProceedings{ tzerpos.holt:orphan,
author = {Vassilios Tzerpos and R.C. Holt},
title = {The Orphan Adoption problem in Architecture Maintenance},
booktitle = {Proceedings of the Fourth Working Conference on Reverse
Engineering},
publisher = {IEEE Computer Society Press Los Alamitos California},
year = {1997},
editor = {Ira Baxter and Alex Quilici and Chris Verhoef},
abstract = {A lot of research time has been devoted to finding a
solution to the problem of automatic clustering especially
in the field of Reverse Engineering where decomposing a
legacy system to subsystems could be the key to
understanding it. Maintaining the obtained structure as a
system evolves however is a problem that has attracted much
less attention. In this paper we present the Orphan
Adoption problem in architecture maintenance and propose an
algorithm to solve it. We also present case studies that
validate the usefulness of our algorithm. },
class = {Software_Reverse_Engineering Reverse_Design
Recovery_of_Software_Architecture }
}
Structural Redocumentation: A Case Study, Kenny Wong and Scott Tilley and Haus Mueller and Margaret-Anne Storey
@Article{ wong.tilley.ea:structural,
author = {Kenny Wong and Scott Tilley and Haus Mueller and
Margaret-Anne Storey},
title = {Structural Redocumentation: A Case Study},
journal = {IEEE Software},
year = {1995},
volume = {12},
number = {1},
pages = {46-54},
month = {January},
class = {Software_Reverse_Engineering, Reverse_Design,
Recovery_of_Software_Architecture}
}