Jump to content

Margaret Hamilton (software engineer)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 24.43.3.130 (talk) at 18:32, 11 December 2014 (→‎Awards). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Margaret Hamilton
Margaret Hamilton (1995 photo)
Born1938
Occupation(s)CEO of Hamilton Technologies, Inc.

Margaret Hamilton (born 1938) is a computer scientist and mathematician. She was Director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for the Apollo space program.[1]

In 1986, she became the founder and CEO of Hamilton Technologies, Inc. in Cambridge, Massachusetts. The company was developed around the Universal Systems Language based on her paradigm of Development Before The Fact for systems and software design.[2]

Biography

Hamilton graduated Hancock High School in 1954 and earned a B.A. in mathematics from Earlham College in 1958. She moved to Massachusetts with the intention of doing graduate study at Brandeis, but instead took a position at MIT as a software developer.[3]

NASA

File:Margaret in action 1.jpg
Hamilton during her time as lead Apollo flight software designer.

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).[1] 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.[1]

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.

Margaret Hamilton during the Apollo Program.

Apollo 11

Hamilton's work prevented an abort of the Apollo 11 moon landing:[4] Three minutes before the Lunar lander reached the Moon's surface, several computer alarms were triggered. The computer was overloaded with incoming data, because the rendezvous radar system (not necessary for landing) updated an involuntary counter in the computer, which stole cycles from the computer. Due to its robust architecture, the computer was able to keep running; the Apollo onboard flight software was developed using an asynchronous executive so that higher priority jobs (important for landing) could interrupt lower priority jobs. Initially, the fault had been attributed to a faulty checklist and the radar being erroneously activated by the crew, but 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:[5]

Due to an error in the checklist manual, the rendezvous radar switch was placed in the wrong position. This caused it to send erroneous signals to the computer. The result was that 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 moon landing it was.

— Margaret Hamilton, Letter to Datamation, March 1, 1971[6]

Software engineering

Hamilton is credited for coining the term “software engineering”.[7] In this field she pioneered the concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability, such as priority displays which then became the foundation for ultra reliable software design.[8]

The surrounding contextual setting for her developments was one in which computer science and software engineering were not yet disciplines; instead learning was done on the job with hands on experience. Hamilton rose through the ranks by gaining experience and contributing towards uncharted territory in space science.[1]

Awards

  • In 2003, Hamilton earned a NASA Exceptional Space Act Award for her scientific and technical contributions. The award included $37,200, the largest amount awarded to any individual in NASA's history.[9][8][4]

Publications

Hamilton has published over 130 papers, proceedings and reports concerned with the 60 projects and 6 major programs in which she has been involved.[1] Key papers include:

  • 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.

References

  1. ^ a b c d e NASA Office of Logic Design "About Margaret Hamilton" (Last Revised: February 03, 2010)
  2. ^ M. Hamilton, W.R. Hackler (December 2008). "Universal Systems Language: Lessons Learned from Apollo". IEEE Computer. doi:10.1109/MC.2008.541.
  3. ^ a b Cambridge Women's Heritage Project "Margaret Hamilton"
  4. ^ a b Michael Braukus NASA News "NASA Honors Apollo Engineer" (Sept. 3, 2003)
  5. ^ Eyles, Don (February 6, 2004). "Tales from the Lunar Module Guidance Computer". 27th annual Guidance and Control Conference. Breckenridge, CO: American Astronautical Society. Retrieved June 13, 2013.
  6. ^ Hamilton, Margaret H. (March 1, 1971). "Computer Got Loaded". Datamation (Letter). Cahners Publishing Company. ISSN 0011-6963.
  7. ^ By A.J.S. Rayl "NASA Engineers and Scientists-Transforming Dreams Into Reality"
  8. ^ a b NASA Press Release "NASA Honors Apollo Engineer" (September 03, 2003)
  9. ^ NASA Administrator Sean O'Keefe has commented saying “The concepts she and her team created became the building blocks for modern software engineering. It's an honor to recognize Ms. Hamilton for her extraordinary contributions to NASA.”.
  10. ^ "2009 Outstanding Alumni and Distinguished Service Awards". Earlham College. Retrieved December 10, 2014.

Template:Persondata