Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “code verification”

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 289 records · Page 16

Evidence Arguments for Using Formal Methods in Software Certification

We describe a generic approach for automatically integrating the output generated from a formal method/tool into a software safety assurance case, as an evidence argument, by (a) encoding the underlying reasoning as a safety case pattern, and (b) instantiating it using the data produced from the method/tool. We believe this approach not only improves the trustworthiness of the evidence generated from a formal method/tool, by explicitly presenting the reasoning and mechanisms underlying its genesis, but also provides a way to gauge the suitability of the evidence in the context of the wider assurance case. We illustrate our work by application to a real example-an unmanned aircraft system- where we invoke a formal code analysis tool from its autopilot software safety case, automatically transform the verification output into an evidence argument, and then integrate it into the former.

Argumentation↗

Regression Verification Using Impact Summaries

Regression verification techniques are used to prove equivalence of syntactically similar programs. Checking equivalence of large programs, however, can be computationally expensive. Existing regression verification techniques rely on abstraction and decomposition techniques to reduce the computational effort of checking equivalence of the entire program. These techniques are sound but not complete. In this work, we propose a novel approach to improve scalability of regression verification by classifying the program behaviors generated during symbolic execution as either impacted or unimpacted. Our technique uses a combination of static analysis and symbolic execution to generate summaries of impacted program behaviors. The impact summaries are then checked for equivalence using an o-the-shelf decision procedure. We prove that our approach is both sound and complete for sequential programs, with respect to the depth bound of symbolic execution. Our evaluation on a set of sequential C artifacts shows that reducing the size of the summaries can help reduce the cost of software equivalence checking. Various reduction, abstraction, and compositional techniques have been developed to help scale software verification techniques to industrial-sized systems. Although such techniques have greatly increased the size and complexity of systems that can be checked, analysis of large software systems remains costly. Regression analysis techniques, e.g., regression testing [16], regression model checking [22], and regression verification [19], restrict the scope of the analysis by leveraging the differences between program versions. These techniques are based on the idea that if code is checked early in development, then subsequent versions can be checked against a prior (checked) version, leveraging the results of the previous analysis to reduce analysis cost of the current version. Regression verification addresses the problem of proving equivalence of closely related program versions [19]. These techniques compare two programs with a large degree of syntactic similarity to prove that portions of one program version are equivalent to the other. Regression verification can be used for guaranteeing backward compatibility, and for showing behavioral equivalence in programs with syntactic differences, e.g., when a program is refactored to improve its performance, maintainability, or readability. Existing regression verification techniques leverage similarities between program versions by using abstraction and decomposition techniques to improve scalability of the analysis [10, 12, 19]. The abstractions and decomposition in the these techniques, e.g., summaries of unchanged code [12] or semantically equivalent methods [19], compute an over-approximation of the program behaviors. The equivalence checking results of these techniques are sound but not complete-they may characterize programs as not functionally equivalent when, in fact, they are equivalent. In this work we describe a novel approach that leverages the impact of the differences between two programs for scaling regression verification. We partition program behaviors of each version into (a) behaviors impacted by the changes and (b) behaviors not impacted (unimpacted) by the changes. Only the impacted program behaviors are used during equivalence checking. We then prove that checking equivalence of the impacted program behaviors is equivalent to checking equivalence of all program behaviors for a given depth bound. In this work we use symbolic execution to generate the program behaviors and leverage control- and data-dependence information to facilitate the partitioning of program behaviors. The impacted program behaviors are termed as impact summaries. The dependence analyses that facilitate the generation of the impact summaries, we believe, could be used in conjunction with other abstraction and decomposition based approaches, [10, 12], as a complementary reduction technique. An evaluation of our regression verification technique shows that our approach is capable of leveraging similarities between program versions to reduce the size of the queries and the time required to check for logical equivalence. The main contributions of this work are: - A regression verification technique to generate impact summaries that can be checked for functional equivalence using an off-the-shelf decision procedure. - A proof that our approach is sound and complete with respect to the depth bound of symbolic execution. - An implementation of our technique using the LLVMcompiler infrastructure, the klee Symbolic Virtual Machine [4], and a variety of Satisfiability Modulo Theory (SMT) solvers, e.g., STP [7] and Z3 [6]. - An empirical evaluation on a set of C artifacts which shows that the use of impact summaries can reduce the cost of regression verification.

Backes, John↗

Proceedings of the First NASA Formal Methods Symposium

Topics covered include: Model Checking - My 27-Year Quest to Overcome the State Explosion Problem; Applying Formal Methods to NASA Projects: Transition from Research to Practice; TLA+: Whence, Wherefore, and Whither; Formal Methods Applications in Air Transportation; Theorem Proving in Intel Hardware Design; Building a Formal Model of a Human-Interactive System: Insights into the Integration of Formal Methods and Human Factors Engineering; Model Checking for Autonomic Systems Specified with ASSL; A Game-Theoretic Approach to Branching Time Abstract-Check-Refine Process; Software Model Checking Without Source Code; Generalized Abstract Symbolic Summaries; A Comparative Study of Randomized Constraint Solvers for Random-Symbolic Testing; Component-Oriented Behavior Extraction for Autonomic System Design; Automated Verification of Design Patterns with LePUS3; A Module Language for Typing by Contracts; From Goal-Oriented Requirements to Event-B Specifications; Introduction of Virtualization Technology to Multi-Process Model Checking; Comparing Techniques for Certified Static Analysis; Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder; jFuzz: A Concolic Whitebox Fuzzer for Java; Machine-Checkable Timed CSP; Stochastic Formal Correctness of Numerical Algorithms; Deductive Verification of Cryptographic Software; Coloured Petri Net Refinement Specification and Correctness Proof with Coq; Modeling Guidelines for Code Generation in the Railway Signaling Context; Tactical Synthesis Of Efficient Global Search Algorithms; Towards Co-Engineering Communicating Autonomous Cyber-Physical Systems; and Formal Methods for Automated Diagnosis of Autosub 6000.

Denney, Ewen↗

Space Station module Power Management And Distribution (PMAD) system

This project consists of several tasks which are unified toward experimentally demonstrating the operation of a highly autonomous, user-supportive power management and distribution system for Space Station Freedom (SSF) habitation/laboratory modules. This goal will be extended to a demonstration of autonomous, cooperative power system operation for the whole SSF power system through a joint effort with NASA's Lewis Research Center, using their Autonomous Power System. Short term goals for the space station module power management and distribution include having an operational breadboard reflecting current plans for SSF, improving performance of the system communications, and improving the organization and mutability of the artificial intelligence (AI) systems. In the middle term, intermediate levels of autonomy will be added, user interfaces will be modified, and enhanced modeling capabilities will be integrated in the system. Long term goals involve conversion of all software into Ada, vigorous verification and validation efforts and, finally, seeing an impact of this research on the operation of SSF. Conversion of the system to a DC Star configuration is now in progress, and should be completed by the end of October, 1989. This configuration reflects the latest SSF module architecture. Hardware is now being procured which will improve system communications significantly. The Knowledge-Based Management System (KBMS) is initially developed and the rules from FRAMES have been implemented in the KBMS. Rules in the other two AI systems are also being grouped modularly, making them more tractable, and easier to eventually move into the KBMS. Adding an intermediate level of autonomy will require development of a planning utility, which will also be built using the KBMS. These changes will require having the user interface for the whole system available from one interface. An Enhanced Model will be developed, which will allow exercise of the system through the interface without requiring all of the power hardware to be operational. The functionality of the AI systems will continue to be advanced, including incipient failure detection. Ada conversion will begin with the lowest level processor (LLP) code. Then selected pieces of the higher level functionality will be recorded in Ada and, where possible, moved to the LLP level. Validation and verification will be done on the Ada code, and will complete sometimes after completion of the Ada conversion.

Walls, Bryan↗

Is Structured Agile an Oxymoron? Tales from Implementing and Executing Agile in a US Government Environment

To paraphrase a famous quote, "No plan survives contact with the reality." Software (SW) development is often a classic example of this: whatever the plan was for a particular development, it often does not survive contact with technical realities, budget realities, program realities and schedule realities. Traditionally, SW development has followed a waterfall methodology with requirements being rigorously specified before the design, which was completed before the coding and unit testing started, which were in turn finished before validation and verification started. This model of SW engineering derives much from the HW engineering of large systems, and has been the standard methodology used in US government software acquisitions and systems for decades, with highly variable results. US Government SW requirements are built around Waterfall concepts, which assume that the plan will survive contact with reality, or at least that modifications to the plan are relatively small, and relatively few.Because of the inefficiencies and difficulties inherent in Waterfall, the commercial SW world started using a different SW development methodology called Agile more than 20 years ago. Agile believes that a plan should evolve and learn rapidly in response to the realities encountered. At its core, there are a few key elements of Agile:- A small team of people which is highly flexible and adaptive. The team collaborates and interoperates through sophisticated development architectures and release environments- An iterative, incremental development and release approach which is based upon the concept that knowledge comes from experience within the team, and that the team makes decisions based upon what it knows- A team culture which prizes transparency, inspection and adaptation. These values are necessary so that the team experience and decision making is transparent and responsive to the realities encountered during development and testingSo, how to use Agile in a US Government environment? GMSEC (Goddard Mission Services Evolution Center) develops satellite ground system software for NASA and other US Government agencies. The SW developed by the team contains a large code base of many applications used within satellite mission operations centers. It spans the full gamut of SW development types: from SW which is in a classic maintenance and sustainment mode, to new developments with a fairly well understood scope and approach, to new developments whose scope and approach are quite unclear and which require significant research and prototyping. Team members move between all of these different types of SW development. Waterfall was inadequate to the programmatic and technical needs of the team, as well as the various types of SW development being done. The software plan was not surviving contact with the technical and programmatic realities experienced by the team. To address this, the team started a small pilot project in 2016 to test the use of Agile within a small subset of the team for a new web services application. In early 2018, the use of Agile was expanded to the whole team and all the software, but we had to fulfill the NASA SW development requirements. And we needed to do this while still remaining true to the key Agile elements of transparency, inspection and adaption. In order to do this, the team worked very closely with the Software Process Improvement (SPI) team at NASA Goddard, as well as NASA engineering manageme

Beech, Theresa W.↗

Experimental Results from the Thermal Energy Storage-2 (TES-2) Flight Experiment

Thermal Energy Storage-2 (TES-2) is a flight experiment that flew on the Space Shuttle Endeavour (STS-72), in January 1996. TES-2 originally flew with TES-1 as part of the OAST-2 Hitchhiker payload on the Space Shuttle Columbia (STS-62) in early 1994. The two experiments, TES-1 and TES-2 were identical except for the fluoride salts to be characterized. TES-1 provided data on lithium fluoride (LiF), TES-2 provided data on a fluoride eutectic (LiF/CaF2). Each experiment was a complex autonomous payload in a Get-Away-Special payload canister. TES-1 operated flawlessly for 22 hr. Results were reported in a paper entitled, Effect of Microgravity on Materials Undergoing Melting and Freezing-The TES Experiment, by David Namkoong et al. A software failure in TES-2 caused its shutdown after 4 sec of operation. TES-1 and 2 were the first experiments in a four experiment suite designed to provide data for understanding the long duration microgravity behavior of thermal energy storage salts that undergo repeated melting and freezing. Such data have never been obtained before and have direct application for the development of space-based solar dynamic (SD) power systems. These power systems will store energy in a thermal energy salt such as lithium fluoride or a eutectic of lithium fluoride/calcium difluoride. The stored energy is extracted during the shade portion of the orbit. This enables the solar dynamic power system to provide constant electrical power over the entire orbit. Analytical computer codes were developed for predicting performance of a space-based solar dynamic power system. Experimental verification of the analytical predictions were needed prior to using the analytical results for future space power design applications. The four TES flight experiments were to be used to obtain the needed experimental data. This paper will address the flight results from the first and second experiments, TES-1 and 2, in comparison to the predicted results from the Thermal Energy Storage Simulation (TESSIM) analytical computer code. An analysis of the TES-2 data was conducted by Cleveland State University Professor, Mounir Ibrahim. TESSIM validation was based on two types of results; temperature history of various points on the containment vessel and TES material distribution within the vessel upon return from flight. The TESSIM prediction showed close comparison with the flight data. Distribution of the TES material within the vessel was obtained by a tomography imaging process. The frozen TES material was concentrated toward the colder end of the canister. The TESSIM prediction indicated a similar pattern. With agreement between TESSIM and the flight data, a computerized representation was produced to show the movement and behavior of the void during the entire melting and freezing cycles.

Tolbert, Carol↗

Computational aerodynamics and design

The role of computational aerodynamics in design is reviewed with attention given to the design process; the proper role of computations; the importance of calibration, interpretation, and verification; the usefulness of a given computational capability; and the marketing of new codes. Examples of computational aerodynamics in design are given with particular emphasis on the Highly Maneuverable Aircraft Technology. Finally, future prospects are noted, with consideration given to the role of advanced computers, advances in numerical solution techniques, turbulence models, complex geometries, and computational design procedures. Previously announced in STAR as N82-33348

Ballhaus, W. F., Jr.↗

Deductive Evaluation: Formal Code Analysis With Low User Burden

We describe a framework for symbolically evaluating iterative C code using a deductive approach that automatically discovers and proves program properties. Although verification is not performed, the method can infer detailed program behavior. Software engineering work flows could be enhanced by this type of analysis. Floyd-Hoare verification principles are applied to synthesize loop invariants, using a library of iteration-specific deductive knowledge. When needed, theorem proving is interleaved with evaluation and performed on the fly. Evaluation results take the form of inferred expressions and type constraints for values of program variables. An implementation using PVS (Prototype Verification System) is presented along with results for sample C functions.

Di Vito, Ben. L↗

Modeling Radiation Sources for Experimental Validation

To build on previously completed experimental work, I have been working to implement a model of our lab’s Americium-Beryllium neutron source and Ludlum detection instruments computationally to provide secondary verification of our experimental results. This has been done using the radiation transport code MCNP6 (Monte Carlo N-Particle). I have developed files to calculate the mass ratio of various composite materials that we have exposed to the radiation source, as well as the components of the detection instruments and converted all of these into geometric coordinates that define the experimental setup. Identifying the proper energy distribution and detector efficiencies as well as the correct interpretation of the detector physics have proven to be the most difficult and time-consuming challenges of the work. It is currently too early for results based on the most updated and accurate models. With this experience, the next step is to develop another source model of a proton beam to simulate exposures on other composite targets. This will be developed based on existing experimental datasets, but not used to validate them. Each of these projects will further define the radiation shielding needs for humans in space radiation environments that astronauts will someday be exposed to beyond Low Earth Orbit.

Juliana Simon↗

Proof Mate: An Interactive Proof Helper for PVS (Tool Paper)

This paper presents Proof Mate, an interactive proof helper for the PVS verification system. The helper is integrated in VSCode-PVS, the Visual Studio Code extension for PVS. It extends the capabilities of VSCode-PVS by introducing new functionalities for suggesting proof commands, sketching proof attempts, and repairing broken proofs during interactive proof sessions. This work further aligns VSCode-PVS to the functionalities provided by modern development tools, with the ultimate aim to facilitate the adoption of formal methods in engineering practices and education.

Interactive Theorem Proving↗

Proof Mate: An Interactive Proof Helper for PVS

This paper presents Proof Mate, an interactive proof helper for the PVS verification system. The helper is integrated in VSCode-PVS, the Visual Studio Code extension for PVS. It extends the capabilities of VSCode-PVS by introducing new functionalities for suggesting proof commands, sketching proof attempts, and repairing broken proofs during interactive proof sessions. This work further aligns VSCode-PVS to the functionalities provided by modern development tools, with the ultimate aim to facilitate the adoption of formal methods in engineering practices and education.

Formal Methods↗

Magnetic Suspension Wind Tunnel Reconstruction Using an Extended Kalman Filter Framework

A Kalman filter tool has been created for processing data from NASA Langley’s Magnetic Suspension and Balance System. The filter is formulated to estimate aerodynamic parameters of a model that is levitated magnetically in the test section of the wind tunnel. The Kalman filter tool is a modification of an existing code that has been in use for solving trajectory reconstruction problems and has been validated through previous use supporting many flight projects. Modifications to the code were implemented to add the capability to process data from the magnetic suspension wind tunnel. In particular, the main modifications were to the equations of motion to add models for magnetic and aerodynamic forces and moments. The code has been tested using simulation data to provide a known truth for verification.

Christopher D. Karlgaard↗

Structural Verification and Modeling of a Tension Cone Inflatable Aerodynamic Decelerator

Verification analyses were conducted on membrane structures pertaining to a tension cone inflatable aerodynamic decelerator using the analysis code LS-DYNA. The responses of three structures - a cylinder, torus, and tension shell - were compared against linear theory for various loading cases. Stress distribution, buckling behavior, and wrinkling behavior were investigated. In general, agreement between theory and LS-DYNA was very good for all cases investigated. These verification cases exposed the important effects of using a linear elastic liner in membrane structures under compression. Finally, a tension cone wind tunnel test article is modeled in LS-DYNA for which preliminary results are presented. Unlike data from supersonic wind tunnel testing, the segmented tension shell and torus experienced oscillatory behavior when subjected to a steady aerodynamic pressure distribution. This work is presented as a work in progress towards development of a fluid-structures interaction mechanism to investigate aeroelastic behavior of inflatable aerodynamic decelerators.

Tanner, Christopher L.↗

The effect of incidence angle on the overall three-dimensional aerodynamic performance of a classical annular airfoil cascade

To be of quantitative value to the designer and analyst, it is necessary to experimentally verify the flow modeling and the numerics inherent in calculation codes being developed to predict the three dimensional flow through turbomachine blade rows. This experimental verification requires that predicted flow fields be correlated with three dimensional data obtained in experiments which model the fundamental phenomena existing in the flow passages of modern turbomachines. The Purdue Annular Cascade Facility was designed specifically to provide these required three dimensional data. The overall three dimensional aerodynamic performance of an instrumented classical airfoil cascade was determined over a range of incidence angle values. This was accomplished utilizing a fully automated exit flow data acquisition and analysis system. The mean wake data, acquired at two downstream axial locations, were analyzed to determine the effect of incidence angle, the three dimensionality of the cascade exit flow field, and the similarity of the wake profiles. The hub, mean, and tip chordwise airfoil surface static pressure distributions determined at each incidence angle are correlated with predictions from the MERIDL and TSONIC computer codes.

Bergsten, D. E.↗

Computer codes for thermal analysis of a solid rocket motor nozzle

A number of computer codes are available for performing thermal analysis of solid rocket motor nozzles. Aerotherm Chemical Equilibrium (ACE) computer program can be used to perform one-dimensional gas expansion to determine the state of the gas at each location of a nozzle. The ACE outputs can be used as input to a computer program called Momentum/Energy Integral Technique (MEIT) for predicting boundary layer development development, shear, and heating on the surface of the nozzle. The output from MEIT can be used as input to another computer program called Aerotherm Charring Material Thermal Response and Ablation Program (CMA). This program is used to calculate oblation or decomposition response of the nozzle material. A code called Failure Analysis Nonlinear Thermal and Structural Integrated Code (FANTASTIC) is also likely to be used for performing thermal analysis of solid rocket motor nozzles after the program is duly verified. A part of the verification work on FANTASTIC was done by using one and two dimension heat transfer examples with known answers. An attempt was made to prepare input for performing thermal analysis of the CCT nozzle using the FANTASTIC computer code. The CCT nozzle problem will first be solved by using ACE, MEIT, and CMA. The same problem will then be solved using FANTASTIC. These results will then be compared for verification of FANTASTIC.

Chauhan, Rajinder Singh↗

Design and flight experience with a digital fly-by-wire control system using Apollo guidance system hardware on an F-8 aircraft.

This paper discusses the design and initial flight tests of the first digital fly-by-wire system to be flown in an aircraft. The system, which used components from the Apollo guidance system, was installed in an F-8 aircraft. A lunar module guidance computer is the central element in the three-axis, single-channel, multimode, digital, primary control system. An electrohydraulic triplex system providing unaugmented control of the F-8 aircraft is the only backup to the digital system. Emphasis is placed on the digital system in its role as a control augmentor, a logic processor, and a failure detector. A sampled-data design synthesis example is included to demonstrate the role of various analytical and simulation methods. The use of a digital system to implement conventional control laws was shown to be practical for flight. Logic functions coded as an integral part of the control laws were found to be advantageous. Verification of software required an extensive effort, but confidence in the software was achieved. Initial flight results showed highly successful system operation, although quantization of pilot's stick and trim were areas of minor concern from the piloting standpoint.

Deets, D. A.↗

Computation of the viscous supersonic flow over symmetrical and asymmetrical external axial corners

The primary objective of the reported investigation is the computational verification of the experimental results obtained by Salas and Daywitt (1978). Two existing computer codes were used to compute the supersonic flow field surrounding the external axial corner. For the inviscid and turbulent flow results, the unsteady, three-dimensional implicit code of Pulliam and Steger (1978) was used. For the laminar flow results, the unsteady two-dimensional explicit procedure of Vigneron et al. (1977) was employed. Inviscid solutions for a symmetric configuration with a rounded corner resulted in either single or triple surface crossflow stagnation point flows, depending on the corner radius. Numerical results obtained for the same symmetric configuration tested experimentally show the crossflow in the vicinity of the corner to be away from the corner and thus in agreement with the experimental oil flow results.

Kutler, P.↗

Integrity and security in an Ada runtime environment

A review is provided of the Formal Methods group discussions. It was stated that integrity is not a pure mathematical dual of security. The input data is part of the integrity domain. The group provided a roadmap for research. One item of the roadmap and the final position statement are closely related to the space shuttle and space station. The group's position is to use a safe subset of Ada. Examples of safe sets include the Army Secure Operating System and the Penelope Ada verification tool. It is recommended that a conservative attitude is required when writing Ada code for life and property critical systems.

Bown, Rodney L.↗