We present the (RD2)-D-2 redundancy detector. (RD2)-D-2 identifies redundant code fragments in large software systems written in Lisp. For each pair of code fragments, (RD2)-D-2 uses a combination of techniques rangin...
详细信息
ISBN:
(纸本)0769520057
We present the (RD2)-D-2 redundancy detector. (RD2)-D-2 identifies redundant code fragments in large software systems written in Lisp. For each pair of code fragments, (RD2)-D-2 uses a combination of techniques ranging from syntax-based analysis to semantics-based analysis, that detects positive and negative evidences regarding the redundancy of the analyzed code fragments. These evidences are combined according to a well-defined model and sufficiently redundant fragments are reported to the user. (RD2)-D-2 explores several techniques and heuristics to operate within reasonable time and space bounds and is designed to be extensible.
We propose an approach that derives interactive-visualization scenarios from descriptions of codeanalysis tasks. The scenario derivation is treated as an optimization process. In this context, we evaluate different p...
详细信息
ISBN:
(纸本)9780769543475
We propose an approach that derives interactive-visualization scenarios from descriptions of codeanalysis tasks. The scenario derivation is treated as an optimization process. In this context, we evaluate different possibilities of using a given visualization tool to perform the analysis task, and select the scenario that requires the least effort from the analyst. Our approach was applied successfully to various analysis tasks such as design defect detection and feature location.
Derivatives of mathematical functions play a key role in various areas of numerical and technical computing. Many of these computations are done in MATLAB, a popular environment for technical computing providing engin...
详细信息
ISBN:
(纸本)0769517935
Derivatives of mathematical functions play a key role in various areas of numerical and technical computing. Many of these computations are done in MATLAB, a popular environment for technical computing providing engineers and scientists with capabilities for mathematical computing, analysis, visualization, and algorithmic development. For functions written in the MATLAB language, a novel software tool is proposed to automatically transform a given MATLAB program into another MATLAB program capable of computing not only the original function but also user-specified derivatives of that function. That is, a program transformation known as automatic differentiation is performed to change the semantics of the program in a fashion based on the chain rule of differential calculus. The crucial ingredient of the tool is a combination of source-to-source transformation and operator overloading. The overall design of the tool is described and numerical experiments are reported demonstrating the efficiency of the resulting code for a sample problem.
This paper shows how data flow analysis can be used to infer type information related to Java bytecode, and evaluates this approach. All the elements needed to specify, the data flow,problem to be software convenientl...
详细信息
ISBN:
(纸本)0769513875
This paper shows how data flow analysis can be used to infer type information related to Java bytecode, and evaluates this approach. All the elements needed to specify, the data flow,problem to be software conveniently defined, according to the theory on data flow frameworks, along with algorithms to build them automatically from the Java bytecode. To evaluate the approach, we consider the specific problem of statically determining the set of methods potentially invoked by each method call instruction, which is useful for several purposes, such as building accurate call graphs. Experimental results are presented showing that data flow analysis can improve the accuracy of the results with respect to other simpler techniques at acceptable costs.
Software maintenance is one of the most expensive and time-consuming phases in the soft-ware life-cycle. The size and complexity of commercial applications probably present the greatest difficulty that maintainers fac...
详细信息
ISBN:
(纸本)0769513875
Software maintenance is one of the most expensive and time-consuming phases in the soft-ware life-cycle. The size and complexity of commercial applications probably present the greatest difficulty that maintainers face when making changes to their applications. As a result of the corresponding loss of understanding, business knowledge encapsulated within the system becomes fragmented, and any changes made as a result of new business initiatives become difficult to implement and hence may mean a loss of business Opportunities. This paper outlines an approach to regaining understanding of software which has been used in the Release project at Durham University. This approach involves determining the calling structure of a pro-rain in terms of a call-graph, and from this call-graph extracting a dominance tree. various problems which have been encountered during the construction of tools to perforin this task are described.
The measurement of software quality, including the preparation and management of the necessary resources and libraries, is a major challenge in continuous software quality measurement and assessment. When applying cod...
详细信息
ISBN:
(纸本)9781538632383
The measurement of software quality, including the preparation and management of the necessary resources and libraries, is a major challenge in continuous software quality measurement and assessment. When applying codeanalysis tools to a large number of projects, the preparation of the sourcecode and its dependencies, focusing on the completeness of these elements, is the basis for correct analysis results. In order to make this preparation process efficient and effective, there is a need to automate this process. Therefore, we built a tool infrastructure, which automates this preparation and analysis process. As part of the code preparation process, we developed the tool LibLoader, which automatically resolves missing dependencies in open source Java projects. This enables the analysis of complete projects in due time and with more accurate results from static codeanalysis tools.
analysis of software is essential to addressing problems of correctness, efficiency, and security. Existing sourcecodeanalysis tools are very useful for such purposes, but there are many instances where high-level s...
详细信息
ISBN:
(纸本)9780769543475
analysis of software is essential to addressing problems of correctness, efficiency, and security. Existing sourcecodeanalysis tools are very useful for such purposes, but there are many instances where high-level sourcecode is not available for software that needs to be analyzed. A need exists for tools that can analyze assembly code, whether from disassembled binaries or from handwritten sources. This paper describes an equational reasoning system for assembly code for the ubiquitous Intel x86 architecture, focusing on various problems that arise in low-level equational reasoning, such as register-name aliasing, memory indirection, condition-code flags, etc. Our system has successfully been applied to the problem of simplifying execution traces from obfuscated malware executables.
Over the last years, an increasing number of safety-critical tasks have been demanded to computer systems. In particular, safety-critical computer-based applications are hitting market area where cost is a major issue...
详细信息
ISBN:
(纸本)0769513875
Over the last years, an increasing number of safety-critical tasks have been demanded to computer systems. In particular, safety-critical computer-based applications are hitting market area where cost is a major issue, and thus solutions are required which conjugate fault tolerance with low costs. In this paper, a source-to-source compiler supporting a Software-Implemented Hardware Fault Tolerance approach is proposed, based on a set of sourcecode transformation rules. The proposed approach hardens a program against transient memory errors by introducing software redundancy: every computation is performed twice and results are compared, and control-flow invariants are checked explicitly. By exploiting the tool's capabilities, several benchmark applications have been hardened against transient errors. Fault Injection campaigns have been performed to evaluate the fault detection capability of the hardened applications. In addition we analyzed the proposed approach in terms of space and time overheads.
The concept of sourcecode, understood as the source components used to obtain a binary, ready to execute version of a program, comprises currently more than sourcecode written in a programming language. Specially wh...
详细信息
ISBN:
(纸本)0769521444
The concept of sourcecode, understood as the source components used to obtain a binary, ready to execute version of a program, comprises currently more than sourcecode written in a programming language. Specially when we move apart from systems-programming and enter the realm of end-user applications, we find source files with documentation, interface specifications, internationalization and localization modules, multimedia files, etc. All of them are sourcecode in the sense that the developer works directly with them, and the application is built automatically using them as input. This paper discusses the relationship between 'classical' sourcecode (usually written in a programming language) and these other files by analyzing a publicly-available software versioning repository. Aspects that have been studied include the nature of the software repository, the different mixtures of sourcecode found in several software projects stored in it, the specialization of developers to the different tasks, etc.
暂无评论