0
|
1 #
|
|
2 # SUMMARY: Summary of OO-Browser features
|
|
3 #
|
|
4 # AUTHOR: Bob Weiner
|
|
5 #
|
|
6 # ORIG-DATE: 15-Oct-90
|
100
|
7 # LAST-MOD: 21-Feb-97 at 16:37:30 by Bob Weiner
|
0
|
8 #
|
|
9 # Copyright (C) 1990-1995 Free Software Foundation, Inc.
|
|
10 # See the file BR-COPY for license information.
|
|
11 #
|
|
12 # This file is part of the OO-Browser.
|
|
13
|
|
14 OO-Browser Features
|
|
15 *******************
|
|
16
|
|
17 The OO-Browser is a multi-windowed, interactive object-oriented class browser
|
|
18 similar in use to the well-known Smalltalk browsers. It is unique in a
|
|
19 number of respects foremost of which is that it works well with a
|
|
20 multiplicity of object-oriented languages. It provides both textual
|
100
|
21 views within an editor and graphical views under the X and NEXTSTEP window
|
|
22 systems.
|
0
|
23
|
|
24
|
|
25 * Support for all popular OO Languages on UNIX
|
|
26 ----------------------------------------------
|
|
27
|
100
|
28 ** Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
|
|
29 Java, Objective-C, Python and Smalltalk class browsing is included.
|
|
30 Additionally, support for browsing large amounts of material in Info
|
|
31 format by node name (a popular online documentation format with cross
|
|
32 references and hierarchical structure) is included. All languages
|
|
33 provide class browsing via either a textual or a graphical interface.
|
0
|
34
|
100
|
35 ** Method and typically attribute browsing is supported for all languages
|
|
36 except Smalltalk. CLOS supports browsing all elements defined with
|
|
37 (def* constructs. In-source feature browsing is also supported for all
|
|
38 of these languages. One simply selects a feature name to jump to its
|
|
39 corresponding source. Method name overloading in C++ and inherited
|
0
|
40 feature renaming in Eiffel are fully supported.
|
|
41
|
|
42 ** C code browsing is supported for C++, Objective-C and C source code.
|
|
43
|
|
44 ** Objective-C category and formal protocol browsing are supported.
|
|
45
|
|
46 ** C++ parameterized template classes and methods are supported.
|
|
47
|
100
|
48 ** Java abstract and native (externally defined) methods are supported.
|
|
49
|
0
|
50 ** Immediate switching among languages is allowed. One can switch
|
|
51 from Eiffel browsing to C++ browsing in an instant, if so desired.
|
|
52 Or simply run two OO-Browsers side by side.
|
|
53
|
|
54 ** Multiple inheritance support is built-in, where applicable.
|
|
55
|
|
56 ** Statistics on classes and Environments may be displayed.
|
|
57
|
|
58 ** Language-specific class information may be shown. Presently this
|
100
|
59 feature is supported only for Eiffel. A listing of class parents,
|
|
60 attributes, routines and best guess (highly accurate) list of
|
|
61 routine calls may be displayed. Outputs from the Eiffel `short'
|
|
62 and `flat' commands may also be shown.
|
0
|
63
|
|
64
|
|
65 * For Serious Use
|
|
66 ----------------------
|
|
67
|
|
68 ** Library (stable) and System (in development) classes may be
|
|
69 maintained and listed separately or together. Any number of
|
|
70 Libraries and Systems may be combined for listing in a single
|
|
71 Environment. There are no fixed limits on the number of classes per
|
|
72 Environment nor on the number of Environments that may be browsed.
|
|
73
|
100
|
74 ** All source code, over 400 kilobytes, is included and is heavily
|
|
75 documented.
|
0
|
76
|
|
77
|
|
78 * Ease of Use
|
|
79 -------------
|
|
80
|
|
81 ** Machine-independent mouse support is included along with an extremely
|
|
82 intuitive point and click interface that uses just two mouse keys. The
|
|
83 OO-Browser is pre-configured for use with the X window system, NEXTSTEP,
|
|
84 Sunview or Apollo's DM window system under InfoDock, Emacs V19, XEmacs,
|
|
85 Epoch, and Emacs V18. Online mouse usage help is always one key away.
|
100
|
86 (Don't try that level of platform independence with Java!)
|
0
|
87
|
|
88 ** Popup and pulldown command menus are available under InfoDock, Emacs V19
|
|
89 and XEmacs.
|
|
90
|
|
91 ** The OO-Browser help display gives short descriptions of all of
|
|
92 the commands and key bindings available in the browser. By clicking
|
|
93 on any such selection, the corresponding command is executed.
|
|
94
|
|
95 ** One may also click on class names to see ancestors, descendants,
|
|
96 or the class itself. Just select a class name and the OO-Browser
|
|
97 immediately will display or edit the class' source. Once a class
|
|
98 file has been loaded, one can quickly switch to it by selection
|
|
99 from a menu of such files.
|
|
100
|
|
101 ** For a number of languages, one may also select a feature
|
|
102 (method) name or declaration and move directly to the definition
|
|
103 of the feature. The browser accounts for the complexities of member name
|
|
104 overloading in C++ and unlimited feature renaming in Eiffel so that you
|
|
105 need not. Just click on a declaration and watch the browser display jump
|
|
106 to the proper defintion.
|
|
107
|
|
108 ** Jump back to a previously visited class or feature by selecting from a
|
|
109 list of recently visited ones.
|
|
110
|
|
111 ** OO-Browser commands may also be invoked from the keyboard, allowing
|
|
112 unrestricted use via standard terminal interfaces.
|
|
113
|
|
114 * Speed
|
|
115 -------
|
|
116
|
|
117 ** Building Environments is fast compared to many other tools and browser
|
|
118 startup once an Environment has been built is very fast. Response times
|
|
119 on workstations are excellent; for example, in one test case, less than
|
|
120 two real seconds were required to display a set of complex inheritance
|
|
121 graphs involving over 400 classes.
|
|
122
|
|
123
|
|
124 * Flexibility
|
|
125 -------------
|
|
126
|
|
127 ** X and NEXTSTEP hierarchy display browsers are included. They provide
|
|
128 views of class inheritance structure and lexically included elements,
|
|
129 which allows for quick random access to entire Environments. A click on
|
|
130 a class or element name immediately jumps to it in the editor, providing
|
|
131 rapid, visual browsing. One can pop up several graphical browsers to
|
|
132 gain several views of classes in the same or in multiple environments.
|
|
133 All graphical browsers can communicate with a single textual browser, so
|
|
134 one can quickly display and edit classes from different environments
|
100
|
135 (even different languages). Multiple inheritance is handled through
|
|
136 repetition of nodes throughout the tree; repeated nodes are followed by
|
|
137 ellipses to indicate multiple inheritance.
|
0
|
138
|
|
139 ** The OO-Browser uses class source code only, hence no compiler is
|
|
140 necessary for proper browser operation. This allows one to explore
|
|
141 class libraries without the need for additional tools.
|
|
142
|
|
143 ** Class inheritance networks may be displayed. Either a single
|
|
144 inheritance level (parents or children) or the entire inheritance
|
|
145 network (ancestors or descendants) for a set of classes may be shown.
|
|
146
|
|
147 ** Class files may be added, replaced or deleted one at a time or as a
|
|
148 group by specifying a root directory below which all class files are
|
|
149 found, including those in subdirectories.
|
|
150
|
|
151 ** A menu of class files can be displayed for random access to specific
|
|
152 code modules.
|
|
153
|
|
154 ** On startup, the OO-Browser lists all currently known classes within a
|
|
155 particular Environment. Any desired classes may be found by searching
|
|
156 or by matching a regular expression or string to the set of class names.
|
|
157 This may be done repeatedly to achieve an "and"-type relational query
|
|
158 effect.
|
|
159
|
|
160 ** The number of listing windows is limited only by the screen width and
|
|
161 the width setting used for listing windows.
|
|
162
|
|
163 ** The OO-Browser is adaptable to any class-based object-oriented language.
|
|
164
|
|
165
|
|
166 * Editor Integration
|
|
167 --------------------
|
|
168
|
|
169 ** The OO-Browser works with the powerful, freely distributable, GNU
|
|
170 Emacs editor; it works on any UNIX system display supported by Emacs.
|
|
171 It is also possible to use alternative editors to view or to edit source
|
|
172 code displayed by the browser.
|
|
173
|
|
174 ** All OO-Browser outputs are text which may be edited as desired or
|
|
175 saved to files.
|
|
176
|
|
177 ** OO-Browser functions may be used standalone within the editor
|
|
178 without using the multi-windowed browser interface. One useful
|
|
179 example is to point to a class name such as a parent class in the
|
|
180 text of another class and have the parent's source appear in an
|
|
181 editable fashion.
|