• No results found

DomainRetargetable Reverse Engineering

N/A
N/A
Protected

Academic year: 2021

Share "DomainRetargetable Reverse Engineering"

Copied!
163
0
0

Loading.... (view fulltext now)

Full text

(1)

by

Scott Rob ert Tilley

B.Comp.Sci., Concordia University, 1986 M.Sc., University of Victoria, 1989 A dissertation submitted in partial ful llment

of the requirements for the degree of DOCTOR OF PHILOSOPHY in the Department of Computer Science We accept this dissertation as conforming

to the required standard

Dr. H. A. Muller, Supervisor (Department of Computer Science)

Dr. M. R. Levy, Departmental Member (Department of Computer Science) Dr. W. W. Wadge, Departmental Member (Department of Computer Science)

Dr. V. K. Bhargava, Outside Member (Department of Electrical & Computer Engineering) Dr. P. G. Sorenson, External Examiner (University of Alberta)

c

Scott Robert Tilley, 1995 University of Victoria

All rights reserved. This dissertation may not be reproduced in whole or in part, by photocopying or other means,

without the permission of the author.

(2)

Abstract

Understanding 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 xed palette of knowledge organization, data gathering, and information navigation, analysis, and presentation techniques.

This dissertation presents a domain-retargetable 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 meta reverse engineering environment, called the PHSE (Programmable Hyper S tructure Editor).

The PHSE provides a basis upon which users construct domain-speci c 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.

Keywords: Conceptual modeling, domain retargetability, end-user programming, hyper- structure understanding, hypertext, integration mechanisms, online documentation, pro- gram understanding, reverse engineering, scripting.

ii

(3)

Dr. H. A. Muller, Supervisor (Department of Computer Science)

Dr. M. R. Levy, Departmental Member (Department of Computer Science) Dr. W. W. Wadge, Departmental Member (Department of Computer Science)

Dr. V. K. Bhargava, Outside Member (Department of Electrical & Computer Engineering) Dr. P. G. Sorenson, External Examiner (University of Alberta)

iii

(4)

Contents

Abstract ii

Contents iv

List of gures ix

List of tables xi

1 Introduction 1

1.1 The problem

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

1 1.2 The approach

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

4 1.3 Research objectives

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

7 1.4 Related work

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

7 1.4.1 The HAM

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

8 1.4.2 HyperPro

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

9 1.4.3 Rigi

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

10 1.4.4 The Software Re nery

: : : : : : : : : : : : : : : : : : : : : : : : : :

12 1.4.5 PCTE Workbench

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

13 1.5 Dissertation outline

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

14

2 Programmable reverse engineering 16

2.1 Introduction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

16 2.2 A reverse engineering environment design space

: : : : : : : : : : : : : : : :

17 2.2.1 Cognitive models and the understanding process

: : : : : : : : : : :

18 2.2.2 Toolset extensibility

: : : : : : : : : : : : : : : : : : : : : : : : : : :

19

iv

(5)

2.2.2.3 Information navigation, analysis, and presentation

: : : : :

25 2.2.3 Domain applicability

: : : : : : : : : : : : : : : : : : : : : : : : : : :

27 2.3 End-user programming

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

29 2.3.1 End-user programmable applications

: : : : : : : : : : : : : : : : : :

29 2.3.1.1 Personal computer applications

: : : : : : : : : : : : : : : :

29 2.3.1.2 Text editors

: : : : : : : : : : : : : : : : : : : : : : : : : :

30 2.3.1.3 Operating systems

: : : : : : : : : : : : : : : : : : : : : : :

31 2.3.2 Scripting languages

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

32 2.3.2.1 Tcl/Tk

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

32 2.3.2.2 HyperTalk and AppleScript

: : : : : : : : : : : : : : : : : :

32 2.3.2.3 Rexx

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

33 2.3.3 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

33 2.4 Domain-retargetable reverse engineering

: : : : : : : : : : : : : : : : : : : :

34 2.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

35

3 The PHSE 36

3.1 Introduction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

36 3.2 Architecture

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

37 3.2.1 The kernel

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

38 3.2.2 The core

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

38 3.2.3 The interface ring

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

39 3.2.4 The personality ring

: : : : : : : : : : : : : : : : : : : : : : : : : : :

39 3.2.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

40 3.3 Model

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

40 3.3.1 Telos: A language for conceptual modeling

: : : : : : : : : : : : : :

40 3.3.1.1 The representational framework

: : : : : : : : : : : : : : :

41 3.3.1.2 The classi cation dimension

: : : : : : : : : : : : : : : : :

42 3.3.1.3 The generalization dimension

: : : : : : : : : : : : : : : : :

44 3.3.1.4 The attribute mechanism

: : : : : : : : : : : : : : : : : : :

44

v

(6)

3.3.3 Data model

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

46 3.4 Realization

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

48 3.4.1 API

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

48 3.4.2 Implementation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

49 3.4.2.1 Core functionality

: : : : : : : : : : : : : : : : : : : : : : :

49 3.4.2.2 User interface

: : : : : : : : : : : : : : : : : : : : : : : : :

50 3.4.2.3 Model

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

51 3.4.3 Toolset

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

52 3.4.3.1 Data gathering

: : : : : : : : : : : : : : : : : : : : : : : : :

53 3.4.3.2 Knowledge organization

: : : : : : : : : : : : : : : : : : : :

54 3.4.3.3 Information navigation, analysis, presentation

: : : : : : :

55 3.4.3.4 Miscellaneous operations

: : : : : : : : : : : : : : : : : : :

63 3.4.3.5 Remarks

: : : : : : : : : : : : : : : : : : : : : : : : : : : :

65 3.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

65

4 Retargeting the PHSE 66

4.1 Introduction

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

66 4.2 Instantiation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

67 4.3 Online documentation

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

68 4.3.1 Background

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

69 4.3.2 The problem

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

70 4.3.3 The approach

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

71 4.3.4 An illustrative example

: : : : : : : : : : : : : : : : : : : : : : : : :

75 4.3.4.1 Knowledge organization

: : : : : : : : : : : : : : : : : : : :

75 4.3.4.2 Data gathering

: : : : : : : : : : : : : : : : : : : : : : : : :

75 4.3.4.3 Information navigation, analysis, and presentation

: : : : :

78 4.3.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

82 4.4 Program understanding

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

83 4.4.1 Background

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

83

vi

(7)

4.4.4 An illustrative example

: : : : : : : : : : : : : : : : : : : : : : : : :

88 4.4.4.1 Knowledge organization

: : : : : : : : : : : : : : : : : : : :

89 4.4.4.2 Data gathering

: : : : : : : : : : : : : : : : : : : : : : : : :

91 4.4.4.3 Information navigation, analysis, and presentation

: : : : :

93 4.4.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

96 4.5 Summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

97

5 Conclusions 98

5.1 Research summary

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

98 5.2 Contributions

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

99 5.3 Results

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

100 5.4 Future work

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

101 5.5 Concluding remarks

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

103

A Selected implementation details 121

A.1 Architecture of Rigi IV

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

121 A.2 Changes to Rigi IV

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

122 A.2.1 Phase I: Making the editor programmable

: : : : : : : : : : : : : : :

123 A.2.2 Phase II: Making the user interface tailorable

: : : : : : : : : : : : :

124 A.2.3 Phase III: Incorporating a domain model

: : : : : : : : : : : : : : :

126 A.3 Limitations

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

127

B Telos schemas 128

B.1 PHSE schema

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

130 B.2 L

A

TEX schema

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

131 B.3 PL/AS schema

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

134

vii

(8)

C.1 Web deletion 138 C.2 Oine layout

: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

139 C.3 L

A

TEX-speci c node open

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

140 C.4 Hypertext complexity metrics

: : : : : : : : : : : : : : : : : : : : : : : : : :

141 C.5 Cyclomatic complexity metric

: : : : : : : : : : : : : : : : : : : : : : : : : :

144 C.6 SQL/DS decomposition

: : : : : : : : : : : : : : : : : : : : : : : : : : : : :

145

viii

References

Related documents