Return to search

Building reverse engineering tools with software components

This dissertation explores a new approach to construct tools in the
domain of reverse engineering. The approach uses already available
software components -- such as off-the-shelf components and integrated
development environments -- as building blocks, combining and
customizing them programmatically to realize the desired functional
and non-functional requirements. This approach can be characterized as
component-based tool-building, as opposed to traditional
tool-building, which typically develops most of the tool's
functionalities from scratch.

The dissertation focuses on research tools that are constructed in a
university or research lab (and then possibly evaluated in an
industrial setting). Often the motivation to build a research tool is
a proof-of-concept implementation. Tool-building is a necessary part
of research -- but it is a costly one. Traditional approaches to tool
building have resulted in tools that have a high degree of custom code
and exhibit little reuse. This approach offers the most flexibility,
but can be costly and can result in highly idiosyncratic tools that
are difficult to use. To compensate for the drawbacks of building
tools from scratch, researchers have started to reuse existing
functionality, leading towards an approach that leverages components
as building blocks. However, this emerging approach is pursued in an
ad hoc manner reminiscent of craftsmanship rather than professional
engineering.

The goal of this dissertation is to advance the current state of
component-based tool-building towards a more disciplined, predictable
approach. To achieve this goal, the dissertation first summarizes and
evaluates relevant tool-building experiences and case studies, and
then distills these into practical advice in the form of lessons
learned, and a process framework for tool builders to follow.

The dissertation uniquely combines two areas, reverse engineering and
software components. The former addresses the constructed tool's
application domain, the latter forms the foundation of the
tool-building approach. Since this dissertation mostly focuses on
tools for reverse engineering, a thorough understanding of this
application domain is necessary to elicit its requirements. This is
accomplished with an in-depth literature survey, which synthesizes
five major requirements. The elicited requirements are used as a
yardstick for the evaluation of component-based tools and the proposed
process framework. There are diverse kinds of software components that
can be leveraged for component-based tool building. However, not all
of these components are suitable for the proposed tool-building
approach. To characterize the kinds of applicable components, the
dissertation introduces a taxonomy to classify components. The
taxonomy also makes it possible to reason about characteristics of
components and how these characteristics affect the construction of
tools.

This dissertation introduces a catalog of components that are
applicable for the proposed tool-building approach in the reverse
engineering domain. Furthermore, it provides a detailed account of
several case studies that pursue component-based tool-building. Six of
these case studies represent the author's own tool-building
experiences. They have been performed over a period of five years
within the Adoption-Centric Reverse Engineering project at the
University of Victoria. These case studies, along with relevant
experiences reported by other researchers, constitute a body of
valuable tool-building knowledge. This knowledge base provides the
foundation for this dissertation's two most important contributions.
First, it distills the various experiences -- the author's as well as
others -- into ten lessons learned. The lessons cover important
requirements for tools as uncovered by the literature
survey. Addressing these requirements promises to result in better
tools that are more likely to meet the needs of tool users. Second,
the dissertation proposes a suitable process framework for
component-based tool development that can be instantiated by tool
builders. The process framework encodes desirable properties of a
process for tool-building, while providing the necessary flexibility
to account for the variations of individual tool-building projects.

  1. http://hdl.handle.net/1828/115
Identiferoai:union.ndltd.org:uvic.ca/oai:dspace.library.uvic.ca:1828/115
Date20 November 2006
CreatorsKienle, Holger M.
ContributorsMüller, Hausi A.
Source SetsUniversity of Victoria
LanguageEnglish, English
Detected LanguageEnglish
TypeThesis
Format14119878 bytes, application/pdf
RightsAvailable to the World Wide Web

Page generated in 0.0024 seconds