Search NASASearch

SEARCH · Search NASA

Results for “reuse”

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

Towards a comprehensive framework for reuse: A reuse-enabling software evolution environment

Reuse of products, processes and knowledge will be the key to enable the software industry to achieve the dramatic improvement in productivity and quality required to satisfy the anticipated growing demand. Although experience shows that certain kinds of reuse can be successful, general success has been elusive. A software life-cycle technology which allows broad and extensive reuse could provide the means to achieving the desired order-of-magnitude improvements. The scope of a comprehensive framework for understanding, planning, evaluating and motivating reuse practices and the necessary research activities is outlined. As a first step towards such a framework, a reuse-enabling software evolution environment model is introduced which provides a basis for the effective recording of experience, the generalization and tailoring of experience, the formalization of experience, and the (re-)use of experience.

Basili, V. R.

Software Reuse Within the Earth Science Community

Scientific missions in the Earth sciences frequently require cost-effective, highly reliable, and easy-to-use software, which can be a challenge for software developers to provide. The NASA Earth Science Enterprise (ESE) spends a significant amount of resources developing software components and other software development artifacts that may also be of value if reused in other projects requiring similar functionality. In general, software reuse is often defined as utilizing existing software artifacts. Software reuse can improve productivity and quality while decreasing the cost of software development, as documented by case studies in the literature. Since large software systems are often the results of the integration of many smaller and sometimes reusable components, ensuring reusability of such software components becomes a necessity. Indeed, designing software components with reusability as a requirement can increase the software reuse potential within a community such as the NASA ESE community. The NASA Earth Science Data Systems (ESDS) Software Reuse Working Group is chartered to oversee the development of a process that will maximize the reuse potential of existing software components while recommending strategies for maximizing the reusability potential of yet-to-be-designed components. As part of this work, two surveys of the Earth science community were conducted. The first was performed in 2004 and distributed among government employees and contractors. A follow-up survey was performed in 2005 and distributed among a wider community, to include members of industry and academia. The surveys were designed to collect information on subjects such as the current software reuse practices of Earth science software developers, why they choose to reuse software, and what perceived barriers prevent them from reusing software. In this paper, we compare the results of these surveys, summarize the observed trends, and discuss the findings. The results are very similar, with the second, larger survey confirming the basic results of the first, smaller survey. The results suggest that reuse of ESE software can drive down the cost and time of system development, increase flexibility and responsiveness of these systems to new technologies and requirements, and increase effective and accountable community participation.

Marshall, James J.

System-Level Reuse of Space Systems Simulations

One of the best ways to enhance space systems simulation fidelity is to leverage off of (reuse) existing high-fidelity simulations. But what happens when the model you would like to reuse is in a different coding language or other barriers arise that make one want to just start over with a clean sheet of paper? Three diverse system-level simulation reuse case studies are described based on experience to date in the development of NASA's Space Station Training Facility (SSTF) at the Johnson Space Center in Houston, Texas. Case studies include (a) the Boeing/Rocketdyne-provided Electrical Power Simulation (EPSIM), (b) the NASA Automation and Robotics Division-provided TRICK robotics systems model, and (c) the Russian Space Agency- provided Russian Segment Trainer. In each case, there was an initial tendency to dismiss simulation reuse candidates based on an apparent lack of suitability. A more careful examination based on a more structured assessment of architectural and requirements-oriented representations of the reuse candidates revealed significant reuse potential. Specific steps used to conduct the detailed assessments are discussed. The steps include the following: 1) Identifying reuse candidates; 2) Requirements compatibility assessment; 3) Maturity assessment; 4) Life-cycle cost determination; and 5) Risk assessment. Observations and conclusions are presented related to the real cost of system-level simulation component reuse. Finally, lessons learned that relate to maximizing the benefits of space systems simulation reuse are shared. These concepts should be directly applicable for use in the development of space systems simulations in the future.

Hazen, Michael R.

Level 2 software reuse study

The Space Station Freedom Program (SSFP) Level 2 Software Reuse Study group was formed by Bob Nelson (NASA SSFP) from members of the Information Systems Program Support Contract (PSC) team. The objectives of the study were to identify existing software reuse libraries, to identify existing reusability processes and experiences, to identify reusability analysis tools and users, and to provide recommendations for a software reusability process for the SSFP. To date the following have been delivered: (1) definitions of commonality and reuse, (2) a report on existing software reuse libraries and library management systems, (3) a report on reuse process and methodology gleaned from software reuse experts, and (4) a report on software attributes for measuring commonality and reusability. Three implementation alternatives for a repository of reusable components were identified: centralized at the SSE Development Facility (SSEDF), a distributed approach across the network of Software Production Facilities, and a directory approach. A number of findings from the reuse study and several reuse strategy considerations were presented.

Herman, Scott E.

SEL Ada reuse analysis and representations

Overall, it was revealed that the pattern of Ada reuse has evolved from initial reuse of utility components into reuse of generalized application architectures. Utility components were both domain-independent utilities, such as queues and stacks, and domain-specific utilities, such as those that implement spacecraft orbit and attitude mathematical functions and physics or astronomical models. The level of reuse was significantly increased with the development of a generalized telemetry simulator architecture. The use of Ada generics significantly increased the level of verbatum reuse, which is due to the ability, using Ada generics, to parameterize the aspects of design that are configurable during reuse. A key factor in implementing generalized architectures was the ability to use generic subprogram parameters to tailor parts of the algorithm embedded within the architecture. The use of object oriented design (in which objects model real world entities) significantly improved the modularity for reuse. Encapsulating into packages the data and operations associated with common real world entities creates natural building blocks for reuse.

Kester, Rush

JPL reuse program

The goal of the JPL reuse activity is to develop a quantitative understanding of the factors which encourage or inhibit software reuse, and of productivity improvements achievable through reuse. The primary activity is the measurement of parameters relevant to reuse in the environment of actual projects. The program has three objectives: (1) to develop a model to allow assessment of competing reuse techniques, (2) to extend reuse from the unit to the sub-system level, and (3) to expand from specific applications to a broader application domain. Application domains, which apply to all interplanetary projects, include Mission Operations, Science Information Systems, Flight Software, and Simulations. The program is targeting all phases and activities of the life cycle and a full range of software products. The approach will be both experimental (observe, hypothesize and evaluate) and constructive (introduce new tools and techniques). The primary target projects are Deep Space Network activities - the Ground Facilities facility upgrade, the Network Operations Control Center upgrade, and the Signal Processing Center. This is the first group of closely related projects being done in Ada at JPL. A reuse base will be developed initially by classifying potentially reusable components from one project; it will be used and expanded with additional projects.

Brown, James W.

Johnson Space Center software reuse activity

There is a strong operational interest in reuse and commonality at the Johnson Space Center (JSC). Although commonality and reuse were not emphasized in the Space Shuttle Orbiter Project, it is a major goal for Space Station Freedom and the Software Support Environment (SSE). Research activities at JSC are generally conducted through the Software Engineering Research Center (SERC) of the University of Houston at Clear Lake. The Life Cycle Model developed by SERC includes reuse at each phase, but reuse is not a principal theme. The SSE is a significant entry point for new reuse technology, and the SERC can provide consultation and possible prototypes. SERC is seen as an interface to other NISE reuse researchers. The AdaNET is managed at JSC through the University of Houston at Clear Lake for the NASA Office of Technology Utilization. It may also be a gateway for reuse research.

Gorman, Steve

Reuse at the Software Productivity Consortium

The Software Productivity Consortium is sponsored by 14 aerospace companies as a developer of software engineering methods and tools. Software reuse and prototyping are currently the major emphasis areas. The Methodology and Measurement Project in the Software Technology Exploration Division has developed some concepts for reuse which they intend to develop into a synthesis process. They have identified two approaches to software reuse: opportunistic and systematic. The assumptions underlying the systematic approach, phrased as hypotheses, are the following: the redevelopment hypothesis, i.e., software developers solve the same problems repeatedly; the oracle hypothesis, i.e., developers are able to predict variations from one redevelopment to others; and the organizational hypothesis, i.e., software must be organized according to behavior and structure to take advantage of the predictions that the developers make. The conceptual basis for reuse includes: program families, information hiding, abstract interfaces, uses and information hiding hierarchies, and process structure. The primary reusable software characteristics are black-box descriptions, structural descriptions, and composition and decomposition based on program families. Automated support can be provided for systematic reuse, and the Consortium is developing a prototype reuse library and guidebook. The software synthesis process that the Consortium is aiming toward includes modeling, refinement, prototyping, reuse, assessment, and new construction.

Weiss, David M.

Maintenance = reuse-oriented software development

Maintenance is viewed as a reuse process. In this context, a set of models that can be used to support the maintenance process is discussed. A high level reuse framework is presented that characterizes the object of reuse, the process for adapting that object for its target application, and the reused object within its target application. Based upon this framework, a qualitative comparison is offered of the three maintenance process models with regard to their strengths and weaknesses and the circumstances in which they are appropriate. To provide a more systematic, quantitative approach for evaluating the appropriateness of the particular maintenance model, a measurement scheme is provided, based upon the reuse framework, in the form of an organized set of questions that need to be answered. To support the reuse perspective, a set of reuse enablers are discussed.

Basili, Victor R.

Software reuse environment user's guide

This document describes the services provided by the prototype Software Reuse Environment, which was developed by CTA for NASA Goddard Space Flight Center, Code 520. This is one of three guides delivered by CTA as part of the environment. The other two guides are: Software Generation and Installation Guide; and SEMANTX--Defining the Schema. The Software Generation and Installation Guide describes the software source modules that make up the Reuse Environment, with instructions on how to generate and install an executable system from the source code. SEMANTX--Defining the Schema describes how a reuse database is created. Actually this guide is more general than the reuse database, as it describes how to generate a SEMANTX database. SEMANTX is an off-the-shelf tool that we have used to implement the reuse database. It is a product of Semantyk Systems, Inc. The Software Reuse Environment is built upon SEMANTX as well as on the IDE Structured Analysis Integrated Environment. (IDE is Interactive Development Environments, Inc.) SEMANTX itself is built on top of the Unify Database Management System. To use the Software Reuse Environment you should have the User's Manuals for SEMANTX, for Unify, and for the IDE software. CTA has provided all of these with the environment.

Source record

An Analysis of Errors in a Reuse-Oriented Development Environment

Component reuse is widely considered vital for obtaining significant improvement in development productivity. However, as an organization adopts a reuse-oriented development process, the nature of the problems in development is likely to change. In this paper, we use a measurement-based approach to better understand and evaluate an evolving reuse process. More specifically, we study the effects of reuse across seven projects in narrow domain from a single development organization. An analysis of the errors that occur in new and reused components across all phases of system development provides insight into the factors influencing the reuse process. We found significant differences between errors associated with new and various types of reused components in terms of the types of errors committed, when errors are introduced, and the effect that the errors have on the development process.

Thomas, William M.

Reuse metrics and measurement: A framework

The lessons learned and experience gleaned are described by those who have started to implement the reuse metrics and measurement framework used in controlling the development of common avionics and software for its affiliated aircraft programs. The framework was developed to permit the measurement of the long term cost/benefits resulting from the creation and use of Reusable Software Objects (RSOs). The framework also monitors the efficiency and effectiveness of the Software Reuse Library (SRL). The metrics and measurement framework is defined which was established to allow some determinations and findings to be made relative to software reuse. Seven criteria are discussed which were used to guide the establishment of the proposed reuse framework. Object recapture and creation metrics are explained along with their normalized use in effort, productivity, and quality determination. A single and multiple reuse instance version of a popular cost model is presented which uses these metrics and the measurement scheme proposed to predict the software effort and duration under various reuse assumptions. Studies in using this model to predict actuals taken from the RCI data base of over 1000 completed projects is discussed.

Reifer, Donald J.

Increasing productivity through Total Reuse Management (TRM)

Total Reuse Management (TRM) is a new concept currently being promoted by the NASA Langley Software Engineering and Ada Lab (SEAL). It uses concepts similar to those promoted in Total Quality Management (TQM). Both technical and management personnel are continually encouraged to think in terms of reuse. Reuse is not something that is aimed for after a product is completed, but rather it is built into the product from inception through development. Lowering software development costs, reducing risk, and increasing code reliability are the more prominent goals of TRM. Procedures and methods used to adopt and apply TRM are described. Reuse is frequently thought of as only being applicable to code. However, reuse can apply to all products and all phases of the software life cycle. These products include management and quality assurance plans, designs, and testing procedures. Specific examples of successfully reused products are given and future goals are discussed.

Schuler, M. P.

The software-cycle model for re-engineering and reuse

This paper reports on the progress of a study which will contribute to our ability to perform high-level, component-based programming by describing means to obtain useful components, methods for the configuration and integration of those components, and an underlying economic model of the costs and benefits associated with this approach to reuse. One goal of the study is to develop and demonstrate methods to recover reusable components from domain-specific software through a combination of tools, to perform the identification, extraction, and re-engineering of components, and domain experts, to direct the applications of those tools. A second goal of the study is to enable the reuse of those components by identifying techniques for configuring and recombining the re-engineered software. This component-recovery or software-cycle model addresses not only the selection and re-engineering of components, but also their recombination into new programs. Once a model of reuse activities has been developed, the quantification of the costs and benefits of various reuse options will enable the development of an adaptable economic model of reuse, which is the principal goal of the overall study. This paper reports on the conception of the software-cycle model and on several supporting techniques of software recovery, measurement, and reuse which will lead to the development of the desired economic model.

Bailey, John W.

Reuse Metrics for Object Oriented Software

One way to increase the quality of software products and the productivity of software development is to reuse existing software components when building new software systems. In order to monitor improvements in reuse, the level of reuse must be measured. In this NASA supported project we (1) derived a suite of metrics which quantify reuse attributes for object oriented, object based, and procedural software, (2) designed prototype tools to take these measurements in Ada, C++, Java, and C software, (3) evaluated the reuse in available software, (4) analyzed the relationship between coupling, cohesion, inheritance, and reuse, (5) collected object oriented software systems for our empirical analyses, and (6) developed quantitative criteria and methods for restructuring software to improve reusability.

Bieman, James M.

Examining Reuse in LaSRS++-Based Projects

NASA Langley Research Center (LaRC) developed the Langley Standard Real-Time Simulation in C++ (LaSRS++) to consolidate all software development for its simulation facilities under one common framework. A common framework promised a decrease in the total development effort for a new simulation by encouraging software reuse. To judge the success of LaSRS++ in this regard, reuse metrics were extracted from 11 aircraft models. Three methods that employ static analysis of the code were used to identify the reusable components. For the method that provides the best estimate, reuse levels fall between 66% and 95% indicating a high degree of reuse. Additional metrics provide insight into the extent of the foundation that LaSRS++ provides to new simulation projects. When creating variants of an aircraft, LaRC developers use object-oriented design to manage the aircraft as a reusable resource. Variants modify the aircraft for a research project or embody an alternate configuration of the aircraft. The variants inherit from the aircraft model. The variants use polymorphism to extend or redefine aircraft behaviors to meet the research requirements or to match the alternate configuration. Reuse level metrics were extracted from 10 variants. Reuse levels of aircraft by variants were 60% - 99%.

Madden, Michael M.

Performance Efficient Launch Vehicle Recovery and Reuse

For decades, economic reuse of launch vehicles has been an elusive goal. Recent attempts at demonstrating elements of launch vehicle recovery for reuse have invigorated a debate over the merits of different approaches. The parameter most often used to assess the cost of access to space is dollars-per-kilogram to orbit. When comparing reusable vs. expendable launch vehicles, that ratio has been shown to be most sensitive to the performance lost as a result of enabling the reusability. This paper will briefly review the historical background and results of recent attempts to recover launch vehicle assets for reuse. The business case for reuse will be reviewed, with emphasis on the performance expended to recover those assets, and the practicality of the most ambitious reuse concept, namely propulsive return to the launch site. In 2015, United Launch Alliance (ULA) announced its Sensible, Modular, Autonomous Return Technology (SMART) reuse plan for recovery of the booster module for its new Vulcan launch vehicle. That plan employs a non-propulsive approach where atmospheric entry, descent and landing (EDL) technologies are utilized. Elements of such a system have a wide variety of applications, from recovery of launch vehicle elements in suborbital trajectories all the way to human space exploration. This paper will include an update on ULA's booster module recovery approach, which relies on Hypersonic Inflatable Aerodynamic Decelerator (HIAD) and Mid-Air Retrieval (MAR) technologies, including its concept of operations (ConOps). The HIAD design, as well as parafoil staging and MAR concepts, will be discussed. Recent HIAD development activities and near term plans including scalability, next generation materials for the inflatable structure and heat shield, and gas generator inflation systems will be provided. MAR topics will include the ConOps for recovery, helicopter selection and staging, and the state of the art of parachute recovery systems using large parafoils for space asset recovery and high altitude deployment. The next proposed HIAD flight demonstration is called HULA (for HIAD on ULA), and will feature a 6m diameter HIAD. An update for the HULA concept will be provided in this paper. As proposed, this demonstration will fly as a secondary payload on an Atlas mission. The Centaur upper stage provides the reentry pointing, deorbit burn, and entry vehicle spin up. The flight test will culminate with a recovery of the HIAD using MAR. HULA will provide data from a Low Earth Orbit (LEO) return aeroheating environment that enables predictive model correlation and refinement. The resultant reduction in performance uncertainties should lead to design efficiencies that are increasingly significant at larger scales. Relevance to human scale Mars EDL using a HIAD will also be presented, and the applicability of the data generated from both HULA and SMART Vulcan flights, and its value for NASA's human exploration efforts will be discussed. A summary and conclusion will follow.

Reed, John G.

Research Infusion Collaboration: Finding Defect Patterns in Reused Code

The 'Finding Defect Patterns in Reused Code' Research Infusion Collaboration was performed by Jet Propulsion Laboratory/Caltech under Contract 104-07-02.679 102 197 08.14.4. This final report describes the collaboration and documents the findings, including lessons learned.The research infusion collaboration characterized, using Orthogonal Defect Classification, defect reports for code that will be reused in mission-critical software on Deep Space Network Antenna controllers. Code reuse is estimated to be 90%, so it is important to identify systemic defects, or patterns, prior to reuse of this code. The work also identified ways to avoid certain types of defects and to test more efficiently.The primary objectives of the project were:to analyze defect patterns of the code to be reused based on the defects'Orthogonal Defect Classification (ODC)and to achieve a successful infusion of ODC to a project.

orthogonal defect classification (ODC)