Generating Testing and Analysis Tools, P.T. Devanbu and D.R. Rosenblum and A.L. Wolf
@Article{ devanbu.rosenblum.ea:generating,
key = {DRW96},
author = {P.T. Devanbu and D.R. Rosenblum and A.L. Wolf},
title = {Generating Testing and Analysis Tools},
journal = {ACM Transactions on Software Engineering and Methodology},
year = {1996},
volume = {5},
number = {1},
pages = {42-62},
note = {This article describes tools for analysing C/C++ programs
for programming understanding. These tools are generated
and support a procedural mechanism to retrieve information
from the C/C++ programs.},
class = {Software_Reverse_Engineering, Reverse_Design,
Fundamental_Methods_in_Reverse_Design,
Source_Code_Queries}
}
Wartungsunterstützung in heterogenen Sprachumgebungen, Ein Überblick zum Projekt GUPRO, J. Ebert and R. Gimnich and A. Winter
Available as
compressed postscript.
@InCollection{ ebert.gimnich.ea:wartungsunterstützung,
author = {J. Ebert and R. Gimnich and A. Winter},
title = {Wartungsunterstützung in heterogenen Sprachumgebungen, Ein
Überblick zum Projekt GUPRO},
booktitle = {Softwarewartung und Reengineering - Erfahrungen und
Entwicklungen},
publisher = {Gabler},
year = {1996},
editor = {F. Lehner},
pages = {263-275},
address = {Wiesbaden},
url = {http://www.uni-koblenz.de/~ist/retrieve/GUPRO.Regensburg.ps.gz}
,
abstract = {Wirtschaftliche Wartung und Weiterentwicklung von
Anwendungssoftware setzt ein grundsätzliches Verstehen
vorhandener Quelltexte voraus. Diese sind oft wenig
strukturiert, schwach kommentiert und in unterschiedlichen
Umgebungen entstanden. Im Projekt GUPRO - Eine Generische
Umgebung zum Programmverstehen - wird ein
benutzerkonfigurierbarer Generator zur Erzeugung
sprachübergreifender Programmverstehenswerkzeuge
entwickelt, die das Nachvollziehen und Verstehen auch
heterogener Software beliebiger Sprachen
(Programmiersprachen, Anfragesprachen, Sprachen der "4.
Generation") unterstützen. Hierzu dienen Anfrage- und
Browsing-Werkzeuge, die über eine gemeinsame, graphbasierte
Datenstruktur integriert sind.},
keywords = {metacare, program understanding},
class = {Software_Reverse_Engineering Using_graphs
Source_Code_Queries Reverse_Design
Fundamental_Methods_in_Reverse_Design
Intermediate_Representations_of_Source_Code Static_Analysis
}
}
A Generic System to Support Multi-Level Understanding of Heterogeneous Software, J. Ebert and M. Kamp and A. Winter
Available as
postscript.
@TechReport{ ebert.kamp.ea:generic,
author = {J. Ebert and M. Kamp and A. Winter},
title = {A Generic System to Support Multi-Level Understanding of
Heterogeneous Software},
organization = {Universität Koblenz-Landau, Institut für Informatik},
year = {1997},
type = {Fachbericht Informatik},
number = {6/97},
address = {Koblenz},
url = {http://www.uni-koblenz.de/fb4/publikationen/gelbereihe/RR-6-97.ps}
,
abstract = {This paper presents the ideas and the implementation of a
generic support system for understanding heterogenous
software. GUPRO provides a seamless approach for modeling,
representing and analysing software. The focus of GUPRO is
its adaptability to (almost) arbitrary kinds of source
text. Software of different programming and description
languages can be represented uniformly by a homogeneous
internal representation any level of granularity. The
relevant concepts of the software are described by the
maintenance engineer with regard to his or her current
program understanding task in a concept model using
EER-like graphical language. Then parsers are generated to
transform source code into a TGraph representation which is
an instance of the model. A parser description language has
been developed which supports graph creation according to a
concept model. A source language independent query language
allows the computation of arbitrary reports on the software
graphs. The properties of graphs can be used for easily
querying even complex structural relationships between
instances of the modeled software concepts. The components
of the system are integrated in a framework architecture
under a common graphical user interface.},
keywords = {metacare, program understanding, GUPRO},
class = {Software_Reverse_Engineering Using_graphs
Source_Code_Queries Reverse_Design
Fundamental_Methods_in_Reverse_Design
Intermediate_Representations_of_Source_Code Static_Analysis
}
}
Reverse Engineering by visualizing and querying, A. Mendelzon and J. Sametinger
@Article{ mendelzon.sametinger:reverse,
title = {Reverse Engineering by visualizing and querying},
author = {A. Mendelzon and J. Sametinger},
journal = {Software---Concepts and Tools},
pages = {170--182},
volume = {16},
number = {4},
year = {1995},
note = { A tool called Hy+ is described that can be used for
reverse engineering. Hy+ is a general-purpose data
visualization system for querying and visualizing
information about object-oriented software systems. Hy+
supports this for arbitrary graph-like databases. The use
is demonstrated with the evaluation of software metrics,
verifying constraints and identifying design patterns},
class = {Software_Reverse_Engineering, Reverse_Design,
Fundamental_Methods_in_Reverse_Design, Source_Code_Queries,
Reverse_Specification, Software_Animation,
Visualization_for_Program_Understanding_and_Debugging}
}
A framework for source code search using program patterns, S. Paul and A. Prakash
@Article{ paul.prakash:framework,
title = {A framework for source code search using program
patterns},
author = {S. Paul and A. Prakash},
journal = {IEEE Transactions on Software Engineering},
pages = {463--475},
volume = {20},
number = {6},
year = {1994},
note = { It is argued that existing solutions to locating source
code fragments that match certain patterns are
insufficient. A framework in which pattern languages are
used to specify interesting code features is presented.
These are obtained by extending the source programming
language with pattern-matching symbols. This is implemented
in a tool called SCRUPLE},
class = {Software_Reverse_Engineering, Reverse_Design,
Fundamental_Methods_in_Reverse_Design,
Source_Code_Queries}
}
Supporting Queries on Source Code: A Formal Framework, S. Paul and A. Prakash
@Article{ paul.prakash:supporting,
author = {S. Paul and A. Prakash},
title = {Supporting Queries on Source Code: A Formal Framework},
journal = {International Journal of Software Engineering and
Knowledge Engineering},
volume = {4},
number = {3},
pages = {325-348},
year = {1994},
note = { A source code query system is a powerful mechanism to
obtain crucial information necessary to successfully
performing a reverse engineering task. A source code
algebra (SCA) is developed which is strongly based on
relational algebras as well as on many sorted algebras. Two
types of data types are distinguished in the source code
algebra model: \begin{itemize} \item atomic data types,
such as integer, float, etc. \item composite data types
(so-called objects): \begin{itemize} \item singular
objects, such as while-statement, identifier, etc. \item
collective objects, such as statement-list, etc.
\end{itemize} \end{itemize} The objects are extended with
four kinds of attributes, namely, components, references,
annotations, and methods. An extensive set of source code
algebra operators are defined, such operators defined for
atomic data types, individual objects, and collections,
i.e., sets and sequences. The operators for the collections
are strongly influenced by the operators from the
relational algebra domain},
class = {Software_Reverse_Engineering, Reverse_Design,
Fundamental_Methods_in_Reverse_Design,
Source_Code_Queries}
}