A language of choice for general-purpose programming, java is quickly becoming popular in more specialized areas, such as scientific computing. However, even though the compilation technologies have significantly impr...
详细信息
ISBN:
(纸本)3540430431
A language of choice for general-purpose programming, java is quickly becoming popular in more specialized areas, such as scientific computing. However, even though the compilation technologies have significantly improved java execution, performance is still the main obstacle to the use of java for scientific applications. Although good java Virtual Machine implementations are approaching the performance of Fortran on similarly-coded applications, significant performance problems remain because of the power of the object-oriented programming paradigm. Our experiments show that full use of polymorphic, object oriented programming can result in performance penalties of up to two orders of magnitude. To address this performance difficulty, the authors have developed the JaMake java transformation system, which uses advanced program analysis and transformation techniques to allow programmers to create extensible and maintainable programs using object oriented design, while generating java programs whose performance approaches that of hand-optimized, Fortran-style code. Experiments on our collection of object-oriented scientific programs have shown that transformation by JaMake can yield speed-ups of a factor of ten or more, 1k bringing the performance of these object-oriented programs to within 75% of hand-optimized, Fortran-style code.
Most software engineering research focuses its analyses on source code, because correct, well designed, and efficient program code is the desired end output of software development. Nevertheless, source code is not th...
详细信息
ISBN:
(纸本)9781479971978
Most software engineering research focuses its analyses on source code, because correct, well designed, and efficient program code is the desired end output of software development. Nevertheless, source code is not the only constituent of software systems: Programs also comprise other types of artifacts, such as documentation, build system and configuration files, and graphics. These non-code artifacts only recently got the attention of researchers and are not yet investigated as a whole, but separately and with very specific aims. By taking a quantitative perspective, we look into non-code software artifacts to measure their role in software systems. We analyze 35 mature open-source software systems and we address exploratory questions such as: How many non-code software artifacts do software systems contain? How do they relate to source code? How much effort is put into producing and maintaining them? Our results show that a significant portion of systems is made of non-code artifacts, and that programmers spend a relevant part of their effort on non-code artifacts during the development process. Our analysis opens questions for future investigations.
The introduction of parametric polymorphism in java with translation approaches has been shown to be of considerable interest, allowing the definition of extensions of java on top of the existing Virtual Machines. Hom...
详细信息
The introduction of parametric polymorphism in java with translation approaches has been shown to be of considerable interest, allowing the definition of extensions of java on top of the existing Virtual Machines. Homogeneous translations furthermore, seem to be more useful than heterogeneous, avoiding the continuous increase of library code with redundant information. At this time however, homogeneous approaches aren't as flexible as heterogeneous, with extensions failing to integrate well with base language typing. In this paper, using some of the features of the Core Reflection of java, we introduce a homogeneous translation in which run-time information about instantiation of type-parameters is carried, allowing full integration of parameterized types with java typing. Performance overhead is greatly decreased using a brand new translation technique based on the deferring of the management of type information at load-time. The same power and flexibility of previous heterogeneous approaches is obtained while maintaining homogeneous translation advantages.
In this paper, we propose a method for partitioning a given application program that exceeds resource limits of mobile terminals into two module sets. Only a part of modules of the given application is assigned on a m...
详细信息
ISBN:
(纸本)0769522491
In this paper, we propose a method for partitioning a given application program that exceeds resource limits of mobile terminals into two module sets. Only a part of modules of the given application is assigned on a mobile terminal and, the rest of modules are running on its proxy server, and that the mobile terminal invokes the modules on the server using remote method invocation. It is desirable that we can minimize the total amount of communication, delay time and power consumption between the mobile terminal and its server (here, we call the total amount as the total cost). In the proposed technique, first, a given java program is repeatedly simulated on a single machine, and we collect the statistics information to estimate the total cost. Then, we give the resource limitation of the mobile terminal such as the memory size and an objective function that shows what total cost should be minimized. Under those constraints, our tool divides optimized division by using Simulated Annealing (SA). We have applied our technique, to some application programs and examined its usefulness by evaluating their total costs.
Unit testing is a common practice where developers write test cases together with regular code. Automation frameworks such as JUnit for java have popularised this approach, allowing frequent and automatic execution of...
详细信息
ISBN:
(纸本)9781479960323
Unit testing is a common practice where developers write test cases together with regular code. Automation frameworks such as JUnit for java have popularised this approach, allowing frequent and automatic execution of unit test suites. Despite the appraisals of unit testing in practice, software engineering researchers see potential for improvement and investigate advanced techniques such as automated unit test generation. To align such research with the needs of practitioners, we conducted a survey amongst 225 software developers, covering different programminglanguages and 29 countries, using a global online marketing research platform. The survey responses confirm that unit testing is an important factor in software development, and suggest that there is indeed potential and need for research on automation of unit testing. The results help us to identify areas of importance on which further research will be necessary (e.g., maintenance of unit tests), and also provide insights into the suitability of online marketing research platforms for software engineering surveys.
A common method to localize defects is to compare the coverage of passing and failing program runs: A method executed only in failing runs, for instance, is likely to point to the defect. However, some failures, occur...
详细信息
ISBN:
(纸本)354027992X
A common method to localize defects is to compare the coverage of passing and failing program runs: A method executed only in failing runs, for instance, is likely to point to the defect. However, some failures, occur only after a specific sequence of method calls, such as multiple deallocations of the same resource. Such sequences can be collected from arbitrary java programs at low cost;comparing object-specific sequences predicts defects better than simply comparing coverage. In a controlled experiment, our technique pinpointed the defective class in 39% of all test runs.
Name analysis for java is challenging with its complex visibility rules involving nested, scopes, inheritance, qualified access, and syntactic ambiguities. We show how java name analysis including ambiguities related ...
详细信息
ISBN:
(纸本)354045778X
Name analysis for java is challenging with its complex visibility rules involving nested, scopes, inheritance, qualified access, and syntactic ambiguities. We show how java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal javalanguage specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full java 1.4 compiler has been implemented to validate the technique.
This project's main aim is to detect unbalancing in three phase circuit. We further provide a software simulation in MATLAB to provide solution to this problem. This MATLAB simulation works with selfadapting intel...
详细信息
ISBN:
(纸本)9780769551463
This project's main aim is to detect unbalancing in three phase circuit. We further provide a software simulation in MATLAB to provide solution to this problem. This MATLAB simulation works with selfadapting intelligent agent system that would plot real time unbalancing and balancing of the system. In a balance system all phases, of a three phase power system are distributed at 120 degrees in space with respect to each other. In "three phase four wire" systems, no current flows through neutral wire if system is balanced [1]. We have also shown that how by dividing the areas into sub servers of java we can decrease the inconsistency and remove the discrepancies in the whole system thus tackling these uncontrolled conditions of unbalancing.
This paper presents a real-time distribution package designed to offer configurable real-time performance for distributed java applications. Its use is described in the context of OSGi (Open Services Gateway Initiativ...
详细信息
ISBN:
(纸本)9781424487127
This paper presents a real-time distribution package designed to offer configurable real-time performance for distributed java applications. Its use is described in the context of OSGi (Open Services Gateway Initiative) which is enhanced to deliver real-time performance in distributed java applications.
A common theme in information security is protection of trusted software components against unauthorized access by untrusted users. In the context of distributed object technologies, such as Enterprise java Beans, thi...
详细信息
ISBN:
(纸本)0769522920
A common theme in information security is protection of trusted software components against unauthorized access by untrusted users. In the context of distributed object technologies, such as Enterprise java Beans, this means preventing leaks of sensitive information to untrusted users, as well as preventing untrusted users from modifying sensitive information. In this paper we propose an approach for identification and classification of potentially sensitive information that can leak out of trusted software components to untrusted parties. Unlike the current approaches to securing information flow by extending the type system, our technique is based on static points-to, data- and control-dependence, and object mutability analyses.
暂无评论