For applications such as management information systems, customizing the code base to meet each new customer's needs can sometimes,be unavoidable. Although good design can minimize the need for such code-level mod...
详细信息
For applications such as management information systems, customizing the code base to meet each new customer's needs can sometimes,be unavoidable. Although good design can minimize the need for such code-level modifications, it can't eliminate it. Moreover, if you don't carefully and accurately manage customizations when they do occur, the result can be skyrocketing development costs, poor customer support, and an inability to respond quickly to new needs.
Delta-oriented programming (DOP) is a flexible approach to the implementation of software product lines (SPLs). Delta-oriented SPLs consist of a code base (a set of delta modules encapsulating changes to object-orient...
详细信息
Delta-oriented programming (DOP) is a flexible approach to the implementation of software product lines (SPLs). Delta-oriented SPLs consist of a code base (a set of delta modules encapsulating changes to object-oriented programs) and a product line declaration (providing the connection of the delta modules with the product features). In this paper, we present a core calculus that extends DOP with the capability to switch the implemented product configuration at runtime. A dynamic delta-oriented SPL is a delta-oriented SPL with a dynamic reconfiguration graph that specifies how to switch between different feature configurations. Dynamic DOP supports also (unanticipated) software evolution such that at runtime, the product line declaration, the code base and the dynamic reconfiguration graph can be changed in any (unanticipated) way that preserves the currently running product, which is essential when evolution affects existing features. The type system of our dynamic DOP core calculus ensures that the dynamic reconfigurations lead to type safe products and do not cause runtime type errors.
Refactoring is the process of changing the design of a program without changing what it does. Typical refactorings, such as function extraction and generalisation, are intended to make a program more amenable to exten...
详细信息
Refactoring is the process of changing the design of a program without changing what it does. Typical refactorings, such as function extraction and generalisation, are intended to make a program more amenable to extension, more comprehensible and so on. Refactorings differ from other sorts of program transformation in being applied to source code, rather than to a 'core' language within a compiler, and also in having an effect across a code base, rather than to a single function definition, say. Because of this, there is a need to give automated support to the process. This paper reflects on our experience of building tools to refactor functional programs written in Haskell (HaRe) and Erlang (Wrangler). We begin by discussing what refactoring means for functional programming languages, first in theory, and then in the context of a larger example. Next, we address system design and details of system implementation as well as contrasting the style of refactoring and tooling for Haskell and Erlang. Building both tools led to reflections about what particular refactorings mean, as well as requiring analyses of various kinds, and we discuss both of these. We also discuss various extensions to the core tools, including integrating the tools with test frameworks;facilities for detecting and eliminating code clones;and facilities to make the systems extensible by users. We then reflect on our work by drawing some general conclusions, some of which apply particularly to functional languages, while many others are of general value.
Background: Complex biological database systems have become key computational tools used daily by scientists and researchers. Many of these systems must be capable of executing on multiple different hardware and softw...
详细信息
Background: Complex biological database systems have become key computational tools used daily by scientists and researchers. Many of these systems must be capable of executing on multiple different hardware and software configurations and are also often made available to users via the Internet. We have used the Java Data Object (JDO) persistence technology to develop the database layer of such a system known as the SigPath information management system. SigPath is an example of a complex biological database that needs to store various types of information connected by many relationships. Results: Using this system as an example, we perform a critical evaluation of current JDO technology;discuss the suitability of the JDO standard to achieve portability, scalability and performance. We show that JDO supports portability of the SigPath system from a relational database backend to an object database backend and achieves acceptable scalability. To answer the performance question, we have created the SigPath JDO application benchmark that we distribute under the Gnu General Public License. This benchmark can be used as an example of using JDO technology to create a complex biological database and makes it possible for vendors and users of the technology to evaluate the performance of other JDO implementations for similar applications. Conclusions: The SigPath JDO benchmark and our discussion of JDO technology in the context of biological databases will be useful to bioinformaticians who design new complex biological databases and aim to create systems that can be ported easily to a variety of database backends.
An approach to constructing radial Doppler 2D radio images (RIs), in which the synthetic aperture method is applied to multifrequency signals with Costas-coded hopping of carrier frequencies, is investigated. The case...
详细信息
An approach to constructing radial Doppler 2D radio images (RIs), in which the synthetic aperture method is applied to multifrequency signals with Costas-coded hopping of carrier frequencies, is investigated. The case of completely coherent signals and the case of their strong phase distortions have been discussed. Side lobe level suppression method based on multiplicative processing of 2D RIs constructed with the use of different frequency codes is proposed. Selection of code bases ensuring minimization of the side lobes level of the resulting 2D RI has been substantiated. The results simulation based on mathematical bright points are presented.
Computer simulations of spacecraft dynamics are widely used in industry and academia to predict how spacecraft will behave during proposed mission concepts. Current technology and performance requirements have placed ...
详细信息
Computer simulations of spacecraft dynamics are widely used in industry and academia to predict how spacecraft will behave during proposed mission concepts. Current technology and performance requirements have placed pressure on simulations to be increasingly more representative of the environment and the physics that spacecraft will encounter. This results in increasingly complex computer simulations. Designing the software architecture in a modular way is a crucial step to allow for ease of testing, maintaining, and scaling of the software code base. However, for complex spacecraft modeling including flexible or multibody dynamics, modularizing the software is not a trivial task because the resulting equations of motion are fully coupled nonlinear equations. In this paper, a software architecture is presented for creating complex fully coupled spacecraft simulations with a modular framework. The architecture provides a solution to these common issues seen in dynamics modeling. The modularization of the fully coupled equations of motion is completed by solving the complex equations analytically such that the spacecraft rigidbody translational and rotational accelerations are solved for first and the other second-order state derivatives are found later. This architecture is implemented in the Basilisk astrodynamics software package and is a fully tested example of the proposed software architecture.
Today\'s ATE systems must increasingly incorporate open source OSs such as Linux, existing applications written in a variety of languages, and COTS hardware from a variety of vendors - each with its own defined li...
详细信息
Today\'s ATE systems must increasingly incorporate open source OSs such as Linux, existing applications written in a variety of languages, and COTS hardware from a variety of vendors - each with its own defined list of supported OS distributions and versions. Each additional software or hardware requirement can, therefore, quickly lead to substantial maintenance or a costly obsolescence of the entire system. Virtualization has proven to be an effective strategy to combat this obsolescence. By running multiple OSs on the same hardware, the ATE designer can compensate for requirement changes such as new COTS hardware with the addition of new OSs and abstraction layers, all while maintaining compatibility with the existing code base. As an added benefit, virtualized ATEs are capable of supporting both general-purpose and real-time OSs, which can help prevent obsolescence in situations where a high degree of reliability and very precise timing are needed.
暂无评论