Just What Did Al Prosser Do in The Space Program?
Besides take this picture of the Challenger when it was new
Click for larger image
Up until October 1997, I maintained special computer applications to support
the contract to supply software for the onboard computers for the Space
Shuttle. I keep this page so that when someone asks what I did there, I can tell
them to look at my web page for details instead of talking for 5 minutes
before realizing that they do not understand what I am talking about. Anyone
capable of understanding, or at least appreciating what I do, is usually
capable of reading it here.
There was an article a coule years ago about my former workplace in a magazine called Fast
Company. It is called
They Write the Right Stuff and it can be accessed from
https://www.fastcompany.com/28121/they-write-right-stuff (note new archive URL).
More information on the Space Shuttle can be found at http://spaceflight.nasa.gov/
where information is kept on the latest flight.
I used to work for Lockheed Martin Space Mission Systems & Services Company on the contract
to NASA for the Software for the Onboard Computers for the Space Shuttle.
I was a Senior Engineering Systems Analyst (or some similiar title). I used
to work for IBM Federal Systems, beginning as a COOP in 1982, then "permanently"
in 1986. I went with the rest of the contract to Loral when the division
was sold to them, then to Lockheed Martin when the companies merged.
Under the IBM terminology I would have been considered a Staff Programmer. I had
a wide variety of duties:
- Requirements Analyst and Verifier for the special Link Edit program
for the AP101 computers on the Space
Shuttle. This program has to handle the complicated overlays to get
around the small memory on the AP101S computers.
Verification involves analysis of the change to be tested, writing up a
test plan, creating and running test cases with the conditions to be tested,
and written analysis of the results to be reviewed by a peer and archived
for future reference. With the AP101 Linkage Editor (LE for short), this
can involve searching 10s of thousands of lines of binary data, editing
program modules in hex to change one or two bits to get a particular error
message, and changing JCL to pick up the changes. The printout (if it was
printed) for a LE run for a particular mission is more than half a box
thick. I get a lot of use out of the ISPF edit/browse hex mode and SuperCompare
on the mainframe, and the hex/decimal/binary calculator program on my workstation.
Due to my expertise on the function of this program, (and the departure
of the real guru), I was sometimes called on to be one of the people to
trace down unexpected conditions in the flight software, especially if
they could be caused by Link Editor or System Architecture changes. The
current program is written in IBM 370 Assembly Language, and I was also
on the team (as a verifier, requirements analyst, and domain expert) to re-engineer this
program using Object Oriented methodology into C++.
- Verifier for several reusable C++ classes used in various re-engineering
projects. The compiler we began using on MVS from SAS does not have a rich
library of reusable components so as we created classes for various projects,
we tried to make them reusable. I also verified that these classes worked suitably
to be reused on other projects. I was responsible for testing classes used
for Strings, Dynamic Dataset Allocation, Library (similar to a path), a
Parser/Scanner generator, Smart Memory (shared pointers), Bitstrings, and
a standard error message class. We were also working on classes to read, write and
manipulate executable code for AP101 computers to help with
the new Linkage Editor for the Space Shuttle computers.
Our project did not have experience with Object Oriented Methods until
recently. Our processes were very good for the maintenance mode we are in
for most of our software. (We were one of the first to get CMM Level 5 rating).
The verification of supposedly reusable C++ components
required some major changes to the process, most dramatic was the need for the verifier
to be able to write driver programs (as opposed to driver data)
to exercise different program paths. Also, since some of the code was extracted
from a written application and made reusable, in most cases I have
had to verify that it works before the requirements are finalized. I wrote
up a couple page verification approach to use until we finalized changes
to our official procedures.
- Developer/ Maintainer for various programs used to test the process
that reconfigures the Flight Software for the Space Shuttle for each flight.
I personally maintained 30-40 thousand lines of very complicated, if mostly
stable, code. I have designed and written a couple approximately 10 thousand
line applications and several smaller ones. These kinds of applications
are written using ISPF and JCL to run background programs written in PL/I
on NASA's MVS mainframe computers, and are written in PL/I, Clist, Rexx,
and the ISPF components.
- I helped maintain the ISPF primary option menus for the project. Recently,
as part of a cnoversion to a newer operating system, I converted the menus
from the old Panel language to DTL, which is related to HTML.
ISPF is kind of like Windows for mainframes. I later created and presented a
course (overview, really) on this type of programming.
- NASA certified RACF Group Administrator for several departments. I
have been responsible for monitoring the security protection of some of
the department level datasets. I also processed userid requests, reset passwords, etc.
- Occasionally act as a PL/I, ISPF, or Clist expert.
- Sometime maintainer of a number of user productivity types of utilities
used on NASA's MVS (IBM or compatible) mainframe.
- I wrote and maintained a prototype application that helps the
documentation specialists manage versions and revisions of the many requirements
documents and user's guides written Bookmaster on the mainframe. They can
edit and print a working copy without worrying about which file has the
- I maintained the application that builds changes to the IMS transactions
written in ADF for our configuration management data base. (Since 1986!)
I suspect that by now they should have the databases converted to ORACLE.
- Provide input to quality standards and procedures. I did this quite a lot over the years.
I have seen a lot of evolution of the state of the art of software engineering from the
- Backup or Department representative to a number of configuration
control boards. I have been a primary representative to most of them
at one time or another. OBS is ISO 9001 certified, and has
a Software Engineering Institute (SEI) Capability Maturity Model (CMM) rating of 5.
(See www.sei.cmu.edu for more
information on CMM.
There were boards for change control for the major tools,
discrepancies (errors) for the major tools, configuration control for minor tools,
and some that discussed procedures. There would also be projects such as upgrade to a new
operating system version or Year 2000 testing.
Return to Contents
Since I started at IBM, I have worked on a wide variety of tasks that I
am not currently responsible for.
- I maintained the PL/I, ISPF, JCL programs that used to build the internally
used tools on the mainframe. I wrote much of the interface and error checking
while I was still a college COOP. It has since been replaced with an ORACLE
- I wrote the prototype for the program to track changes and dependencies
in the internal tools. It was used for about 5 years, but has been replaced
by an ORACLE application.
- For several years, I was one of the original representatives to the
board that tracks changes to the less critical, internal tools, and helped
draft original standards and procedures (now called the Backroom Tools
- While in college, I wrote the prototype for the program IBM used to
filter opinion survey results so that answers could not be associated with
individual employees. Perhaps that is why I am so adamant that a means
for upper management to get anonymous feedback from employees is so important.
It improves morale and productivity and keeps middle management more responsible.
- I wrote a large (>10 KSLOC) ISPF-PL/I-JCL application that starts
and checks all the batch jobs to build a software release for either the
Flight Software or Application Tools Software for the Space Shuttle. The
jobs have to execute in a particular order, and the application creates
the JCL, submits the jobs, and checks that each job completes before any
jobs that depend on it are run.
Return to Contents
I have used the following languages/tools at various times:
- Recently have been using PL/SQL
- Did some work with FOCUS 4GL query language for getting reports about computer charges.
- PL/I - 14+ yrs experience, writing and maintaining scores of thousands
of lines of code. Much code for complex ISPF or batch programs, occasionally
one or two to access IMS databases or VSAM datasets. I wrote some of the
PL/I coding standards for our project. I have written a small amount of
PL/I code to access IMS databases.
- Clist - a command language on MVS mainframe.
- The various languages for using ISPF on an MVS mainframe. 14+ years
- HAL/S - a special language used to write software for the Space Shuttle.
- JCL - a batch language for MVS computers.
- C++ - mostly on IBM mainframe, but also on OS/2 work stations. About 4 years off and on. I worked on a reusable library of classes for strings, containers, and lexical scanner and parser generators. I was on the design team and was the independent verifier for most classes.
- I have used Lotus Notes for about three and a half years.
- Paradigm Plus - an Object Oriented CASE tool. I have used it to document
design of scores of classes. I did some script customization. I used it
for some early design work that has transitioned to others.
- REXX - here and there on workstation and mainframe. Used for new applications
instead of Clist.
- Script/Bookmaster - a SGML documentation markup language related to
HTML. I used them for about 11 years.
- I write some HTML from time to time.
- I have used Lotus Smartsuite and MS Office applications for documentation at work
or personal or charity projects at home as needed for a few years.
- I have set up several Access databases for charity.
- Ada - took a class for a contract we did not win, and a research experiment
to compare an automatic code generator against a human programmer (me).
For the application domain, my Ada code was an order of magnitude faster
than the machine generated code.
- Occasionally I was a reviewer for code written in a FORTRAN or Assembly
- PVS - a special tool for using
Formal Methods to do logical proofs.
Can be used for checking requirements. I took a class at NASA Langley in
the use of this tool. They used it to check the requirements for adding
GPS support to the Space Shuttle navigation software.
Most of my work is done on IBM Compatible mainframe computers running MVS versions and OS/390.
I have been using OS/2 since version 1.3 came out. I have used a wide variety
of OS/2, DOS, and Windows applications.
Return to Contents
Return to Current Work Page
Updated September 03, 2002