Anda di halaman 1dari 11

Software Bridging

Gail C. Murphy

Reflexion

Models: Models*

the Gap between


and David Notkin

Source and High-Level


Kevin

Sullivan

Dept.

of Computer University Box Seattle WA,

Science& of Washington 352350 USA

Engineering

Dept.

of Computer

Science

University Charlottesville sullivan@cs.

of Virginia VA, USA 22903 edu

98195-2350

Virginia.

{gmurphy,

notkin}(lcs.Washington.edu

Abstract
Software stance, municate problem most source helps ture which engineers box and about with always code. often arrow an use high-level sketches) software is that an model respect models system. they approach of the are to the (for inOne althat strucIn and

Introduction
engineers system found these about in often terms think about an existing models. Alreafor instance, used,

Software software are often though soning always source. Current high-level derived their very

to reason

and

com-

of high-level whiteboards.

existing with

high-level inaccurate We have

models developed

Box and arrow

sketches models

of a system, are commonly the models respect to

systems

on engineers

an engineer of an existing

use a high-level software of that defines maps system

the system because with

in terms

of such models are almost the systems

as a lens source

through code.

can be dangerous inaccurate

to see a model an engineer how the

systems

particular, specifies then where where The flexion proach, proach The

a high-level to the

model

model

source. that

A tool shows and

computes it differs paper models, and and

a software from provides relates tools to

reflexion model of the

model source.

reverse models models nature, Although reverse

engineering from the

systems code. they

derive These are, by of the created differ

the engineers

high-level a model a formal experiences a number used

agrees

with

source because the

are useful accurate accurate, engineering sketched

characterization aspects of applying of different in the paper to NetBSD, of 250,000 him of the approach and Excel with computed

of reof the the apap-

representations models systems by engineers; may

discusses

practical

source. by these from

systems. describes an imlines of C sev-

the models

an exam-

illustrative

example of reflexion of Unix models a few hours, that

ple of this is reported We have Figure


sufficiently ent of call way. interest, graph or

by Wong

et al. [WTMS95]. illustrated to


in produce a differmodel as the a

the application plementation code. eral global tual applied tal product. In only reflexion overview memory to aid

models

comprised provided The

developed enables

an approach, an engineer
models

in

an engineer

1, that

a useful, vir-

accurate The engineer extracts

high-level defines a source

of the subsystem. in the

structure understanding Microsoft

NetBSD

a high-level model hierarchy) (such

has also been experimenspreadsheet

an inheritance and two defines models.

from

reengineering

of the

source between

code, the

a declarative

mapping

software does An and, and

rejlexion where does the not inaddi-

*This scholarship.

research and

was funded a Canadian

in part

by the NSF

grant

model agree terprets modifies tional

is then wit h the the the reflexion

computed source

to determine model model.1 model

CCR-8858804

NSERC

post-graduate

engineers

high-level reflexion input models.

engineer

Permission to make digitallhard copies of all or part of this material without fee is granted provided that the copies are not made or distributed for profit or commercial advantage, the ACM copyrightkerver notme, the title of the publication and its date appear, and notice is given that copyright is by permission of the Association for Computing Machinery, Inc. (ACM). To copy otherwise? to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGSOFT 95 Washington, D.C., USA 01995 ACM 0-89791 -716-2/95/0010...$3.50

as necessary, compute

to iteratively

1The old English


flexion from

spelling

differentiates

our use of re[Smi84].

the field

of reflective

computing

flexion considers mance


reted By

models the aspect

in a variety theoretical of the

of settings. and practical and our

Section perfortools. approach needed

approach
key aspects

In

Section that

6, we discuss provide software

of the with

/ \
Detines

engineers

the

flexibility

y. Section

7 considers

related

work.

An

Example
our with
systems himself

To convey

basic

approach,

we describe virtual
models implement

how memto faa-

Y3=-q
Input Source Code O* Extraction Tool Produces Source Model

a developer ory
Input

expertise
used

in Unix
reflexion

(VM)

miliarize tion, 250,000

wit h an unfamiliar The system

Net BSD. lines

is composed source files. a model code

of about spread over

of C [KR78] 1900 first source

approximately The developer based

specified

he

be-

Figure

1: The

Reflexion

Model

Approach

lieved, tic

on his virtual

experience, memory

to be characterissystems. of This model memthose

of Unix of

consists

a modularization and 2a). between using of the

a virtual between

In source point ing


one prior reflexion ture other models tween

essence, model

a reflexion of a software is useful of software


engineer at

model system

summarizes from the viewThis tasks.


Corporation, task, the applied strucIn an-

a form

ory

implementation (Figure relation computed tool (xrefdb)

calls

modules A calls then

of a particular a variety
case, an

high-level

model.

of summarization

to engineers engineering
Microsoft

performIn

NetBSD the Field

functions

was

cross-reference [Rei95],

database

and to transformat. of

to performing models the case, Excel to

a reengineering help understand

small late The


15,000 Next,

awk the

[AKW79] calls
over developer

script relation

was written into our input consisted


entities.2 the following

output

of Field

of

spreadsheet a several

product. of where of the

extracted
tuples the

over

computing

sequence places layers had

reflexion calls be-

3,000

source

highlighted modules

defined

map-

violated that an

the engineer

software to

ping:

architecture exist. We plifying models tools tems tion that in have the and

perceived

[ file=. developed engineers mappings. several task We techniques of defining have models As and in of also for for sim-

*pager. * ault\. fs

mapTo=Pager mapTo=VirtAddres c

] sMaint 1 1 1 1 1 1

[ f ile=mn-xnap. [ f ile=vm_f [ dir= [un]

high-level developed large in made to sysSecit betof

mapTo=KernelFaultHdler mapTo=FileSystem

compute a minute

reflexion or two.

[ dir=sparc/mem. [ f ile=pmap. * [ f ile=vm_pageout

mapTo=Memory \. c mapTo=VMPolicy

mapTo=HardwareTrans

described tools have hours,

2, these for

techniques an engineer, a system of code.

possible ter

a few several

Each tities

line

in this

declarative model model of defining

map (on

associates with right). the

enentiThe given

understand

hundreds

in the source high-level difficulty

(on the left)

thousands To flexion zation The in clarify

of lines the

ties in the
and computation a formal system is in of re-

meaning we present model our

seeming the

a mapping NetBSD

models, of

characteriSection 3.

thousands

of entities

in the

source
function,

a reflexion of 4 through

2Each tuple cent ained the name of the calling


the name of the called information for both function, functions.

flexibility Section

approach descriptions

demonstrated use of re-

and the file and directory

of the

19

Memory

u
.:

Memory

;0:0
.

,=
HardwareTrans

v
4

I
/
I I I I

{b

,tl
I KemelFaultHdler

, ,

&)
FileSystem

Pager

I I I I I I . \ \

16
I I I

\
I I I I

d+
User
I I

VirtAddressMaint

II

I I I I I 3 ;6 I I I I I / , /

..
., ...

I I 16 1 I

(0 ;0
. User I

l-l

-
n
0
>
---> calls . . . . . . . . . .> .

Module

n
*
(a) High-level Model

Convergence Divergence Absence

(b) Reflexion

Model

Figure

2: High-level

and

Reflexion

Models

for the NetBSD

Virtual

Memory

Subsystem

20

model neer est. ond, logical the

is mitigated only For the named example, entities physical (e.g.,

in three entities the from (e.g., the and

ways.

First, above and

the engiof interdoes file) not Secand of

ducing tuples.

displays The

of the

associated

source

model

in subsystems mapping 1/0 directory classes) many subsystem.

screen Arc the

snapshot

in Figure that shows between window

3 includes the result FileSystem

a window of selecting and Pager.

Values divergence in this

consider

Values

show their

the calldirectory

functions

structure source

ing and called

functions,

including

source

are used to name line physical logical are used structure structure. to obviate

model In this C proex-

and file information. In a one hour able to iteratively several extracted during found overview plement this the reflexion session, specify, models. the VM developer was

entities

in a single

of the

mapping.

case, only vides little

is used since Finally, the states name

compute (The

and interpret model was

regular need For that

source was

pressions merate the first tions string level

to enuinstance, all functhe the high-

beforehand, session.) representation model of ation. the For ation that rely module.

and

it

not the

changed developer code as imspethat oppager. a global

a large line found pager model

set of structures. files whose

Informally, of the in of the useful

of the mapping within should entity

source

includes

a reflexion

providing from

be associated Pager. inputs, the

with

structure example, the

NetBSD studying

Given computed models vergence, the veloper source ing menting

these three (Figure 2b). model.

a reflexion source model instance, calls in and

model

was

cific

divergences,

developer on information

concluded em included from

to compare where expected, the

high-level with dethe in

the implement timization This tions information to either

of FileSyst

The solid lines source For were

show the conagrees as the found implementimpleshow model. the For to

is useful

for planning

modifica-

high-level between Pager.

there functions

in modules

Formal
precise

Characterization
the meaning we present model [Spi92]. and system computation specithe Z using

VMPolicy

and

functions The the by the line dashed

modules arrows model

To make fication

divergences, arcs not in$tance, Pager mapped within lines model. tween mapped with model the

where dashed that

source from

includes

of a reflexion specification

model, language

a formal

predicted

high-level within calls

of a reflexion

FileSystem to functions The

indicates modules show the include For modules

functions make where no to The calls Pager

modules dotted model be3.1

to FileSystem mapped absences, instance, mapped

to Pager.

Reflexion
schema in

Model
Z describes state a state the that Any sysmust sys-

the source were and

A static tem tem must variants presented The types,

does not

arcs predicted

by the high-level found

can occupy implementing maintain described below.

as well across the the

as invariants transitions. model reflexion

be maintained

modules associated of source with

approach and in-

to FileSystem.

number

state

components

each arc in the figure relation zero. and in Figure with C++ values absence

is the number arcs

in the ReflezionModel

schema

mapped

to the convergence are annotated

or divergence; the value

ReflexioniWodel

schema which entity type the and of

uses

two

basic

HLMENTITY, model type and high-level define represents Four over entities which

represents a source are entities and also which

the type model defined: define and reand in the source

Computation model shown on a DEC user interface Computed AT&Ts engineer

display 2 takes our [Str86]

of

the twenty

reflexion seconds conand a [OUS94]. using the proallow which

of a high-level which entity. lations model SMTuple, HLMRelation

SMENTITY,

3000/300 small

tools,

synonyms SiWRelation, model

sist of several

programs

HLMRelation

implemented reflexion models package.

in TCL/TK are displayed The tools

respectively, and SMRelation.

HLMTuple of tuples

graphviz to select

the types

arcs in a reflexion

model,

21

file

function

dir

file

function

Figure

3: The

Reflexion

Model

Tool

User

Interface

[HLMENTITY,

SMENTITYj

by and able from

the

divergences

variable from described model.

describes a high-level by the The

where model; varidiffers variable, t hat

source
HLMReiation SMRelation HLMTuple SMTupie == == == == HLMENTITY SMENTITY HLMENTITY SMENTITY +-+ HLMENTITY ++ SMENTITY x HLMENTITY x SMENTITY

model defines a

differs where

the relation source

absences model

a high-level defines model in

fourth a relation

mappedSourceiWodel, scribes which The source or information

deto

values arc in that

contribute the aid reflexion

r
dom The schema maintained relation defines a given

ReflexionModel : HLMRelation : HLMRelation : HLMRelation : HLMTuple = 0 = 0 = * SMTuple

a convergent model. is used neer ample,

divergent operations

convergence divergences

mappedSourceA40del

to support the information to support 3.

an engiFor exis

absences

in interpreting

a reflexion a query

model, of the form

mappedSourceModel convergence convergence

in mappedSourcehlodel

n divergences n absences = 0

necessary in Figure

shown

divergences

n absences

In addition of a reflexion the ing


line) that in the be The variable agrees with

to declaring model, of must The of the relations that values the constraints

the static

state (below by

components includes the all dividstate fourth of in the the reflexion

mappedSourceModel convergence

schema

U divergences

definition line) the that values systems. absences model arc

be satisfied first three convergence,

variables define by described where source a

(above the

the

dividing

model that and

constraints The

information model

must

divergences

a reflexion by the

system.

are disjoint. the investigation for contributing

convergence model the relation

constraint source model

states is only

high-level model;

to a reflexion values

described

meaningful

22

convergence have

and

divergences source

relations; model

absences

Computing function the source

a reflexion that high-level model

model matches

also map,

requires from producing

no contributing

values.

(mapl+mc)

entities entities.

to the specified

3.2 The

Computing dynamic model a source to the model (Mm?) model The type model schema, from

a Reflexion

Model

a set of associated The value through

model

of mappedSourceModel the elements the map, entities. and of each resulting The each (through source

is computed source in two in model sets of of recrosstuple. the and the

ComputeReflexionModel, the computation of a three inputs: and model. and the a high-level from highover model model ordered or more these The source is an

by

pushing

presented reflexion model, the level source

below,

describes

tuple these sultant

high-level

model

cross-product another model

model, high-level

a mapping as a relation

sets is taken with of the relations the

element

set is associated

is described entities,

product) Once values absences the

original

high-level (srn?) entities. list by of map the

mappedSourceModel convergence, are easily and

is computed, divergences, determined

is described entries.

as a relation Each and

over source map

mapping

(map?)

through

entrydefined zero with

set intersection

set difference

operations.

MapEntrynames entities

source entities,

associates model the

one or more

high-level represents

entities.3 of a demodel enand

3.3 This ion model

Family

of Reflexion
defines Different depending the source function

Models
of reflexof reflexion choices deOur model inforsupproand for entity

SMENTITYDESC scription tities physical naming software (e.g., a regular

type

zero or more expression structure

source

Z specification model systems. result systems

a family kinds model

over logical tools).

in our

on the

made for representing scriptions


[SMENTITYDESC]

in a map the mapping

( SMENTITYDESC) (mapl%nc). source

defining reflexion

model using and

system

describes

MapEntry

== X (P HLMENTITY)

entities mation port The

a combination regular different mapping match

of structural Our tools used source function entities found reflexion mapping function model of a given

SMENTITYDESC

expressions.

the use of two most common the first

functions. associmodel our that resultin the model

- CompuieReflexionModel ARejlexionModel him? : HLMRe!ation ~m? ~ SMRelataon map? : seq MapEntry

duces entity tools x SMENTITY)


--+

the set of high-level to an entry support

entities

ated with

in the map.

Alternatively,

the use of a mapping model matches union of all

mapFunc

: [seq MapEntry
(P HLMENTITY)

returns ing map. from

the set of high-level the Our tools

rnappedSourceMod (J{t ( mapFunc mapFunc {t]] convergencest =

el = ~ t E sm? ( map?, ( map?, jirst


q

can thus be configured

to provide

: SMTuple

implement systems.
t ) ] x

at ions oft wo different

t ) x

second

him? n (dom
divergences (dom absences =

mappedSourceModel)

4
him? l)

Experience
reflexion engineering systems language. model approach has been a variety applied of soft-

mappedSourceModei) = him? \ (ciom

mappedSourceMode

The ware t ation

to aid engineers software

in performing tasks that vary

3An additional invariant which constrains a map entry to name only high-level model entities specified in hkn?
has

on a number

of different

in size and implemen-

been elided

for presentation

purposes.

23

Reengineering crosoft assess product Excel Corporation the structure to

software applied of the

engineer reflexion Excel

at models

Mito

We later version reflexion cluttered unexpected reflexion either least

applied

reflexion

models in

to a newer C++. were far The less some the for

of the models than

compiler, for the this

written compiler version.

spreadsheet activity. The lines reflexweek

prior product

a reengineering of over engineer

Ada

However, using the

consists The

one million computed a four

interactions model; these

were identified may provide of the to the

of C source ion models

code, several

basis

times model A

a day over

minor additional

restructuring warnings

compiler students.

or at

period 120,000 from sisting is being nents approach fort.

to investigate high-level source.

the correspondence and a model references mapping data

between of almost extracted file conand

a posited the

calls and global

detailed

Performance
iteratively reflexion specify, The upon compute, rate the and inan of

of almost used

1000 entries the

was produced

to guide source. for

extraction engineer

of compofound the the efstruc-

Engineers terpret engineer the

from

the

The

models. in part,

at which the speed

valuable and

understanding

can interpret

and iterate

reflexion

mod-

t ure of Excel

planning

the reengineering

els is dependent, computation. The formal 3

characterization a basis of the for complexity From

presented considering computing dynamic we can of Z

in Secthe a reflexschema, the the cost of model

Design reflexion tectural ing tool of calls modules layering approach found An

Conformance models design [GN95] between to

We used a sequence compare the layered

of

tion ion time

provides

archi-

theoretical model,

of Griswolds with modules.

program model a few The

restructurconsisting model to the cases where adhere of any other to be

a source

ComputeReflexionModel, complexity is dependent upon the

see that computing the

reflexion

of computing cost relation computed

a reflexion and relation then,

highlighted,

as divergences, in the source principles. that would

code did not

mappedSourceModel comparing level plexity lation model. is given that

We are unaware allow such

to the

highre-

violations

An upper by:

bound,

on the com-

so directly. industrial partner line matched applied C++ design object reflexion mod-

of computing

the mappedSourceModel

els to check (in the form prepared unique vergent

if a 6,000 of a Booth

implementation documentation diagram This [Bo091]) case was conwhere relation, model #sm is the cardinality is number the to entry, in the cost a source and model constant, of of the source of entries comparing model #him relation. high-level the yielding: entity is the Since model in the model map, #may entity in a map high-level and of entities small
O(#sm x

of a subsystem prior in that with

#map

tcomp.rt$on) ~((#~~~)2) x

to implementation. the reflexion the source model model.

was fully

tcompa,i.on is
tion ber to comally

a source descripcardinality the numcan, in is gener-

System models in

Understanding to try to determine education was difficult Ada model

We why at for file

used the the

reflexion used University

a compiler students model

of the

undergraduate We an reflexion between This why system. high the

of Washington change. paring with The tities. part, the

0((#Mm)2)

computed

a reflexion

practice,

be ignored,

extracted model

imports meaningful

relation [PW92]. diverenin Our puting tation ward initial reflexion of manner implementation models described model in of tools performed the by the the for comO(#sm x #map

a conventional

of a compiler

tcompartson)

contained all pairs had

gences

almost degree students

of high-level explains,

of coupling difficulty

compuschema

changing

a reflexion

straightfor-

dynamic

24

in

Section fast

3.2. for

This

implementation large of tens (tens for

was systems

suffi(with of was or of to

different ware

kinds

of structural (calls, etc.). data It

interactions dependence,

in a softor event that that exof

ciently source tuples) not tation larger our compute fast

moderately consisting

system

models and enough

of thousands but

interactions, it is the it makes model ample,


Figure sense,

also means,

however, to ensure model. calls For

small

maps models

of lines), larger

engineers

responsibility source

to support

the iterative

compusystems version

sense to compare comparing the

a selected

high-level

of reflexion maps, tools For

wit h an ext ratted

example, 40 minutes model time

an early for Excel.

specified
calls same

diagram

required a reflexion

on a Pentium

2a with but

an extracted the

relation high-level the

makes model #include

comparing model

By trading tion the two of our

space for tools,

in the been able

implementato support for tools large or hash model

with

a source

representing

we have of 1).

structure

of NetBSD

would

probably

be mean-

computation systems (see Table model is seen. upon entities source

reflexion Specifically, model the first

models maps our entities time

ingless. In practice, ibility els over veloper a calls source tion their by time. and source models the with both engineers the For have exploited both engineer later data. dependence By adding implicitly a calls need diagram In both additional the this VM first flexmoddeused the static shifted to a cases, the aspects

software

and large

in a minute

changing

meaning

of their

the mat ch of high-level source entity depend model in the the entity The

for a given

example,

a source

Microsoft and static

additional

space requirements used for source entities and are in to there 2 Mb of unique tools,

model

augmented

the naming model. scheme source tools In used

scheme the

of func-

and the number

definitions high-level were

on global model driven being

case of Excel

dependence,

developers from by the performed, diagram.

naming unique Our

by our

18,118 tot al).

model

entities

each requirof options

communicates-with changes for the task of the system To models aid the

ing on the order let the engineer time tradeoff.

of 100 bytes provide determine

(less than

to understand,

a variety

the appropriate

space

structure. engineer in interpreting we are adding source reflexion differsupport

computed relations

wit h models in both

cent aining

ent kinds

of information,

Discussion
models permit aspects an engineer of a large to easily software exsysengi-

for typing models.

and high-level

Reflexion plore tem.

structural

Maps

The

declarative model of interest an engineer

maps in may

used the

in

computto focus in two a partial parts of

The goal of the approach the flexibility models that a particular

is to provide

ing a reflexion on information ways. map First, that

enable

an engineer source specify those a map

neers with high-level performing (restructuring, Three ing this

to produce, are good or software

at low-cost, enough porting, models, and for t ask etc.). to meetthe support

engineering

cent ains entries relevant may e level iteratively of detail

for only refine necessary

reengineering, of the approach

the system an engineer appropriate being

to the task

at hand.

Second, to the

aspects goal

critical maps,

are the use of syntactic declarative model. a reflexion

for the task

use of expressive for querying

performed. an initial a rough refines the


reflexion model is cOrn-

Generally, puted with in the formal are computed semantics A benefit of of an engimany based terest system when structure

and the

partial in the

map. areas

Then, model, of inthe case a

Syntactic without this neer

Models any knowledge approach

As described reflexion models model. ability

on an investigation until necessary reflexion

of the reflexion map information models implemented to

characterization, of the high-level syntactic

an engineer

of the intended is the

about

or the source models

is obtained. we applied

Sometimes,

as was the

assess the in Ada,

to use reflexion

to investigate

of the compiler

25

System

Language

Approx. Lines of Code

Source Model (Thples)


607

Mapping (Lines)
33

High-Level Model (Entities)


5

SPARC

20/50

(min:sec)
:00.5

486 PC 100 MHz (min:sec)


:01

Uw compiler Uw compiler Restructuring Tool NetBSD

c++
Ada

3,700

4,200

72

:00.2

:01

CLOS

47,000

5,855

215

:04.3

:06

250,000

15,657

:04.0

:19

(VM) Excel

1,200,000

119,637

971

15

2:13.0

4:05

Table

1: Performance

of Reflexion

Model

Tools

fairly the plan

rough

map

was

sufficient. map

In

contrast,

in to

absences result

in the computed

reflexion in the of the

model

are the

case of Excel, reengineering reflexion to balance

a detailed activities. model the

was desired

of incompleteness on the may results

map. interpretation, an

Based enables an enthe map engineer model, tion all task. terpretation techniques gation of refining

The gineer

approach cost necessary engineering systems

either

decide decide support the

to refine that

one or more reflexion informathe overin the indeveloping and investimodels.

of the inputs,

computing

a subsequent sufficient with to proceed

wit h the level a particular to track degree changes gineer ating the evolution made

of detail software of several

for performing task. We plan across the to

or else may To better

has been obtained process, to improve

the use of some declarative of sensitivity in judging the of our mapping This

maps

an engineer querying

to determine language will costs

we are currently reflexion

in the source.

aid an enof cre-

of a series

of computed

amortization

detailed

maps

for large

systems,

7
Querying els bridge Ievel rize the tions arcs. engineer terpret In the gates the engineering first model selected between Based convergence, Reflexion the gap and Models between a model of in the the and Reflexion an engineers source. source, t he source and absences captures modhighThe while connecmodel the to insumma-

Related

Work
The to ours and reverse culled engineerincomfor include a com-

Reverse ing formation, bination putation,

Engineering closest human create which of to

approaches

use clustering from numerical approach

divergences, interactions the on the high-level

is generally input abstract

mappedSourceModel

representations

the engineer, Rigi [MK89]

Examples and

of this

summary two kinds for

information, of queries a specific an engineer contributing second determine that This were query the map to In the

Schwankes technique differ the explicitly, systems on than our in

statistically-based [Sch91]. of ways. the archithem. and highin uses the infer high-level

intersperses a reflexion task. kind

architectural Reflexion First, in our high-level tectural Second, source level tive,

recovery models approach entities recovery

model

software investito a kind, the not enis

a number whereas instead

engineer

specifies

of query, model

source

values queries and model.

convergence an engineer source included ables sufficiently model

or divergence. performs entities reflexion to and

we focus models, Third,

comparing mappings

rather source

on discovering

values

models. associating

are declaraentities, which

in the

and high-level such as Rigi,

an engineer complete

assess whether to investigate

contrast operational

to approaches mappings.

whether

26

Rigi engineer the

differs

from

our explicit

approach

by enabling models

an of

ent levels declarative

of abstraction mapping.

through

an explicit

and

to build

hierarchical of a system. different

software the

structure investigation by

We instead (i.e., reflexion

support models

of substructure of abstraction.

a subsystem)

computing levels

8
A

Summary
reflexion from model source summarizes code into accurate a software three The a high-level refiexion in the by until the information a high-level to support engineering model, model context engineer. computes The have exmodel an engitask. a source presents of the The sucfeabeen from

at various

tracted Model the structure GRID

Comparison
for [0ss84]. a fixed type

Ossher

has

considered of software model, description


document layered sys-

that neer a The model model, the

is sufficiently in performing engineer

comparison

of relational

models of high-level of a GRID represent,


of large, GRID

defines

inputs

to a reflexion

The intent is to
the

computation: and a map.

of a system
and tems permits tion tate viates intended of the of the enforce [0ss87, an

specify,
structure

summary

information defined models

pg.

219]. to

The choose

mechanism descripto system annodeis not structure two mapping models be-

high-level engineer cessive sibility

model interprets reflexion

engineer software

a concise and of Our then the

and iteratively

of the how from to

structure structure

satisfied.

the

actual the

and flexibility through settings

of the approach its application on systems

description. or enforce rather using models an to

approach

demonstrated ber of different several thousand

in a numranging

specify but

a desired compare explicit by

system, structure the two

to over one million

lines of code.

t ween

provided system

the

engineer.

Acknowledgments
Jacksons partial els) source cannot Aspect a model that to program data to be uses of flow Aspect [Jac93] (high-level extracted the static between of a source type data system focusing the posited from code compares modthe that specifications models bugs in

Robert Bill Bob vided the

Allen,

Kingsum Michael and comments Conversations a number Microsoft Pok Wong

Chow, Jackson,

David Kurt earlier Daniel

Garlan, Partridge, each drafts proof

Griswold, Schwanke, helpful paper. clarify

detect detected

Michael on

VanHilst with

using

checking. stores and as as-

dependence the this model behavior model differs we focus we are

Jackson work. reflexwas our modStephen graph


thank

helped ion VM

of aspects engineer Dylan applied

of our applied reflexion task.

sumes the ior.

is correct, from

on how behavstructural how the

An anonymous models developer.

source In

to Excel.

McNamee

contrast, and model

on high-level in the both

models, source and the

interested from

els as part North play and

of a design editing

conformance We

differs the

high-level model differs

model from

of AT&T

provided package. for

the graphviz
also

disthe

also source.

how

high-level

anonymous
has also for developed comparing behavior [J L94]. model consisting the of of a semantic the between This the differences two versions derives effect of that exdifferin

referees

their

constructive

com-

Jackson ence input of an

ments.

approach and output

a procedure approximate

approach semantic

References
[AKW79] A.V. Aho, B.W. Kernighan, and P.J.

a procedure summarizes ecuting at the the entry

a binary

relation after

dependence upon

of variables the value The binary of

procedure to tool the

of variables semantic relations [Bo091]

Awk A Pattern ScanWeinberger. ning and Processing Language. Software Practice and Experience, 9(4):267-280,
1979. G. with Booth. Applications. Object-oriented Design

procedure. the versions

differencing resulting We focus from

compares different comparison

a procedure. at differ-

Benjamin-Cummings,

on the

of relations

1991.

27

[GN95]

W.G. tural Program

Griswold Tradeoffs

and for on

D. Notkin. Tool. 1995. Analysis of the

ArchitecIEEE [Spi92]

ACM guages

Principles Conference, 1984, The edition

of

Programming pages 23-35.

LanACM,

a Meaning-Preserving Soflware Engineering,

Restructuring April Abstract Proceedings Symposium pages and For D.A.

December J.M. Hall, Spivey. second

Transactions 21(4):275-287, [Jac93] D. Jackson. pect. national and [JL94] D. Diff fects In

Z Notation. edition,

Prentice 1992. Lan-

with 1993

AsInter-

[Str86]

B. Stroustrup. guage.

C++

Programming 1986. H.A. IEEE 1995. Miiller,

Addison-Wesley, S.R. Case Tilley, Structural Study.

on Software 1927, Ladd. In 1993.

Testing [WTMS95] K. tion: of Wong, A and M.D. Storey. RedocumentaSoftware,

Analysis, Jackson A Tool

Semantic the Ef-

Summarizing Conference

12(1):46-54,

January

of Modifications.

Proceedings on Software

the International Maintenance, [KR78] B. Kernighan gramming [MK89] H.A. tem Muller for

September

1994. The Hall, C Pro1978. A SysIn

and D. Ritchie. Language. and K. Prentice Klashinsky.

Programming-in-the-large. of on 1989. A New Based Stanford Program on Structuring the 10th International Engineering,

Proceedings Conference pages Press,

Software

8086.
April

IEEE

Computer

Society

[0ss84]

H .L. Ossher, Mechanism PhD ber thesis, 1984. Ossher. the Wegner, MIT

Layered

Graphs. Decem-

University,

[0ss87]

H, fying ter in

A Structure In

Mechanism of Large, Shriver Research Programming, 1987.

for

SpeciLayered

Systems.

Bruce

and

Pepages

editors, Press, TCL

Directions

Object-Oriented

219-252. [OUS94] J.K.

Ousterhout.

@ the TX

Toollcat.

Addison-Wesley, [PW92] D.E. tions ture. Perry for the ACM and Study

1994. A. Wolf. Engineering 1992. Programming Integrated and 1995. Tool for ReConpages EnEnviFoundaArchitecNotes,

of Software

Sofiware October The A Field Friendly

17(4):40-52, [Rei95] S.P. Reiss. for

vironment: ronment Kluwer [Sch91]

Learning

Development.

Academic An

Publishers, Intelligent 13th

R. Schwanke. engineering ceedings ference 83-92, on May Smith. LISP. In

Software of the Software 1991.

Modularity. International Engineering,

In Pro-

[Smi84]

B.C. in

Reflection Proceedings

and of

Semantics the 1984

28

Anda mungkin juga menyukai