• No results found

Domain-retargetable reverse engineering

N/A
N/A
Protected

Academic year: 2021

Share "Domain-retargetable reverse engineering"

Copied!
163
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)
(2)

A b stra c t

U nderstanding the structure of large information spaces can be enhanced using reverse en­ gineering technologies. The understanding process is dependent on an individual’s cognitive abilities and preferences, on one’s familiarity with the application domain, and on the set of support facilities provided by the reverse engineering toolset. Unfortunately, most reverse engineering environments provide a fixed palette of knowledge organization, d ata gathering, and information navigation, analysis, and presentation techniques.

This dissertation presents a domain-retaryetable approach to reverse engineering based on end-user programming. The approach enables users to model their application domain, to leverage their cognitive powers and domain knowledge, and to integrate other tools into the reverse engineering environment. It is supported by an architecture for a domain- independent m eta reverse engineering environment, called the PHSE (Program m able //y p e r 5’tru ctn re Pditor).

T he PHSE provides a basis upon which users construct domain-specific reverse engi­ neering environments. It is instantiated for a particular application domain by specializing its conceptual model, by extending its core functionality, and by personalizing its user in­ terface. To illustrate the approach, a prototype implementation of the PHSE is retargeted to two application domains; online documentation and program understanding.

K e y w o rd s : Conceptual modeling, domain retargetability, end-user programming, hyper­ stru ctu re understanding, hypertext, integration mechanisms, online docum entation, pro­ gram understanding, reverse engineering, scripting.

(3)
(4)

A bstract ii C ontents iv List o f figures ix List o f tables xi 1 Introduction 1 1.1 The problem ... 1 1.2 The a p p ro a c h ... 4

1.3 Research o b je ctiv es... . 7

1.4 Related w o r k ... 7

1.4.1 The H A M ... 8

1.4.2 H y p e r P r o ... 9

1.4.3 R i g i ... 10

1.4.4 The Software R e fin e ry ... 12

1.4.5 PC TE W o rk b e n c h ... 13

1.5 Dissertation o u tlin e ... 14

2 Program m able reverse engineering 16 2.1 In tro d u c tio n ... 16

2.2 A reverse engineering environment design s p a c e ... 17

2.2.1 Cognitive models and the understanding p r o c e s s ... 18

2.2.2 Toolset e x te n s ib ility ... 19 iv

(5)

2.2.2.3 Information navigation, analysis, and p r e s e n ta tio n ... 25

2.2.3 Domain a p p lic a b ility ... 27

2.3 End-user p ro g ram m in g ... 29

2.3.1 End-user programmable a p p lic a tio n s ... 29

2.3.1.1 Personal computer a p p lic a tio n s... 29

2.3.1.2 Text editors ... 30

2.3.1.3 O perating systems ... 31

2.3.2 Scripting lan g u ag es... 32

2.3.2.1 T c l / T k ... 32

2.3.2.2 HyperTalk and A p p le S c rip t... 32

2.3.2.S R e x x ... 33

2.3.3 S u m m a r y ... 33

2.4 D om ain-retargetable reverse e n g in e e rin g ... 34

2.5 S u m m a r y ... 35 T h e P H S E 36 3.1 In tro d u c tio n ... 36 3.2 A rchitecture ... 37 3.2.1 The kernel ... 38 3.2.2 T he c o r e ... 38

3.2.3 The interface ring ... 39

3.2.4 The personality r i n g ... 39

3.2.5 S u m m a r y ... 40

3.3 M o d e l ... 40

3.3.1 Telos; A language for conceptual modeling ... 40

3.3.1.1 T he representational f r a m e w o r k ... 41

3.3.1.2 T he classification dimension . ... 42

3.3.1.3 The generalization d im e n s io n ... 44

(6)

3.3.3 D a ta m o d e l ... 46 3.4 Realization ... 48 3.4.1 A P I ... 48 3.4.2 Implementation ... 49 3.4.2.1 Core functionality ... 49 3.4.2.2 User interface ... 50 3.4.2.3 M o d e l... 51 3.4.3 Toolset ... 52 3.4.3.1 D ata g a th e rin g ... 53 3.4.3.2 Knowledge o rg a n iz a tio n ... 54

3.4.3.3 Information navigation, analysis, presentation ... 55

3.4.3.4 Miscellaneous o p e r a t i o n s ... 63 3.4.3.5 R e m a r k s ... 65 3.5 S u m m a r y ... 65 4 R e t a r g e tin g th e P H S E 66 4.1 In tro d u c tio n ... 66 4.2 Instantiation ... 67 4.3 Online d o c u m e n ta tio n ... 68 4.3.1 B ac k g ro u n d ... 69 4.3.2 The problem . ... 70 4.3.3 The a p p ro a c h ... 71 4.3.4 .4n illustrative e x a m p l e ... 75 4.3.4.1 Knowledge o rg a n iz a tio n ... 75 4.3.4.2 D ata g a th e rin g ... 75

4.3.4.3 Information navigation, analysis, and presentation . . . 78

4.3.5 S u m m a r y ... 82 4.4 Program u n d e r s ta n d in g ... S3 4.4.1 B a c k g ro u n d ... S3

(7)

4.4.4 An illustrative example ... 88

4.4.4.1 Knowledge o rg a n iz a tio n ... 89

4.4.4.2 D ata g a th e r in g ... 91

4.4.4.3 Information navigation, analysis, and presentation . . . 93

4.4.5 S u m m a r y ... 96 4.5 S u m m a r y ... 97 5 C o n c lu s io n s 98 5.1 Research s u m m a r y ... 98 5.2 C o n trib u tio n s ... 99 5.3 R e s u lts ... 100 5.4 Future work ... 101 5.5 Concluding r e m a r k s ... 103 A S e le c te d im p le m e n ta tio n d e ta ils 121 A .l A rchitecture of Rigi IV . ... 121 A .2 Changes to Rigi I V ... 122

A.2.1 Phase I: M aking the editor p ro g ra m m a b le ... 123

A.2.2 Phase II: M aking the user interface ta i lo r a b le ... 124

A.2.3 Phase III: Incorporating a domain model ... 126

A .3 L im ita ti o n s ... 127 B T e lo s s c h e m a s 128 B .l PH SE s c h e m a ... 130 B .2 D TeX sc h e m a ... 131 B.3 P L /A S s c h e m a ... 13d VII

(8)

C-2 Offline l a y o u t ... 139

C.3 I^liÿC-specific node open ... 140

C.4 H ypertext complexity m e tr ic s ... 141

C.5 Cyclomatic complexity m e tr ic ... 144

C.6 SQL/DS d e c o m p o s itio n ... 145

(9)

2.1 Reverse engineering environment design s p a c e ... 18

3.1 The PH SE ’s ring a r c h ite c tu r e ... 38

3.2 The PHSE s c h e m a ... 46

3.3 The PHSE t o o l s e t ... 52

3.4 Displaying active RCL variables and p ro ced u res... 54

3.5 A n eig h b o rh oo d ... 55

3.6 A ttribute- and structure-based selection widgets ... 57

3.7 Web edit widget ... 58

3.8 Web splicing ... 59

3.9 Web traversal w id g e t... , 60

3.10 Connectivity analysis of a n e ig h b o rh o o d ... 61

3.11 Menu custom ization widget ... 63

3.12 W idget custom ization ... 64

4.1 R etargeting the P H S E ... 67

4.2 D ocum ent h y p e r s tr u c tu r e ... 73

4.3 DT0X s c h e m a ... 77

4.4 Different views of a d o c u m e n t ... 79

4.5 W riting style violation ... SO 4.6 PL /A S schem a ... 90

4.7 P L /A S stru ctu ral feature extraction and n o rm alizatio n ... 93

4.8 D a ta coupling and call s tr u c tu r e s ... 94

4.9 Name-based subsystem d e c o m p o s itio n ... 95

(10)

A.3 New rigiedit a r c h ite c tu re ... 125 B .l Telos s-expression g r a m m a r ... 129

(11)

3.1 Sample i c o n s ... 62

4.1 artifacts and their icons ... 76

4.2 P L /A S artifacts and their i c o n s ... 89

4.3 P L /A S relations ... 91

A .l Rigiattr for COBOL ... 126

(12)

I am grateful to my supervisor, Dr. Hausi Miiller, for his guidance, support, and friend- sliip throughout my graduate career. He has been a great source of inspiration and has provided me with an admirable role model. He has also created an excellent research envi­ ronm ent w ithout which 1 would not have been able to complete this work.

My time spent a t UVic would never have been so enjoyable without members of the Rigi group to spend it with. To Mike, Ken, Peggy, Mehmet, Brian, Diiian, and others: T hank you. Near and far, past and present, all have contributed to this research in some way.

Faith and I will miss the friendship and family support of Richard and M argret. They made Victoria feel more like home for us. Our card games. Milles Bournes, and holiday dinners are not finished, ju st temporarily suspended until we return.

I would like to thank my soccer team m ates from The Dirty Bits intram ural squads over the years. They provided me with much-needed relief from daily activities—especially when happy hour was no longer possible.

Finally, 1 would like to express my gratitude to the IBM Software Solutions Toronto Laboratory, the IBM Centre for Advanced Studies, and the Science Council of British Columbia for their support.

(13)

“A deadline has a wonderful way of focusing the m ind.”

— Professor Moriarty, Ship in a Bottle, S tar Trek: The Next G eneration.

(14)

I n tr o d u c tio n

“The idea of providing a taiiorabic, configurable, integrated project sup p o rt en­ vironm ent wiiich is customized as necessary for different organizations, projects, and individuals is in reality a long way from current practice.”

— Brown el a t, Principles of C A S E Tool Integration [BCM+94].

1.1

T h e p ro b lem

This dissertation addresses the challenges of applying reverse engineering technologies to the problem of understanding large information spaces. Specifically, it deals with aiding hy~ perstruclure understanding (HSU): identifying artifacts and understanding their stru ctu ral relationships in complex information webs [OssSd]. HSU is an objective rath er than a well- defined process [OT94]. The prefix hijper Is used to distinguish HSU from the in-the-small activity of understanding the internal stru ctu re of any single artifact; we are concerned with the analysis of overall system structure.

When any entity increases in size by several orders of magnitude, it changes in nature as well as in size [WalS9]. When one attem p ts to understand a large body of inform ation, the overall stru ctu re of the information space is ju st as im portant as the Inner stru c tu re of

(15)

any single artifact—if not more so. This is especially tru e when the number of artifacts in the domain is much larger than the size of each artifact.

Decomposition has long been recognized as a powerful tool for the analysis of large and complex systems. The technique of decomposing a system , studying the components, and then studying the interactions of those components has been used successfully in many areas of engineering and science [Cou85]. For example, in the software engineering domain, modularization is a technique used to manage complexity by decomposing a large problem into several smaller ones. It can lead to simpler system structure, but it is not a panacea. It can lead to a proliferation of small parts; so much so th a t it is difficult to understand their inter-relationships [Par79]. Since good software engineering design suggests th a t modules be kept relatively small, the number of modules in a large system Is significant [Lic86]. For instance, in a system of 500,000 lines, with roughly 200 lines per module, there would be 2,500 modules. This is an order of magnitude more tlian there are lines of code in each module. A t this scale, the understanding problem goes beyond the algorithm s and d a ta stru ctu res of com putation [SG92]. It moves into the realm of architecture and HSU: determ ining w hat modules comprise the system, how they are organized, and how they interact [SvdB93].

Reverse engineering technologies can be used to aid HSU. Although no standard defini­ tion of reverse engineering exists, Chikofsky and Cross [CC90] provide a useful taxonomy. They state:

Reverse engineering is the process of analyzing a subject system to identify the system 'a components and their inter-relationships, and to create representations o f the system in another form or at higher levels o f abstraction.

While the term “reverse engineering” is borrowed from hardware development, where it is usually applied to the process of discovering how other people’s systems work, this definition of reverse engineering is sufficiently broad so as to be applicable to many domains. For example, in software engineering the term is used to describe the process of discovering how

(16)

one’s own system s work. It can also be applied to hypertext to mean the creation of online docum entation from existing linear text.

Reverse engineering is seen as an activity which does not change the subject system ; it Is a process of examination, not a process of change. It can facilitate the understanding process through the identification of artifacts, the discovery of their relationships, and the generation of abstractions. This process is dependent on one’s cognitive abilities and preferences, on one’s fam iliarity with the application domain, and on the set of support facilities provided by the reverse engineering environment.

U nfortunately, most reverse engineering environments are builder-oriented, rath er than user-oriented. They provide a fixed palette of techniques, decided in advance by the en­ vironm ent’s developers. This limits the effectiveness of reverse engineering for HSU in a t least three ways: domain applicability, domain modeling, and domain-instance analysis.

A domain is a problem area [DMR94]. An approach to reverse engineering, and the environm ent supporting the approach, must be flexible so th a t it can be applied to diverse targ et domains. “Domains” in this sense is an over-burdened term . It includes different application domains, such as database systems, health inform ation systems, and online doc­ um entation systems; implementalion domains, including th e application’s implementation language; and the reverse cngôicenng domain, In which the user applies reverse engineering to the problem of HSU.

A dom ain model is a representation th a t captures the stru ctu re and composition of elem ents within a domain [Tra94]. It may be constructed through domain analysis: the process of identifying, organizing, and representing the relevant inform ation in a domain [Rol94], A successful approach to reverse engineering must allow different domain models to be specified for different application domains. A domain model provides the user with a set of expected constructs to look for when analyzing a subject system . Moreover, the dom ain model acts as a schema for guiding the reverse engineering process and as a framework for organizing its results.

(17)

aiding users to understand the stru ctu re of particular problem instances in a specific ap­ plication domain is toolset extensibility. No rigid environment th a t provides a static suite of techniques for the basic reverse engineering operations of gathering, organizing, and pre­ senting information will ever be suitable for all users in all domains. Users should be able to alter the way builtin operations work, to integrate other tools and applications th a t provide com plem entary functionality into the environment, and to write their own routines for these activities if they so desire.

Regrettably, the attitu d e th a t seems prevalent to many tool builders is th a t “if program­ mers (users) would ju st learn to understand ... the way they ought to” (i.e., the way the tools work), the comprehension problem would be solved [vMV93]. Such a builder-oriented view is unsuitable for the analysis of large bodies of information [BH92]. Instead, the reverse en­ gineering environment should be user-oriented: it should aid HSU by providing approaches, tools, and interfaces th a t support the user’s natural process of understanding— not hinder it.

1 .2

T h e ap p roach

S tru ctu ral understanding is identified in [NinSO] as the second of four levels of understand­ ing. T h e first and lowest level of understanding is the implementation level, whicli examines individual artifacts. The third level is functional understanding, which examines the rela­ tionships between artifacts and their behavior. The fourth level is the domain level, which examines concepts specific to the application domain. The degree of abstraction increases with each level.

T he current state-of-the-art in reverse engineering is such th a t aiding understanding a t the implementation level is possible, and limited aid is available for the structural level; autom ated function- and domain-level understanding is extremely limited, if not impossible. However, even structural-level understanding is problematic when the number of artifacts and relationships in the information space becomes very large. Hence, the goal is to increase

(18)

the power of reverse engineering at the structural level, so th a t understanding a t higher levels of abstraction will be possible.

We propose a domain-retargeiable approach to reverse engineering based on end-user programming. The approach classifies reverse engineering activities into three canonical areas: d a ta gathering, knowledge organization, and information navigation, analysis, and presentation techniques. By making each of these activities end-user program m able, the capabilities of the environment are extensible. It enables users to model their application dom ain, to leverage their cognitive powers and domain knowledge, and to integrate other tools into the reverse engineering environment to extend its functionality and personalize its interface to suit their needs. The approach is m eant to advance the state-of-the-art in reverse engineering by providing a more user-oriented environment than the current state- of-tlie-practice.

T he approach enables users to construct models of their application dom ain. The mod­ els are described using Telos [MylOl], a language for conceptual modeling. T he domain model provides structuring and abstraction mechanisms th a t help reduce the complexity of the information space. The abstraction mechanisms aggregation, classification, and gener­ alization, as well as the notion of a web, arc the central concepts used in the approach for representing higher levels of abstraction. By enabling users to represent diverse application domains using a common representation, knowledge organization has been made end-user programmable.

T he approach enables users to leverage their cognitive abilities and domain expertise through the pervasive use of scripting. HSU takes place within the context of a specific application domain. Each person has a different technique, and no process or sequence should be imposed by the support environment. To a great extent, the techniques used depend on personal style, and to some extent, on the task a t hand [Bro91]. .A.n interpreted language based on Tel [Ous94] is used to record and exploit users’ reverse engineering techniques in scripts. Users can create libraries of dom ain-dependent reverse engineering strategies encoded as scripts. As their expertise in their application domain grows, so will

(19)

their library of scripts.

T he approach enables users to integrate other tools Into the reverse engineering envi­ ronm ent to extend its functionality using the same scripting mechanism. This extensibility includes both the environm ent’s operations and its interface. Scripts are used for control, d ata, and presentation integration. By providing a program m able toolset, the environ­ m ent’s applicability is not limited to one domain. By providing a program m able interface, users can ad ap t the environment to their particular iasie, while still maintaining a common “look and feel.”

The approach is supported by a software architecture for a domain-independent m eta re­ verse engineering environm ent for HSU, called the PHSE^ (Program m able //y p e r5 tru c tu re P d ito r). The PH SE architecture directly addresses the canonical reverse engineering activi­ ties identified by the approach. The PHSE model includes a domain-independent conceptual model for the representation and organization of the artifacts and relations of complex hy­ perstructures, a d a ta model upon which the conceptual model is built, and a physical layer upon which the d a ta model is implemented.

Together, the PHSE architecture and model provide a basis upon which users construct domain-specific reverse engineering environments. The PH SE is instantiated for a particular application domain by specializing its conceptual model, by extending its core functionality, and by providing an application-specific user interface personality. The resultant system is one th a t is tailored to a specific application domain. It supports the gathering of informa­ tion artifacts from th e subject system , the organization of these artifacts into user-defined stru ctu res, and the navigation, analysis, and presentation of the resultant stru ctures in a user-definable manner.

(20)

1 .3

R ese a rch o b je c tiv e s

The focus of this research is to investigate a dom ain-retargetable approach to reverse en­ gineering th a t facilitates exploratory HSU through the use of end-user programming. We are not attem pting to investigate specific aspects of reverse engineering per se, for example, specific decomposition and clustering algorithms for programming understanding. R ather, our main objective is to validate our thesis th a t by incorporating end-user program m ing into all key aspects of reverse engineering, HSU is improved in an identifiable manner.

O ur goal in the design of the PHSE is to construct a framework for reverse engineering th a t su p p o rts the approach. We show how the framework addresses the criteria for a reverse engineering environment. We also show how the PHSE architecture addresses deficiencies in existing systems.

O ur goal in illustrating the use of the PHSE is to validate our thesis by dem onstrating the viability of the approach in two real-world application domains [Har94], By creating a proof-of-concept implementation of the PHSE we show th a t the PHSE is realizable. By re-targeting it to online docum entation and program understanding we show th a t the PHSE is domain retargetable. By integrating instantiations of the PHSE with other tools we show its extensibility.

1 .4

R e la te d w ork

In this section we review five of the most im portant bodies of work related to our research: the H ypertext .'Abstract Machine (H.\M ) [CGSS], H yperPro [O.N93], Rigi- [MOTU93], the Software Refinery [i\.\T93], and PC T E Workbench [A11F93]. These systems were chosen because they are excellent examples of successful applications in their particular domain. O ur work is built upon the strengths and ideas espoused by these systems. The extensive bibliography a t the end of this dissertation complements this overview.

^We will focus on ftigi IV, the Rigi system circa 1992. T he reason for this clarification will becom e

(21)

1 .4 .1 T h e H A M

T he HAM is a general-purpose, transaction-based server developed a t Tektronix for hyper­ te x t storage. H ypertext has been described as a tool to enhance human cognitive abilities by allowing users to impose their own stru ctu re on Information [ConS?]. Although there is no stan d a rd definition of hypertext in the current literature,^ it is generally accepted to be an approach to organizing online information in a network stru ctu re. The network is composed of nodes'^ connected by links. M any of the essential notions of hypertext were first contained in the descriptions of a memex, w ritten by Vannevar Bush In 1945 [Bus45]; “A device in which an individual stores books, records, and communications, and which is mechanized so that it m ay be consulted with exceeding speed and flexibility. It is an enlarged intim ate supplem ent to memory." In m ost hypertext im plementations, the nodes (and in some sys­ tem s the network itself) are viewed and manipulated through an interactive browser a n d /o r stru c tu re editor. The relationships between different pieces of Information are represented using links, which tie together two (or more) nodes. Among other things, links provide end users with a means of navigation among nodes. Links may point to an entire node, or they may be anchored to specific points or regions within a node. Both nodes and links may be typed to allow for different semantic interpretations of both node contents^ and link rela­ tions. H ypertext system s commonly allow the attachm en t of a ttrib u te s to both nodes and links. Such a ttrib u te s are usually simple nam e/value bindings. Together, the nodes and links form a hyperdocument. An im portant characteristic of hypertext is personalization and custom izability of information navigation and presentation; this incorporates the Idea

^ T he ISO 10744 international standard does define both h ypertext and hyperm edia in very broad terms.

^ N odes are som etim es called chunks, artifa cts, or in form ation objects.

^ H yp ertext has a more contem porary counterpart known as h yperm edia [GT94], which describes hyper­

te x t sy ste m s w ith nodes th a t support m ultim edia inform ation types. H yperm edia is a generalization of

th e h y p ertex t con cept, and, like h yp ertext, there is no generally accep ted definition, ex cep t th at it blends

h y p e rtex t and m ultim edia. M ost m odern h yp ertext system s are, to varying degrees, hyperm edia system s.

W ithin a h yperm edia system , nodes m ay contain graphics, sounds, and video in addition to te x t. A lthough

the term “hyperm edia” relegates th e term “h yp ertext” to system s w ith text*onIy nodes, we use the term

(22)

of nonlinearity, since nonlinearity gives control of the order of traversal to the user [Ash94]. T he HAM provides a general and flexible d a ta model based on graphs, which contain hierarchically organized contexts^ nodes, links, and attrib u tes. A graph is the highest-level HAM object; it contains one or more contexts. C ontexts partition the d a ta within a graph. Eacli context has one parent context, zero or more child contexts, and contains zero or more nodes and links. A node contains arb itrary d a ta . O bject sem antics are provided through user-defined a ttrib u te/v alu e pairs, which can be attached to contexts, nodes, or links. A ttrib u te/v alu e pairs extend the power of hypertext by allowing the organization of nodes and links into subgraphs in a single context. Subsets of HAM objects may be extracted from large graphs using a filtering mechanism based on a ttrib u te predicates. The HAM’s com m ands are partitioned into seven categories of operations for creating, modifying, and accessing its basic hypertext components.

T he HAM is som ewhat unique in th a t since it is not a hypertext system by itself, but rath er a general-purpose hypertext engine upon which other hypertext system s can be constructed, it can serve hypertext system s in different domains. For example, it has been used to model Guide buttons [GuiSG], Interm edia webs [YHMDSS], and N oteCards FileBo.xes [HalSSj. It has also been used internally a t Tektronix to develop a hypertext- based CA SE tool called Dynamic Design [BigSS], and a hypertext-based CAD system called N eptune [DSS6]. The H.*VM represents an im p o rtant step in the development of hypertext system s due to its fiexible architecture. However, its simple graph model has since been superseded by more sophisticated databases th a t provide richer d a ta modeling capabilities.

1 .4 .2 H y p e r P r o

Os tor bye eL ai. a t .Aalborg University in Denmark have blended literate programming [KmiS-l] with hypertext, creating a hgperslructure programming environm ent. Their first prototype hyperstructure environm ent was for CLOS (an object-oriented extension of Com ­ mon Lisp) [Nor91], and their second was for Smalltalk [Osl93], Based on this early work, they developed HyperPro: a generic, language-independent hypertext environm ent which

(23)

can be param eterized to support different programm ing languages.

T he basic object in H yperPro is an entity^ which can be either a link or a node (atomic or com posite). All entities possess a set of a ttrib u te /v a lu e pairs. A set of node and link instances form a program network termed the hyperstructure. The layered architecture of H yperPro is divided into three components: a repository, a Sm alltalk kernel for control integration, and a number of editors which are suitable front ends (including a graph editor and th e Epoch te x t editor, a hyperm edia enhancem ent of Gnu Em acs).

H yperPro represents an im portant step in the evolution of hypertext system s due to its program m able nature. However, its focus is on literate programming, not hyperstructure understanding. Moreover, its dependency on Smalltalk limits its applicability.

1 .4 .3 R ig i

Rlgi® is a system for analyzing evolving software systems through reverse engineering. The main goal of the Rigi project is to ex tract abstractions from software representations and transfer this information into the minds of software engineers for software evolution pur­ poses. T he focus is on summarizing, querying, representing, visualizing, and evaluating the stru c tu re of large, evolving software systems.

Rigi is composed of three m ajor subsystems: a parser (rigireverse) for selected common program m ing languages of legacy software systems; a repository m anager (rigiserver) th a t stores the Information extracted from the source code using the GRAS datab ase [KSW93]; and an interactive graph editor (rigiedit) th a t perm its graphical m anipulation of source code representations [MK88]. In the Rigi approach to software reverse engineering, the first phase of the process—the extraction of software artifacts—Is autom atic and language- dependent; it essentially involves parsing of the subject system and storing the artifacts In a repository. The second phase is sem i-autom atic and features language-independent subsystem composition m ethods th a t generate hierarchies of subsystem s [MU90].

(24)

Subsystem composition is the process of constructing com posite software com ponents out of building blocks such as variables, procedures, and subsystem s. Software quality cri­ teria and measures based on exact interfaces and established softw are engineering principles such as low couplinri and strong cohesion [Mye75] were form ulated to evaluate the resultant subsystem stru ctu res [MÜ190, MC91]. Using these subsystem composition facilities, which are supported by the graph editor, software structures such as call graphs, module graphs, and dependency graphs can be sum m arized, analyzed, and optimized according to software engineering principles.

Rigi has been used in the discovery, reconstruction, and evaluation of subsystem stru c­ tures in existing software system s [OMT92, MOTU93]; in the investigation of spatial and visual relationships among software artifacts for program understanding [M TO‘*'92]; to sup­ port a docum entation strateg y using up-to-date views" [TM 092]; in an evaluation of the use of stru ctu ral views to support project management [Til92, TM93]; and as a test bed to gain b e tte r understanding of the use of reverse engineering technologies for program under­ stand in g [MTW93]. It has proven itself successful and has a ttra c te d much atten tio n during dem onstrations a t several software engineering conferences around the world. However, by 1992, some of its shortcomings were becoming apparent.

T he operations provided by Rigi’s graph editor are rich because of param eterization, but th e total set is fixed. The implicit assumption within the editor is th a t the user is re­ verse engineering an application w ritten in one of the im perative, procedural program m ing languages commonly used in legacy software systems, such as C or COBOL; the targ et language m ust fit the Rigi model [MiilSG]. Consequently, the operations are geared toward coupling and cohesion îis the guiding measurements used when selecting com ponents to be collapsed into a subsystem . Tlie selection operations depend strongly on client/supplier relationships. Moreover, the editor provides ju st a single abstraction mechanism for coping with complexity: hierarchies formed through recursive aggregation. A further restriction is

view represents a particular sta te and display o f a software m odel. Different view s o f the sam e softw are m odel can be used to address a variety of target audiences and applications. T h e Rigi n otion o f a view s is

(25)

placed on the topology of th e resultant subsystem compositions: they m ust be (k, 2)-partite graphs—a class of layered graphs [EMM90]. This restriction was imposed to provide a stru ctu ring mechanism to su p p o rt navigation [Mil 189], b u t its forced presence is not al­ ways appropriate. T he graph editor operations are language-independent, which is both an advantage and a detrim ent. It is an advantage, since it means a single tool will work for system s w ritten in m ost imperative program ming languages. It is a detrim ent because it means domain knowledge is lost. Finally, the graph editor is completely graphical; it does not provide any mechanism for autom ated com m and processing. Such an interface paradigm does not scale up well when one is dealing with graphs th a t represent millions of lines of code.

1 .4 .4 T h e S o ftw a re R e fin e r y

T he Software Refinery from Reasoning Systems is a flexible reverse engineering toolkit for software maintenance. It is composed of three parts: D IA LEC T (the parsing system ), R E FIN E (the object-oriented database and programming language), and INTERVISTA (the user interface). T he core of the Software Refinery is the R EFIN E specification and query language, a m ulti-paradigm high-level programming language. Its syntax is reminiscent of Lisp, b u t it also includes Prolog-like rules and support for set manipulation.

Much of the success of the Software Refinery is due to its customizability. Tailored versions are marketed for various application domains, such as R E F IN E /C for C programs. W hile its user interface is som ew hat limited, the parsing system is highly program m able, making It an excellent choice when fine-grained and detailed program analysis is required, such as exact program transform ation (its original purpose).

However, its direct applicability to HSU is som ew hat limited. Although program m able, the level of expertise required by the user is significant. Typically, much effort is required to produce a detailed domain model and parsing engine; after th a t, little program m ing is done. This differs from the exploratory nature of HSU, where continuous interactive experim entation by the user is the norm.

(26)

1 .4 .5 P C T E W o rk b en ch

P C T E Workbench from V ista Technologies is a toolkit for constructing hypermedia-based environm ents and applications. It is an example of a system development environm ent ker­ nel: softw are development environments th a t typically do not provide users with any stan d ­ alone tools but rath er provide a set of services for managing inform ation, comm unications, and user interfaces [Man93]. Using these services, users may construct more sophisticated services and tools. Such extensible environment kernels provide varying degrees of control, d a ta , and present ation integration.

It is based on the Portable Common Tool Environment (P C T E ), an initiative of the European Strategic Program m e for Research in Information Technology (E SPR IT ), whose goal is to provide an extensible hosting stru ctu re for tool integration and for the con­ struction of extensible system development environments [BGMTS9]. .A.t the storage level, d a ta integration in PC T E Workbench based on the P C T E O bject M anagem ent System (QMS) [G.VITS6], which in essence already supports a hypertext-like d a ta model. Control integration is provided by advanced broadcast messaging, built around an interpreter for the object-oriented Lisp-based scripting language called HyperLisp. This language is also used for presentation integration; the P C T E Workbench user interface may be customized through HyperLisp access to the O S F /M o tif toolkit. .*Vmong the pre-integrated tools which are clients of the P C T E Workbench server are a web editor (an outline processor interface to the hyper base), an adapted version of the Epoch text editor, and the FrameM aker system .

P C T E Workbench has been used to implement Hyper Web (originally called UDev [FHS'^92]), Door County (a geographic information d atabase), and .4dabra (an environ­ ment and framework for rapid prototyping in electronic packaging designs). Hyper Web is a hypermedia-based software development environment to su p p o rt general software develop­ ment and maintenance under UNIX. HyperWeb supports the notion th a t software should be modeled as a richly interconnected "Sveb" of information rather than as a collection of isolated files. The complex relationships between various software artifacts th a t comprise a system are captured and explicitly represented using P C T E W orkbench's hyperm edia capa­

(27)

bilities and th e underlying P C T E OMS object repository. The basic development process supported by HyperWeb is an extension to the concept of literate programming. It Involves the im port and export of information between UNIX and the P C T E Workbench framework. The tool integration facilities of P C T E Workbench and the custom ization capabilities of the HyperLisp scripting language are used to integrate existing UNIX tools into the HyperWeb environment.

1 .5

D is s e r ta tio n o u tlin e

This chapter discussed the motivation for this research, described the problem being focused on, outlined our approach to solving this problem, detailed our research objectives, and reviewed related work. One of the main goals of this research is to integrate the potpourri of technologies involved in end-user programming, conceptual modeling, hypertext, reverse engineering, and application integration mechanisms into a unified environm ent to support HSU. Although there are numerous examples of systems th a t are well-suited to a particular application area,® there are few examples of systems th a t provide a general yet powerful solution to HSU.

C h ap ter 2 details our approach to the problem: programmable reverse engineering. T he centra! issues in the design of a reverse engineering environm ent are first explored. Three canonical activities in reverse engineering are identified. The success of end-user program m ing in other application domains is then discussed. T he dom ain-retargetable approach to reverse engineering is then presented. It integrates end-user programming, conceptual modeling, and reverse engineering to provide a doniain-retargetable solution to HSU.

C h ap ter 3 describes the PH 3E. The ring-based architecture of the P IISE is presented. Each portion of the architecture directly supports one or more aspects of our domain- retargetable approach to reverse engineering. The rationale for the use Tel os as the PH SE’s

“For exam p le, there are m any com m ercial softw are reverse engineering tools available; catalogs such as

(28)

conceptual modeling language, and semantic networks as the foundation of the PH SE’s d a ta model, is presented. A prototype implementation of the PHSE architecture is then described.

C h ap ter 4 illustrates the use of the PHSE by retargeting it to two application domains. The instantiation process for the prototype im plementation is outlined. The first application domain explored is online docum entation. The problem of moving existing linear te x t into a hypertext form at is discussed. The problem of understanding legacy software system s is the second application domain explored. The use of the PHSE to solve each of these problems is described in turn.

Finally, C hapter .5 summarizes the contributions of this work, assesses the m erits of the results, and proposes possible directions for future research.

(29)

P r o g r a m m a b le r e v e r se e n g in e e r in g

“I t ’s only a small m a tte r of programming ...”

— Bonnie Nardi [Nar93].

2 .1

I n tr o d u c tio n

This chapter describes three key issues in the design of a reverse engineering environm ent, discusses the end-user program m ing phenomenon and its potential im pact on reverse en­ gineering for hyperstructure understanding, and presents a new approach to reverse engi­ neering th a t achieves dom ain-retargetability through end-user programming.

To su pp o rt HSU, a reverse engineering environm ent m ust address the disparity in users’ cognitive models, provide integration mechanisms to extend its functionality, and be retar- getable to different application domains. We identify three canonical activities th a t such an environm ent m ust su p p o rt in an extensible m anner to meet these goals; d a ta g ath er­ ing, knowledge organization, and information navigation, analysis, and presentation. The im pacts on the design of th e environment, given these idealistic goals, are discussed.

M ost applications make a strong distinction between its developers and its users, result­ ing in a system th a t is not as flexible as desired. End-user program m ing seeks to address

(30)

this deficiency by allowing users of the application to tailor the tool to suit their needs. Pre­ sented Is a discussion of the benefits of end-user program ming, a description of application areas where end-user programming has proven successful, and an outline of the scripting languages used for end-user programming.

2 .2

A rev erse en g in eerin g en v iro n m en t d e sig n sp a ce

HSU is a process of inverse domain mapping. For example, in the program understanding dom ain, program m ers make use of programming knowledge, domain knowledge, and com­ prehension strategies when attem p ting to understand a program . They extract syntactic knowledge from the source code, and rely on programming knowledge to form sem antic abstractions.

Brooks’ work on the theory of domain bridging [BroS3] describes the programm ing pro­ cess as one of constructing mappings from a problem domain to an im plem entation dom ain, possibly through multiple levels. Program understanding tiien involves reconstructing p art or all of these mappings. This process is expectation driven, and proceeds by creation, con­ firm ation, and refinement of hypotheses. It requires both intra-dom ain and inter-dom ain knowledge. A problem with this reverse mapping approach is th a t mapping from application to im plem entation is one-to-many, as there are many ways of implementing a concept.

To aid HSU, a reverse engineering environment must make this reverse mapping process easier by recovering lost information and making implicit information explicit. To do so, the environm ent m ust be flexible in three areas: (I) it must su p p o rt different cognitive models and understanding processes; (2) it must provide an extensible toolset; and (3) it m ust be applicable to multiple domains. As illustrated in Figure 2.1, these three requirem ents form a design space [Laii90] for reverse engineering environment issues. Each of these areas is discussed in more detail below.

(31)

M a n u a l

A u to m a tio n level

Automacic

M o n o l i t h i c

E xten sib ility A p p lic a b ility

G e n e r a l

purpose

Figure 2.1: Reverse engineering environment design space

2 .2 ,1 C o g n itiv e m o d e ls a n d th e u n d e r sta n d in g p r o c e ss

It Is hard for any application designer to predict all the ways in which the application will be used. For a reverse engineering environment to support HSU, the main goal is to facilitate overall system comprehension. Since people learn in different ways (for example, goal-directed (top-down and inductive) versus scavenging (bottom -up and deductive)), the environm ent should be flexible enough to support different types of comprehension.

Tw o common approaches to system comprehension often cited in the literature are a functional approach th a t emphasizes cognition by what the system does, and a behavioral approach th a t emphasizes how the system works. For example, in the program understand­ ing dom ain, both top-down and bottom -up comprehension models have been used in an a tte m p t to define how a software engineer understands a program . However, case studies have shown th a t, in industry, m aintainers of large-scale program s frequently switch between several comprehension strategies [vMV92j. Thus, the environment m ust su p p o rt the diverse cognitive processes of HSU rather th an impose a process th a t is not justified by a cognitive model other than th a t of the environm ent’s developers.

(32)

should be possible to include human input and expertise in the decision making. There is a tradeoff between w hat can be autom ated and w hat should or must be left to humans; the best solution lies in a combination of th e two. Hence, the construction of a b strac t rep­ resentations manually, seml-automatically, or autom atically (where applicable), should be possible. Through user-control, the comprehension process can be based on diverse criteria such as business policies, tax laws, or other semantic information not directly accessible from the gathered data.

2 .2 .2 T o o ls e t e x te n s ib ility

M ost existing reverse engineering systems provide the user with a fixed set of capabilities. While this set might be considered large by the system ’s producers, there will always be users who want som ething else. One cannot predict which aspects of a system are im portant for ail users, and iiow these aspects should be docum ented, represented, and presented to the user. This is an example of the trade-off between open and closed systems. An open system provides a few composable operations and mechanisms for user-defined extensions. A closed system provides a "large” set of built-in facilities, but no way of extending the set.

Instead of a closed architecture, a successful reverse engineering environm ent should provide a mechanism through which users can extend the system ’s functionality. There are two basic approaches to constructing extensible integrated applications from a set of tools: tool inlajralion and tool composilion [AIIF9J]. In tool integration, each tool must be aware of the larger environment, and the inter-tool interactions are coded in the tools themselves. This works for tightly-integrated environments, but in a loosely-coupled environm ent it is very difficult to achieve, in tool composition, tool interaction logic resides outside of the tools. Each tool presents a standard, well-known interface to the outside world, and knows nothing ab o ut its environment; the environment contains all the inter-tool coordination logic.

From an end-user perspective, the reverse engineering environment should manage tool composition, to facilitate the introduction of new tools into the system . This would allow

(33)

the user to provide their own tools for basic reverse engineering operations. These oper­ ations may be broken down into dealing with three types of HSU “artifacts:” ^ (1) d ata, which is the factual information used as a basis for reasoning, discussion, or calculation; (2) knowledge, which is the sum of w hat is known and represents the body of tru th , infor­ mation, and principles acquired; and (3) information, the communication or reception of knowledge obtained from investigation, study, or instruction. Based on these definitions, we can identify three canonical reverse engineering operation categories: (1) d a ta gathering; (2) knowledge organization; and (3) information navigation, analysis, and presentation. These three operations are discussed below.

2.2.2.1 D ata gathering

G athering d a ta from the subject system is an essential step in reverse engineering. The raw d a ta is used to identify a system ’s artifacts and relationships. W ithout it, higher-level abstractions cannot be constructed.

Users should be able to indicate w hat artifacts they want gathered from the subject system , how (and when) they want this d a ta gathered, and how they wish to represent it. This suggests the environm ent must facilitate the integration of d a ta from sources other than the subject system , and th a t it should support increm cntality as well. For example, the traditional approach to d a ta gathering in a reverse engineering system for program understanding is to parse the subject system ’s source code and ex tract complete ab stract syntax trees with a large number of fine-grained syntactic objects and dependencies. To accomplish this, many researchers have spent an inordinate am ount of time building parsers for various program m ing languages and dialects [Cali92]. However, there already exists m atu re technology in the compiler arena to parse source code, perform syntactical analysis, and produce cross-reference and other information usable by other tools, such as debuggers. Thus, a reverse engineering environment should make use of this inform ation whenever possible, and avoid “reinventing the wheel.”

(34)

The user should be able to highlight im portant artifacts and relations in the d ata, and de-emphasize or filter out immaterial ones. This functionality is not ju st im portant from an aesthetic point of view; it is also a m atter of scalability. For very large system s, the inform ation generated during reverse engineering is prodigious. Simply presenting the user with reams of d a ta is insufficient; knowledge is gained only through the understanding of the d a ta. In a sense, a key to HSU is deciding w hat information is m aterial and w hat is im m aterial: knowing w hat to look for—and w hat to ignore [ShaS9].

2.2 .2 .2 K now ledge organization

For HSU, gathered d a ta must be put into a representation th a t facilitates efficient storage and retrieval, perm its analysis of the artifacts and relationships, and yet reflects the users’ perspective of the subject system ’s structure. This requirem ent—the need to organize d a ta in some well-defined and rigorous m anner—led to the development of data models [BorSO]. A d a ta model captures the static and dynamic properties of an application needed to support the desired dala-related processes. An application can be characterized by sta tic properties (such as objects, attrib u tes, and relationships among objects), dynamic properties (such as operations on objects, operation properties, and relationships among operations), and integrity constraints over objects and operations. The result of d a ta modeling is a rep­ resentation th a t has two components: (I) static properties th a t are defined in a schema; and (2) dynamic properties th a t arc defined as specifications for transactions, queries, and reports. A schema consists of a definition of all application object types, including their a ttrib u te s, relationships, and static constraints. Corresponding to the schema is a d a ta repository called a database, an instance of the schema. A d a ta model provides a formal basis for tools and techniques used to support d a ta modeling.

T he three best-known classical d a ta models are the hierarchical d a ta model, the network d a ta model, and the relational d a ta model [UllSO], The hierarchical d a ta model is a direct extension of a primitive file-based d a ta model; d ata is organized into simple tree stru ctu res. T he network model is a superset of the hierarchical model; the objects need not be

(35)

tree-stru ctu red . The relational model is quite different from the hierarchical or network model; it is based on the m athem atical concept of a relation (a set of Ti-tuples), and organizes d a ta as a collection of tables. All three classical d a ta models are instances of the record-based logical d a ta model [KS86].

Although well-suited to a com puter environment, record-oriented d a ta models are of­ ten sem antically inadequate for modeling the application environm ent. They are highly machine-oriented and organized for efficiency of storage and retrieval operations; ease of use for the non-program mer is of secondary im portance. Typically, only two levels of ab­ stractio n are provided: the database schema, and the actual collection of records. There are no provisions to extend the levels to a more general hierarchy of types, m eta-types, and instances, even though this extension would increase the model’s expressive power and provide a mechanism which supports the reuse of common properties. The hierarchical and network models also do not su pp o rt sem antic relativism, which is the ability when modeling a system to view the elements and concepts representing it from different perspectives de­ pending on th e application. In particular, the concepts of entity, relationship, and a ttrib u te should be interchangeable. For these reasons, the classical d a ta models are also known as syntactic d a ta models.

T he lack of abstraction mechanisms provided by the classical d a ta models is particularly troublesom e from an HSU point of view. A bstraction is a fundam ental conceptual tool used for organizing information. It plays a key role in managing one of the fundam ental problems with large-scale systems: complexity [Bro87]. When modeling such systems, the number of objects and relations in the knowledge base can grow very large. A large knowledge base— like a large software system —needs organizational principles to be understandable. W ithout them , a knowledge base can be as unmanageable as a program w ritten in a language th a t has no abstraction facilities.

A bstraction is the selective emphasis on detail: specific details are suppressed and those pertinen t to the problem a t hand are emphasized. A bstraction mechanisms serve as orya- nization axes for structuring the knowledge base. They focus on high-level aspects of an

(36)

entity while concealing details. Three of the m ost common abstraction mechanisms used are classification, aggregation, and generalization [Sow88]:

C la ss ific a tio n : A form of abstraction in which an object type is defined as a set of in­ stances. Classification captures common characteristics shared by a collection of ob­ jects, resulting in a generic object which captures the essential sim ilarity am ong its constituents. An instunce-of relationship is established between an object type in the schem a and its instance in the knowledge base.

A g g re g a tio n : A form of abstraction in which a relationship between objects is considered as a higher-level aggregate object. When considering the aggregate, specific details of the constituent objects are suppressed. A part-of relationship is establisiied between the com ponent objects and the aggregate object.

G e n e r a liz a tio n ; A form of abstraction in which similar objects are related to a higher-level generic object. The constituent objects are considered specializations of the generic object. /Vn is-a relationsliip is established between the specialized objects and the generic object.

T here nave been two basic approaches to addressing some of the deficiencies in the clas­ sical d a ta models to "capture more of the semantics of an application" [CodT9]. A ttem p ts

have been made to extend the classical models by building higher-level conceptual models on top of them, and new more powerful sem antic d a ta models have also been developed to capture database concepts a t a more user-oriented level. Semantic d a ta models, startin g with .AbriaPs semantic model [,A.br74] and Choirs ontity-relationship model [CheTG], com­

bined simple knowledge representation techniques, often borrowed from sem antic networks [FinTO], with database technology. Semantic d ata models represent a shift in database re­ search away from the traditional record-oriented model towards models which su p p o rt more luiman-oriented sem antic constructs. This shift is very similar to the goals in program m ing language research focusing on abstraction mechanisms for software development, and a rti­ ficial intelligence research into knowledge representation based on network representation

(37)

schemes [Gil90]. Conceptual modeling [BMS84] was introduced as a term reflecting this broader perspective.

C onceptual modeling Is the activity of formally describing aspects of some inform ation space for the purpose of understanding and communication. Such descriptions are often referred to as conceptual schemata. A conceptual model and a conceptual schema are analogous to a d a ta model and a database schema, respectively. One can think of d a ta models as special conceptual models where the intended subject m atter consists of d a ta stru ctu res and associated operations. Classical d a ta models, grounded on m athem atical and com puter science concepts such as relations and records, offer little to aid database designers and users in interpreting the contents of a database.

Sem antic d a ta modeling shares purposes with conceptual modeling. However, sem antic d a ta modeling introduces assum ptions about the way conceptual schem ata will be realized on a physical machine (the “d a ta modeling” dimension). Thus, sem antic d a ta modeling can be seen as a more constrained activity than conceptual modeling, leading to simpler notations, but also ones th a t are closer to the im plem entation,

T he fundam ental characteristic of conceptual modeling is th a t is it closer to the human conceptualization of a problem domain than to a com puter representation of the problem dom ain [K094]. The emphasis is on knowledge organization (modeling entities and their sem antic relationships) rath er than on d a ta organization. T he descriptions th a t arise from conceptual modeling activities are intended to be used by hum ans— not machines. Concepts in a conceptual model are indexed by their sem antic content. This differs from other d a ta models, such as relational, where the indexing scheme is more geared tow ards optim al storage and information retrieval from the im plem entation perspective. This is one of the main reasons th a t conceptual modeling is eminently suited to HSU: the focus on the end user is param ount.

(38)

2 .2 .2 .3 Inform ation navigation, analysis, and presentation

Information processing represents the most im portant of the three canonical reverse engi­ neering activities. While d a ta gathering Is required to begin the reverse engineering process, and knowledge organization is needed to structure the d a ta into a conceptual model of the application domain, without the final step of information navigation, analysis, and pre­ sentation, there would be no benefit to HSU. The user navigates through the hyperspace th a t represents the information related to their application, analyzes this information with respect to domain-specific evaluation criteria, and uses various presentation mechanisms to clarify the resultant information.

M any complex systems are not linear, but consist of many interwoven aspects better described using a multi-dimensional web of information artifacts [Mau92]. Unfortunately, as the size of this information space grows, the well-known “lost in hyperspace” syndrome may limit navigational efficiency [MS88]. Moreover, it is difficult to convey and communicate the wealth of information generated as a result of reverse engineering. This problem is exacerbated by the necessary coexistence of spatial and uisual d ata. Theories of cognition suggest th a t imagery involves both descriptive and depictive information [KosSO]. For HSU, both spatial and visual information seem to play key roles in forming mental models of stru ctu re. The spatial component constitutes information about the relative positions of the artifacts in a neighborhood. It provides low-level, detailed information concerning the im m ediate neighborhood of the artifact in a graphical representation th a t facilitates the system atic exploration of the hyperstructure. The visual component preserves information about how a neighborhood (or a set of neighborhoods) looks (e.g., size, shape, or density). It provides a high-level view of the neighborhood; the essence of the entire image. Visual graph representations {i.e., rendering of nodes and arcs in various form ats in a workstation window) aim to exploit the ability of the human visual system to recognize and appreciate pattern s and motifs [e.g., central, fringe, or isolated components).

Disorientation has been attributed to the tangle of links in the web [NieOOa]. The proliferation of links is often due to the weak link discipline enforced by a system using a

(39)

simple node/link mechanism, allowing unrestricted linking among arbitrary objects [NN91]. Such linking is very powerful, but potentially disorienting [BHLT93]. The sam e freedom which provides hy p ertex t’s flexible structure and browsing capabilities may also be the direct cause of one of its greatest problems [BS91]. For users, disorientation may occur when browsing. For authors, the lack of design principles when creating associative links does not foster th e creation of a consistent conceptual model [HKW91].

Some of the solutions th a t have been proposed to the classical problem of user disorien­ tation within a large information space include: maps, multiple windows, history lists, and to u r/p a th mechanisms [NieQOb]. Unfortunately, these m ethods do not scale up well. A more successful approach is through the use of composite nodes; they reduce web complexity and simplify its stru c tu re by clustering nodes together to form more ab stract, aggregate objects [CTL+Ql]. Com posite nodes deal with sets of nodes as unique entities, separate from their com ponents.

To aid information retrieval for navigation it should be possible to augm ent the search and selection operations built into the reverse engineering environment with user-defined algorithm s, and to interface with external tools as required. For example, in tlie program understanding dom ain, change requests are often couched in term s of the end-user’s view of the application. Much of the effort involved in software maintenance is in locating the relevant code fragm ents th a t implement the concepts in the application domain. One should be able to use external tools th a t provide advanced searching techniques and have the results of their searches made available to the user and the environm ent.

Analyzing the hyperstructure of the web can provide useful information. Various m et­ rics and measures can be used to guide the creation of new artifacts in the information space, such as virtual nodes representing concepts not explicitly represented in the g a th ­ ered d a ta . The environm ent should support the integration of external analysis packages th a t implem ent domain-specific metrics.

T he goal of environm ental customizability includes modification of th e system ’s interface com ponents such as buttons, dialogs, menus, scrollbars, and of the integration of external

(40)

tools th a t present the inform ation in different ways. Since the user interface is a crucial p art of the infrastructure of many software environments [YTT88], and since personal preferences for things such as menu structure, mouse action, and system functionality differ so much from person to person (and from domain to dom ain), it is unlikely th a t any single choice made by th e tool builder will suit all users.

Presentation integration can occur a t different levels, including the window system , the window manager, the toolkit used to build applications, and the toolkit’s look and feel [Was89]. The standardization provided by presentation integration lessens the ‘‘cognitive surprise” experienced by users when switching between tools. However, w hat is really needed is a way for the user to specify the common look and feel of the applications of interest to them, or of tools th a t are p a rt of an application [KleSS]. In other words, users need to be able to impose their own personal lasie on the common look and feel. This refinement of presentation integration moves the onus—and the opportunity—for reducing cognitive overhead due to the user interface from the tool builder to the tool user.

Similarly, the way information is presented cannot be fixed by th e environment. For example, in the program understanding domain most reverse engineering system s provide the user with a fixed set of view mechanisms, such as reference graphs and module charts. While this set might be considered adequate by the system ’s producers, there will always be users who want som ething else. It should be possible to create multiple, perhaps orthogonal, hyperslructures and view them using a variety of mechanisms, such as using different graph layouts provided by external toolkits (e.g., [Ros94]).

2 .2 .3 D o m a in a p p lic a b ility

Because HSU involves many different scenarios and targ et domains, it is wise to make the approach as flexible as possible for use in many different domains. One way of maximizing the usefulness of a reverse engineering environment is to make it domain-specific. By doing so, one can provide users with a system tailored to a certain task and exploit any features th a t make performing this task easier. However, this approach limits the system ’s usefulness

Referenties

GERELATEERDE DOCUMENTEN

A comparison of reverse knowledge transfer from an Indian and a Chinese subsidiary to its Dutch multinational headquarter.. The opportunities to realize knowledge transfer from

Especially under anaerobic conditions, net N-mineralization rates per kg dry peat soil and per microbial C mass were much higher (on average 10 times) in the Sphag- num-fens than

In order to determine the most effective transfection reagent for each cell type, all four cell lines (MA104, COS-7, BSR and HEK 293H) were transfected with the plasmid

In other words, there is a need to consider whether voting outcomes at the regional level may be result of high concentra- tions of individuals with specific individual

Covariantie-analyses met mooiheid, abstractie, detail en het bedrag dat men bereid is te betalen voor de getoonde foto's als covariaten vonden geen significante effecten van type

visiting the places where change happens initially, such as the customer services desk or the R&D laboratories, and help the organisation to reorganise itself by shifting

Ik denk dat ik daar bedoelt heb dat de overname er ook toe heeft geleid dat mensen weg zijn gegaan, door de nieuwe cultuur in het ziekenhuis en dat, dat niet alleen maar

Regarding the research variables only for the effect of movies with violent content is found a significant relationship with overall help-seeking behavior of children