The Next Generation of Aerospace Data Processing Systems

Software is a key ingredient when developing any aerospace system. It is used in embedded electronics, in flight dynamics, in ground and space data processing, and in the current generation of data products.

"Comprehensive operating systems, development tools, and middleware solution has enabled our R&D team to construct unparalleled applications."
~ Daniel Journay, Systems Engineering

For example, the National Aeronautics and Space Administration (NASA) Goddard Space Flight Center’s Innovative Partnerships Program Office offers licensing opportunities for software and technologies from a variety of areas relevant to the hardware and software requirements of Earth and space science missions and projects: aerospace/aeronautics, computer software, data processing/analysis, electromechanical devices, electronics, manufacturing equipment, mechanical technologies, nanotechnology, optics and photonics, sensor and detector technologies, subassemblies and components, telecommunications and internet, and test and measurement.

Reuse of existing experience and artifacts eliminates having to “reinvent the wheel” and is a key element to achieving progress in many areas of complex aerospace system development.

The Fall of Custom Built Applications

Originally, in the absence of vendor-provided solutions and commercial off-the-shelf software components, many data and information systems were designed and built as custom applications. However, as the practice of systems and applications development has matured, facilitating reuse of software and reusing previously developed software have been recognized as beneficial for meeting the challenges of developing and maintaining complex systems.

Some of the challenges commonly faced by system developers can include dealing with very large quantities of data (e.g., terabytes per day), working with a distributed knowledge base, the expense and complexity of required technology infrastructure, and the need for domain-specific knowledge in software development. In software development, reuse can assist today’s development teams in various aspects of the system development life cycle, especially when they share common goals.

38% of customers surveyed estimated that development of custom applications extended 9-12 months longer than originally estimated

The development of new systems can benefit from the efforts that contributed to the development of current and previous generations of systems. Considering the costs of building new systems, and the learning curve that contributes to such costs, leveraging the results of previous system development activities has the potential to reduce system development costs and improve capabilities for new development. Previously developed system components, such as plans, design requirements, system documentation, algorithms, and procedures, offer the results of previous design, testing activities, scientific algorithms, and learning experiences that were part of the initial systems development effort. Such legacy resources contain the evolved expertise of previous generations and can have continuing value if reused when building the next generation of systems or enhancing existing systems.

While the potential gains from software reuse appear quite promising, these gains also can be accompanied by costs and risks. Effectively preparing software components and other artifacts for potential reuse requires efforts to ensure that such artifacts can be reused in a manner that offers adopters efficiency gains that can be realized through reuse. Without such preparation efforts, adopters might not achieve the efficiency benefits anticipated for their reuse activities. However, the costs of preparing software for reuse could be small in comparison to the potential gains to be attained from reuse. For example, in cases where a planned or “forward-looking” approach to software reuse has been employed in the aerospace industry, improvements have been observed in terms of increasing the quality and reducing the costs of software reuse.

Similarly, risks can be incurred through software reuse. The adoption of previously-developed software can pose risks for those who contribute software as well as for those who adopt software. For example, assumptions about the origination, validation, and verification of software can increase risks to software projects, especially if the software affects mission-critical operations or safety-critical systems. While costs can be controlled and risks can be mitigated, they need to be recognized and assessed to determine their potential effects on software reuse. Recognizing the existence of the possible costs and risks also enables the involved parties to engage in software reuse with grounded expectations. Taking a deliberate, planned, and systematic approach to software reuse will help producers and adopters of reusable software to attain the benefits of reuse while limiting its costs and managing its risks.

Reuse has been shown to be effective in developing large and complex data systems to support space-based missions. One example is the National Polar-orbiting Operational Environmental Satellite System Preparatory Project where high levels of reuse have enabled system developers in the Science Data Segment, which provides ground systems that support data product assessment and quality verification, to reduce development effort. Software reuse also contributes to flight software, such as the instrument manager software for the Mars Science Laboratory rover. This chapter describes how reuse activities can fit into building the next generation of aerospace data processing systems by providing guidance on methods for improving reuse practices in order to realize the benefits of reuse.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.