New Technology Incorporated/Computer Sciences Corporation/Boeing Information Services
NASA, Marshall Space Flight Center, Huntsville, Alabama
Senior Staff Analyst/Computer Scientist/Senior Member Technical Staff
April 1990 to June 1997
                  
Return
Worked on two projects while being under several contractors.
- Strain Gage Measurement
This project measures deformation of a test article using hundreds of strain gages.
- There are two types of computers - MODCOMP and PC's.
- The MODCOMP is connected to the data acquisition front end and has conversion software in run-time form.
It broadcasts raw data to stress analyst stations, stores raw data, and converts data to engineering units and stores the data.
- PC's are used for two different capacities:
- Operator's Console - Used to enter in measurement parameters, store the data, and to set up the run-time form of the conversion software in the MODCOMP and the Stress Analyst Stations.
- Stress Analyst Station - Used by the engineers to determine the stress placed on the test article.
- Analysis and Development Methods:
- In this project we followed the full life-cycle of software development.
- We initially started using the structured method of design. This method proved to be unwieldy for there are several different measurement types, calibration types, and strain gage types. The lack of inheritance with the structured method meant that there was a lot of duplication in the design.
- We then used object-oriented analysis and design. The method that we followed was Coad Yourdon. Since the MODCOMP did not have C++ we did the coding with C rather than C++.
- For each class (which we had to simulate using struct) we had a .c file. Within each file there was code to be compiled for the MODCOMP or the PC.
- In the analysis, design, and coding phases among the items I was involved included the interface between the MODCOMP and the front end, calibration and engineering units conversions, and TCP/IP.
- Means of Communications:
- TCP/IP is used for communications between the computers.
- TCP is used to communicate between the operator's console and the MODCOMP and the operator's console to the stress analyst stations.
- UDP is used to broadcast data from the MODCOMP to the stress analyst stations.
- I played a principal role in getting TCP/IP to work.
- Problem Areas Encountered:
- 640 Kbyte limit on PC (DOS)
Since we did not use Windows on the PC's we used DOS. We discovered that we ran out of space with the 640 Kbyte limit. We used a GUI from a vendor which then went out of business. We had source code to this package. I installed Phar-Lap DOS extender on the PC to develop the console software, and found that the GUI package crashed. It crashed in assembly-language functions where data was being written to code segments. I had to use MASM (Microsoft assembly development package) to modify the video driver software to eliminate the problem.
- Buggy Compiler on MODCOMP
The C compiler on the MODCOMP was licensed to only 3 parties in the world, meaning that there were many hidden bugs in the compiler. I developed code meant for the MODCOMP on the PC and unit-tested the code. When I attempted to run the code on the MODCOMP I would get unpredictable results. In some cases I had to examine the assembly code derived from the C source to determine what the problems were. Once I characterized the MODCOMP C compiler I was able to work around the defects in the compiler.
- Space Communications
   Return
At the Marshall Space Flight Center there is a communications system called Enhanced Huntsville Operations Support Center (EHOSC). This system is used to communicate between Huntsville and the Shuttle or other space objects. I was involved in the development and testing of this system.
- The computers used are Silicon Graphics (SGI) running UNIX.
- Did GUI programming using TeleUse.
- Tested fellow developer's code
- Determined the use of various tools. Among the tools that I investigated were the Atria tools used to debug and to browse code. I also investigated the use of Parasoft Insure to determine code coverage and the integrity of the code.
These tools help me to understand the code that I was testing and to ensure that we developed tests that yielded good code coverage.
- Helped in configuration management with Clearcase for the team of developers of which I was a member.
- Salvaged an almost failed project (a data recording and playback package) and made the application a useful tool.
For both projects the NASA quality assurance procedures (NASA-STD-2201) were followed.
Return