The YaM computer program provides a conceptual framework (including configuration management) and a set of software tools that support the concurrent development of reusable software by members of a team. YaM favors development of software in modules that can be assembled into packages and that, during development, serve collectively as the software analog of scaffolding that supports the development of other modules. YaM is written in Practical Extraction and Reporting Language (PERL) and is organized as a set of software utilities on top of the public-domain Concurrent Versioning System (CVS) software. Programmers can set up sandboxes for the development of modules and packages: all such development takes place on private CVS branches. High-level YaM commands support the setup, update, and release of modules and packages. Released and prebuilt versions of modules are available to all programmers on the team. Programmers can tailor the mixes of source and link modules for their sandboxes so that new sandboxes can be built up easily and quickly by pointing to previously released modules. All intermodule interfaces are publicly exported via links. A minimal, but uniform, convention is used for building modules.

This program was written by Abhinandan Jain and Jeffrey Biesiadecki of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free on-line at www.nasatech.com/tsp  under the Software category.

This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393-3425. Refer to

NPO-21083



This Brief includes a Technical Support Package (TSP).
Document cover
Software for Concurrent Development of Reusable Software

(reference NPO-21083) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
NASA Tech Briefs Magazine

This article first appeared in the October, 2001 issue of NASA Tech Briefs Magazine (Vol. 25 No. 10).

Read more articles from the archives here.


Overview

The document outlines the YaM computer program, developed by Abhinandan Jain and Jeffrey Biesiadecki at the Jet Propulsion Laboratory (JPL) for NASA. YaM is designed to facilitate the concurrent development of reusable software by teams, emphasizing modularity and configuration management.

YaM operates on the principle of creating software in modules that can be assembled into packages. This modular approach allows for the development of software components that can support one another, akin to scaffolding in construction. The program is implemented in Practical Extraction and Report Language (PERL) and is built on top of the public-domain Concurrent Versioning System (CVS), which aids in version control and collaborative development.

Key features of YaM include the ability for programmers to set up "sandboxes" for developing modules and packages. These sandboxes operate on private CVS branches, allowing developers to work independently while still being able to integrate their work with the broader team. High-level commands within YaM facilitate the setup, updating, and releasing of modules and packages, streamlining the development process.

The program also supports the availability of released and prebuilt versions of modules to all team members, enabling easy access to previously developed components. Programmers can customize their sandboxes by mixing source and link modules, which allows for rapid assembly of new development environments. All intermodule interfaces are publicly exported via links, ensuring transparency and ease of integration.

YaM is positioned as a commercial product, with licensing available through the California Institute of Technology. Interested parties are directed to contact Don Hart for more information, referencing the specific NASA technology report number NPO-21083.

The document emphasizes that the work was conducted under NASA's sponsorship and clarifies that the use of any specific commercial products or trade names does not imply endorsement by the U.S. Government or JPL. Overall, the YaM program represents a significant advancement in software development practices, particularly in the context of NASA's complex and collaborative projects.