Search NASASearch

SEARCH · Search NASA

Results for “software development framework”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 109 records · Page 6

A theoretical basis for the analysis of multiversion software subject to coincident errors

Fundamental to the development of redundant software techniques (known as fault-tolerant software) is an understanding of the impact of multiple joint occurrences of errors, referred to here as coincident errors. A theoretical basis for the study of redundant software is developed which: (1) provides a probabilistic framework for empirically evaluating the effectiveness of a general multiversion strategy when component versions are subject to coincident errors, and (2) permits an analytical study of the effects of these errors. An intensity function, called the intensity of coincident errors, has a central role in this analysis. This function describes the propensity of programmers to introduce design faults in such a way that software components fail together when executing in the application environment. A condition under which a multiversion system is a better strategy than relying on a single version is given.

Eckhardt, D. E., Jr.

A Software Framework for Aircraft Simulation

The National Aeronautics and Space Administration Dryden Flight Research Center has a long history in developing simulations of experimental fixed-wing aircraft from gliders to suborbital vehicles on platforms ranging from desktop simulators to pilot-in-the-loop/aircraft-in-the-loop simulators. Regardless of the aircraft or simulator hardware, much of the software framework is common to all NASA Dryden simulators. Some of this software has withstood the test of time, but in recent years the push toward high-fidelity user-friendly simulations has resulted in some significant changes. This report presents an overview of the current NASA Dryden simulation software framework and capabilities with an emphasis on the new features that have permitted NASA to develop more capable simulations while maintaining the same staffing levels.

Curlett, Brian P.

Improving Flight Software Module Validation Efforts : a Modular, Extendable Testbed Software Framework

Ever since Explorer-1, the United States' first Earth satellite, was developed and launched in 1958, JPL has developed many more spacecraft, including landers and orbiters. While these spacecraft vary greatly in their missions, capabilities,and destination, they all have something in common. All of the components of these spacecraft had to be comprehensively tested. While thorough testing is important to mitigate risk, it is also a very expensive and time consuming process. Thankfully,since virtually all of the software testing procedures for SMAP are computer controlled, these procedures can be automated. Most people testing SMAP flight software (FSW) would only need to write tests that exercise specific requirements and then check the filtered results to verify everything occurred as planned. This gives developers the ability to automatically launch tests on the testbed, distill the resulting logs into only the important information, generate validation documentation, and then deliver the documentation to management. With many of the steps in FSW testing automated, developers can use their limited time more effectively and can validate SMAP FSW modules quicker and test them more rigorously. As a result of the various benefits of automating much of the testing process, management is considering this automated tools use in future FSW validation efforts.

flight software testing

Recent Developments to the Porous Microstructure Analysis (PuMA) Software

The Porous Microstructure Analysis (PuMA) software is an open source framework for image-based simulation, primarily used to determine effective properties based on material microstructure. PuMA was originally developed for the study of NASA thermal protection materials; however, many of the solvers in PuMA have applicability to a broad range of materials science applications. PuMA version 3.2 computes material surface area, pore diameters, effective thermal conductivity, continuum and rarefied tortuosity, and permeability. For anisotropic materials, PuMA can estimate material orientation and compute anisotropic thermal conductivity and elasticity. In this talk, a brief overview of the PuMA software and underlying methods will be presented, as well as some recent and ongoing developments, including the use of immersed boundary methods for image-based simulation and the development of a new weave segmentation tool, called TomoSAM. Cut-Cell method for heat and mass transfer For simulations on complex microstructures, traditional unstructured meshing techniques often prove to be difficult and time-intensive. Voxel-based solvers, which represent the surface as a staircase structure, are relatively simple to implement but can lose accuracy when feature resolution is poor. In this work, we present a novel 3D cut-cell method for solving the variable coefficient Poisson equation on complex microstructures, suitable for the determination of effective thermal conductivity or tortuosity of a material. The method uses a Marching Cubes/Marching Squares surface reconstruction to create cut-cells and determine geometric quantities. A flux-correction method is extended to 3D, with least squares gradient reconstruction, to solve for the boundary fluxes in the cut-cells. Verification cases show the solver achieves globally 2nd order accuracy on complex microstructures. TomoSAM TomoSAM, a module of the PuMA software, has been developed as a plugin for 3D Slicer, a software platform used for 3D image processing and visualization. It utilizes the Segment Anything Model (SAM), a deep learning model capable of identifying objects and generating image masks based on minimal user input. This feature enables efficient segmentation of complex 3D datasets, particularly of woven materials, from tomography or similar imaging methods, reducing the need for manual segmentation.

Tomography

Experience with a software engineering environment framework

Experience with a software engineering environment framework tool called the Automated Product Control Environment (APCE) is described. The goals of the framework design, an overview of the major functions and features of the framework, and implementation and use of the framework are presented. Aspects of the framework discussed include automation and control; portability, distributability, and interoperability; cost/benefit analysis; and productivity. Results of using the framework are discussed and the framework approach is briefly compared to other software development environment approaches.

Blumberg, R.

Software life cycle methodologies and environments

Products of this project will significantly improve the quality and productivity of Space Station Freedom Program software processes by: improving software reliability and safety; and broadening the range of problems that can be solved with computational solutions. Projects brings in Computer Aided Software Engineering (CASE) technology for: Environments such as Engineering Script Language/Parts Composition System (ESL/PCS) application generator, Intelligent User Interface for cost avoidance in setting up operational computer runs, Framework programmable platform for defining process and software development work flow control, Process for bringing CASE technology into an organization's culture, and CLIPS/CLIPS Ada language for developing expert systems; and methodologies such as Method for developing fault tolerant, distributed systems and a method for developing systems for common sense reasoning and for solving expert systems problems when only approximate truths are known.

Fridge, Ernest

Loci-STREAM Version 0.9

Loci-STREAM is an evolving computational fluid dynamics (CFD) software tool for simulating possibly chemically reacting, possibly unsteady flows in diverse settings, including rocket engines, turbomachines, oil refineries, etc. Loci-STREAM implements a pressure- based flow-solving algorithm that utilizes unstructured grids. (The benefit of low memory usage by pressure-based algorithms is well recognized by experts in the field.) The algorithm is robust for flows at all speeds from zero to hypersonic. The flexibility of arbitrary polyhedral grids enables accurate, efficient simulation of flows in complex geometries, including those of plume-impingement problems. The present version - Loci-STREAM version 0.9 - includes an interface with the Portable, Extensible Toolkit for Scientific Computation (PETSc) library for access to enhanced linear-equation-solving programs therein that accelerate convergence toward a solution. The name "Loci" reflects the creation of this software within the Loci computational framework, which was developed at Mississippi State University for the primary purpose of simplifying the writing of complex multidisciplinary application programs to run in distributed-memory computing environments including clusters of personal computers. Loci has been designed to relieve application programmers of the details of programming for distributed-memory computers.

Wright, Jeffrey

Development of a software safety process and a case study of its use

The goal of this research is to continue the development of a comprehensive approach to software safety and to evaluate the approach with a case study. The case study is a major part of the project, and it involves the analysis of a specific safety-critical system from the medical equipment domain. The particular application being used was selected because of the availability of a suitable candidate system. We consider the results to be generally applicable and in no way particularly limited by the domain. The research is concentrating on issues raised by the specification and verification phases of the software lifecycle since they are central to our previously-developed rigorous definitions of software safety. The theoretical research is based on our framework of definitions for software safety. In the area of specification, the main topics being investigated are the development of techniques for building system fault trees that correctly incorporate software issues and the development of rigorous techniques for the preparation of software safety specifications. The research results are documented. Another area of theoretical investigation is the development of verification methods tailored to the characteristics of safety requirements. Verification of the correct implementation of the safety specification is central to the goal of establishing safe software. The empirical component of this research is focusing on a case study in order to provide detailed characterizations of the issues as they appear in practice, and to provide a testbed for the evaluation of various existing and new theoretical results, tools, and techniques. The Magnetic Stereotaxis System is summarized.

Knight, John C.

Recent Developments to the Porous Microstructure Analysis (PuMA) Software

Introduction The Porous Microstructure Analysis (PuMA) software is an open source framework for image-based simulation, primarily used to determine effective properties based on material microstructure. PuMA was originally developed for the study of NASA thermal protection materials; however, many of the solvers in PuMA have applicability to a broad range of materials science applications. PuMA version 3.2 computes material surface area, pore diameters, effective thermal conductivity, continuum and rarefied tortuosity, and permeability. For anisotropic materials, PuMA can estimate material orientation and compute anisotropic thermal conductivity and elasticity. In this talk, a brief overview of the PuMA software and underlying methods will be presented, as well as some recent and ongoing developments, including the use of immersed boundary methods for image-based simulation and the development of a new weave segmentation tool, called TomoSAM. Cut-Cell method for heat and mass transfer For simulations on complex microstructures, traditional unstructured meshing techniques often prove to be difficult and time-intensive. Voxel-based solvers, which represent the surface as a staircase structure, are relatively simple to implement but can lose accuracy when feature resolution is poor. In this work, we present a novel 3D cut-cell method for solving the variable coefficient Poisson equation on complex microstructures, suitable for the determination of effective thermal conductivity or tortuosity of a material. The method uses a Marching Cubes/Marching Squares surface reconstruction to create cut-cells and determine geometric quantities. A flux-correction method is extended to 3D, with least squares gradient reconstruction, to solve for the boundary fluxes in the cut-cells. Verification cases show the solver achieves globally 2nd order accuracy on complex microstructures. TomoSAM TomoSAM, a module of the PuMA software, has been developed as a plugin for 3D Slicer, a software platform used for 3D image processing and visualization. It utilizes the Segment Anything Model (SAM), a deep learning model capable of identifying objects and generating image masks based on minimal user input. This feature enables efficient segmentation of complex 3D datasets, particularly of woven materials, from tomography or similar imaging methods, reducing the need for manual segmentation.

Tomography

Porous Microstructure Analysis (PuMA) software

The Porous Microstructure Analysis (PuMA) software was developed to provide a robust and efficient framework for computing material properties based on their microstructures. The development was motivated by advancements in X-ray microtomography, an imaging technology that can resolve the structure of a material at a sub-micron scale, in 3D and even in 4D (over time). PuMA provides the capability of computing a comprehensive spectrum of properties, from the most fundamental geometric features of a microstructure, to advanced anisotropic thermo-elastic properties. In addition, the software can generate artificial microstructures, ranging from simple analytical shapes to complex fibrous woven and non- woven geometries, which can be used in performance optimization studies. This presentation will highlight many of the capabilities of the recent open-source release.

microtomography

The development and technology transfer of software engineering technology at NASA. Johnson Space Center

The United State's big space projects of the next decades, such as Space Station and the Human Exploration Initiative, will need the development of many millions of lines of mission critical software. NASA-Johnson (JSC) is identifying and developing some of the Computer Aided Software Engineering (CASE) technology that NASA will need to build these future software systems. The goal is to improve the quality and the productivity of large software development projects. New trends are outlined in CASE technology and how the Software Technology Branch (STB) at JSC is endeavoring to provide some of these CASE solutions for NASA is described. Key software technology components include knowledge-based systems, software reusability, user interface technology, reengineering environments, management systems for the software development process, software cost models, repository technology, and open, integrated CASE environment frameworks. The paper presents the status and long-term expectations for CASE products. The STB's Reengineering Application Project (REAP), Advanced Software Development Workstation (ASDW) project, and software development cost model (COSTMODL) project are then discussed. Some of the general difficulties of technology transfer are introduced, and a process developed by STB for CASE technology insertion is described.

Pitman, C. L.

Launch Control System Software Development System Automation Testing

The Spaceport Command and Control System (SCCS) is the National Aeronautics and Space Administration's (NASA) launch control system for the Orion capsule and Space Launch System, the next generation manned rocket currently in development. This system requires high quality testing that will measure and test the capabilities of the system. For the past two years, the Exploration and Operations Division at Kennedy Space Center (KSC) has assigned a group including interns and full-time engineers to develop automated tests to save the project time and money. The team worked on automating the testing process for the SCCS GUI that would use streamed simulated data from the testing servers to produce data, plots, statuses, etc. to the GUI. The software used to develop automated tests included an automated testing framework and an automation library. The automated testing framework has a tabular-style syntax, which means the functionality of a line of code must have the appropriate number of tabs for the line to function as intended. The header section contains either paths to custom resources or the names of libraries being used. The automation library contains functionality to automate anything that appears on a desired screen with the use of image recognition software to detect and control GUI components. The data section contains any data values strictly created for the current testing file. The body section holds the tests that are being run. The function section can include any number of functions that may be used by the current testing file or any other file that resources it. The resources and body section are required for all test files; the data and function sections can be left empty if the data values and functions being used are from a resourced library or another file. To help equip the automation team with better tools, the Project Lead of the Automated Testing Team, Jason Kapusta, assigned the task to install and train an optical character recognition (OCR) tool to Brandon Echols, a fellow intern, and I. The purpose of the OCR tool is to analyze an image and find the coordinates of any group of text. Some issues that arose while installing the OCR tool included the absence of certain libraries needed to train the tool and an outdated software version. We eventually resolved the issues and successfully installed the OCR tool. Training the tool required many images and different fonts and sizes, but in the end the tool learned to accurately decipher the text in the images and their coordinates. The OCR tool produced a file that contained significant metadata for each section of text, but only the text and coordinates of the text was required for our purpose. The team made a script to parse the information we wanted from the OCR file to a different file that would be used by automation functions within the automated framework. Since a majority of development and testing for the automated test cases for the GUI in question has been done using live simulated data on the workstations at the Launch Control Center (LCC), a large amount of progress has been made. As of this writing, about 60% of all of automated testing has been implemented. Additionally, the OCR tool will help make our automated tests more robust due to the tool's text recognition being highly scalable to different text fonts and text sizes. Soon we will have the whole test system automated, allowing for more full-time engineers working on development projects.

Automation

Towards Test Driven Development for Computational Science with pFUnit

Developers working in Computational Science & Engineering (CSE)/High Performance Computing (HPC) must contend with constant change due to advances in computing technology and science. Test Driven Development (TDD) is a methodology that mitigates software development risks due to change at the cost of adding comprehensive and continuous testing to the development process. Testing frameworks tailored for CSE/HPC, like pFUnit, can lower the barriers to such testing, yet CSE software faces unique constraints foreign to the broader software engineering community. Effective testing of numerical software requires a comprehensive suite of oracles, i.e., use cases with known answers, as well as robust estimates for the unavoidable numerical errors associated with implementation with finite-precision arithmetic. At first glance these concerns often seem exceedingly challenging or even insurmountable for real-world scientific applications. However, we argue that this common perception is incorrect and driven by (1) a conflation between model validation and software verification and (2) the general tendency in the scientific community to develop relatively coarse-grained, large procedures that compound numerous algorithmic steps.We believe TDD can be applied routinely to numerical software if developers pursue fine-grained implementations that permit testing, neatly side-stepping concerns about needing nontrivial oracles as well as the accumulation of errors. We present an example of a successful, complex legacy CSE/HPC code whose development process shares some aspects with TDD, which we contrast with current and potential capabilities. A mix of our proposed methodology and framework support should enable everyday use of TDD by CSE-expert developers.

pFUnit

The K9 On-Board Rover Architecture

This paper describes the software architecture of NASA Ames Research Center s K9 rover. The goal of the onboard software architecture team was to develop a modular, flexible framework that would allow both high- and low-level control of the K9 hardware. Examples of low-level control are the simple drive or pan/tilt commands which are handled by the resource managers, and examples of high-level control are the command sequences which are handled by the conditional executive. In between these two control levels are complex behavioral commands which are handled by the pilot, such as drive to goal with obstacle avoidance or visually servo to a target. This paper presents the design of the architecture as of Fall 2000. We describe the state of the architecture implementation as well as its current evolution. An early version of the architecture was used for K9 operations during a dual-rover field experiment conducted by NASA Ames Research Center (ARC) and the Jet Propulsion Laboratory (JPL) from May 14 to May 16, 2000.

Bresina, John L.

Computation of Effective Mechanical Properties and Mechanical Erosion Modeling of TPS Materials

The goal of this presentation is to provide a general overview of the multi-scale modeling formulation to determine if there is additional surface recession in Thermal Protection Systems (TPS) materials as a result of mechanical erosion due to high shear conditions during atmospheric entry. This modeling process is performed at different scales by leveraging two computational frameworks developed at NASA: the Porous Microstructure Analysis (PuMA) software, and the Porous material Analysis Toolbox based on OpenFOAM (PATO). PuMA specializes in computing effective macro-scale material properties by performing material response simulations on 3D digital micro-scale representations of porous micro-structures. The modeling of TPS materials at the micro-scale is essential to understand how they behave as part of a heat shield assembly. The first part of the presentation will detail the implementation of PuMA’s cell-centered finite volume elasticity solver, which allows the computation of macro-scale effective mechanical properties of heterogeneous and anisotropic materials such as fibrous and woven TPS composites. These homogenized mechanical properties are used by PATO’s mechanical erosion model to predict the TPS material’s recession at a larger scale. This work will also provide some examples of multi-scale analysis from the fiber level up to the unit cell. The second part of the presentation will focus on the macro-scale approach to determine if erosion at the heat shield’s surface occurs due to mechanical and thermal loads experienced during atmospheric entry. To accomplish this, a solid mechanics module was integrated within PATO enabling it to model the potential mechanical erosion in three steps: first, after obtaining the effective mechanical properties with PuMA, the implemented stress analysis solver computes the stress and the displacement fields for the TPS material using the wall shear stress tensor, computed using a CFD solver, as boundary conditions; then, regions on the surface where the stress meets the failure criteria are identified; finally, the failed material is removed and the mesh is redistributed accordingly. The outcome is a model capable of predicting the total recession in the material due to surface chemistry and mechanical erosion.

Mechanical Properties

An Automated Method for Identifying Inconsistencies within Diagrammatic Software Requirements Specifications

The development of large-scale, composite software in a geographically distributed environment is an evolutionary process. Often, in such evolving systems, striving for consistency is complicated by many factors, because development participants have various locations, skills, responsibilities, roles, opinions, languages, terminology and different degrees of abstraction they employ. This naturally leads to many partial specifications or viewpoints. These multiple views on the system being developed usually overlap. From another aspect, these multiple views give rise to the potential for inconsistency. Existing CASE tools do not efficiently manage inconsistencies in distributed development environment for a large-scale project. Based on the ViewPoints framework the WHERE (Web-Based Hypertext Environment for requirements Evolution) toolkit aims to tackle inconsistency management issues within geographically distributed software development projects. Consequently, WHERE project helps make more robust software and support software assurance process. The long term goal of WHERE tools aims to the inconsistency analysis and management in requirements specifications. A framework based on Graph Grammar theory and TCMJAVA toolkit is proposed to detect inconsistencies among viewpoints. This systematic approach uses three basic operations (UNION, DIFFERENCE, INTERSECTION) to study the static behaviors of graphic and tabular notations. From these operations, subgraphs Query, Selection, Merge, Replacement operations can be derived. This approach uses graph PRODUCTIONS (rewriting rules) to study the dynamic transformations of graphs. We discuss the feasibility of implementation these operations. Also, We present the process of porting original TCM (Toolkit for Conceptual Modeling) project from C++ to Java programming language in this thesis. A scenario based on NASA International Space Station Specification is discussed to show the applicability of our approach. Finally, conclusion and future work about inconsistency management issues in WHERE project will be summarized.

Zhang, Zhong

A new simulation model building process for use in dynamic systems integration research

A framework to build simulation models for aircraft dynamic systems integration is described. The objective of the framework is increased simulation model fidelity and reduced time required to develop and modify these models. The equations of motion for an elastic aircraft and their impact on the framework are discussed in broad terms. A software tool which automatically generates FORTRAN routines for tabular data lookups, the language used to develop a simulation model, and the structures for passing information into a simulation are discussed. A simulation variable nomenclature is presented. The framework has been applied to build an open-loop F/A-18 simulation model. This example model is used to illustrate model reduction issues. Current deficiencies in the framework are identified as areas for future research.

Arbuckle, P. Douglas

Rapid Spacecraft Payload Development: In-Orbit Demonstration of Flight Software Reuse, Scalability, and Dependability

As space mission design trends towards shared, multi-mission platforms and high-performance onboard computing architectures, the number of spacecraft launched into operation is also steadily rising. Through ridesharing, spacecraft miniaturization, and other cost-reduction measures, the barriers to space are lowering, resulting in compounded growth in the amount of flight software being deployed. To meet the needs of both the growing quantity and evolving nature of spacecraft, flight software design must accordingly adapt to support more efficient development, solutions to computational resource-sharing, and software reusability. This paper focuses on a software payload demonstrating several core technologies that improve the state-of-the-art in these identified areas. Launched into low-earth orbit in January 2022, our software payload was conceived, designed, and delivered in a span of merely two months. It was developed on top of the NASA core Flight System (cFS) framework and the Distributed Spacecraft Autonomy (DSA) Comm cFS application, which translates cFS software bus messages across a Data Distribution Service (DDS) network. The flight software, packaged in Linux container images, was deployed as one of 18 flight applications managed through the Unibap SpaceCloud Framework. The applications were run on a Unibap iX5-102 radiation-tolerant payload computer, hosted on the D-Orbit SCV-004 spacecraft as part of an ESA-sponsored in-orbit technology test. Our payload, referred to as the DSA D-Orbit software, demonstrates the reusability of the DSA Comm app in a substantially different context and purpose as its original mission. Comm’s original design goal was to reliably distribute messages between spacecraft swarms of arbitrary size and dynamic network topology. However, we leverage this same functionality to introduce redundancy and opportunistic parallel data processing in the context of a representative onboard image processing workload. This adaptive mission architecture was enabled in part by the SpaceCloud Framework’s use of container virtualization as the payload integration interface. By using a base container image with common high-level language runtimes and libraries, we were able to rapidly design, develop, and validate our image processing application without many of the technological barriers common to flight software development. We present details the goals, approach, results, and lessons learned through this technology demonstration experiment and contextualize those observations against present and future challenges in spacecraft software development.

computer programming