Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which cart be used to handle the problem of slicing concurrent java programs correctly. In this ...
详细信息
ISBN:
(纸本)0769501796
Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which cart be used to handle the problem of slicing concurrent java programs correctly. In this paper, we propose a slicing algorithm for concurrent java programs. To slice concurrent java programs, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence graphs, to represent concurrent java programs. We also show how static slices of a concurrent java program can be computed efficiently based on its multithreaded dependence graph.
The java programming language provides both reflection and remote method invocation: reflection allows a program to inspect itself and its runtime environment, remote method invocation allows methods to be invoked tra...
详细信息
ISBN:
(纸本)0769509649
The java programming language provides both reflection and remote method invocation: reflection allows a program to inspect itself and its runtime environment, remote method invocation allows methods to be invoked transparently across a network. Unfortunately, the standard java implementations of reflection and remote method invocation are incompatible: programmers cannot reflect on a remote application. We describe how java systems can be extended to support Remote Reflection transparently by extending the standard java API. Remote reflection can support remote debuggers, performance monitors, programming environments, application component sewers such as Enterprise javaBeans, and any other java system that can be distributed across a network.
Prevailing approaches to analyze embedded software performance either require the deployment of the software on the embedded target, which can be tedious and may be impossible in an early development phase, or rely on...
详细信息
ISBN:
(纸本)9780769538082
Prevailing approaches to analyze embedded software performance either require the deployment of the software on the embedded target, which can be tedious and may be impossible in an early development phase, or rely on simulation, which can be extremely slow. We promote cross-profiling as an alternative approach, which is particularly well suited for embedded java processors. The embedded software is profiled in any standard java Virtual Machine in a host environment, but the generated cross-profile estimates the execution time on the target. We implemented our approach in the customizable cross-profiler CProf, which generates calling-context cross-profiles. Each calling-context stores dynamic metrics, such as the estimated CPU cycle consumption on the target. We visualize the generated calling-context cross-profiles as ring charts, where callee methods are represented in segments surrounding the caller's segment. As the size of each segment corresponds to the relative CPU consumption of the corresponding calling-context, the visualization eases the location of performance bottlenecks in embedded java software, revealing hot methods, as well as their callers and callees, at one glance.
We introduce Cibai a generic static analyzer based on abstract interpretation for the modular analysis and verification of java classes. We present the abstract semantics and the underlying abstract domain, a combinat...
详细信息
ISBN:
(纸本)9783540697350
We introduce Cibai a generic static analyzer based on abstract interpretation for the modular analysis and verification of java classes. We present the abstract semantics and the underlying abstract domain, a combination of an aliasing analysis and octagons. We discuss some implementation issues, and we compare Cibai with similar tools, showing how Cibai achieves a higher level of automation and precision while having comparable performances.
It is common knowledge that program comprehension takes up a substantial part of software development. This "urban legend" is based on work that dates back decades, which throws up the question whether the a...
详细信息
ISBN:
(纸本)9781479971978
It is common knowledge that program comprehension takes up a substantial part of software development. This "urban legend" is based on work that dates back decades, which throws up the question whether the advances in software development tools, techniques, and methodologies that have emerged since then may invalidate or confirm the claim. We present an empirical investigation which goal is to confirm or reject the claim, based on interaction data which captures the user interface activities of developers. We use interaction data to empirically quantify the distribution of different developer activities during software development: In particular, we focus on estimating the role of program comprehension. In addition, we investigate if and how different developers and session types influence the duration of such activities. We analyze interaction data from two different contexts: One comes from the ECLIPSE IDE on java source code development, while the other comes from the PHARO IDE on Smalltalk source code development. We found evidence that code navigation and editing occupies only a small fraction of the time of developers, while the vast majority of the time is spent on reading & understanding source code. In essence, the importance of program comprehension was significantly underestimated by previous research.
In the ever increasing world of distributed systems, different middleware implementations can be compared qualitatively or quantitatively. Existing evaluation techniques are often not satisfying. In this contribution ...
详细信息
ISBN:
(纸本)0769522513
In the ever increasing world of distributed systems, different middleware implementations can be compared qualitatively or quantitatively. Existing evaluation techniques are often not satisfying. In this contribution we apply Design of Experiments (DoE) to evaluate and model the performance of javaSpaces, a Tuple Spaces implementation for distributing tasks through a virtual space. DoE is a statistical technique for identifying relevant inputfactors from a (large) set of inputfactors. The setup of the experiments is determined using Experimental Design (ED) and a selection of the relevant inputfactors is based on Analysis of Variance (ANOVA). Then Regression Analysis (RA) is used to obtain a multivariate representation. Some extra experiments are performed to validate this approach.
Compared to dynamic object-oriented languages like CommonLisp or Smalltalk, java has a fairly simple and restrictive object and type system. Some of the key differences between java and these other languages is that t...
详细信息
ISBN:
(纸本)0769512518
Compared to dynamic object-oriented languages like CommonLisp or Smalltalk, java has a fairly simple and restrictive object and type system. Some of the key differences between java and these other languages is that they offer structural conformance, automatic delegation, and dynamic mixins. When such constructs are needed in a language like java, they are usually expressed in terms of standard object-oriented design patterns, requiring the manual implementation of "glue" or "helper" classes. This paper describes ways in which such features can be provided efficiently and automatically in terms of java's platform-independent binary format and dynamic loading mechanisms. The implementation does not require any changes to the java runtime, bytecodes, or class loader and yields performance comparable to manually implemented design patterns. The approach should prove useful both as a programming tool for java and as an strategy for building efficient implementations of dynamic languages on top of the java virtual machine.
Automated testing is a hot topic in computing testing society. The automated test management is an important component in this domain. Workflow Management System(WfMS) is a powerful tool to support software testing pr...
详细信息
ISBN:
(纸本)9781479932795
Automated testing is a hot topic in computing testing society. The automated test management is an important component in this domain. Workflow Management System(WfMS) is a powerful tool to support software testing process management and automation. java Business Process Management (jBPM) is a flexible and extensible framework combing the convenience of workflow capabilities and the outstanding scalability of application Integration. In this paper, we explore the automated testing management for enterprise level software development and present the design and implementation based on jBPM and J2EE framework technologies.
A code clone is a code fragment identical or similar to another code fragment in source code. Some of code clones are considered as a factor of bug replications and make it more difficult to maintain software. Various...
详细信息
ISBN:
(纸本)9781509065950
A code clone is a code fragment identical or similar to another code fragment in source code. Some of code clones are considered as a factor of bug replications and make it more difficult to maintain software. Various code clone detection tools have been proposed so far. However, in most algorithms adopted by existing clone detection tools, if program statements are reordered, they are not detected as code clones. In this research, we examined how clone detection results change by rearranging the order of program statements. We performed preprocessing to rearranging the order of program statements using program dependency graph(PDG). We compared clone detection results with and without preprocessing. As a result, by rearranging the order of program statements, the number of detected code clones is almost the same in most projects. We classified newly detected or disappeared clones manually. From our experimental results, we show that there is no newly detected clone whose statements are reordered and that there are four disappeared clones whose statements are reordered. We think three out of the four clones occurred by copy-and-paste operations. Therefore, we conclude that rearranging the order of program statements is not effective to detect reordered code clones.
Most work in semantic search has thus far focused upon either manually building language-specific taxonomies/ontologies or upon automatic techniques such as clustering or dimensionality reduction to discover latent se...
详细信息
ISBN:
(纸本)9781479956661
Most work in semantic search has thus far focused upon either manually building language-specific taxonomies/ontologies or upon automatic techniques such as clustering or dimensionality reduction to discover latent semantic links within the content that is being searched. The former is very labor intensive and is hard to maintain, while the latter is prone to noise and may be hard for a human to understand or to interact with directly. We believe that the links between similar user's queries represent a largely untapped source for discovering latent semantic relationships between search terms. The proposed system is capable of mining user search logs to discover semantic relationships between key phrases in a manner that is language agnostic, human understandable, and virtually noise-free.
暂无评论