12666551
Fused data-centric visualizations for software evolution environments
During software evolution, several different facets of the system need to be related to one another at multiple levels of abstraction. Current software evolution tools have limited capabilities for effectively visualizing and evolving multiple system facets in an integrated manner. Many tools provide methods for tracking and relating different levels of abstraction within a single facet. However, it is less well understood how to represent and understand relationships between and among different abstraction hierarchies, i.e. for inter-hierarchy relations. Often, these are represented and explored independently, making them difficult to relate to one another. As a result, engineers are likely to have difficulty understanding how the various facets of a system relate and interact. We describe preliminary results of a collaborative research project between industry and academia to enhance the inter-hierarchy visualization capabilities of an existing software evolution environment called "KLOCwork Suite". Specifically, we describe our efforts to add a "fused" visualization based on story board diagrams. This visualization integrates - or "fuses" - facets of architecture, behavior and data. We describe how these diagrams bridge currently isolated visualizations of system information, and argue how they can help drive architecture excavation tasks.
13347465
On evaluating the layout of UML class diagrams for program comprehension
UML class diagrams are helpful for understanding the structure of a software system. Algorithms and tools have been developed to generate UML class diagrams automatically for program understanding purposes. However, many tools often ignore perceptual factors in the layout of these diagrams. Therefore, users still have to spend much time and effort rearranging boxes and lines to make the diagram understandable. This paper presents key criteria and guidelines for the effective layout of UML class diagrams from the perspective of perceptual theories. Two UML tools have been analyzed and evaluated to illustrate how the criteria can be applied to improve the readability of class diagrams.
207701477
Reverse engineering: a roadmap
By the early 1990s the need for reengineering legacy systems was already acute, but recently the demand has increased significantly with the shift toward web-based user interfaces. The demand by all business sectors to adapt their information systems to the Web has created a tremendous need for methods, tools, and infrastructures to evolve and exploit existing applications efficiently and cost-effectively. Reverse engineering has been heralded as one of the most promising technologies to combat this legacy systems problem. This paper presents a roadmap for reverse engineering research for the first decade of the new millennium, building on the program comprehension theories of the 1980s and the reverse engineering technology of the 1990s.
11555065
Reverse Engineering Scripting Language Extensions
Software systems are often written in more than one programming language. During development, programmers need to understand not only the dependencies among code in a particular language, but dependencies that span languages. In this paper, we focus on the problem of scripting languages (such as Perl) and their extension mechanisms to calling functions with a C interface. Our general approach involves building a fact extractor for each scripting language, by hooking into the language interpreter itself. The produced facts conform to a common schema, and an analyzer is extended to recognize the cross-language dependencies. We present how these statically discovered dependencies can be represented, visualized, and explored in the Eclipse environment
5167918
Extracting Facts from Perl Code
Scripting languages are popular in software development, for rapid prototyping and flexible software integration. Still, there has been relatively more effort spent on reverse engineering for traditional languages, like C, C++, and Java. Certain scripting languages, such as Perl, are notoriously difficult to understand. Consequently, reverse engineering for Perl code is very much needed. Nevertheless, the subtle constructs of the language make it challenging to develop a reliable fact extractor from scratch. Thus, we use the Perl interpreter implementation itself, since it is authoritative for the meaning of some Perl construct. An extractor component is inserted into the interpreter, to consult the internal data structures, and generate the desired facts in a static extraction technique. The facts conform to a schema that is represented in GXL and EMF XML-based formats. A case study evaluated how the extractor processed all the Perl modules provided with the Perl distribution source code
18962931
Analyzing xfig using the Rigi tool suite
An experiment is conducted on how well expert users of program comprehension tools are able to perform specific program understanding and maintenance tasks on the xfig drawing program using these tools. The paper reports on the experiences of the users of the Rigi reverse engineering tool suite. Rigi is an interactive, visual tool designed to help developers better understand and redocument their software. Rigi includes parsers to read the source code of the subject software and produce a graph of extracted artifacts such as procedures, variables, calls, and data accesses. To manage the complexity of the graph, an editor allows the software engineer to automatically or manually collapse related artifacts into subsystems. These subsystems typically represent concepts such as abstract data types or personnel assignments. The created hierarchy can be navigated, analyzed, and presented using various automatic or user-guided graphical layouts.
4287883
Fast Structural Join with a Location Function
A structural join evaluates structural relationship (parent-child or ancestor-descendant) between xml elements. It serves as an important computation unit in xml pattern matching, such as twig joins. There exists many work on efficient structural joins. In particular, indexes can expedite structural joins by skipping unmatchable elements. A typical use of indexes is to retrieve, for a given element, all its ancestor (or descendant) elements from an indexed set. However we observed two possible limitations with such index probes, namely false hit and false locate. A false hit means that an index probe touches unnecessary data besides real results; a false locate stands for a (wasted) probe that has zero answers. Obviously false hit and false locate can affect negatively the efficiency of structural joins. In this paper, we challenge ourselves to develop new structural join algorithm with no false hit and no false locate. We illustrate that R−Tree has the no false hit property (in contrast to B+-Tree) and hence is a good candidate for our algorithm. For no false locate, we propose a new function called Location which tells the probing points that will result in matches. We design and implement the Location function using a space-efficient structure, and present our algorithm using R−Tree together with the Location function. Extensive experiments show the efficiency of our algorithm.
6330846
Component-based software engineering: technologies, development frameworks, and quality assurance schemes
Component-based software development approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture. Because the new software development paradigm is very different from the traditional approach, quality assurance (QA) for component-based software development is a new topic in the software engineering community. In this paper, we survey current component-based software technologies, describe their advantages and disadvantages, and discuss the features they inherit. We also address QA issues for component-based software. As a major contribution, we propose a QA model for component-based software which covers component requirement analysis, component development, component certification, component customization, and system architecture design, integration, testing and maintenance.
188431
A fast and robust simultaneous pose tracking and structure recovery algorithm for augmented reality applications
A robust simultaneous pose tracking and structure recovery algorithm based on the Interacting Multiple Model (IMM) for augmented reality applications is proposed in this paper. A set of three extended Kalman filters (EKFs), each describes a frequently occurring camera motion in real situations (general, pure translation, pure rotation), is applied within the IMM framework to track the pose of an object. Another set of EKFs, one filter for each model point, is used to refine the positions of the model features in the 3D space. The filters for pose tracking and structure refinement are executed in an interleaved manner. The results are used for inserting virtual objects into the original video footage. The performance of the algorithm is demonstrated with both synthetic and real data. Comparisons with different approaches have been performed and show that our method is more efficient and accurate.
8164588
Reconstruction and Motion Estimation from Apparent Contours under Circular Motion
In thispaperweaddresstheproblemof recoveringstructureandmotionfrom thecontoursof a smooth-curvedsurface.A novel andsimplertechniquefor computingthestructureof anobjectfrom its profilesis introduced.Experimentswith real datashow encouragingresults,which are comparableto thoseobtainedfrom muchmore sophisticatedtechniques.Furthermore,a new methodfor motion estimationfrom sequencesof profilesis proposed. Preliminaryresultsdemonstratethefeasibilityof thealgorithm.
33950497
An Effective Method for Chinese Grammar Rule Learning
A new method of Chinese grammar rules learning is put forward in this paper. The key point of this method is to use part-of-speech (POS), semantic and contextual information together in learning and expressing Chinese grammar rules. In this way, not only Context Free Grammar (CFG) rules can be learnt, but also the ambiguous structures in POS can be identified automatically. Furthermore, non-ambiguous semantic rules and forbidden rules can be produced from ambiguous rules by using semantic and contextual information. Experimental results demonstrate that the complexity of Chinese parsing is greatly reduced using the different rules learnt by our method.