Software visualization tool helps oversee NASA contractor code
Software managers at NASA's Marshall Space Flight Center in Huntsville, Ala., are using a software analysis tool called Visual FlowCoder to check the work of contractors creating software code for satellite and rocket engine control.
By Wilson Dizard III
HUNTSVILLE, Ala. — Software managers at NASA's Marshall Space Flight Center in Huntsville, Ala., are using a software analysis tool called Visual FlowCoder to check the work of contractors creating software code for satellite and rocket engine control.
"It serves as a second pair of eyes," says Luis Trevino, team lead of the software design team in Marshall's Avionics Department. "They know we are using it," Trevino says of the contractors. "Indirectly it was used to force them to do a good job on the code."
Visual FlowCoder, from FlowLynx Inc. of Huntsville, Ala., graphically maps the flow of software code. It displays procedures, functions, and other routines in a visual format based on the code's algorithmic flow.
The tool's graphic presentation lets engineers and programmers visually eyeball the logical steps in a program to aid code development, maintenance, bug-fixing, integration and documentation.
"One of the major benefits I've found with FlowCoder is that I don't know Ada, but the tool allows me to analyze Ada code," Trevino says. "I can see how it works."
NASA Marshall experts are using FlowCoder to help analyze engine control software for the MC1 engine on the X.34 reusable launch vehicle project, Trevino says. In that project, FlowCoder will help integrate C code and Ada code, he says.
"One of the benefits of this tool is that we are now going into an area called web-based software engineering. We'll install FlowCoder on a server and anyone in our group will be able to use it," Trevino says.
NASA Marshall's Avionics Department has 30 NASA employees and about 30 contractors, for a total of 60. The team owns five FlowCoder licenses.
"One of the disadvantages of using a tool like this is getting user buy-in," Trevino says. To speed adoption of the tool, he plans to conduct training sessions for all five team leaders in the department. "Only a few people know how to use [FlowCoder] now, and we have to do the training," he says.
Using the tool "will help reduce the costs of analyzing code," Trevino says. It is also a part of the Avionics Department's plans to upgrade its Capabilities Maturity Model rank from 2 to 3. Trevino's team will use FlowCoder as the core of a software module that will verify that his team's code meets standards.
NASA software development team leaders also plan to use FlowCoder to assist in peer reviews of avionics software.
"It's a particularly good tool, better than most I've seen out there," Trevino says. "We're also getting into the area of software reuse, and this [tool] should help us classify software."
NASA Marshall computer engineer Pat Benson used FlowCoder to analyze software for flight control of the Chandra satellite. "It made really good flowcharts," she says.
Software engineers from TRW Inc. of Redondo Beach, Calif., wrote much of the Chandra avionics code in C and Ada, Benson says. "I had [FlowCoder] on my laptop [computer] when I went out to TRW and I showed it to them," she says. "We were monitoring them with this."
Benson says that the FlowCoder software can be hard to use at first, "but then it gets easier as you build flow charts."
FlowLynx provides FlowCoder for Windows 9x, 2000, NT and Unix/Linux. The company got its start with a $700,000 Small Business Innovation Research contract from the Ballistic Missile Defense Organization. The tool can analyze software written in Ada 95, C, C++, LISP, Visual Basic, Cobol, Fortran 90, Hypertext Markup Language, Java, Pascal, Power Builder, and assembler languages like PIC, AVR, and HC11.
NASA Marshall also plans to use FlowCoder while creating software for the X-Ray satellite project.
For more information contact FlowLynx by phone at 256-704-7850, by fax at 256-534-6999, by post at 102A Wynn Dr., Suite 128, Huntsville, Ala. 35805, or on the World Wide Web at http://www.flowlynx.com/.