Chime: Customizable Hyperlink Insertion and Maintenance Engine for Software Engineering Environments

Chime: Customizable Hyperlink Insertion and Maintenance Engine for Software Engineering Environments

chime: customizable hyperlink insertion and maintenance engine for Software Engineering Environments P. Devanbu Y-F. Chen, E. Gansner H. Muller, J. Martin Dept. of Computer Science AT&T Labs–Research Dept. Of Computer Science University of California 190, Park Drive University of Victoria Davis, CA, USA Florham Park, NJ 95030 Victoria, BC V8W 3P6 +1 530 752 7324 +1 973 360 8653/8646 +1 250 721 7630 [email protected] chen,[email protected] hausi,[email protected] Abstract In addition, they have the ability to handle dierent Source code browsing is an important part of program types of networking protocols. These clients are ubiqui- comprehension. Browsers expose semantic and syntac- tous, and are constantly being enhanced. There is thus tic relationships (such as between object references and a strong incentive to leverage this increasingly power- denitions) in GUI-accessible forms. These relation- ful browsing technology in other contexts; in particu- ships are derived using tools which perform static anal- lar, chime is aimed at exploiting web-based browsing ysis on the original software documents. Implementing in software engineering environments. Software devel- such browsers is tricky. Program comprehension strate- opment projects are becoming increasingly more dis- gies vary, and it is necessary to provide the right brows- tributed, in response to personnel costs and market seg- ing support. Analysis tools to derive the relevant cross- mentation. Such projects will involve distributed soft- reference relationships are often dicult to build. Tools ware documents that have complex inter-relationships. to browse distributed documents require extensive cod- Browsers that can handle such distributed documents, ing for the GUI, as well as for data communications. and expose their inter-relationships as traversable hy- Therefore, there are powerful motivations for using ex- perlinks, will be helpful to developers in these projects. isting static analysis tools in conjunction with WWW Web-based source code browsing has been discussed by technology to implement browsers for distributed soft- other authors [15, 14, 23]; our specic goal is to facil- ware projects. The chime framework provides a ex- itate the addition of web-based browsing into existing ible, customizable platform for inserting HTML links software development environments (SDEs). The cen- into software documents using information generated by tral focus of chime is the task of inserting HTML links existing software analysis tools. Using the chime spec- into source code, using information stored in reposito- ication language, and a simple, retargetable database ries associated with existing SDEs. Specically, chime interface, it is possible to quickly incorporate a range assumes that the online documents are stored in some of dierent link insertion tools for software documents, sort of (possibly distributed) repository, and that syn- into an existing, legacy software development environ- tactic and semantic inter-relationships between docu- ment. This enables tool builders to oer customized ments are derived by some analysis tools and stored in browsing support with a well-known GUI. This paper a repository in some format (not pre-determined). A describes the chime architecture, and describes our ex- user of chime can then specify a set of links, the rela- perience with several re-targeting eorts of this system. tionship of the links to the contents of this database, 1 Introduction as well as the action to be taken when the links are The World Wide Web (WWW) is an accessible, power- activated. From this specication, chime generates a ful, and ubiquitous medium for the delivery and access link insertion engine that reads documents, queries the of widely distributed documents. The low cost, exi- database and interprets the results, inserts the appro- bility, and ease of access has led to rapid advance of priate HTML links, and outputs the resulting text. An- browser technology. HTTP clients such as web browsers other key goal in the chime project is to provide exi- support sophisticated interactive capabilities: hot lists, bility in link insertion. The variability that chime tries browsing history, drag and drop, selection forms, etc. to accommodate includes database implementation, in- terpretation of database contents, number of links, and the meaning of links. The rest of this paper is organized as follows. In sec- tion 2, we discuss the importance of browsing functions in software development environments, and the moti- vations of chime. Then, in Section 3, we discuss the 1 details of how chime tries to achieve the goals outlined be leveraged. above. In Section 4, we briey describe some applica- A browsing tool [28, 4] includes a graphical interface tions of chime. In section 5, we discuss relevant work (GUI), and it accesses the document repository and on automatic link insertion, including related projects, a cross-referencing relational database (XRDB). The and the relationship of that work to the goals of chime; relational database has the relations corresponding to this is followed by the conclusion. browsing steps (e.g., from a reference to a function to 2 HTML browsing for Software Documents its denition). The GUI includes document viewers and A key functionality in software development environ- other devices such as buttons, menus and scroll bars for ments is browsing. It has been reported [7] that pro- manipulating the viewers. For example the GNU emacs grammers can spend 50% or more of their time trying editor [28] can use the GNU tags database to support to understand the system, especially in large projects. browsing of C code: a simple mouse action can move the Good browsing support can be helpful during this pro- view from a function reference to a function denition. cess. Students of program understanding have described C++ development environments such as those available two strategies used by programmers to comprehend from Symantec [25] also support various browsing ac- programs: top-down and bottom-up. Empirical stud- tions. With distributed environments, browsers need to ies [19, 17] indicate that programmers use both styles access remote documents transparently in response to of exploration and comprehension. Thus, it would be browsing requests and queries. It is important to note desirable for a browser to support both kinds of explo- here that the information in the relational database used ration. For example, a C++ programmer might start by the browser is typically built by analyzing source rst examining the class structure of a system; she might documents. For example, the databases used by the then focus on a few specic methods and their calling Ciao [4] browser are built by running analysis tools structure; then she might scrutinize the precise use of over C, C++, or Java programs. These analysis tools class member data of a specic class within the member are quite dicult to build, particularly for complex lan- functions. This might again lead to examine the type guages with sophisticated pre-processors. Tools such as denitions of some class data members, which leads to CIA[3], CIA++ [13], and Acacia[5], which analyze C further exploration of the class structure, etc. Dierent and C++, take many person-years to construct. To the users’ styles and dierent comprehension tasks require extent possible, it would be highly desirable to use the dierent links. This has led us to emphasize exible databases built by existing analysis tools. link conguration as a vital, key goal of the chime sys- Some key issues to be addressed in browser implemen- tem. A secondary goal in the chime system is retar- tation are GUI design, extraction of browsing relations getability. Large legacy projects have a lot of inertia. from source code, and distribution. The goals of chime Part of this is due to personnel and training: it can be are to leverage existing tools and technologies in all of time-consuming, expensive and dicult to introduce an these areas. HTML, the source language of WWW, pro- entirely new development environment into an ongoing vides a powerful and simple GUI interface paradigm. project just because part of the development eort has Public domain (or low cost) browsers such as Netscape been delegated a geographically far removed site. So Communicator support HTML, and are well known to it would be desirable to introduce tools to support dis- many users. These browsers come with many desirable tributed development into the project in a minimally features such as “click-to-browse”, browsing trails, hot disruptive manner. lists, etc. Distribution of documents over dierent ma- In addition, because of the complexity of the cong- chines that communicate using TCP/IP and associated uration and build procedures [31] in large projects, it protocols is handled in a transparent manner. Before can be very expensive to bring new tools and processes HTML browsers can be used to browse source code, one into the environment, specially if these tools need to be must insert software browsing relations into source code run over the entire source base. If at all possible, it as HTML links. We now describe how chime addresses is advantageous to introduce new capabilities into the this link insertion task. development environment in a minimalist, incremental 3 The chime Architecture fashion that avoids global analysis with new tools. A chime is a meta tool; it generates tools that insert goal of the chime system is to introduce web-based HTML links into raw text. The overall framework in source code browsing into an existing development en- which chime-generated tools function is shown in Fig- vironment without forcing changes to the conguration ure 1. and build procedures. This has two advantages. First existing processes are not disrupted. Second, the de- Example and Background velopers don’t have to learn a new browsing tool: their An example fragment of C source code is shown in current familiarity with the WWW browsing tools can Figure 2 before and after link insertion.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us