A Reverse Engineering Environment Based on Spatial and Visual ...

4 downloads 80 Views 1MB Size Report
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

Suggest Documents