Every JPL flight mission relies on activity planning and sequence generation software to perform operations. Most such tools in use at JPL and elsewhere use attribute-based schemas or domain-specific languages (DSLs) ...
详细信息
ISBN:
(纸本)9781728127347
Every JPL flight mission relies on activity planning and sequence generation software to perform operations. Most such tools in use at JPL and elsewhere use attribute-based schemas or domain-specific languages (DSLs) to define activities. This reliance poses user training, software maintenance, performance, and other challenges. To solve this problem for future missions, a new software called Blackbird was developed which allows engineers to specify behavior in standard java. The new code base has over an order of magnitude fewer lines of code than other JPL planning software, since no DSL or schema interpreter is needed. The use of java for defining activities also allows mission adapters to debug their code in an integrated development environment, seamlessly call external libraries, and set up truly multi-mission models. These efficiency gains have significantly reduced the amount of development effort required to support the software. This paper discusses Blackbird's design, principles, and use cases. Within a year of its completion, six projects have begun using Blackbird. The Mars 2020 mission is using Blackbird to generate command sequences for cruise and Mars approach. By using multi-mission models, the Mars 2020 cruise adaptation was created in fewer than three months by three engineers at less than half time each. Work has begun to use Blackbird for communications planning during Mars 2020 surface operations. The Psyche mission uses Blackbird to generate its reference mission plans in development. Full simulations with 123,000 activities and 4 7 million resource value changes complete in about one minute. Psyche is also working towards using Blackbird in operations to support integrated activity planning and generate sequences. The InSight project is using Blackbird for mission planning in operations, replacing error-prone manual processes. For the NISAR mission, Blackbird evaluates threats to the commissioning phase timeline. The Europa Lander pre-project
When a new technology is introduced, the migration of existing applications to the new technology must be carefully considered. Automation can make some migrations feasible that otherwise may be too risky or expensive...
详细信息
ISBN:
(纸本)0769522920
When a new technology is introduced, the migration of existing applications to the new technology must be carefully considered. Automation can make some migrations feasible that otherwise may be too risky or expensive to be worth the advantages of the new technology. In this paper we describe a technique for migrating web applications using embedded java code into a custom tag implementation. The technique uses source code transformation techniques to analyze and separate the java from the web pages. The code is then automatically transformed to custom java classes which are invoked from the modified web pages containing custom tags. The result is an web application with identical function and appearance, but where the business logic (the java code) has been separated from the presentation (the web pages).
This paper presents the Molen Femtojava engine that is extended with concepts taken from the Molen polymorphic processor This allows for the existing Femtojava to be augmented with reconfigurable hardware with only a ...
详细信息
ISBN:
(纸本)0769526829
This paper presents the Molen Femtojava engine that is extended with concepts taken from the Molen polymorphic processor This allows for the existing Femtojava to be augmented with reconfigurable hardware with only a single extension of the bytecodes and thereby but still allowing the implementation of arbitrary hardware implementations. Therefore, computationally intensive functions can be moved to the reconfigurable hardware to improve their performance. Our experimental results on MP3 decoding, which is a common embedded application, can be improved by at least of 27% reduction of execution cycles with minimal additional hardware area (about 7%). Finally, our synthesis results also show that the Molen extension of the Femtojava engine only required an additional 10% of area (in terms of FPGA slices).
We present Multijava, a backward-compatible extension to java supporting open classes and symmetric multiple dispatch. Open classes allow one to add to the set of methods that an existing class supports without creati...
详细信息
We present Multijava, a backward-compatible extension to java supporting open classes and symmetric multiple dispatch. Open classes allow one to add to the set of methods that an existing class supports without creating distinct subclasses or editing existing code. Unlike the "Visitor" design pattern, open classes do not require advance planning, and open classes preserve the ability to add new subclasses modularly and safely. Multiple dispatch offers several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to some kinds of "binary method" problems. Multijava's multiple dispatch retains java's existing class-based encapsulation properties. We adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors. We also present a novel compilation scheme that operates modularly and incurs performance overhead only where open classes or multiple dispatching are actually used.
Knowing which methods do not have side effects is necessary in a variety of software tools for program understanding, restructuring, optimization, and verification. We present a general approach for identifying side-e...
详细信息
ISBN:
(纸本)0769522130
Knowing which methods do not have side effects is necessary in a variety of software tools for program understanding, restructuring, optimization, and verification. We present a general approach for identifying side-effect-free methods in java software. Our technique is parameterized by class analysis and is designed to work on incomplete programs. We present empirical results from two instantiations of the approach, based on Rapid Type Analysis and on points-to analysis. In our experiments with several components, on average 22% of the investigated methods were identified as free of side effects. We also present a precision evaluation which shows that the approach achieves almost perfect precision-i.e., it almost never misses methods that in reality have no side effects. These results indicate that very precise identification of side-effect-free methods is possible with simple and inexpensive analysis techniques, and therefore can be easily incorporated in software tools.
In this paper we present an implementation of May Happen in Parallel analysis for java that attempts to address some of the practical implementation concerns of the original work. We describe a design that incorporate...
详细信息
ISBN:
(纸本)354028009X
In this paper we present an implementation of May Happen in Parallel analysis for java that attempts to address some of the practical implementation concerns of the original work. We describe a design that incorporates techniques for aiding a feasible implementation and expanding the range of acceptable inputs. We provide experimental results showing the utility and impact of our approach and optimizations using a variety of concurrent benchmarks.
With the increasingly visible maturing of open-source especially in the java space, the development environment for a typical java EE Application Development project can now largely (if not fully) be composed out of f...
详细信息
ISBN:
(纸本)9781424412969
With the increasingly visible maturing of open-source especially in the java space, the development environment for a typical java EE Application Development project can now largely (if not fully) be composed out of free and open source components that are proven and stable. The primary objective of this paper is to identify suitable tools from the open -source landscape and then validate and prove their integration within a real-life Application Development scenario. Going beyond merely architecture implementation, we focus on validating non-functional requirements such as code quality and most importantly: performance - using highly capable open source tools. Code quality is an important dimension of Architecture that influences the maintainability of code. And everyone is familiar with the Architectural concern of performance - and the dire consequences that can result if the application performs poorly or fails to scale up. Some of the goals of this exercise are the following: Reduce cost as far as possible without sacrificing capability Maximize productivity by picking the right tools for the development life cycle. Ensure that the tools selected integrate well with each other across the development life cycle Demonstrate real-life usage, with actual code-samples and configuration Provide a documented model and a reference implementation that can be easily replicated Enable more consistency across Application Development projects, making it easier for developers to transition to new projects utomate as much of the development process as far as possible. Reduce the barriers for java EE development projects to perform architecture validation by enabling teams to use zero-cost yet capable tools for code review, functional testing and performance testing.
The java Data Objects specification is designed as lightweight persistence approach. Thus, JDO neither supports user authentication nor role-based authorization. Consequently, users are able to query the entire data s...
详细信息
ISBN:
(纸本)3540378715
The java Data Objects specification is designed as lightweight persistence approach. Thus, JDO neither supports user authentication nor role-based authorization. Consequently, users are able to query the entire data store as well as to delete persistent objects without any restriction. The novel security approach JDOSecure was developed at the University of Mannheim to prevent unauthorized access to the data store while using the JDO APT. Based on the dynamic proxy approach, JDOSecure introduces role-based permissions to JDO-based applications. In this paper we focuses on how JDOSecure enables java Data Objects-based applications to deal with role-based permissions.
Source code is often reused in software development. Although developers can avoid re-implementing features in existing products, doing so may result in a large number of similar software products. To understand the c...
详细信息
ISBN:
(纸本)9781467375269
Source code is often reused in software development. Although developers can avoid re-implementing features in existing products, doing so may result in a large number of similar software products. To understand the commonalities and variabilities of similar products, comparing their source code is critical. However, a product may change its own directory structure, even if the products share the same source code with other products. Hence, comparing source code among products in a systematic manner is difficult. In this paper, we propose a technique to extract and visualize a unified directory tree to compare the source code of similar products. This tree includes all directories of given products and merges corresponding directories into a single node. Since a node in a tree corresponds to multiple directories in products, developers can easily compare the contents of products. In our study, we implemented the visualization as a GUI tool. In addition, we conducted a case study using four Android products to demonstrate the tool's ability to assist developers in accessing the source code of multiple products.
The paper presents a java byte-code optimization algorithm, which determines an initial distribution of objects among virtual machines (JVMs) so as to decrease direct inter-object communication and balance loads of th...
详细信息
ISBN:
(纸本)3540341412
The paper presents a java byte-code optimization algorithm, which determines an initial distribution of objects among virtual machines (JVMs) so as to decrease direct inter-object communication and balance loads of the virtual machines. The proposed optimization algorithm is based on a graph representation of control and data dependencies between methods in java programs. These dependencies, expressed in the form of conditional macro-dataflow graphs, are discovered by a static analysis of program byte-code. Object placement optimization is performed before a java program is executed in a parallel system. The optimization methods are based on the Dominant Sequence Clustering (DSC) approach. First, macro nodes are clustered on an unlimited number of processors (logical JVMs) to reduce the total program execution time. Next, clusters are merged and scheduled to adjust the number of logical JVMs to the number of real processors. The presented approach is supported by branch optimization techniques, which include detection of mutually-exclusive paths and scheduling of most often-used-paths based on branch probabilities.
暂无评论