Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Software engineering”

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 703 records · Page 39

Test Driven Development of Scientific Models

Test-Driven Development (TDD) is a software development process that promises many advantages for developer productivity and has become widely accepted among professional software engineers. As the name suggests, TDD practitioners alternate between writing short automated tests and producing code that passes those tests. Although this overly simplified description will undoubtedly sound prohibitively burdensome to many uninitiated developers, the advent of powerful unit-testing frameworks greatly reduces the effort required to produce and routinely execute suites of tests. By testimony, many developers find TDD to be addicting after only a few days of exposure, and find it unthinkable to return to previous practices. Of course, scientific/technical software differs from other software categories in a number of important respects, but I nonetheless believe that TDD is quite applicable to the development of such software and has the potential to significantly improve programmer productivity and code quality within the scientific community. After a detailed introduction to TDD, I will present the experience within the Software Systems Support Office (SSSO) in applying the technique to various scientific applications. This discussion will emphasize the various direct and indirect benefits as well as some of the difficulties and limitations of the methodology. I will conclude with a brief description of pFUnit, a unit testing framework I co-developed to support test-driven development of parallel Fortran applications.

Clune, Thomas L.↗

Quality Attributes for Mission Flight Software: A Reference for Architects

In the international standards for architecture descriptions in systems and software engineering (ISO/IEC/IEEE 42010), "concern" is a primary concept that often manifests itself in relation to the quality attributes or "ilities" that a system is expected to exhibit - qualities such as reliability, security and modifiability. One of the main uses of an architecture description is to serve as a basis for analyzing how well the architecture achieves its quality attributes, and that requires architects to be as precise as possible about what they mean in claiming, for example, that an architecture supports "modifiability." This paper describes a table, generated by NASA's Software Architecture Review Board, which lists fourteen key quality attributes, identifies different important aspects of each quality attribute and considers each aspect in terms of requirements, rationale, evidence, and tactics to achieve the aspect. This quality attribute table is intended to serve as a guide to software architects, software developers, and software architecture reviewers in the domain of mission-critical real-time embedded systems, such as space mission flight software.

Software architecture↗

Open Reproducible Electron Microscopy Data Analysis

Electron microscopy (EM) is a cornerstone technique in the materials and biological sciences capable of imaging structures at nano- to atomic-scale resolution. Advances in technologies mean that one acquires datasets at increasing data rates and sizes. These advancements present enormous opportunities for researchers to understand complex systems. However, processing the resulting large-scale, complex data in a reproducible and shareable way is a real challenge for researchers. The building, managing, and maintaining complex workflows in a reproducible manner requires extensive knowledge in several areas outside the researchers’ core skill sets, such as software engineering, data science, and high-performance computing (HPC). Our work demonstrates an innovative approach to solving these problems, enabling reproducible EM data analysis through container encapsulated pipelines. Using modern container technologies, we encapsulate processing elements and connect them using shared memory. We expose user-friendly, advanced algorithms and tools to allow end users to utilize without expert programming skills. The platform enables reproducible, scalable, shareable pipelines for the analysis and visualization of EM data. Focusing on interoperability, we leverage the DOE and other agencies’ existing investments to provide a powerful software platform for EM data analysis.

Harris, Christopher↗

Strategy for Multi-Scale Single-Phase Flow Coupling

For practical nuclear engineering applications, multi-scale analysis by adopting the combined use of different scale computational tools, such as system thermal-hydraulics and CFD codes is vital when three-dimensional effects play an important role in the evolution of a given transient or accident scenario. The feasibility of coupling low-fidelity systems codes with higher fidelity CFD tools was demonstrated previously under NEAMS by coupling SAS4A/SASSYS-1 with the commercial CFD code STAR-CD and STAR-CCM+. An “adhoc” coupling strategy was implemented. With the advances in numerical techniques and software engineering, such as the availability of PETSc and MOOSE, modernization of existing systems codes or the development of new system code becomes more compelling. MOOSE (Multi-physics Object Oriented Simulation Environment) is a parallel computational framework developed at INL for enabling the solution of complex, fully-implicit multiphysics systems. It has been utilized in many nuclear applications including the system analysis codes RELAP-7 and the SFR module under current NEAMS Reactor Product Line (RPL). This motivates the development of a coupled scheme for MOOSE-based system analysis code and the commercial CFD code STAR-CCM+. STAR-CCM+ is a generalpurpose commercial CFD code using finite volume formulation for the analysis of compressible and incompressible flows and heat transfer, and it is being included in the toolkit of the NEAMS RPL. This investigation is important for the integration between the MOOSE-based system codes and the high-fidelity advanced simulation capabilities developed under the NEAMS RPL.

Hu, R.↗

1:52 Scale Testing of the First US Commercial Scale Floating Wind Turbine, VolturnUS: Testing Overview and the Evolution of Scale Model Testing Methods

Over the past 6 years, the University of Maine (UMaine) has been an active contributor in research and scale-model testing of floating offshore wind turbines (FOWTs). This paper serves to share the evolution of UMaine’s scale-model testing pedigree by exploring the various test campaigns at a high level, culminating with the design validation of the VolturnUS floating platform. These model test campaigns have each provided key insights into the behavior of FOWT platforms as well as improving the ability to perform model tests of FOWTs. In 2011, the UMaine-led DeepCwind Consortium carried out 1/50-scale model tests of a generic tension leg platform (TLP), a semi-submersible (semi), and a spar-buoy (spar) floating platform at the Maritime Research Institute Netherlands (MARIN) test facility. The designs were Froude-scaled and supported a scaled version of the 5-MW National Renewable Energy Laboratory (NREL) offshore research turbine. Data from these tests has been used extensively for numerical simulation validation efforts using NREL’s computer-aided engineering software FAST and laid the foundation for UMaine’s design efforts on VolturnUS. In 2013, UMaine conducted another test campaign at MARIN using the original semi-submersible from 2011 with an improved turbine as well as a 1:50-scale model of the VolturnUS concrete semi-submersible design. The improved DeepCwind semi-submersible data is currently being utilized in the validation of a large number of other analysis codes as part of the International Energy Agency’s OC5 project. In 2015, UMaine opened its own Wind/Wave test facility, the Alfond Wind/Wave Ocean Engineering Laboratory (W2). Utilizing this new facility, UMaine tested the 1:50-scale model DeepCwind semi-submersible, repeating the tests from MARIN, to validate the experimental equipment and procedures as well as demonstrate the capability of the W2. In 2016 UMaine carried out testing of a 1:52-scale model of the 100% design of the VolturnUS with a 6-MW topside as a final design validation to support the US Department of Energy-supported, full-scale Aqua Ventus demonstration project scheduled to be connected to the grid in 2019. A newly designed 6-MW scale model turbine was used in this test and the performance-matched turbine design methodology is described. Selected results from the test campaign and preliminary numerical comparisons are discussed as well as key lessons learned from the model test campaigns are presented.

17 WIND ENERGY↗

AMPHION: Specification-based programming for scientific subroutine libraries

AMPHION is a knowledge-based software engineering (KBSE) system that guides a user in developing a diagram representing a formal problem specification. It then automatically implements a solution to this specification as a program consisting of calls to subroutines from a library. The diagram provides an intuitive domain oriented notation for creating a specification that also facilitates reuse and modification. AMPHION'S architecture is domain independent. AMPHION is specialized to an application domain by developing a declarative domain theory. Creating a domain theory is an iterative process that currently requires the joint expertise of domain experts and experts in automated formal methods for software development.

Lowry, Michael↗

Goddard's New Approach to Information Technology: The Information Systems Center an Overview

The Information Center (ISC) at Goddard was created as part of the Goddard reorganization and was located within the Applied Engineering and Technology (AET) Directorate. The creation of ISC was to: (1) focus expertise and leadership in information system development; (2) Promote organizational collaboration, partnerships, and resource sharing; (3) Stimulate design/development of seamless end-to-end flight and ground systems; (4) Enable flexibility to effectively support many simultaneous projects by improved access to critical mass of discipline expertise; (5) Enhance career growth and opportunities including multi-disciplinary opportunities; and (6) to improve communications among information system professionals. This paper presents a general overview of the Information Systems Center as well as the role of the Software Engineering Laboratory within the center.

Kea, Howard E.↗

NASA Tech Briefs, May 2010

Topics covered include: Instrument for Analysis of Greenland's Glacier Mills Cryogenic Moisture Apparatus; A Transportable Gravity Gradiometer Based on Atom Interferometry; Three Methods of Detection of Hydrazines; Crossed, Small-Deflection Energy Analyzer for Wind/Temperature Spectrometer; Wavefront Correction for Large, Flexible Antenna Reflector; Novel Micro Strip-to-Waveguide Feed Employing a Double-Y Junction; Thin-Film Ferro Electric-Coupled Microstripline Phase Shifters With Reduced Device Hysteresis; Two-Stage, 90-GHz, Low-Noise Amplifier; A 311-GHz Fundamental Oscillator Using InP HBT Technology; FPGA Coprocessor Design for an Onboard Multi-Angle Spectro-Polarimetric Imager; Serrating Nozzle Surfaces for Complete Transfer of Droplets; Turbomolecular Pumps for Holding Gases in Open Containers; Triaxial Swirl Injector Element for Liquid-Fueled Engines; Integrated Budget Office Toolbox; PLOT3D Export Tool for Tecplot; Math Description Engine Software Development Kit; Astronaut Office Scheduling System Software; ISS Solar Array Management; Probabilistic Structural Analysis Program; SPOT Program; Integrated Hybrid System Architecture for Risk Analysis; System for Packaging Planetary Samples for Return to Earth; Offset Compound Gear Drive; Low-Dead-Volume Inlet for Vacuum Chamber; Simple Check Valves for Microfluidic Devices; A Capillary-Based Static Phase Separator for Highly Variable Wetting Conditions; Gimballing Spacecraft Thruster; Finned Carbon-Carbon Heat Pipe with Potassium Working Fluid; Lightweight Heat Pipes Made from Magnesium; Ceramic Rail-Race Ball Bearings; Improved OTEC System for a Submarine Robot; Reflector Surface Error Compensation in Dual-Reflector Antennas; Enriched Storable Oxidizers for Rocket Engines; Planar Submillimeter-Wave Mixer Technology with Integrated Antenna; Widely Tunable Mode-Hop-Free External-Cavity Quantum Cascade Laser; Non-Geiger-Mode Single-Photon Avalanche Detector with Low Excess Noise; Using Whispering-Gallery-Mode Resonators for Refractometry; RF Device for Acquiring Images of the Human Body; Reactive Collision Avoidance Algorithm; Fast Solution in Sparse LDA for Binary Classification; Modeling Common-Sense Decisions in Artificial Intelligence; Graph-Based Path-Planning for Titan Balloons; Nanolaminate Membranes as Cylindrical Telescope Reflectors; Air-Sea Spray Airborne Radar Profiler Characterizes Energy Fluxes in Hurricanes; Large Telescope Segmented Primary Mirror Alignment; and Simplified Night Sky Display System.

Source record↗

Towards a general object-oriented software development methodology

An object is an abstract software model of a problem domain entity. Objects are packages of both data and operations of that data (Goldberg 83, Booch 83). The Ada (tm) package construct is representative of this general notion of an object. Object-oriented design is the technique of using objects as the basic unit of modularity in systems design. The Software Engineering Laboratory at the Goddard Space Flight Center is currently involved in a pilot program to develop a flight dynamics simulator in Ada (approximately 40,000 statements) using object-oriented methods. Several authors have applied object-oriented concepts to Ada (e.g., Booch 83, Cherry 85). It was found that these methodologies are limited. As a result a more general approach was synthesized with allows a designer to apply powerful object-oriented principles to a wide range of applications and at all stages of design. An overview is provided of this approach. Further, how object-oriented design fits into the overall software life-cycle is considered.

Seidewitz, ED↗

Evolving impact of Ada on a production software environment

Many aspects of software development with Ada have evolved as our Ada development environment has matured and personnel have become more experienced in the use of Ada. The Software Engineering Laboratory (SEL) has seen differences in the areas of cost, reliability, reuse, size, and use of Ada features. A first Ada project can be expected to cost about 30 percent more than an equivalent FORTRAN project. However, the SEL has observed significant improvements over time as a development environment progresses to second and third uses of Ada. The reliability of Ada projects is initially similar to what is expected in a mature FORTRAN environment. However, with time, one can expect to gain improvements as experience with the language increases. Reuse is one of the most promising aspects of Ada. The proportion of reusable Ada software on our Ada projects exceeds the proportion of reusable FORTRAN software on our FORTRAN projects. This result was noted fairly early in our Ada projects, and experience shows an increasing trend over time.

Mcgarry, F.↗

A recent Cleanroom success story: The Redwing project

Redwing is the largest completed Cleanroom software engineering project in IBM, both in terms of lines of code and project staffing. The product provides a decision-support facility that utilizes artificial intelligence (AI) technology for predicting and preventing complex operating problems in an MVS environment. The project used the Cleanroom process for development and realized a defect rate of 2.6 errors/KLOC, measured from first execution. This represents the total amount of errors that were found in testing and installation at three field test sites. Development productivity was 486 LOC/PM, which included all development labor expended in design specification through completion of incremental testing. In short, the Redwing team produced a complex systems software product with an extraordinarily low error rate, while maintaining high productivity. All of this was accomplished by a project team using Cleanroom for the first time. An 'introductory implementation' of Cleanroom was defined and used on Redwing. This paper describes the quality and productivity results, the Redwing project, and how Cleanroom was implemented.

Hausler, Philip A.↗

Numerical Propulsion System Simulation (NPSS): An Award Winning Propulsion System Simulation Tool

The Numerical Propulsion System Simulation (NPSS) is a full propulsion system simulation tool used by aerospace engineers to predict and analyze the aerothermodynamic behavior of commercial jet aircraft, military applications, and space transportation. The NPSS framework was developed to support aerospace, but other applications are already leveraging the initial capabilities, such as aviation safety, ground-based power, and alternative energy conversion devices such as fuel cells. By using the framework and developing the necessary components, future applications that NPSS could support include nuclear power, water treatment, biomedicine, chemical processing, and marine propulsion. NPSS will dramatically reduce the time, effort, and expense necessary to design and test jet engines. It accomplishes that by generating sophisticated computer simulations of an aerospace object or system, thus enabling engineers to "test" various design options without having to conduct costly, time-consuming real-life tests. The ultimate goal of NPSS is to create a numerical "test cell" that enables engineers to create complete engine simulations overnight on cost-effective computing platforms. Using NPSS, engine designers will be able to analyze different parts of the engine simultaneously, perform different types of analysis simultaneously (e.g., aerodynamic and structural), and perform analysis in a more efficient and less costly manner. NPSS will cut the development time of a new engine in half, from 10 years to 5 years. And NPSS will have a similar effect on the cost of development: new jet engines will cost about a billion dollars to develop rather than two billion. NPSS is also being applied to the development of space transportation technologies, and it is expected that similar efficiencies and cost savings will result. Advancements of NPSS in fiscal year 2001 included enhancing the NPSS Developer's Kit to easily integrate external components of varying fidelities, providing the initial Visual-Based Syntax (VBS) capability, and developing additional capabilities to support space transportation. NPSS was supported under NASA's High Performance Computing and Communications Program. Through the NASA/Industry Cooperative Effort agreement, NASA Glenn and its industry and Government partners are developing NPSS. The NPSS team consists of propulsion experts and software engineers from GE Aircraft Engines, Pratt & Whitney, The Boeing Company, Honeywell, Rolls-Royce Corporation, Williams International, Teledyne Continental Motors, Arnold Engineering Development Center, Wright Patterson Air Force Base, and the NASA Glenn Research Center. Glenn is leading the way in developing NPSS--a method for solving complex design problems that's faster, better, and cheaper.

Stauber, Laurel J.↗

Using CASE to Exploit Process Modeling in Technology Transfer

A successful business will be one that has processes in place to run that business. Creating processes, reengineering processes, and continually improving processes can be accomplished through extensive modeling. Casewise(R) Corporate Modeler(TM) CASE is a computer aided software engineering tool that will enable the Technology Transfer Department (TT) at NASA Marshall Space Flight Center (MSFC) to capture these abilities. After successful implementation of CASE, it could then go on to be applied in other departments at MSFC and other centers at NASA. The success of a business process is dependent upon the players working as a team and continuously improving the process. A good process fosters customer satisfaction as well as internal satisfaction in the organizational infrastructure. CASE provides a method for business process success through functions consisting of systems and processes business models; specialized diagrams; matrix management; simulation; report generation and publishing; and, linking, importing, and exporting documents and files. The software has an underlying repository or database to support these functions. The Casewise. manual informs us that dynamics modeling is a technique used in business design and analysis. Feedback is used as a tool for the end users and generates different ways of dealing with the process. Feedback on this project resulted from collection of issues through a systems analyst interface approach of interviews with process coordinators and Technical Points of Contact (TPOCs).

Renz-Olar, Cheryl↗

Test Driven Development of Scientific Models

Test-Driven Development (TDD), a software development process that promises many advantages for developer productivity and software reliability, has become widely accepted among professional software engineers. As the name suggests, TDD practitioners alternate between writing short automated tests and producing code that passes those tests. Although this overly simplified description will undoubtedly sound prohibitively burdensome to many uninitiated developers, the advent of powerful unit-testing frameworks greatly reduces the effort required to produce and routinely execute suites of tests. By testimony, many developers find TDD to be addicting after only a few days of exposure, and find it unthinkable to return to previous practices.After a brief overview of the TDD process and my experience in applying the methodology for development activities at Goddard, I will delve more deeply into some of the challenges that are posed by numerical and scientific software as well as tools and implementation approaches that should address those challenges.

Overview of TDD Process↗

Testing, Requirements, and Metrics

The criticality of correct, complete, testable requirements is a fundamental tenet of software engineering. Also critical is complete requirements based testing of the final product. Modern tools for managing requirements allow new metrics to be used in support of both of these critical processes. Using these tools, potential problems with the quality of the requirements and the test plan can be identified early in the life cycle. Some of these quality factors include: ambiguous or incomplete requirements, poorly designed requirements databases, excessive or insufficient test cases, and incomplete linkage of tests to requirements. This paper discusses how metrics can be used to evaluate the quality of the requirements and test to avoid problems later. Requirements management and requirements based testing have always been critical in the implementation of high quality software systems. Recently, automated tools have become available to support requirements management. At NASA's Goddard Space Flight Center (GSFC), automated requirements management tools are being used on several large projects. The use of these tools opens the door to innovative uses of metrics in characterizing test plan quality and assessing overall testing risks. In support of these projects, the Software Assurance Technology Center (SATC) is working to develop and apply a metrics program that utilizes the information now available through the application of requirements management tools. Metrics based on this information provides real-time insight into the testing of requirements and these metrics assist the Project Quality Office in its testing oversight role. This paper discusses three facets of the SATC's efforts to evaluate the quality of the requirements and test plan early in the life cycle, thus preventing costly errors and time delays later.

Rosenberg, Linda↗

Achieving dependability throughout the development process - A distributed software experiment

Distributed software engineering techniques and methods for improving the specification and testing phases are considered. With multiversion development, multiple implementations allow the use of an automated approach to testing called back-to-back (B/B) testing in which the outputs are compared to detect any discrepancies. However, a specification defect may lead to similar errors in the multiple versions and the underlying fault may not be detected with a B/B testing approach. The use of diverse formal specifications has been proposed as a solution to this problem, since defects in independently written specifications are likely to be different. To examine these issues, an experiment was performed using the design diversity approach in the specification, design, implementation, and testing of distributed software. In the experiment, three diverse formal specifications were used to produce multiple independent implementations of a distributed communication protocol in Ada. The problems encountered in building complex concurrent processing systems in Ada were also studied. Many pitfalls were discovered in mapping the formal specifications into Ada implementations.

Kelly, John P. J.↗

TC2015: Life cycle analysis of co-formed coal fines and hydrochar produced in twin-screw extruder (TSE)

Life cycle analysis (LCA) is a quantitative tool that evaluates the environmental performance of a process or system. The main objective of this LCA study is to assess the greenhouse gas (GHG) emissions and life cycle energy use associated with solid fuels produced by co-forming coal fines and hydrochar. The hydrochar is derived from loblolly pine wood via hydrothermal carbonization (HTC) conducted in a reactive twin-screw extruder (TSE). The final product is a drop-in replacement for coal. The life cycle impacts of the co-formed end products are quantified from ‘cradle-to-grave’. Model input parameters are collected from life cycle databases, literature, experimental measurements and simulations by engineering software. Results show that electricity generated from the co-formed products has significantly lower GHG intensity and slightly higher life cycle energy use than coal-generated electricity. The most carbon-intensive component in the overall hydrochar system is the HTC plant. However, this could be improved in the future by plant re-design to recover and recycle thermal energy for more efficient operation.

54 ENVIRONMENTAL SCIENCES↗

Standards, dissemination, and best practices in systems biology

In this study, the reproducibility of scientific research is crucial to the success of the scientific method. Here, we review the current best practices when publishing mechanistic models in systems biology. We recommend, where possible, to use software engineering strategies such as testing, verification, validation, documentation, versioning, iterative development, and continuous integration. In addition, adhering to the Findable, Accessible, Interoperable, and Reusable modeling principles allows other scientists to collaborate and build off of each other’s work. Existing standards such as Systems Biology Markup Language, CellML, or Simulation Experiment Description Markup Language can greatly improve the likelihood that a published model is reproducible, especially if such models are deposited in well-established model repositories. Where models are published in executable programming languages, the source code and their data should be published as open-source in public code repositories together with any documentation and testing code. For complex models, we recommend container-based solutions where any software dependencies and the run-time context can be easily replicated.

59 BASIC BIOLOGICAL SCIENCES↗