1773435
Chava: reverse engineering and tracking of Java applets
Java applets have been used increasingly on Web sites to perform client-side processing and provide dynamic content. While many Web site analysis tools are available, their focus has been on static HTML content and most ignore applet code completely. The paper presents Chava, a system that analyzes and tracks changes in Java applets. The tool extracts information from applet code about classes, methods, fields and their relationships into a relational database. Supplementary checksum information in the database is used to detect changes in two versions of a Java applet. Given our Java data model, a suite of programs that query, visualize, and analyze the structural information were generated automatically from CIAO, a retargetable reverse engineering system. Chava is able to process either Java source files or compiled class files, making it possible to analyze remote applets, whose source code is unavailable. The information can be combined with HTML analysis tools to track both the static and dynamic content of many Web sites. The paper presents our data model for Java and describes the implementation of Chava. Advanced reverse engineering tasks such as reachability analysis, clustering, and program differencing can be built on top of Chava to support design recovery and selective regression testing. In particular, we show how Chava is used to compare several Java Development Kit (JDK) versions to help spot changes that might impact Java developers. Performance numbers indicate that the tool scales well.
28687449
WebGUIDE: Querying and Navigating Changes in Web Repositories
Abstract WebGUIDE is a system for exploring changes to World Wide Web pages and Web structure that supports recursive document comparison: users may explore the differences between pages with respect to two dates. Differences between pages are computed automatically and summarized in a new HTML page, and differences in link structure are shown via graphical representations. WebGUIDE is the combination of two tools that complement one another: the ATT Ciao [6] is a graphical navigator that allows users to query and browse structural connections embedded in a document repository. The union of these tools let users get information on the evolution of pages of interest (both textually and graphically), browse the differences interactively, and dynamically modify the set of pages with which they interact.
1089156
Visualizing and Analyzing Software Infrastructures
Companies frequently need to redesign their software infrastructures in response to marketplace changes, but they must do so carefully so that the new architecture will not disrupt existing operations or increase operating costs unnecessarily. To support these goals, system architects have long recognized the need to build a repository of information about all of their company's systems and their interfaces. Using this information, architects create system interface diagrams to help them study the existing architecture. The authors discuss their system, Enterprise Navigator, which lets users make ad hoc queries about an enterprise software architecture and then automatically generate the corresponding system interface diagram in real time on the Web.
44293400
A Proxy-Based Personal Portal
5122752
Ciao: a graphical navigator for software and document repositories
Programmers frequently have to retrieve and link information from various software documents to accomplish a maintenance task. Ciao is a graph-based navigator that helps programmers query and browse structural connections embedded in different software and document repositories. A repository consists of a collection of source documents with an associated database that describes their structure. Ciao supports repositories organized in an architecture style called Aero, which exploits the duality between a class of entity-relationship (ER) databases and directed attributed graphs (DAG). Database queries and graph analysis operators in Aero are plug-compatible because they all take an ER database and produce yet another ER database by default. Various presentation filters generate graph views, source views, and relational views from any compatible ER database. The architecture promotes the construction of successively more complex operators using a notion of virtual database pipelines. Ciao has been instantiated for C and C++ program databases, and program difference databases. The latter allows programmers to explore program structure changes by browsing and expanding graphs that highlight changed, deleted, and added entities and relationships. The unifying ER model under ciao also allows users to navigate different software repositories and make necessary connections. We have linked program difference databases and modification request (MR) databases so that users can investigate the connections between MRs and affected entities. Ciao has been applied to several large communications software projects and we report experiences and lessons learned from these applications.
8351589
Using automatic clustering to produce high-level system organizations of source code
We describe a collection of algorithms that we developed and implemented to facilitate the automatic recovery of the modular structure of a software system from its source code. We treat automatic modularization as an optimization problem. Our algorithms make use of traditional hill-climbing and genetic algorithms.
9049589
A service-oriented modeling and simulation framework for rapid development of distributed applications
Abstract The paper presents a service-oriented distributed modeling and simulation framework that supports the development and evaluation of large scale distributed systems such as network-centric and system-of-systems applications. The distinct features of the framework include a modeling and specification language, dynamic model checking for completeness and consistency, automated code generation from the specification, simulation of different architectures with a template-based platform builder, service-oriented multi-agent simulation for easy re-configuration and re-composition, formal policy specification and enforcement for dynamic verification, and dynamic analyses for evaluation and monitoring. The framework and most of the tools reported in this paper have been implemented and applied in several industrial projects. This paper presents the design principles, user interfaces, its runtime infrastructure, and the experiment results on its performance.
10370670
Top-Down Design of Bulk-Synchronous Parallel Programs
This paper studies top-down program development techniques for Bulk-Synchronous Parallelism. In that context a specification formalism LOGS, for 'the Logic of Global Synchrony', has been proposed for the specification and high-level development of BSP designs. This paper extends the use of LOGS to provide support for the protection of local variables in BSP programs, thus completing the link between specifications and programs.
15723948
Simulation verification and validation by dynamic policy enforcement
This paper presents a new verification and validation (V&V) technique for simulation using dynamic policy enforcement. Constraints are formally specified as policies, and they will be used to check whether simulation satisfies these policies at runtime. This paper also proposes a development framework where policies are developed along with system development and V&V. Once policies are extracted from requirements and specified in a policy specification language, the rest of the development work is automatically performed by the tools in the framework. Both security requirements and functional requirements can be specified as policies and dynamically enforced during the simulation. An automated tool is available for policy specification and enforcement, and it is fully integrated with the simulation infrastructure. This paper also presents a sample system that is modeled and simulated, and policies are used to verify and validate the system model. The paper also discusses the overhead imposed to perform this kind of automated policy-based V&V compared to the hard-coded implementation of the same approach.
15002759
Improving nearest neighbor classification with cam weighted distance
Nearest neighbor (NN) classification assumes locally constant class conditional probabilities, and suffers from bias in high dimensions with a small sample set. In this paper, we propose a novel cam weighted distance to ameliorate the curse of dimensionality. Different from the existing neighborhood-based methods which only analyze a small space emanating from the query sample, the proposed nearest neighbor classification using the cam weighted distance (CamNN) optimizes the distance measure based on the analysis of inter-prototype relationship. Our motivation comes from the observation that the prototypes are not isolated. Prototypes with different surroundings should have different effects in the classification. The proposed cam weighted distance is orientation and scale adaptive to take advantage of the relevant information of inter-prototype relationship, so that a better classification performance can be achieved. Experiments show that CamNN significantly outperforms one nearest neighbor classification (1-NN) and k-nearest neighbor classification (k-NN) in most benchmarks, while its computational complexity is comparable with that of 1-NN classification.
14368338
Optimal radial contour tracking by dynamic programming
A common problem in most active contour methods is that the recursive searching scheme can only return a local optimal solution. Furthermore, the internal energy of the snake is not strong enough to control the shape of the contour. To overcome these difficulties, we develop a causal internal energy term based on a radial contour representation to encode the smooth constraint of the contour, and develop a global shape priori to control contour's shape and position based on object's dynamics. The causality nature of the representation allows us to efficiently find global optimal solution using dynamic programming. To validate the efficacy and robustness of the proposed approach, we apply this approach to track people in bad illumination and cluttered environments. We report promising results in the paper.