Маргарет Хэфилд Гамильтон (; род. 17 августа 1936, Пейоли, Индиана, США) — американский учёный в сфере информатики, системный инженер и владелица бизнеса. Она возглавляла отдел разработки программного обеспечения (ПО) Массачусетского технологического института (MIT). Отдел разрабатывал бортовое программное обеспечение для космической программы НАСА «Аполлон». В 1976 году она основала компанию Higher Order Software, а в 1986 году — Hamilton Technologies, Inc. в Кембридже, штат Массачусетс.
Гамильтон опубликовала более 130 научных работ, трудов и отчётов по шестидесяти проектам и шести крупным программам. Она — одна из тех специалистов, с кем связывают появление термина «разработка программного обеспечения».
22 ноября 2016 года Гамильтон получила Президентскую медаль Свободы от Барака Обамы за свою работу, приведшую к разработке бортового ПО для лунной программы НАСА.
Ранние годы Маргарет Хэфилд родилась 17 августа 1936 года в Пейоли, штат Индиана, в семье Кеннета и Рут Эстер Хэфилд. После окончания средней школы Хэнкок в 1954 году она изучала математику в Мичиганcком университете. В 1958 году она получает степень бакалавра по профилю математики и философии в .
По окончании учёбы Маргарет некоторое время преподаёт математику в средней школе и французский язык, обеспечивая семью, пока муж работал над дипломом бакалавра в Гарвардском университете. Затем переезжает в Бостон, чтобы окончить аспирантуру в области абстрактной математики в университете Брандейса. Гамильтон отмечает Флоренс Лонг, глава математического факультета в колледже Эрлхэм, благодаря помощи которой в абстрактной математике она становится профессором. В числе других людей-вдохновителей, уже вне мира технологий, она отмечает своего отца, философа и поэта, и своего деда, директора школы и священника-квакера, повлиявших на получение ею учёной степени по философии.
Карьера Летом 1959 года Гамильтон начала работать у Эдварда Лоренца в отделе метеорологии в MIT. Она участвовала в разработке программного обеспечения для прогнозирования погоды для компьютеров LGP-30 и PDP-1 в Марвина Мински. Она внесла вклад в работы Лоренца по теории хаоса. В то время информатика и разработка программного обеспечения ещё не были устоявшимися дисциплинами, и программисты учились на работе, на собственном практическом опыте. Летом 1961 года она перешла в другой проект, наняв и обучив себе на замену.
Проект SAGE С 1961 по 1963 год Гамильтон работала в проекте SAGE Лаборатории Линкольна, где была одной из программистов, создававших программное обеспечение для прототипа системы , занимавшейся поиском самолётов противника. Она также написала программное обеспечение для проекта слежения со спутников в . Проект SAGE был продолжением проекта Whirlwind, начатого MIT для создания компьютерной системы прогнозирования погоды и движения атмосферных вихрей. Вскоре SAGE был доработан для военного использования в противовоздушной обороне от возможного нападения СССР во время Холодной войны.
Именно усилия Гамильтон в этом проекте сделали её кандидатом на должность ведущего разработчика программного обеспечения НАСА для программы Apollo.
Лаборатория Дрейпера
Затем Гамильтон примкнула к команде в MIT, которая работала для программы «Аполлон». В конце концов она возглавила команду, которой была поручена разработка программного обеспечения корабля «Аполлон» и орбитальной станции Скайлэб. Команда Гамильтон отвечала за полётное программное обеспечение, которое включало алгоритмы, разработанные несколькими ведущими учёными для командного модуля «Аполлона», лунного посадочного модуля и «Скайлэб». Другая часть её команды спроектировала и разработала системное программное обеспечение. Оно включало программное обеспечение для обнаружения и исправления ошибок, такие как перезапуски и «Процедуры интерфейса индикации» (также известные как «Приоритетные индикации»), которые спроектировала и разработала Гамильтон. Она работала, чтобы получить практический опыт в то время, когда курсы информатики были редким явлением, а курсы разработки программного обеспечения ещё не существовали. Гамильтон также занимала должность руководителя отдела разработки программного обеспечения.
В сферу её компетенции входят системная архитектура и разработка программного обеспечения, и бизнес-процессов, парадигма разработки, формальные языки , системно-ориентированные объекты для моделирования и разработки систем, автоматизированные среды жизненного цикла, методы повышения качества программного обеспечения и степени повторного использования кода, , обеспечение с помощью встроенных языковых средств, методы открытой архитектуры надёжных систем, полная автоматизации жизненного цикла, методики обеспечения качества, бесшовная интеграция, техники обнаружения и исправления ошибок, интерфейсы пользователя, операционные системы, сквозное тестирование, методики управления жизненным циклом.
Аполлон-11 В один из критических моментов программы «Аполлон-11» полётное программное обеспечение бортовой ЭВМ предотвратило срыв посадки на Луну. За три минуты до того, как лунный модуль достиг поверхности Луны, сработало несколько сигналов тревоги. Компьютер был перегружен прерываниями, вызванными неправильной фазой питания, подаваемого на радар обеспечения стыковки лунного модуля. Аварийные сигналы программы указывали на «переполнение исполнительной системы», означающее, что управляющий компьютер не мог в режиме реального времени выполнить все задачи и вынужден был некоторые отложить Chapter 11.4.. Асинхронный исполнительный модуль, разработанный , использовался командой Гамильтон для разработки асинхронного полётного программного обеспечения:
Приоритетные сигналы тревоги Гамильтон прерывали штатную индикацию на дисплеях астронавтов, чтобы предупредить их, что произошла чрезвычайная ситуация, «дающая астронавтам возможность выбора садиться или не садиться». , инженер НАСА по управлению полётами, понял смысл ошибок, которые увидели космонавты на приоритетных индикациях, выкрикнул: «давай, давай!», и они продолжили посадку. Пол Курто, старший технолог, выдвинувший Гамильтон на премию NASA Space Act Award, назвал её работу «фундаментом сверхнадёжного проектирования программного обеспечения».
Гамильтон позже писала об инциденте:
Собственные компании В 1976 году Гамильтон с компаньоном основали компанию под названием Higher Order Software (HOS) для дальнейшего развития идей по предотвращению ошибок и отказоустойчивости ПО на основе опыта работы в MIT. Они создали программный продукт USE.IT, основанный на методологии HOS, разработанной в MITM. Hamilton, S. Zeldin (1976) "Higher order software—A methodology for defining software" IEEE Transactions on Software Engineering, vol. SE-2, no. 1, Mar. 1976.Thompson, Arthur A.; Strickland, A. J., (1996), "Strategic Management: Concepts and Cases", McGraw-Hill Companies, . Он был успешно использован в многочисленных государственных проектах. Один известный проект состоял в формализации и внедрении C-IDEF, автоматизированной версии IDEF, языка моделирования, разработанного ВВС США в проекте .
Согласно одной критической оценке, проведённой консультантом ВМС США, утверждалось, что «книги по HOS скорее рекламируют свои идеи и продукты, чем вносят существенный вклад в область компьютерных наук». Эдсгер Дейкстра описал программное обеспечение USE.IT как «механические средства по применению устаревших методов». Теория HOS была использована Харелом для разработки производного языка для более современной формы структурированного программирования, производного от HOS, называемого языком программирования «И/ИЛИ». Другие использовали HOS для формализации семантики лингвистических квантификаторов и формализации проектирования надежных встроенных систем реального времени.
Гамильтон была генеральным директором HOS до 1984 года и покинула компанию в 1985 году. В марте 1986 года она основала Hamilton Technologies в Кембридже (штат Массачусетс). Компания строилась вокруг языка и связанной с ним автоматизированной среды, 001 Tool Suite, на основе парадигмы «Разработка перед фактом» для проектирования систем и разработки программного обеспечения. Наследие
Гамильтон, и Барри Боэму приписывают появление дисциплины «разработка программного обеспечения». Согласно Гамильтон:
Гамильтон рассказывает, как она пришла к термину «разработка программного обеспечения»:
Когда Гамильтон начала использовать термин «разработка программного обеспечения» во время первых программ «Аполлон», по сравнению с другими видами разработок, разработка программного обеспечения всерьёз не воспринималась и не рассматривалась как наука. Со временем термин «разработка программного обеспечения» приобрёл такое же уважение, как и любая другая техническая дисциплина. В выпуске журнала IEEE Software за сентябрь-октябрь 2018 года отмечалось 50-летие разработки программного обеспечения. Гамильтон рассказывает об «ошибках», о том, как они повлияли на разработку программного обеспечения, и о том, как язык USL можно использовать для предотвращения большинства «ошибок» в системе. В журнале Wired Роберт Макмиллан отметил: «В MIT Гамильтон способствовала созданию основных принципов программирования, разрабатывая с коллегами код для первого в мире портативного компьютера». Инновации Гамильтон выходят за рамки участия в доставке людей на Луну. Карен Теган Падид писала в Wired: «Она, наряду с другим пионером программирования, Грейс Хоппер, создательницей языка COBOL, также имеет большие заслуги в том, что у женщин стало больше возможностей добиться успеха в такой технической области, как программное обеспечение».
Награды
В 1986 году Гамильтон получила премию Ады Лавлейс от Ассоциации женщин в области компьютерных технологий. В 2003 году она получила награду НАСА за выдающиеся достижения в области космоса. К награде прилагалась сумма в долларов США — самая большая сумма, присуждавшаяся в истории НАСАMichael Braukus NASA News "NASA Honors Apollo Engineer" (September 3, 2003)NASA Press Release "NASA Honors Apollo Engineer" (September 3, 2003)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.". В 2009 году она получила премию, присуждаемую выдающимся выпускникам колледжа Эрлхэм. В 2016 году она получила Президентскую медаль свободы от Барака Обамы, высшую гражданскую награду США. 28 апреля 2017 года она получила награду Музея компьютерной истории, которая вручается выдающимся мужчинам и женщинам, чьи идеи в области компьютеров изменили мир. В 2017 году в продажу поступил набор LEGO «Женщины из НАСА», в котором представлены фигурки Гамильтон, Мэй Джемисон, Салли Райд и Нэнси Роман. В 2018 году она получила почётную докторскую степень .
Личная жизнь Маргарет познакомилась со своим мужем Джеймсом Коксом Гамильтоном во время учёбы в колледже Эрлхэм. Они поженились в конце 1950-х годов после того, как Гамильтон получила степень бакалавра. У них родилась дочь Лорен. Пара в разводе.
Публикации M. Hamilton (1994), "Inside Development Before the Fact, " cover story, Special Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994. M. Hamilton (1994), "001: A Full Life Cycle Systems Engineering and Software Development Environment, " cover story, Special Editorial Supplement, 22ES-30ES. Electronic Design, Jun. 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. 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. M. Hamilton and W. R. Hackler (2007), «A Formal Universal Systems Semantics for SysML», 17th Annual International Symposium, INCOSE 2007, San Diego, CA, Jun. 2007.