NASA Logo

NTRS

NTRS - NASA Technical Reports Server

Back to Results
pyam: Python Implementation of YaMpyam is a software development framework with tools for facilitating the rapid development of software in a concurrent software development environment. pyam provides solutions for development challenges associated with software reuse, managing multiple software configurations, developing software product lines, and multiple platform development and build management. pyam uses release-early, release-often development cycles to allow developers to integrate their changes incrementally into the system on a continual basis. It facilitates the creation and merging of branches to support the isolated development of immature software to avoid impacting the stability of the development effort. It uses modules and packages to organize and share software across multiple software products, and uses the concepts of link and work modules to reduce sandbox setup times even when the code-base is large. One sidebenefit is the enforcement of a strong module-level encapsulation of a module s functionality and interface. This increases design transparency, system stability, and software reuse. pyam is written in Python and is organized as a set of utilities on top of the open source SVN software version control package. All development software is organized into a collection of modules. pyam packages are defined as sub-collections of the available modules. Developers can set up private sandboxes for module/package development. All module/package development takes place on private SVN branches. High-level pyam commands support the setup, update, and release of modules and packages. Released and pre-built versions of modules are available to developers. Developers can tailor the source/link module mix for their sandboxes so that new sandboxes (even large ones) can be built up easily and quickly by pointing to pre-existing module releases. All inter-module interfaces are publicly exported via links. A minimal, but uniform, convention is used for building modules.
Document ID
20130009379
Acquisition Source
Jet Propulsion Laboratory
Document Type
Other - NASA Tech Brief
Authors
Myint, Steven
(California Inst. of Tech. Pasadena, CA, United States)
Jain, Abhinandan
(California Inst. of Tech. Pasadena, CA, United States)
Date Acquired
August 27, 2013
Publication Date
December 1, 2012
Publication Information
Publication: NASA Tech Briefs, December 2012
Subject Category
Man/System Technology And Life Support
Report/Patent Number
NPO-48447
Distribution Limits
Public
Copyright
Public Use Permitted.
No Preview Available