Loading AI tools
американский учёный из НАСА и математик Из Википедии, свободной энциклопедии
Маргарет Хэфилд Гамильтон (англ. Margaret Heafield Hamilton; род. 17 августа 1936, Пейоли, Индиана, США) — американский учёный в сфере информатики, системный инженер и владелица бизнеса. Она возглавляла отдел разработки программного обеспечения (ПО) лаборатории измерительных систем[англ.] Массачусетского технологического института (MIT). Отдел разрабатывал бортовое программное обеспечение для космической программы НАСА «Аполлон». В 1976 году она основала компанию Higher Order Software, а в 1986 году — Hamilton Technologies, Inc. в Кембридже, штат Массачусетс.
Маргарет Гамильтон | |
---|---|
англ. Margaret Hamilton | |
Имя при рождении | англ. Margaret Hamilton[1] |
Дата рождения | 17 августа 1936[2] (88 лет) |
Место рождения | |
Страна | |
Род деятельности | специалист в области информатики, математик, инженер, бизнесвумен |
Научная сфера | информатика[1] |
Место работы | |
Альма-матер | |
Награды и премии | |
Медиафайлы на Викискладе |
Гамильтон опубликовала более 130 научных работ, трудов и отчётов по шестидесяти проектам и шести крупным программам. Она — одна из тех специалистов, с кем связывают появление термина «разработка программного обеспечения».
22 ноября 2016 года Гамильтон получила Президентскую медаль Свободы от Барака Обамы за свою работу, приведшую к разработке бортового ПО для лунной программы НАСА.
Маргарет Хэфилд родилась 17 августа 1936 года в Пейоли, штат Индиана, в семье Кеннета и Рут Эстер Хэфилд[4][5]. После окончания средней школы Хэнкок в 1954 году[4] она изучала математику в Мичиганcком университете. В 1958 году она получает степень бакалавра по профилю математики и философии в колледже Эрлхэм[англ.][6][7].
По окончании учёбы Маргарет некоторое время преподаёт математику в средней школе и французский язык, обеспечивая семью, пока муж работал над дипломом бакалавра в Гарвардском университете. Затем переезжает в Бостон, чтобы окончить аспирантуру в области абстрактной математики в университете Брандейса. Гамильтон отмечает Флоренс Лонг, глава математического факультета в колледже Эрлхэм, благодаря помощи которой в абстрактной математике она становится профессором[8]. В числе других людей-вдохновителей, уже вне мира технологий, она отмечает своего отца, философа и поэта, и своего деда, директора школы и священника-квакера, повлиявших на получение ею учёной степени по философии[9].
Летом 1959 года Гамильтон начала работать у Эдварда Лоренца в отделе метеорологии в MIT[10]. Она участвовала в разработке программного обеспечения для прогнозирования погоды для компьютеров LGP-30 и PDP-1 в проекте MAC[англ.] Марвина Мински[11][12][13]. Она внесла вклад в работы Лоренца по теории хаоса. В то время информатика и разработка программного обеспечения ещё не были устоявшимися дисциплинами, и программисты учились на работе, на собственном практическом опыте[14]. Летом 1961 года она перешла в другой проект, наняв и обучив Эллен Феттер[англ.] себе на замену[10].
С 1961 по 1963 год Гамильтон работала в проекте SAGE Лаборатории Линкольна[12], где была одной из программистов, создававших программное обеспечение для прототипа системы AN/FSQ-7 (XD-1)[англ.], занимавшейся поиском самолётов противника[15]. Она также написала программное обеспечение для проекта слежения со спутников в Кэмбриджском исследовательском центре ВВС США[англ.][12]. Проект SAGE был продолжением проекта Whirlwind, начатого MIT для создания компьютерной системы прогнозирования погоды и движения атмосферных вихрей. Вскоре SAGE был доработан для военного использования в противовоздушной обороне от возможного нападения СССР во время Холодной войны.
Когда вы приходите в данную организацию, то обычно вам, как новичку, дают эту программу, которую никто и никогда не мог ни понять, ни запустить; и со мной было так же. Программирование этого оказалось сложной задачей, а тот, кто писал код программы, получал кайф, оставляя комментарии на греческом и латыни. И вот меня сажают на эту программу, но я всё-таки заставляю её работать. Программа даже распечатывала ответы на латыни и греческом. Я стала первой, кто заставил её работать[16].
Именно усилия Гамильтон в этом проекте сделали её кандидатом на должность ведущего разработчика программного обеспечения НАСА для программы Apollo[4].
Затем Гамильтон примкнула к команде Лаборатории Дрейпера[англ.] в MIT, которая работала для программы «Аполлон». В конце концов она возглавила команду, которой была поручена разработка программного обеспечения корабля «Аполлон» и орбитальной станции Скайлэб[19]. Команда Гамильтон отвечала за полётное программное обеспечение[20], которое включало алгоритмы, разработанные несколькими ведущими учёными для командного модуля «Аполлона», лунного посадочного модуля и «Скайлэб»[14][14][21]. Другая часть её команды спроектировала и разработала системное программное обеспечение[22]. Оно включало программное обеспечение для обнаружения и исправления ошибок, такие как перезапуски и «Процедуры интерфейса индикации» (также известные как «Приоритетные индикации»), которые спроектировала и разработала Гамильтон[23]. Она работала, чтобы получить практический опыт в то время, когда курсы информатики были редким явлением, а курсы разработки программного обеспечения ещё не существовали[14]. Гамильтон также занимала должность руководителя отдела разработки программного обеспечения[24].
В сферу её компетенции входят системная архитектура и разработка программного обеспечения, моделирование предприятия[англ.] и бизнес-процессов, парадигма разработки, формальные языки моделирования систем[англ.], системно-ориентированные объекты для моделирования и разработки систем, автоматизированные среды жизненного цикла, методы повышения качества программного обеспечения и степени повторного использования кода, анализ прикладной области[англ.], обеспечение корректности алгоритмов[англ.] с помощью встроенных языковых средств, методы открытой архитектуры надёжных систем, полная автоматизации жизненного цикла, методики обеспечения качества, бесшовная интеграция, техники обнаружения и исправления ошибок, интерфейсы пользователя, операционные системы, сквозное тестирование, методики управления жизненным циклом[14][17].
В один из критических моментов программы «Аполлон-11» полётное программное обеспечение бортовой ЭВМ предотвратило срыв посадки на Луну. За три минуты до того, как лунный модуль достиг поверхности Луны, сработало несколько сигналов тревоги. Компьютер был перегружен прерываниями, вызванными неправильной фазой питания, подаваемого на радар обеспечения стыковки лунного модуля[25][26][27]. Аварийные сигналы программы указывали на «переполнение исполнительной системы», означающее, что управляющий компьютер не мог в режиме реального времени выполнить все задачи и вынужден был некоторые отложить[28]. Асинхронный исполнительный модуль, разработанный Дж. Холкомбом Лэйнингом[англ.][25][29], использовался командой Гамильтон для разработки асинхронного полётного программного обеспечения:
Благодаря методам обнаружения и восстановления ошибок системной части полетного программного обеспечения, которые включали в себя общесистемный подход «убить и заново вычислить» от подхода перезапуска из «безопасного места» до техник снимка системы и отката, стало возможным разработать процедуры интерфейса индикации (приоритетные индикации) вместе с функцией «человек в цикле[англ.]» для обеспечения возможности прервать штатную индикацию на дисплеях астронавтов приоритетной индикацией критических сигналов тревоги в случае чрезвычайной ситуации. Поведение зависело от назначенных нами в программном обеспечении уникальных приоритетов для каждого процесса — это гарантировало, что все события будут происходить в нужное время и в правильном порядке относительно других событий[30].
Приоритетные сигналы тревоги Гамильтон прерывали штатную индикацию на дисплеях астронавтов, чтобы предупредить их, что произошла чрезвычайная ситуация, «дающая астронавтам возможность выбора садиться или не садиться»[31]. Джек Гармэн[англ.], инженер НАСА по управлению полётами, понял смысл ошибок, которые увидели космонавты на приоритетных индикациях, выкрикнул: «давай, давай!», и они продолжили посадку[32]. Пол Курто, старший технолог, выдвинувший Гамильтон на премию NASA Space Act Award, назвал её работу «фундаментом сверхнадёжного проектирования программного обеспечения»[22].
Гамильтон позже писала об инциденте:
Компьютер (или, вернее, программное обеспечение в нём) был достаточно умён, чтобы понять, что его просят выполнить больше задач, чем следует. Затем он отправил сигнал тревоги, который означал: «Я перегружен большим количеством задач, чем должен был выполнять в это время, и оставлю только наиболее важные задачи»; то есть задачи, которые необходимы для посадки... На самом деле, компьютер был запрограммирован на большее, чем распознавать ошибки. В программном обеспечении был задействован полный набор процедур восстановления. В данном случае программное обеспечение сняло задачи с более низким приоритетом и восстановило более важные задачи... Если бы компьютер не распознал эту проблему и не предпринял действий по восстановлению, я сомневаюсь, что Аполлон-11 успешно сел на Луну[33].
В 1976 году Гамильтон с компаньоном основали компанию под названием Higher Order Software (HOS)[34] для дальнейшего развития идей по предотвращению ошибок и отказоустойчивости ПО на основе опыта работы в MIT[35]. Они создали программный продукт USE.IT, основанный на методологии HOS, разработанной в MIT[36][37][38]. Он был успешно использован в многочисленных государственных проектах[39][40]. Один известный проект состоял в формализации и внедрении C-IDEF, автоматизированной версии IDEF, языка моделирования, разработанного ВВС США в проекте интегрированного автоматизированного производства (ICAM)[англ.][41].
Согласно одной критической оценке, проведённой консультантом ВМС США, утверждалось, что «книги по HOS скорее рекламируют свои идеи и продукты, чем вносят существенный вклад в область компьютерных наук»[42]. Эдсгер Дейкстра описал программное обеспечение USE.IT как «механические средства по применению устаревших методов»[43]. Теория HOS была использована Харелом[кто?] для разработки производного языка для более современной формы структурированного программирования, производного от HOS, называемого языком программирования «И/ИЛИ»[44]. Другие использовали HOS для формализации семантики лингвистических квантификаторов[45] и формализации проектирования надежных встроенных систем реального времени[46].
Гамильтон была генеральным директором HOS до 1984 года[35] и покинула компанию в 1985 году. В марте 1986 года она основала Hamilton Technologies в Кембридже (штат Массачусетс). Компания строилась вокруг языка USL[англ.] и связанной с ним автоматизированной среды, 001 Tool Suite, на основе парадигмы «Разработка перед фактом» для проектирования систем и разработки программного обеспечения[27][47][48].
Гамильтон, Энтони Эттингеру[англ.] и Барри Боэму приписывают появление дисциплины «разработка программного обеспечения»[49][50]. Согласно Гамильтон:
Работая в MIT, она хотела дать своему программному обеспечению «легитимность», как и в случае с другими инженерными дисциплинами, чтобы и ПО, и тем, кто его разрабатывает, было уделено должное внимание. В результате она предложила термин «разработка программного обеспечения», чтобы отличать его от других видов разработки[15].
Гамильтон рассказывает, как она пришла к термину «разработка программного обеспечения»:
Когда я впервые придумала этот термин, никто о нем ранее не слышал, по крайней мере, в нашем мире. Над этим непрестанно шутили в течение долгого времени. Людям нравилось подкалывать меня по поводу моих радикальных идей. Не забуду тот день, когда один из наиболее уважаемых гуру-"аппаратчиков" на техническом совещании объяснил всем, что он согласен со мной, что процесс создания программного обеспечения также следует рассматривать как инженерную дисциплину, как и в случае с оборудованием. Не потому, что он принял новый «термин» как таковой, а потому, что мы заслужили одобрение с его стороны и со стороны других присутствующих, поскольку термин по полному праву принадлежит инженерной области[30].
Когда Гамильтон начала использовать термин «разработка программного обеспечения» во время первых программ «Аполлон»[51][52], по сравнению с другими видами разработок, разработка программного обеспечения всерьёз не воспринималась[53] и не рассматривалась как наука. Со временем термин «разработка программного обеспечения» приобрёл такое же уважение, как и любая другая техническая дисциплина[49][54]. В выпуске журнала IEEE Software за сентябрь-октябрь 2018 года отмечалось 50-летие разработки программного обеспечения[55]. Гамильтон рассказывает об «ошибках», о том, как они повлияли на разработку программного обеспечения, и о том, как язык USL можно использовать для предотвращения большинства «ошибок» в системе[56]. В журнале Wired Роберт Макмиллан отметил: «В MIT Гамильтон способствовала созданию основных принципов программирования, разрабатывая с коллегами код для первого в мире портативного компьютера»[57]. Инновации Гамильтон выходят за рамки участия в доставке людей на Луну. Карен Теган Падид писала в Wired: «Она, наряду с другим пионером программирования, Грейс Хоппер, создательницей языка COBOL, также имеет большие заслуги в том, что у женщин стало больше возможностей добиться успеха в такой технической области, как программное обеспечение»[58][59].
Маргарет познакомилась со своим мужем Джеймсом Коксом Гамильтоном во время учёбы в колледже Эрлхэм. Они поженились в конце 1950-х годов после того, как Гамильтон получила степень бакалавра. У них родилась дочь Лорен. Пара в разводе[69].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.