Search NASA⌕ Search

SEARCH · Search NASA

Results for “Coding Guidelines”

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 19 records

Modeling Guidelines for Code Generation in the Railway Signaling Context

Modeling guidelines constitute one of the fundamental cornerstones for Model Based Development. Their relevance is essential when dealing with code generation in the safety-critical domain. This article presents the experience of a railway signaling systems manufacturer on this issue. Introduction of Model-Based Development (MBD) and code generation in the industrial safety-critical sector created a crucial paradigm shift in the development process of dependable systems. While traditional software development focuses on the code, with MBD practices the focus shifts to model abstractions. The change has fundamental implications for safety-critical systems, which still need to guarantee a high degree of confidence also at code level. Usage of the Simulink/Stateflow platform for modeling, which is a de facto standard in control software development, does not ensure by itself production of high-quality dependable code. This issue has been addressed by companies through the definition of modeling rules imposing restrictions on the usage of design tools components, in order to enable production of qualified code. The MAAB Control Algorithm Modeling Guidelines (MathWorks Automotive Advisory Board)[3] is a well established set of publicly available rules for modeling with Simulink/Stateflow. This set of recommendations has been developed by a group of OEMs and suppliers of the automotive sector with the objective of enforcing and easing the usage of the MathWorks tools within the automotive industry. The guidelines have been published in 2001 and afterwords revisited in 2007 in order to integrate some additional rules developed by the Japanese division of MAAB [5]. The scope of the current edition of the guidelines ranges from model maintainability and readability to code generation issues. The rules are conceived as a reference baseline and therefore they need to be tailored to comply with the characteristics of each industrial context. Customization of these recommendations has been performed for the automotive control systems domain in order to enforce code generation [7]. The MAAB guidelines have been found profitable also in the aerospace/avionics sector [1] and they have been adopted by the MathWorks Aerospace Leadership Council (MALC). General Electric Transportation Systems (GETS) is a well known railway signaling systems manufacturer leading in Automatic Train Protection (ATP) systems technology. Inside an effort of adopting formal methods within its own development process, GETS decided to introduce system modeling by means of the MathWorks tools [2], and in 2008 chose to move to code generation. This article reports the experience performed by GETS in developing its own modeling standard through customizing the MAAB rules for the railway signaling domain and shows the result of this experience with a successful product development story.

Ferrari, Alessio↗

Ground Operations Aerospace Language (GOAL). Volume 4: Interpretive code translator

This specification identifies and describes the principal functions and elements of the Interpretive Code Translator which has been developed for use with the GOAL Compiler. This translator enables the user to convert a compliled GOAL program to a highly general binary format which is designed to enable interpretive execution. The translator program provides user controls which are designed to enable the selection of various output types and formats. These controls provide a means for accommodating many of the implementation options which are discussed in the Interpretive Code Guideline document. The technical design approach is given. The relationship between the translator and the GOAL compiler is explained and the principal functions performed by the Translator are described. Specific constraints regarding the use of the Translator are discussed. The control options are described. These options enable the user to select outputs to be generated by the translator and to control vrious aspects of the translation processing.

Source record↗

A procedure for verifying the structural integrity of an existing pressurized wind tunnel

The present work describes the approach employed in verifying the structural integrity at maximum operating pressure of a low turbulence pressurized wind tunnel built in 1939-1940. The approach utilized existing ASME Code guidelines and fracture mechanics techniques in combination with the latest nondestructive examination methods to validate the desired life of the facility while minimizing reconstruction or major modifications. Detailed stress analyses using a finite element computer program and a numerical integration program were performed on critical areas of the tunnel. Critical vessel areas were evaluated for remaining fatigue life. Fracture mechanics analyses of the shell were performed at various regions, and critical flaw sizes at each location were determined. Analysis of the test data permitted the remaining useful life of the tunnel to be estimated at 8 to 10 years.

Taylor, J. T.↗

Characterizing and Modeling the Cost of Rework in a Library of Reusable Software Components

In this paper we characterize and model the cost of rework in a Component Factory (CF) organization. A CF is responsible for developing and packaging reusable software components. Data was collected on corrective maintenance activities for the Generalized Support Software reuse asset library located at the Flight Dynamics Division of NASA's GSFC. We then constructed a predictive model of the cost of rework using the C4.5 system for generating a logical classification model. The predictor variables for the model are measures of internal software product attributes. The model demonstrates good prediction accuracy, and can be used by managers to allocate resources for corrective maintenance activities. Furthermore, we used the model to generate proscriptive coding guidelines to improve programming, practices so that the cost of rework can be reduced in the future. The general approach we have used is applicable to other environments.

Basili, Victor R.↗

The Fast Scattering Code (FSC): Validation Studies and Program Guidelines

The Fast Scattering Code (FSC) is a frequency domain noise prediction program developed at the NASA Langley Research Center (LaRC) to simulate the acoustic field produced by the interaction of known, time harmonic incident sound with bodies of arbitrary shape and surface impedance immersed in a potential flow. The code uses the equivalent source method (ESM) to solve an exterior 3-D Helmholtz boundary value problem (BVP) by expanding the scattered acoustic pressure field into a series of point sources distributed on a fictitious surface placed inside the actual scatterer. This work provides additional code validation studies and illustrates the range of code parameters that produce accurate results with minimal computational costs. Systematic noise prediction studies are presented in which monopole generated incident sound is scattered by simple geometric shapes - spheres (acoustically hard and soft surfaces), oblate spheroids, flat disk, and flat plates with various edge topologies. Comparisons between FSC simulations and analytical results and experimental data are presented.

Tinetti, Ana F.↗

Knowledge base methodology: Methodology for first Engineering Script Language (ESL) knowledge base

The primary goal of reusing software components is that software can be developed faster, cheaper and with higher quality. Though, reuse is not automatic and can not just happen. It has to be carefully engineered. For example a component needs to be easily understandable in order to be reused, and it has also to be malleable enough to fit into different applications. In fact the software development process is deeply affected when reuse is being applied. During component development, a serious effort has to be directed toward making these components as reusable. This implies defining reuse coding style guidelines and applying then to any new component to create as well as to any old component to modify. These guidelines should point out the favorable reuse features and may apply to naming conventions, module size and cohesion, internal documentation, etc. During application development, effort is shifted from writing new code toward finding and eventually modifying existing pieces of code, then assembling them together. We see here that reuse is not free, and therefore has to be carefully managed.

Peeris, Kumar↗

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↗

Utilization of low-redundancy convolutional codes

This paper suggests guidelines for the utilization of low-redundancy convolutional codes with emphasis on providing a quick look capability (no decoding) and a moderate amount of coding gain. The performance and implementation complexity of threshold, Viterbi, and sequential decoding when used with low-redundancy, systematic, convolutional codes is discussed. An extensive list of optimum, short constraint length codes is found for use with Viterbi decoding, and several good, long constraint length codes are found for use with sequential decoding.

Cain, J. B.↗

JAN transistor and diode characterization test program: JANTX diode 1N759A

The necessary data to create a new class of specifications was the objective of this characterization program. Sample selection was made according to the following criteria: (1) manufacturer or qualified distributor; (2) two vendors; and (3) two date codes. The general guidelines for procurement were two QPL vendors, JAN or JANTX, and two manufacturing lots, 27 from each lot. All data were acquired with three digit accuracy. The data processing and calculation of statistical parameters were performed by the Tektronix computer system using 4 digit display.

Takeda, H.↗

Application of electron paramagnetic resonance imaging to the characterization of the Ultem(R) exposed to 1 MeV electrons. Correlation of radical density data to tiger code calculations

A major long-term goal of the Materials Division at the NASA Langley Research Center is the characterization of new high-performance materials that have potential applications in the aircraft industry, and in space. The materials used for space applications are often subjected to a harsh and potentially damaging radiation environment. The present study constitutes the application of a novel technique to obtain reliable data for ascertaining the molecular basis for the resilience and durability of materials that have been exposed to simulated space radiations. The radiations of greatest concern are energetic electrons and protons, as well as galactic cosmic rays. Presently, the effects of such radiation on matter are not understood in their entirety. It is clear however, that electron radiation causes ionization and homolytic bond rupture, resulting in the formation of paramagnetic spin centers in the polymer matrices of the structural materials. Since the detection and structure elucidation of paramagnetic species are most readily accomplished using Electron Paramagnetic Resonance (EPR) Spectroscopy, the NASA LaRC EPR system was brought back on-line during the 1991 ASEE term. The subsequent 1992 ASEE term was devoted to the adaptation of the EPR core system to meet the requirements for EPR Imaging (EPRI), which provides detailed information on the spatial distribution of paramagnetic species in bulk media. The present (1994) ASEE term was devoted to the calibration of this EPR Imaging system, as well as to the application of this technology to study the effects of electron irradiation on Ultem(exp R), a high performance polymer which is a candidate for applications in aerospace. The Ultem was exposed to a dose of 2.4 x 10(exp 9) Rads (1-MeV energy/electron) at the LaRC electron accelerator facility. Subsequently, the exposed specimens were stored in liquid nitrogen, until immediately prior to analyses by EPRI. The intensity and dimensions of the EPR Images that were generated for the irradiated specimens showed that the electrons penetrated the material to a depth of approximately 0.125 inch. These data show a very high degree of correlation to the energy deposition profile as predicted by the Tiger Code, a Monte Carlo code that provides guidelines for the transport of electrons in matter. Subsequent efforts will focus on delineating the transport properties of energetic protons in Ultem(R).

Suleman, Naushadalli K.↗

Guidelines for development structured FORTRAN programs

Computer programming and coding standards were compiled to serve as guidelines for the uniform writing of FORTRAN 77 programs at NASA Langley. Software development philosophy, documentation, general coding conventions, and specific FORTRAN coding constraints are discussed.

Earnest, B. M.↗

Criteria for evaluation of grid generation systems

Many CFD grid generation systems are in use nationally, but few comparative studies have been performed to quantify their relative merits. A study was undertaken to systematically evaluate and select the best CFD grid generation codes available. Detailed evaluation criteria were established as the basis for the evaluation conducted. Descriptions of thirty-four separate criteria, grouped into eight general categories are provided. Benchmark test cases, developed to test basic features of selected codes, are described in detail. Scoring guidelines were generated to establish standards for measuring code capabilities, ensuring uniformity of ratings, and minimizing personal bias among the three code evaluators. Ten candidate codes were identified from government, industry, universities, and commercial software companies. A three phase evaluation was conducted. In Phase 1, ten codes identified were screened through conversations with code authors and other industry experts. Seven codes were carried forward into a Phase 2 evaluation in which all codes were scored according to the predefined criteria. Two codes emerged as being significantly better than the others: RAGGS and GRIDGEN. Finally, these two codes were carried forward into a Phase 3 evaluation in which complex 3-D multizone grids were generated to verify capability.

Ascoli, Edward P.↗

Validation of a three-dimensional viscous analysis of axisymmetric supersonic inlet flow fields

A three-dimensional viscous marching analysis for supersonic inlets was developed. To verify this analysis several benchmark axisymmetric test configurations were studied and are compared to experimental data. Detailed two-dimensional results for shock-boundary layer interactions are presented for flows with and without boundary layer bleed. Three dimensional calculations of a cone at angle of attack and a full inlet at attack are also discussed and evaluated. Results of the calculations demonstrate the code's ability to predict complex flow fields and establish guidelines for future calculations using similar codes.

Benson, T. J.↗

Investigating the Simulink Auto-Coding Process

Model based program design is the most clear and direct way to develop algorithms and programs for interfacing with hardware. While coding "by hand" results in a more tailored product, the ever-growing size and complexity of modern-day applications can cause the project work load to quickly become unreasonable for one programmer. This has generally been addressed by splitting the product into separate modules to allow multiple developers to work in parallel on the same project, however this introduces new potentials for errors in the process. The fluidity, reliability and robustness of the code relies on the abilities of the programmers to communicate their methods to one another; furthermore, multiple programmers invites multiple potentially differing coding styles into the same product, which can cause a loss of readability or even module incompatibility. Fortunately, Mathworks has implemented an auto-coding feature that allows programmers to design their algorithms through the use of models and diagrams in the graphical programming environment Simulink, allowing the designer to visually determine what the hardware is to do. From here, the auto-coding feature handles converting the project into another programming language. This type of approach allows the designer to clearly see how the software will be directing the hardware without the need to try and interpret large amounts of code. In addition, it speeds up the programming process, minimizing the amount of man-hours spent on a single project, thus reducing the chance of human error as well as project turnover time. One such project that has benefited from the auto-coding procedure is Ramses, a portion of the GNC flight software on-board Orion that has been implemented primarily in Simulink. Currently, however, auto-coding Ramses into C++ requires 5 hours of code generation time. This causes issues if the tool ever needs to be debugged, as this code generation will need to occur with each edit to any part of the program; additionally, this is lost time that could be spent testing and analyzing the code. This is one of the more prominent issues with the auto-coding process, and while much information is available with regard to optimizing Simulink designs to produce efficient and reliable C++ code, not much research has been made public on how to reduce the code generation time. It is of interest to develop some insight as to what causes code generation times to be so significant, and determine if there are architecture guidelines or a desirable auto-coding configuration set to assist in streamlining this step of the design process for particular applications. To address the issue at hand, the Simulink coder was studied at a foundational level. For each different component type made available by the software, the features, auto-code generation time, and the format of the generated code were analyzed and documented. Tools were developed and documented to expedite these studies, particularly in the area of automating sequential builds to ensure accurate data was obtained. Next, the Ramses model was examined in an attempt to determine the composition and the types of technologies used in the model. This enabled the development of a model that uses similar technologies, but takes a fraction of the time to auto-code to reduce the turnaround time for experimentation. Lastly, the model was used to run a wide array of experiments and collect data to obtain knowledge about where to search for bottlenecks in the Ramses model. The resulting contributions of the overall effort consist of an experimental model for further investigation into the subject, as well as several automation tools to assist in analyzing the model, and a reference document offering insight to the auto-coding process, including documentation of the tools used in the model analysis, data illustrating some potential problem areas in the auto-coding process, and recommendations on areas or practices in the current Ramses model that should be further investigated. Several skills were required to be built up over the course of the internship project. First and foremost, my Simulink skills have improved drastically, as much of my experience had been modeling electronic circuits as opposed to software models. Furthermore, I am now comfortable working with the Simulink Auto-coder, a tool I had never used until this summer; this tool also tested my critical thinking and C++ knowledge as I had to interpret the C++ code it was generating and attempt to understand how the Simulink model affected the generated code. I had come into the internship with a solid understanding of Matlab code, but had done very little in using it to automate tasks, particularly Simulink tasks; along the same lines, I had rarely used shell script to automate and interface with programs, which I gained a fair amount of experience with this summer, including how to use regular expression. Lastly, soft-skills are an area everyone can continuously improve on; having never worked with NASA engineers, which to me seem to be a completely different breed than what I am used to (commercial electronic engineers), I learned to utilize the wealth of knowledge present at JSC. I wish I had come into the internship knowing exactly how helpful everyone in my branch would be, as I would have picked up on this sooner. I hope that having gained such a strong foundation in Simulink over this summer will open the opportunity to return to work on this project, or potentially other opportunities within the division. The idea of leaving a project I devoted ten weeks to is a hard one to cope with, so having the chance to pick up where I left off sounds appealing; alternatively, I am interested to see if there are any opening in the future that would allow me to work on a project that is more in-line with my research in estimation algorithms. Regardless, this summer has been a milestone in my professional career, and I hope this has started a long-term relationship between JSC and myself. I really enjoy the thought of building on my experience here over future summers while I work to complete my PhD at Missouri University of Science and Technology.

Gualdoni, Matthew J.↗

The computer for design and optimization

Computerized design using numerical optimization techniques is discussed and guidelines for writing analysis computer codes that can be readily coupled to optimization codes are presented. The following numerical optimization techniques are examined: random search, sequential unconstrained minimization, direct constrained optimization, and one-dimensional search. A number of design applications are considered including high speed airfoil lift maximization, the preliminary design of a wing, design of a planar tower for optimal geometry, and the conceptual design of a tactical fighter aircraft.

Vanderplaats, G. N.↗

Standards for space data systems

NASA has chaired the Consultative Committee for Space Data Systems (CCSDS) for the past four years. During that time, a top-level, end-to-end reference model for space data sytems has been developed that identifies the functions anad services which must be provided by space data systems, and defines the interfaces between major functional elements. A group of definitions for standard protocols has been derived by analyzing these interfaces, and a set of detailed guidelines for space data system standards is in the final stages of negotiation among member CCSDS agencies. Two guidelines that address packet telemetry and channel coding have been approved and are being incorporated into the internal standards of member agencies. Others (packet telecommand, time code, standards data format unit) are in review within CCSDS technical panels and will soon be submitted for approval. These guidelines provide a mechanism for significant cost savings in the implementation of space data systems by allowing reuse of hardware and software for different payloads and for missions, and by enabling the substitution of new technology/higher performance elements at key points in the data system without causing major perturbations in the remainder of the system.

Connell, E. B.↗