Engineers at NASA's
Independent Verification and Validation (IV&V) facility are examining the
feasibility of reusing portions of old NASA spacecraft systems software for new
missions. One of the goals of the effort is to determine whether using that old
software would actually save the agency time and money.
"There's a lot of
confusion about this issue," said Lydia Sorenson, director of federal
projects for Global Science & Technology, Inc. (GST) of Greenbelt, Md., the
contractor on the project. "Some people say that it saves money, saves
time and decreases risk. And some people say the exact opposite. So that's what
we're trying to find out."
The work is being done out
of the IV&V facility in Fairmont, W.V. For the past two years, Global
Science & Technology has been examining software reuse at NASA, looking
primarily at missions that have gone through the IV&V facility for testing.
Software reuse involves
looking back at code used in software for previous missions and then adapting
the same code for new software, usually for related missions. The practice is
theoretically time-saving because the old code already has been through a lot
of rigorous testing and quality control measures, but officials also wonder if
it takes as much time to examine old systems as it would to just design new
software.
"The dangers of reuse
are almost the same as the benefits," said Sorenson. "If you reuse
something, but drastically change the context in which it is used and have to
jerry-rig it a lot, [the question is] would you have saved a lot more time and
money if you had just created it from scratch?"
The process is made easier
if the same developer is working on both the old and new software, she added.
NASA has reused software to
differing degrees on missions ranging from its Mars Reconnaissance Orbiter to
its Gamma Ray Large Area Space Telescope, according to Marcus Fisher, NASA
IV&V facility research and development lead. The project is looking at
these missions, as well as others such as the Solar Dynamics Observatory, Deep
Impact and the Earth Observing 1, Fisher said.
During the current phase of
the IV&V project, Global Science & Technology is designing a
"genealogy" of sorts, which compares programs that have re-used
software to their originating programs to see what was borrowed and adapted.
Software reuse has been going on at NASA to varying degrees since about 1999,
according to Andres Orrego, project manager for the IV&V study.
NASA divides software reuse
into two categories: black box and white box.
"Black box" reuse
refers to when a component is incorporated completely without making any
changes to it. White box reuse means that software was adapted in some way
before being re-introduced.
Software is sometimes
designed for NASA with future re-use in mind, and sometimes it is done on an ad
hoc basis, Orrego said.
The scientists are still
drawing conclusions on whether the products that incorporate re-used code are
benefiting NASA, Orrego said, adding that those conclusions should be coming
shortly.
The first two phases of the
project cost less than $300,000, but phase three of the project, set to begin
June 14, will probably cost about $800,000, according to GST spokesman John
Dahlia.
During the final phase,
which will begin June 14, the company will look at potentially developing
software that can automatically detect what code has the potential for re-use.
This new software also would be used to determine how re-use can be applied to
future NASA missions.
Sorensen said that the
final page will involve trying to help NASA develop new processes and
procedures to better equip them for analyzing software to see if it is a
candidate for reuse.
Software reuse has been a
common practice at agencies and businesses since the early 1990s, according to
Jeffrey Poulin, chief engineer for Lockheed Martin Distribution Technologies
and the author of the book "Measuring Software Reuse: Principles,
Practices and Economic Models." Poulin said the practice at first was
focused on reusing low-level software components, and since has shifted to the
use of larger amounts of code that encapsulate more functions.
Poulin said NASA is a good
candidate for the practice because its software would be related closely enough
to require little adaptation.
NASA's best strategy,
Poulin said, would be to invest in software that is calibrated for future reuse
from the beginning, even if it is more expensive initially.
According to Poulin, while
it might cost 50 percent more to develop software with reusable components,
usually reusing software will save you around 80 percent in labor costs,
meaning there is a clear overall savings.
"It doesn't take
higher math to see that if you build it once very well and use it twice, you've
already shown a benefit, and every time you reuse the component, you show a
better benefit," Poulin said.
Additional software reuse
evaluation and research also is taking place at NASA's Goddard Space Flight
Center in Greenbelt, Md., Orrego said.