development, maintenance, re-engineering, or reuse purposes. This process involves the identifica- tion of software artifacts in a particular subject system,.
A Reverse Engineering Based on Spatial H.A.
Muller
S.R.
Environment
and Visual Software M.A.
Tilley
Department P.O.
B.D.
Orgun*
of Computer Box
Interconnection
Science,
3055, Victoria,
Canada
Tel: (604) 721-7294, Fax: (604) stilley}~csr E-mail: {hausi,
1
Abstract
engineering
abstractions ware
and design
systems.
subsequent
This
of software
and
the
and
and
environment
information
interconnection graph
model.
This
by the
software
building
stitutes
information
meaningful
parts
component
ware
structure
quent
of the
is critical generated
analysis,
engineer
to data,
processing,
the
design
Software
cycle
structures
out
of
con-
and
vantage
a reflection
whereas how
of these
With
overall
task
and
to improving
of
routinely
product’s
is a very
according
of
its low-
maintenance
there
in software
amount
representation
by exploring
software
it:
expensive.
an inordinate
of 50’% of a software [I],
the
by using
of maintain-
more
an abstract
budget
20% improvement
system
the
architecture
to
life-
tangible
[2],
“By
productivity
ad-
1995,
will
a
be worth
worldwide.”
Software
maintenance
a soft-
complete
understanding
two
rep-
apprecia-
benefits
Canada Ltd.’s
code.
$90 billion
spend
to create
are one
to recover
program-understanding
ages, complex
must
the vi-
subse-
decision-making.
of IBM
various
more
upwards
difficult in
poor
of accurate
system,
the
in the
system’s
position.
Permission to copy without fee all or part of this material is granted provided that the copies are not mada or distributed for direct commercial advantage, the ACM copyright notice and the titla of the publication and its data appear, and notice is given that copying is by permission of the Association for Computing Machinary. To copy otherwise, or to republish, requires a fae and/or spacific permission. ACM-SDE-121921VA, USA 01992 ACM 0-89791-555-0/921001 210088...$1.50
several into
times
since
something
engineering,
system
can be determined
the
information
the
a versatile 1Rigi
the
methods the
system
available,
release,
and
the
overall
has
structure
and some
years
we have
and
framework
evolved Through
of the
subject
of its architectural This
or reuse
five
a mountain
[3].
and
changed
has thus
original
be used for subsequent
after
used
original been
system
is named
include size of the
are no longer
than
is a
old and gen-
software
re-engineering,
past
that
can be recovered.
can then
maintenance, Over
programming
a
This
factors the sheer
the fact
its first
different
reverse
design
is 10-25 years
Contributing
programmers that
without
syst em.
documentation,
design,
and
formation
that
unstructured
complication
be performed
of a subject
condition.
the lack
the
cannot
task for software
erally
designers
and are not
both
to improv-
of the
t This work was supported in part by the IRIS Federal Centre of Excellence, the Natural Sciences and Engineering Research Council of Canada, the British Columbia Advanced Systems Institute, Science Council of British Columbia, the University of Victoria, and IBM Canada Ltd. t The positions expressed herein are solely the views Of the authors
and
high-level
source
attempt software
software
engineers
the system’s
as critical
recapture technologies
technologies
today’s
attempting
level
identified
in an existing
it becomes
time
been
engineering As
consuming
an inter-
about
greatly
a-
using
comprehensive
and and
spatial
is displayed
positions
coexistence
a
represent
component
structure,
ab-
of a software
spatial
original
ing
have
maintenance;
Recapture
tools.
describes
relative
information
The
more
the
areas
reverse
system,
The
of a software contains
the basis
subsystem
about
looks.
resentations tion
blocks.
for
3P6
721-7292 .uvic. ca
of them.
identifica-
uses the
information
reverse
to build
paper
in graphical
to form
editor
sual
inherent
the
to form
which
systems
manipulated
active
This
be used
subject
artifacts
ations.
soft-
Madhavji6
of Victoria V8W
ing software
re-engineering,
involves
in a particular
of these
system
of existing
then
maintenance,
represent
of software
can
process
artifacts
engineering
visual
tions
out
information
aggregation system
of extracting
information
This
purposes.
tion
reverse
process
development,
or reuse
stract
is the
N.H.
Introduction
Several Reverse
CorrieO
University
BC,
Modelst$
been
recovered
in-
development,
purposes. developing
for
discovering
in central
Switzerland,
Rigi,l and
analyzing
the
particular,
structure
methods,
techniques, Some
for
software
the
model
of the early
work
structures
and
The
of a software
lution,
change
in a graph
a graph can
product’s
and
editor
be
component
ware
structure
other)
that
software tions
sub-
mats
evo-
of the
so on.
of the
(i. e., where allow
for
structures
or suppliers at
constitutes
positions
anal-
used
software
spatial relative
strucmodel
in the
modeling
The the
supporting
effectively
life-cycle,
process,
analysis
In
algorithms,
of subsystem
resulted
model
decomposition
systems.
for the composition,
and representation
[4].
all stages system
software
on investigating
and tools
ysis, presentation, tures.
of large
we concentrated
things
the
in a workstation
ate patterns
and motifs
graph arcs
aim
system
to
of the
of all the
and
window)
visual
to one an-
exploration
Visual
of nodes
of a soft-
are relative
systematic
of a component).
about
parts
(e. g., identification
(i. e., rendering
human
information
meaningful
represent
in
a-
various
to exploit
recognize
(e. g., central,
clients for-
the ability and
fringe,
appreci-
or isolated
components). By
software
that
structure
software
designing,
we mean
engineers
use to form
implementing,
alyzing
software
components
Artifacts
as procedures,
dependencies
among
composition,
and
and
interconnection
such
allows
users
stored
in the
graph
to edit,
components
type,
The
and and
as
method,
tures
methods tures
investigations
graph
explore
by
building
results
method
that
the
hierarchies
can
serve
to project
of
Our
editor
software
subsystems
as a precursor
and design
decision-making
on
struc-
[5].
One
engineering
for
maintenance
as a front-end recovery
tools,
for
con-
and as input
Our
work
software ter”
is based
on the
engineer
will
subsystem
procedure
needs
environment
We have
than
sufficient
the
ation
convey
and
tem.
tedious
provides
with
introduces
tion
and
visual
0
Department
bcorrie@cs. 4 School University madhavj
of
GPO
Box anu. of St.,
i@opus.
Computer 4,
and
edu.
ACT
It
inter-
with
a graphics
program.
approach
tenance,
is difficult
to gensys-
necessary
Computer
Australian
cs .mcgill.
2
Science,
ca.
Canada
serve
Section
a means
for
effectively
outlines
Sec-
how
by
views
of
the
results
software
main-
management.
findings
4
concepts
for
project
early
ations.
representative
as input
and
on some
with
our
Secreverse-
approach.
Reverse process two
and Electronics,
McGill
National
University, H3A
engineering
approach
engineering
of reverse distinct
phases
2A7.
identification
nents
and
their
2. The extraction information.
During
the
system
is not
about
it
process
a subject
system
in-
[6]:
of the
system’s
current
compo-
dependencies.
of system
abstractions
of reverse
engineering
although
additional
UniEmail:
phase,
altered,
typically
followed
ment ation
In
is generated.
engineering
Australia.
Australia.
1. The
survey QC,
can
tour
soft-
3.
introduced
four
The
generated
Section represent
of the
in
of and
and design
co-
au.
Montn%l,
these
through
re-engineering,
6 reports
and
a subject
by the
2601,
some
a tour
is summarized
of the in
of a view,
storing
5 illustrates
volves
data.
Science,
Canberra,
user
of information
* School of Mathematics, Physics, Computing, Macquarie University, North Ryde, NSW 2109, versity,
struc-
such help.
with
structures.
is exacerbated
program-
for the presentation
presented
notion
presenting
of this
engineering
representations are
our
manipulating
The
involved
interaction
the wealth
and
subsystem
the human programming
tasks
of reverse-engineering
problem of spatial
existence
effective
of subsystem
as a result
the
a “bet-
automatic
However,
extensively
the
communicate
This
a fully
Rigi
the
a graphical
an experienced
arduous
and
forms
model:
is an art.
to produce
from
and
process,
regarding
present erated
time.
assistance
also experimented
issues
that
decomposition
in the composition
face
premise
be able
expert
for
structures
always
— given
designer
subsystem
and in the
blocks.
Operations
structures
tion
processes.
and building
information
to construct
building
with
are vital
measurements
used
to reverse
section.
engineering Discovering
with
aids,
approach
the next
objects
focused
reverse
applications,
modeling
been
for summarizing
is a semi-automatic
re-engineering
ceptual
have
This
interconnection
of software
interaction
and algorithms
of the
and
our
process.
augmented
out
interaction
of information
are stored
the
repository.
recently,
engineering
understanding
size,
an effective
of a software
ware More
that
of both kinds
presentation basis
such
interface
We hiive found reverse
relations;
artifacts
database,
maintain,
software
subsystems,
control-flow
as component strength.
in an underlying
when or an-
include
modules,
supplier-client,
attributes
models
inspecting,
and interfaces;
and
of artifacts
mental
integrating,
systems.
such
a collection
by
phase
of several
contrast,
consists a forward
which
alters
state-of-the-art
the
of a reverse engineering the
subject program
the
subject
information process
of re-
engineering or
re-imple-
system.
A
understand-
3480 E-mail:
ing
techniques
overview
of our
is given approach.
in
[7].
Here
we present
a brief
The
first
phase
automatic dependent ject
and
system
parsing
essentially
Our
the pertinent
subject
designed itor
objects
the
users
stored
in
currently
supports support
The
environment
Rigi
system
repository.
models
with
two
contains
manipulated
information
nection
levels It
As
it
such,
The
other
during
neering. connection
by
the
the
One
and
represents
logical
cent ains
information
C and
branch
views
to
independent
the
hierarchies
position
is the
flow
first
and
is
such
formation
source
these
as low
The that
serve present
structures. views:
tations
that under
ation
(and
highlight
file
optimized
dependency
subject
able
to
to software
retrieve,
browse,
is a key
to system
approach
involves:
effectively
engineering
of relevant out
graphs.
system
of source
composition
components
text,
thereby
and
forming
of subsystem
resource-flow
hierarchies
graphs,
using
on
top
an interactive
editor.
engineering
met
maintenance
4. The ing
module
5. The
in-
modeling
software
and systems
for
3
also
measures
based
on exact
engineering [12, 13, 14].
interfaces
principles The
quality
design
quality
as a recovery
capturing
serve
The
process
cation
as small and
and few
high
strucengineer-
interfaces
strength
of pertinent
within
views
can be recalled, as a basis
for
and
for
inspected,
further
be-
subsys-
target
audi-
played
back,
investigations
visual
and
software models
to project
criteria
subsystem quantify
of reverse
of software
of a subject
and
and established
measures
such
subsystems
software
as a precursor
as input
to evaluate
subsystem
to established
interconnection
the
part
these software
source
re-
processes. formulated
principles
Spatial
softstructhe
en-
then
engineering
artifacts
system
of the
artifacts
tations. TVe have
the
explorations.
software
program-understanding ~ and
from
the
propa-
the
anno-
applications, and
in-
augmented
of the
y can serve
among and
subsys-
semi-automatic
re-engineering
conceptual
axes
hypermedia)
ho dolog
extracted
of re-constructed
respect
ences which
[10].
spatiai
can
as a documentation large
and
aspects
interfaces analyzing
embody
composed
[1 1]. Our
with
tems.
be
dependencies
evaluation
tures
also
on the resource-
potentially
different
and
for
of the
by
soft-
cohesion
visual
of the exact
subsystems
the
tween
relations
strong
computation
are
structures
investigation
decision-making
tures
are such
code.
for the com-
as organizational
These
textual
system
ware
which
structures
can all be summarized,
Being
resource-flow
gating
as vari-
which
concern
and
embody
and
with
for
and
reverse
constructed
com-
structures
relations
couphng
structures
tem
aid
include
structures
our
graph
which
such
interfaces
code.
principles
which
exploration
tools,
graphs,
dependencies
and
front-end
them.
methods,
software
principles.
of these
inter-
composite
subsystem
equivalence
of the
generated
verse
of subsys-
among
editor,
hierarchies
evaluated,
2. The
language-
subsystems,
at ion of exact
engineering
teractions
for
module
1. The extraction
engi-
Subsystem
blocks
and
Hierarchical
by imposing graphs
The
composition
and directory
trace
branch.
algorithms, [5].
of building
modules,
the comput
software
or cohesion firewal[s
com-
In other
semi-
semantic
of constructing
out
objects.
formed
subsystem
graphs,
analyzed,
intercon-
features
composition
process
procedures,
posed
phase
of subsystems
components
involves
second
subsystem
generate
ables,
strength
concerns.
level.
approach
ware
separating
of the
by the graph
graphs,
It
of reverse
of the
these
3. The Our
the
or subsystems,
or subsystem
is au-
engineer.
at the
to
thickness
In summary,
and
is constructed phase
modules
of module
comprehension.
software
syntactic
branch
respect
the
engineering
system
system,
reverse
second
the
parsing
parsing
at the unit
[9].
automatically
the
ed-
explore
underlying
branches. by
of individual
we measure and
as call
development.
the
words,
Using
A graph
languages
is under
with
supported
analysis.
and
The
positions
tems
is specifically
[8].
programming
C-t+
Full inter-
and properties
that
maintain,
the
sub-
effect
as the effectiveness
for the dis-
subsequent
structures
constructed
directly
the
graph
for
as a tree
tomatically
for
to edit,
the
COBOL;
information
is a database
to represent
allows
not
and
GRAS,
of the
we are only
of the structure
system,
repository,
parsing
since
as well
language-
in a repository.
required,
capsulation
process—the
artifacts—is
involves
and identification
of the
engineering
the artifacts
normally
in extracting
covery
reverse of software
and storing
is not
ested
of the
extraction
via
reverse to form
Graphs
expected
more
structural
against motifs.
of system
reconstruction
dividual’s
recollection
90
mental engineer,
the
recognition
and
aggregation
the
into
system features,
individual The
depends of existing
identifi-
representation
pattern
abstract
are segmented
pattern-matched
involves
in a particular
success
on of
represenwhich
are
recollections
of
of this
crucially structural
on
process the
in-
knowledge
Visual
Spatial Identification
ofstrongly
connected
Identifying
the
common
Identifying
the
clients
common
suppliers
of software
structures
Orientation
and
and
neighborhood
impact
with
on his
or her
ability
to recognize
its
of spatial
presence
in
and
a
of the
of cognition
suggest
depictive
and
of software
structure
modeling
visual representations forming verse
mental
when
tions.
Software
use
and
analyze
The
results
spatial
spatial
ware cerning fact
immediate
in
has
Perry
describe
as its
[9].
the
unit,
models,
the
set
has as its set of relations
graphical
mation
components,
such
as adjacent
ers, and so on, which Figure
support
the
by
The
graph
structures.
Figure
1 summarizes
interconnection
are
sition
syntax
various
interconnection
ing, and
neighborhood
infor-
common
suppli-
outlined
visual
a software It
component structure
provides
of the
image.
of the
interconnection of clusters tions
looks
a high-level
entire
analogy
preserves
layout,
unit
Visual
on information
size, shape,
of the information
interconnection
model
of software
(e.g., view
has such
set
the
is the of objects
and bases
as the size, shape,
and
to
com-
can
arrangements
some
operations.
rela-
and
compo-
as Rigi
graphs.
be depicted
using
can be obtained
of
represen-
Structural
subsystem,
overviews
to
of graph
visual
can all be displayed
filtering
operations
contrasts
important
module,
of detail
For example,
in
tem
how
gestalt
given
or module
grouping,
in scal-
Overviews
at dif-
by means
of pro-
can be used
is a component Such bottlenecks
those
nodes
tural
whose
number Fringe
module
in
Such
bottlebottle-
number
can
of incident by selecting
of incident
arcs
components
isolated
fashion.
subsys-
of a structural
or
components
func-
by simply
structural
has a high
a similar (e.g.,
or subsystem)
their
can also be identified
threshold.
complexity
parameter. to identify
example
that
arcs.
be recognized
images
An
subsystems,
can be generated
projection-detail
the
and anomalies.
incident
visual
two high-level
dependencies
overviews
necks
graphical The
and such
jections.
or density).
system; model.
as its
artifacts,
about
of
projections.
and
and
and
levels
strength,
representations
most
or subgraph
patterns
ferent
info})
information
overviews as function,
graph
engineers,
a variety
spatiai
The
dependencies
Such
seman-
artifacts,
applications. such
engineer
information
environment
of interconnection
to one an-
tions
based
structures.
and
neck The
by the Rigi
supports
tations
reverse
semantic
or software
provided
visual
{neighborhood
in
form
model
The
with
documentation
subsystem
adjusting
= ({artifacts},
imagery.
augmented
information
pose
tion
IM
visual
editor
1.
Spatial
and
representations
interconnection
manipulate
and
outlined
shape, . . .})
{size,
of a soft-
the
operations
two graphical
software
as measurements
information
operations
the
({images},
these
provided
arti-
software
support
=
of
model,
of a software
spatial
of objects
lM
type
spatial
these
synt attic,
which
uses this
con-
Borrowing
components
representations
together,
information
Spatial
of disconnected
1.
other
about
are relative
detailed
of the syntactic
by
interconnection
model
who
understand
parts
neighborhood
analogy
[9] to
things
representation.
as proposed
used
on
process,
information
meaningful
components
of modularizations
data
a new
abstrac-
managers,
to
Identification
image,
Taken
re-
informa-
engineering
constitutes of the
low-level,
in a graphical
model
project
information
(i. e., where
provides
is the graphical
visual
of central
of congestion
and
key to The
building
of subsystems
Identification
Visual
systems.
component
the
spatia!
to be the
and
reverse
visual
positions
structure It
and
realm
structures. and
and
both
In the
analysis, seem
spatial
of the
subject
relative
other).
both
maintainers
the
also
and
components
involves
[15].
of software
exploits
identifying
interpret
imagery
of artifacts
models
engineer
tion
that
information
dependencies
relationships
Identification
visual
Figure
descriptive
tic
1: Applications
of component of part-of
Quality
to a component
map.
Theories
the
respect
Overviews Overviews Projections
of a component
analysis
Figure
noisy
of a component
navigation
the
Change
and
of a component
Exploration
Identifying
components
exceeds
Unnecessary that
the can
struc-
are in the wrong
also be recognized
visually.
its set of relaand density
Graph
91
structures
are ideally
suited
for representing
spa-
tial
relationships.
and
user
The
interface
neighborhoods one
can
Rigi
tools
in graphs
identify
the
are impacted
by a given that the
graphs, For
Rigi
low
one or
and/or
suppliers.
of
nodes,
that
The
say
these
y,
have
all
identification
high
or
those
user,
Any
number
lored
formation
Again
which
are used
analyzing
systems
with
Rigi
data
system
and
a view
guide
named
The
and saved
exact
software
Different
A
data,
show
mation,
same of
can
sharpen
data
the
focus
illustrate
software environment.
sequences
to
form
guided when
engineering
tasks,
tours
that
of icons).
dows
as well
testing
notate
sections
with
Figure to
Such nel ture
an
illustrate
a view to
gain
and
the
simply can
View
(for
the
might an
Rigi
be
environment
used
understanding
subsystem
interaction,
by of
that
tracing in
management the or
by
state
while
information.
This
current
win-
The
is saved
list
in order
information
the
for-
of one or more
that
formats,
underlying
to
includes
selection,
and
Icon
and or re-
text
views.
free
A browser
to
widget,
and
may
explain
the
which
is used
lists
to
store
includes
the
the and
format window
format
contents, screen
information
type,
space),
with
which
size, position scroll
the
bar
data
(in both
positions,
are being
winworld
and
scale
displayed.
format format
of an icon
a window.
out
In
with
its
type. a subset
how
it is rendered
an icon
its name
Icon
and disabled
or for just
specifies
particular,
or without
icon
enabled
ought
of a name,
individual
played
or per-
by means some
alphabetically,
and
the
with
names
may
and with and
types
for all the icons
be disor withmay
be
in a window,
thereof.
or to an-
project
of a ray
the
and arcs),
arc filters.
serve
Select ion A view
as
priorities
may
highlighted
overview
global
views
factor
to high-
to be analyzed
example,
consists
saved
in
measurements
seback
(e. g., rendering
view
is identified
dow’s
clar-
save
that
affect
view
purpose.z
purposed,
paths
current
view’s
The
be collected
integration,
views,
be played
documentation
The
critical
and icon and
load
sections
impact,
in-
Browser,
saved
of nodes
completely.
be annotated
infor-
maintenance
t ai-
visual
View
the
directly
the information
view
A view
of documentation,
change, and
the
node
the
as some
the window
assignments).
2 shows
used
sets need
to describe
to decision-making
or
cross
and
the
of
and
manipulated
of spatial
names
a particular
or
can conveniently
Rigi
A Rigi
describes
Window
pertinent
engineer,
display
specific
during
or personnel
reverse
to summarize
applica-
immaterial
for tutorial
to be followed critical
hiding
to
be combined
Using
(e. g., insertions
affect
mats
can be used and
highlight
Views
performing
analyses,
model
model,
related
components
understood
input
of a
of the
working
formance
aspects
a problem,
underlying
system
directory.
particular
audiences
while
current
light
or user
can
a point,
and
of
can be
of views
software
make
relevant
to represent
a
or sequences
target
of the into
of
and contents
to a system
or analyze
of the
view
an issue,
Such
display
on a workstation
views
a variety
tions.
data.
and
the views
in
model
restore
on visual
details
lists
only
system.
views
address
of spatial
configuration
as a view
to explore
the focus
state
displayed
individual
be loaded subject
exploration
windows
Subsequently,
to direct
a particular
model.
a set of Rigi
ify
the
represents
software
to
uses views
targeted
are documented
views,
is captured.
of related
others
views
to explore
operations
below The
of detail
views
forth.
Some
software
the
Several
be attached
alternate
simply
software
and
to understand
levels
can easily
or
that
quences
can
Views new
interactively
nodes
processes.
Documenting
these
thousands
5.
of views
model.
to form
and
4
begin
requirements,
in Section
views,
many
architecture.
at different
and
such
through
to even
y and
system, users
software
cltents
z and y.
by the
same
depicted
clients/suppliers
from/to
can be adjusted
with
common
includes
resources
which
to guide
that
and
of the
to diverse
of sub-
code
functionalist
all
Without
to read
operations.
pairs
set of common
~
require/provide
thresholds,
properties
node
pairs
type.
system.
be forced
of source
system’s
To
or one can select
of selection
identify
or
the
would
of lines
example,
data
learning
users
explore
are reachable
coupling
a variety
node
For
that
on a particular and
can
and
hierarchies.
just
operations
paths
component,
operate
provides
coupling two
and
cohesion
example,
provides
follow
set of nodes
the functions investigate
system to
Data
program Section
5.
jects
person-
overall
architec-
new
employees
shown When
2 We in
92
the
hope future.
include
and
that
is, a set
of
hidden
incremental only to
a selection;
icons.
the
augment
loading
components this
textual
is used, and annotation
of
those
dependencies with
obthat
multimedia
~
☞ ❑
Standard Window (100%) - Base Sy’ste.m
*4
Standard Window (1 00%) - Ray Tracer
D Standard Window
a%
s
IIEiiil •l — .
control
Library
m D
Base System
Standard Window (1 00%) - Shader Librar
✍ ❑
m—l Load 3
22s
*b
View 1= &
mai nt exact knot
SL Shader
.
high-level berg
.4?A
SL Primitives
:1
m A Light
A& @
I
I
SL Utilities ~i gh-1 evel view of the ray tracer.
after
reverse engineering.
Iml—
Figure
are loaded played.
from
pendencies (via
whose
menu
lected
the database
Moreover,
those
icon
and
selections)
individual
dencies
may
into
only
memory
components arc
types
are shown.
icons
and
their
In
2: System
are dis-
first
and
directories,
de-
addition,
parse
types,
are enabled
attached
overview
se-
the
through
interaction without
at hand.
with the
the
Nevertheless,
teraction
by
subject
system.
The
applications
we attempt
The
a ray
modules.
four
tracer are
scenarios
for
some
troduced
in the
of the
is difficult
under
written
and
generate
an initial
call
and
are then
exact
is kept
artifacts
in multiple
such
The
call
maintained
subsystem provided built
Rigi
on top
in the
in Figure
3 represents
of
graph
and
editor,
of the
of the
as data graph
identification by the
interfaces
com-
subsys-
initial
constructed
call
subsys-
are computed. web
to illustrate
this
to
software
and
a sequence
of
a
of 30 and
concepts
ray
usually
however,
in-
lated
a Gordian
nodes
normally besides
in-
cedure
tracer,
but
interactively
we
93
and
arcs,
Rlgi rather
meaningful
be
untied
Great
so
cleverly
separate
are
not
offer
this a fully
a set of operations, given for
order
searching
subgraphs.
by
sets
subsystems,
a variety
organizing
does
call
web
a software graph
with did; of rewill
of tools— of
software
automatic which
the
graph
engineering.
cannot
forming
There
the
reverse
which
thereby
trick.
in any engineer,
the
of cuts,
a sword—for
structures. to
as Alexander
do the
or reverse of the
knot
this
sections. graph
preliminary
cut
different
system,
after
Such
is a graph-
capture
tracer
a single
views
scrutiny
depicted
ray
system
fying To
the
to por-
in C consisting
intended
representations
preceding
of the
representative
system
views
illustrate
system
implementation
describing
ics program;
Rigi
actual
Using
which
dependencies.
stored
operations
of the User
is then
code, software
Rigi The
tray
and
hierarchies
tems
tour
functions
position
graph,
A
extract
database.
depen-
be hidden.
C source
to
system
tem
5
the
pro-
are applied engineer and
identi-
n:1 A
maint exact knot
. El
high-level berg
._—
—
rl~Dnigl-Ji--Jl-Jl-J —-
❑ ❑ ❑ ❑
m
,rl
lcluuuuuuu 00000000 00000000 nclclnnnnn
m
m
m
mm
rigiedit
- /home/stilley/papers/s
igsofi92/d
b/rlgipool/knti.tW,
din
& Several c1 usteri n techniques have been applied to the initial view. candidates for subsystems are grouped has been i denti fi ed. Unused code is shown in the 1 ouer-1 eft corner as together. The bus 7 est node ‘ rayerror’ disconnected i cons. The mal n entry point to the pro ram Cfunction ‘mai n’) and t ts i mmedi ate cal 1 ees are shown at the top of the view. Several subsystem can 3 i dates were identified using grep; these are currentl & filtered from the view.
Figure3:
One
possible
main
entry
and
then
that
are
ure
3.
clustering point
to create
from
a side
tree node,
ofall
some process.
This
squares
in
resented
as unattached
for
function
unused
the
or
routines
the
in
dead
dead
Fig-
code
code
lower
the
main)
as depicted
effect,
exposed of Figure
this
search
(e.g.,
in the
typically corner
is to
program
a dependency
reachable As
technique
of the
Gordian
is
is rep-
left-hand
3.
knot
system
hierarchy,
tracer.
There
sition
relations
However,
A second
tack
might
is, components
say,
n other
justed
used
subtrees. finally,
This
process
tems
and
The
piles
their
tedious—and
the
dependencies,
chy of subsystems
experienced
structures
created
this reverse
effectively
as piles
subsystems.
forming
While
and
2 exhibits
the
top
level
of the
The
and
on top
allow
of the
overall
archit
ec-
as possible,
help
re-
the
and facilitate
editor’s
tools,
subsystem
and
user
call
capabilities parameterized
to explore
hierarchies
initial
graph.
subsystem
the
Rigi
call
any
decisions,
searching
operations
of alternative
expose as best
design
comprehension. as filtering
scenarios
subsysa hierar-
process engineer
seems can
reliably.
The
constructed
important
stages with ing
reverse
2 from their
and
a vari-
“what
if”
graph.
and
access
filtering
routines, At
cess the
94
and the
3 are
functions objects
such (3)
routines later
following
strategies
engineering
Figure
comprehension library
sub-
composition
of the
Figure
tem. Figure
that
system
initial
in just
ray
compo-
are then
organized
newly
ad-
meaningful
to form
thereby
structures.
it is—an
subsystem
are
be
ety
those
of the
in which
on the
interested
oft he original
composition
than,
n can
identifying
nodes
for
more
components
for
are collapsed
is repeated
components; to
threshold
identified
nodes
of related
the
central
connected
(the
as root
Sets
and,
are
components
by the user).
typically
build
be to identify that
but subject
most
system
not
overview
strategies
can be imposed
we are
of the
cover
a representative
are numerous
composition, ture
such that
. * EI
(1) and
that
form
stages
methods,
of the
and
and
construct data
(2)
are immaterial
the
composition
at the initial to
clustering
as debugging
identifying
to
used
process
for
reverse
system
error-reporting
clustering
Shader
types
identify-
common
Library
subsys-
engineering
strategies
are
proused
to
g~
Exact Interface
Standard Window (97.561%) - Base System L Exact Interface
‘
n=
subsystem Ray Tracer:
= 5
Provisions
I.imIl—
for
Ray Light Shadow Trace
provides provides provides provides
Light Ray Ray Shadow Trace
--> --> --> --> -->
Requirements
= 5 requires requires requires
CommandParse ReadAttributes ReadAttributes main main