Hamilton as Lead Apollo Flight Software Designer
(Link) NASA Office of Logic Design
Margaret Hamilton (born 1938) is an American former NASA scientist, and founder and CEO of software development company Hamilton Technologies, Inc. At NASA she was Director of the Software Engineering Division of the MIT Instrumentation Laboratory, later the Charles Stark Draper Laboratory, which played a key role in the success of the Apollo space program.
At NASA Hamilton was responsible for helping pioneer the Apollo on-board guidance software required to navigate to/from and land on the moon, and its multiple variations used on numerous missions (including the subsequent Skylab.) She worked to gain hands-on experience during a time when computer science and software engineering courses or disciplines were non-existent.
In the process, she produced innovations in the fields of system design and software development, enterprise and process modelling, preventative systems design, development paradigm, formal systems (and software) modelling languages, system-oriented objects for systems modelling and development, automated life-cycle environments, methods for maximizing software reliability and reuse, domain analysis, correctness by built-in language properties, open-architecture techniques for robust systems, full life-cycle automation, quality assurance, seamless integration (including systems to software), distributed processing systems, error detection and recovery techniques, man/machine interface systems, operating systems, end-to-end testing techniques, and life-cycle management techniques.
These in turn led her to develop concepts of asynchronous software, priority scheduling, and man-in-the-loop decision capability, which became the foundation for modern, ultra-reliable software design.
Preventing an abort of the Apollo 11 mission has been attributed to her work. Just three minutes before the Lunar lander reached the Moon's surface several computer alarms were triggered. The cause of the alarms was an overload of incoming to the Apollo Guidance Computer (AGC). Due to its robust architecture, the computer was able to keep running, as the Apollo onboard flight software was developed using an asynchronous executive so that higher priority jobs (e.g. important for landing) could interrupt lower priority jobs. A 2005 re-analysis concluded that a hardware design error in the rendezvous radar provided the computer with faulty information even while in standby mode.
Margaret Hamilton, on the design of the Apollo 11 Guidance Computer software:
". . . the computer was being asked to perform all of its normal functions for landing while receiving an extra load of spurious data which used up 15% of its time. The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I'm overloaded with more tasks than I should be doing at this time and I'm going to keep only the more important tasks; i.e., the ones needed for landing ... Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software's action, in this case, was to eliminate lower priority tasks and re-establish the more important ones ... If the computer hadn't recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful [M]oon landing it was.
—Margaret Hamilton, Letter to Datamation, March 1, 1971
Margaret's current activities as of February 2010 include fulfilling her role as the founder and CEO of Hamilton Technologies, Inc., a business developed around the Universal Systems Language (USL) which is in turn based upon her Development Before The Fact (DBTF) paradigm for systems and software design.
- M. Hamilton, S. Zeldin (1976) "Higher order software—A methodology for defining software" IEEE Transactions on Software Engineering, vol. SE-2, no. 1, Mar. 1976.
- M. Hamilton (1994), “Inside Development Before the Fact,” cover story, Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994.
- M. Hamilton, Hackler, W.R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003-2004.
- M. Hamilton and W.R. M. Hackler (2007), “Universal Systems Language for Preventative Systems Engineering,” Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, Mar. 2007, paper #36.