Interested Article - Гамильтон, Маргарет (учёный)

Маргарет Хэфилд Гамильтон ( англ. Margaret Heafield Hamilton ; род. 17 августа 1936 , , Индиана , США ) — американский учёный в сфере информатики , системный инженер и владелица бизнеса. Она возглавляла отдел разработки программного обеспечения (ПО) Массачусетского технологического института (MIT). Отдел разрабатывал бортовое программное обеспечение для космической программы НАСА « Аполлон ». В 1976 году она основала компанию Higher Order Software, а в 1986 году — Hamilton Technologies, Inc. в Кембридже , штат Массачусетс .

Гамильтон опубликовала более 130 научных работ, трудов и отчётов по шестидесяти проектам и ​​шести крупным программам. Она — одна из тех специалистов, с кем связывают появление термина « разработка программного обеспечения ».

22 ноября 2016 года Гамильтон получила Президентскую медаль Свободы от Барака Обамы за свою работу, приведшую к разработке бортового ПО для лунной программы НАСА.

Ранние годы

Маргарет Хэфилд родилась 17 августа 1936 года в , штат Индиана , в семье Кеннета и Рут Эстер Хэфилд . После окончания средней школы Хэнкок в 1954 году она изучала математику в Мичиганcком университете . В 1958 году она получает степень бакалавра по математике и философии (непрофилирующая дисциплина) в .

По окончании учёбы Маргарет некоторое время преподаёт математику в средней школе и французский язык, обеспечивая семью, пока муж работал над дипломом бакалавра в Гарвардском университете . Затем переезжает в Бостон, чтобы окончить аспирантуру в области абстрактной математики в университете Брандейса. Гамильтон отмечает Флоренс Лонг, глава математического факультета в колледже Эрлхэм, благодаря помощи которой в абстрактной математике она становится профессором . В числе других людей-вдохновителей, уже вне мира технологий, она отмечает своего отца, философа и поэта, и своего деда, директора школы и священника- квакера , повлиявших на получение ею учёной степени по философии .

Карьера

Летом 1959 года Гамильтон начала работать у Эдварда Лоренца в отделе метеорологии в MIT . Она участвовала в разработке программного обеспечения для прогнозирования погоды для компьютеров и PDP-1 в Марвина Мински . Она внесла вклад в работы Лоренца по теории хаоса . В то время информатика и разработка программного обеспечения ещё не были устоявшимися дисциплинами, и программисты учились на работе, на собственном практическом опыте . Летом 1961 года она перешла в другой проект, наняв и обучив себе на замену .

Проект SAGE

С 1961 по 1963 год Гамильтон работала в проекте SAGE Лаборатории Линкольна , где была одной из программистов, создававших программное обеспечение для прототипа системы , занимавшейся поиском самолётов противника . Она также написала программное обеспечение для проекта слежения со спутников в . Проект SAGE был продолжением проекта , начатого MIT для создания компьютерной системы прогнозирования погодных систем и отслеживания их движения при помощи симуляторов. Вскоре SAGE был доработан для военного использования в противовоздушной обороне от возможного нападения СССР во время Холодной войны .

Когда вы приходите в данную организацию, то обычно вам, как новичку, дают эту программу, которую никто и никогда не мог ни понять, ни запустить; и со мной было так же. Программирование этого оказалось сложной задачей, а тот, кто писал код программы, получал кайф, оставляя комментарии на греческом и латыни. И вот меня сажают на эту программу, но я всё-таки заставляю её работать. Программа даже распечатывала ответы на латыни и греческом. Я стала первой, кто заставил её работать .

Именно усилия Гамильтон в этом проекте сделали её кандидатом на должность ведущего разработчика программного обеспечения НАСА для программы Apollo .

Лаборатория Дрейпера

Гамильтон рядом с распечатками текста программы, которую она и её команда в MIT создали для миссии « Аполлон-11 » (1969)
Гамильтон за работой, как ведущий разработчик полётного программного обеспечения миссии «Аполлон»

Затем Гамильтон примкнула к команде в MIT, которая работала для программы «Аполлон». В конце концов она возглавила команду, которой была поручена разработка программного обеспечения корабля «Аполлон» и орбитальной станции Скайлэб . Команда Гамильтон отвечала за полётное программное обеспечение , которое включало алгоритмы, разработанные несколькими ведущими учёными для командного модуля «Аполлона», лунного посадочного модуля и «Скайлэб» . Другая часть её команды спроектировала и разработала системное программное обеспечение . Оно включало программное обеспечение для обнаружения и исправления ошибок, такие как перезапуски и «Процедуры интерфейса индикации» (также известные как «Приоритетные индикации»), которые спроектировала и разработала Гамильтон . Она работала, чтобы получить практический опыт в то время, когда курсы информатики были редким явлением, а курсы разработки программного обеспечения ещё не существовали . Гамильтон также занимала должность руководителя отдела разработки программного обеспечения .

В сферу её компетенции входят системная архитектура и разработка программного обеспечения, и бизнес-процессов , парадигма разработки, формальные языки , системно-ориентированные объекты для моделирования и разработки систем, автоматизированные среды жизненного цикла, методы повышения качества программного обеспечения и степени повторного использования кода , , обеспечение с помощью встроенных языковых средств, методы открытой архитектуры надёжных систем, полная автоматизации жизненного цикла, методики обеспечения качества , бесшовная интеграция, техники обнаружения и исправления ошибок , интерфейсы пользователя , операционные системы , сквозное тестирование, методики управления жизненным циклом .

Аполлон-11

В один из критических моментов программы « Аполлон-11 » полётное программное обеспечение бортовой ЭВМ предотвратило срыв посадки на Луну. За три минуты до того, как лунный модуль достиг поверхности Луны, сработало несколько сигналов тревоги. Компьютер был перегружен прерываниями, вызванными неправильной фазой питания, подаваемого на радар обеспечения стыковки лунного модуля . Аварийные сигналы программы указывали на «переполнение исполнительной системы», означающее, что управляющий компьютер не мог в режиме реального времени выполнить все задачи и вынужден был некоторые отложить . Асинхронный исполнительный модуль, разработанный , использовался командой Гамильтон для разработки асинхронного полётного программного обеспечения:

Благодаря методам обнаружения и восстановления ошибок системной части полетного программного обеспечения, которые включали в себя общесистемный подход «убить и заново вычислить» от подхода перезапуска из «безопасного места» до техник снимка системы и отката, стало возможным разработать процедуры интерфейса индикации (приоритетные индикации) вместе с функцией « » для обеспечения возможности прервать штатную индикацию на дисплеях астронавтов приоритетной индикацией критических сигналов тревоги в случае чрезвычайной ситуации. Поведение зависело от назначенных нами в программном обеспечении уникальных приоритетов для каждого процесса — это гарантировало, что все события будут происходить в нужное время и в правильном порядке относительно других событий .

Приоритетные сигналы тревоги Гамильтон прерывали штатную индикацию на дисплеях астронавтов, чтобы предупредить их, что произошла чрезвычайная ситуация, «дающая астронавтам возможность выбора садиться или не садиться» . , инженер НАСА по управлению полётами, понял смысл ошибок, которые увидели космонавты на приоритетных индикациях, выкрикнул: «давай, давай!», и они продолжили посадку . Пол Курто, старший технолог, выдвинувший Гамильтон на премию NASA Space Act Award, назвал её работу «фундаментом сверхнадёжного проектирования программного обеспечения» .

Гамильтон позже писала об инциденте:

Компьютер (или, вернее, программное обеспечение в нём) был достаточно умён, чтобы понять, что его просят выполнить больше задач, чем следует. Затем он отправил сигнал тревоги, который означал: «Я перегружен большим количеством задач, чем должен был выполнять в это время, и оставлю только наиболее важные задачи»; то есть задачи, которые необходимы для посадки... На самом деле, компьютер был запрограммирован на большее, чем распознавать ошибки. В программном обеспечении был задействован полный набор процедур восстановления. В данном случае программное обеспечение сняло задачи с более низким приоритетом и восстановило более важные задачи... Если бы компьютер не распознал эту проблему и не предпринял действий по восстановлению, я сомневаюсь, что Аполлон-11 успешно сел на Луну .

Собственные компании

В 1976 году Гамильтон с компаньоном основали компанию под названием Higher Order Software (HOS) для дальнейшего развития идей по предотвращению ошибок и отказоустойчивости ПО на основе опыта работы в MIT . Они создали программный продукт USE.IT, основанный на методологии HOS, разработанной в MIT . Он был успешно использован в многочисленных государственных проектах . Один известный проект состоял в формализации и внедрении C-IDEF, автоматизированной версии IDEF , языка моделирования , разработанного ВВС США в проекте .

Согласно одной критической оценке, проведённой консультантом ВМС США , утверждалось, что «книги по HOS скорее рекламируют свои идеи и продукты, чем вносят существенный вклад в область компьютерных наук» . Эдсгер Дейкстра описал программное обеспечение USE.IT как «механические средства по применению устаревших методов» . Теория HOS была использована Харелом для разработки производного языка для более современной формы структурированного программирования, производного от HOS, называемого языком программирования «И/ИЛИ» . Другие использовали HOS для формализации семантики лингвистических квантификаторов и формализации проектирования надежных встроенных систем реального времени .

Гамильтон была генеральным директором HOS до 1984 года и покинула компанию в 1985 году. В марте 1986 года она основала Hamilton Technologies в Кембридже (штат Массачусетс). Компания строилась вокруг языка и связанной с ним автоматизированной среды, 001 Tool Suite, на основе парадигмы «Разработка перед фактом» для проектирования систем и разработки программного обеспечения .

Наследие

Официальное фото для НАСА (1989)

Гамильтон, и Барри Боэму приписывают появление дисциплины «разработка программного обеспечения» . Согласно Гамильтон:

Работая в MIT, она хотела дать своему программному обеспечению «легитимность», как и в случае с другими инженерными дисциплинами, чтобы и ПО, и тем, кто его разрабатывает, было уделено должное внимание. В результате она предложила термин «разработка программного обеспечения», чтобы отличать его от других видов разработки .

Гамильтон рассказывает, как она пришла к термину «разработка программного обеспечения»:

Когда я впервые придумала этот термин, никто о нем ранее не слышал, по крайней мере, в нашем мире. Над этим непрестанно шутили в течение долгого времени. Людям нравилось подкалывать меня по поводу моих радикальных идей. Не забуду тот день, когда один из наиболее уважаемых гуру-"аппаратчиков" на техническом совещании объяснил всем, что он согласен со мной, что процесс создания программного обеспечения также следует рассматривать как инженерную дисциплину, как и в случае с оборудованием. Не потому, что он принял новый «термин» как таковой, а потому, что мы заслужили одобрение с его стороны и со стороны других присутствующих, поскольку термин по полному праву принадлежит инженерной области .

Когда Гамильтон начала использовать термин «разработка программного обеспечения» во время первых программ «Аполлон» , по сравнению с другими видами разработок, разработка программного обеспечения всерьёз не воспринималась и не рассматривалась как наука. Со временем термин «разработка программного обеспечения» приобрёл такое же уважение, как и любая другая техническая дисциплина . В выпуске журнала IEEE Software за сентябрь-октябрь 2018 года отмечалось 50-летие разработки программного обеспечения . Гамильтон рассказывает об «ошибках», о том, как они повлияли на разработку программного обеспечения, и о том, как язык USL можно использовать для предотвращения большинства «ошибок» в системе . В журнале Wired Роберт Макмиллан отметил: «В MIT Гамильтон способствовала созданию основных принципов программирования, разрабатывая с коллегами код для первого в мире портативного компьютера» . Инновации Гамильтон выходят за рамки участия в доставке людей на Луну. Карен Теган Падид писала в Wired : «Она, наряду с другим пионером программирования, Грейс Хоппер , создательницей языка COBOL , также имеет большие заслуги в том, что у женщин стало больше возможностей добиться успеха в такой технической области , как программное обеспечение» .

Награды

Барак Обама награждает Гамильтон Президентской медалью свободы. 2016 год
Присуждение Гамильтон почётной докторской степени.
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), " , " Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, Mar. 2007, paper #36.
  • M. Hamilton and W. R. Hackler (2007), « », 17th Annual International Symposium, INCOSE 2007, San Diego, CA, Jun. 2007.
  • M. Hamilton and W. R. Hackler (2008), « », IEEE Computer, Dec. 2008.

Примечания

  1. (англ.) ABC-CLIO , 2011.
  2. (англ.) / Welch, Rosanne; Lamphier, Peg A.. — ABC-CLIO , 2019. — Vol. 3. — P. 62. — ISBN 978-1-61069-094-2 .
  3. (англ.) . Tributes.com . Wujek-Calcaterra & Sons. Дата обращения: 15 декабря 2014. 16 декабря 2014 года.
  4. (англ.) . Earlham College . Дата обращения: 15 декабря 2014. 18 мая 2015 года.
  5. (англ.) . Utah State University . Дата обращения: 25 мая 2019. Архивировано из 17 сентября 2016 года.
  6. (англ.) . MAKERS . Дата обращения: 6 мая 2019. Архивировано из 25 мая 2019 года.
  7. . Futurism (англ.) . 2016-07-20. из оригинала 20 декабря 2016 . Дата обращения: 12 декабря 2016 . {{ cite news }} : Указан более чем один параметр |accessdate= and |access-date= ( справка )
  8. Sokol, Joshua (англ.) . Quanta Magazine (20 мая 2019). Дата обращения: 25 мая 2019. 20 мая 2019 года.
  9. Lorenz, Edward (англ.) . The Meteorological Society of Japan (март 1962).
  10. Wayne, Tiffany K. (неопр.) . — ABC-CLIO , 2011. — С. 480—482. — ISBN 978-1-59884-158-9 . 19 января 2023 года.
  11. Levy, Steven. Hackers: Heroes of the Computer Revolution (англ.) . — Doubleday , 1984. — P. Chapter 5:The Midnight Computer Wiring Society. — ISBN 0-385-19195-2 .
  12. (англ.) . klabs.org . Дата обращения: 25 мая 2019. 6 декабря 2010 года.
  13. Spicer, Dan (англ.) . Computer History Museum. Дата обращения: 11 февраля 2019. 12 февраля 2019 года.
  14. (англ.) . authors.library.caltech.edu . Дата обращения: 9 декабря 2015. 31 января 2016 года.
  15. Weinstock, Maia (англ.) . MIT News (17 августа 2016). Дата обращения: 17 августа 2016. 18 августа 2016 года.
  16. Rayl, A.J.S (2006-10-16). "NASA Engineers and Scientists-Transforming Dreams Into Reality". 50th Magazine (англ.) . NASA.
  17. (англ.) . NASA Office of Logic Design . Дата обращения: 9 апреля 2017. 27 апреля 2017 года.
  18. (англ.) . nasa.gov. Дата обращения: 29 июля 2010. 29 июня 2010 года.
  19. Hoag, David (англ.) . (сентябрь 1976). Дата обращения: 10 сентября 2016. 5 ноября 2016 года.
  20. Michael Braukus NASA News 24 ноября 2010 года. (September 3, 2003)
  21. Green, Alan (англ.) . Charles Stark Draper Laboratory (июнь 1967). Дата обращения: 10 сентября 2016. 17 июля 2016 года.
  22. (англ.) . Computer History Museum . Дата обращения: 26 июня 2017. 29 июня 2017 года.
  23. Eyles, Don (англ.) . Don Eyles Home Page . Дата обращения: 22 июля 2016. 20 июля 2016 года.
  24. Blair-Smith, Hugh. System integration issues in Apollo 11 (англ.) // IEEE Aerospace and Electronic Systems Magazine. — 2011. — 7 November ( vol. 26 , no. 11 ). — P. 16—24 . — doi : .
  25. Hamilton, Margaret; Hackler, William. Universal Systems Language: Lessons Learned from Apollo (англ.) // (англ.) : journal. — 2008. — 12 December ( vol. 41 , no. 12 ). — P. 34—43 . — ISSN . — doi : .
  26. Collins, Michael; Buzz Aldrin . // (англ.) / (англ.) . — Washington, D.C.: NASA, 1975. 19 февраля 2008 года. Chapter 11.4.
  27. Mindell, David A. Digital Apollo (англ.) . — MIT Press , 2011. — P. 149.
  28. Snyder, Lawrence and Henry, Ray Laura, "Fluency7 with Information Technology", Pearson, ISBN 0-13-444872-3
  29. Hamilton, Margaret (англ.) . MIT News (17 июля 2009). Дата обращения: 8 сентября 2016. 15 сентября 2016 года.
  30. Lickly, Dan (англ.) . MIT News (17 июля 2009). Дата обращения: 8 сентября 2016. 15 сентября 2016 года.
  31. Hamilton, Margaret H. Computer Got Loaded (англ.) // Datamation . — 1971. — 1 March. — ISSN .
  32. Roberts, Edward B. (англ.) . — Oxford University Press , 1991. — P. 41. — ISBN 9780199762903 .
  33. (англ.) . authors.library.caltech.edu . The Dibner Institute for the History of Science and Technology (9 мая 2002). Дата обращения: 26 июля 2019. 25 июля 2011 года.
  34. 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.
  35. Thompson, Arthur A.; Strickland, A. J., (1996), "Strategic Management: Concepts and Cases", , ISBN 0-256-16205-0
  36. Rowena Barrett. (англ.) . — Routledge , 2004. — P. 42. — ISBN 978-1-134-36117-5 . 19 января 2023 года.
  37. M. Hamilton; S. Zeldin. Higher order software techniques applied to a space shuttle prototype program in Lecture Notes in Computer Science, vol. 19, G. Goos and J. Hartmanis, Ed. New York: Springer-Verlag , pp. 17–31, presented at Program Symp. Proc., Colloque sur la Programmation, Paris, France, April 9–11, 1974 (англ.) .
  38. Cohen, B. (англ.) . — Addison-Wesley , 1986. — ISBN 0-201-14400-X .
  39. Paul, Lois. (англ.) // Computerworld : magazine. — 1982. — 11 October ( vol. 16 , no. 41 ). — P. 9 .
  40. Huber, Hartmut (1987–08). (PDF) (Report). Naval Surface Warfare Center. p. 2–1. Архивировано из (PDF) 7 мая 2016 . Дата обращения: 22 июля 2016 . {{ cite report }} : Указан более чем один параметр |archiveurl= and |archive-url= ( справка ) Википедия:Обслуживание CS1 (формат даты) ( ссылка )
  41. Dijkstra, Edsgar (англ.) . Department of Computer Science - The University of Texas (7 апреля 1983). Дата обращения: 22 июля 2016. 5 марта 2016 года.
  42. Harel, David. (англ.) // (англ.) : journal. — ACM, 1980. — January ( vol. 2 , no. 1 ). — ISSN . — doi : . 18 октября 2016 года.
  43. Cushing, Steven (1983). . . Pisa, Italy. doi : . из оригинала 19 октября 2016 . Дата обращения: 14 октября 2016 – via Semantic Scholar. . Дата обращения: 31 июля 2019. Архивировано 19 октября 2016 года.
  44. Holland, Michael. A Constrained Interface Refinement Method for Embedded System Design (англ.) : journal. — Department of Computing, Macquarie University, 1997. — 1 June.
  45. Krut, Robert W. Overview of Hamilton Technologies, Inc. (HTI) 001 // (англ.) . — Software Engineering Institute of Carnegie Mellon University, 1993. — P. 13—15. 5 июля 2019 года.
  46. Meng Ouyang, Michael W. Golay. (англ.) . Massachusetts Institute of Technology (сентябрь 1995). Дата обращения: 26 мая 2019. 19 февраля 2015 года.
  47. 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. (англ.) . Дата обращения: 9 июня 2018. 3 июня 2018 года.
  48. . (англ.) . Дата обращения: 12 февраля 2019. 24 ноября 2018 года.
  49. Rayl, A.J.S. (англ.) . 50th Magazine . NASA (16 октября 2008). Дата обращения: 27 декабря 2014. 23 декабря 2014 года.
  50. (англ.) . Дата обращения: 13 июля 2016. 29 мая 2016 года.
  51. (англ.) . Makers.com. Дата обращения: 5 сентября 2017. Архивировано из 5 сентября 2017 года.
  52. Verne (англ.) . Medium (25 декабря 2014). Дата обращения: 29 апреля 2016. 13 апреля 2016 года.
  53. IEEE Software. (англ.) . Дата обращения: 12 февраля 2019. 12 февраля 2019 года.
  54. Hamilton, Margaret H. What the Errors Tell Us (англ.) // (англ.) : journal. — 2018. — Vol. 35 , no. 5 . — P. 32—37 . — ISSN . — doi : .
  55. McMillan, Robert (2015-10-13). . Wired (англ.) . из оригинала 23 октября 2015 . Дата обращения: 20 октября 2015 . {{ cite news }} : Указан более чем один параметр |accessdate= and |access-date= ( справка )
  56. (англ.) . WIRED . Дата обращения: 29 апреля 2016. 5 мая 2016 года.
  57. Luke Kingma. (англ.) . Futurism . Дата обращения: 20 июля 2016. 23 июля 2016 года.
  58. (англ.) . Association for Women in Computing . Association for Women in Computing. Дата обращения: 17 сентября 2019. 14 апреля 2016 года.
  59. NASA Press Release 26 декабря 2017 года. (September 3, 2003)
  60. 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."
  61. (англ.) . whitehouse.gov (16 ноября 2016). Дата обращения: 7 июня 2017. 22 ноября 2016 года.
  62. (англ.) . BBC News (23 ноября 2016). Дата обращения: 23 ноября 2016. 24 ноября 2016 года.
  63. (англ.) . CBS News . Дата обращения: 7 июня 2017. 27 апреля 2017 года.
  64. (англ.) . Computer History Museum. Дата обращения: 31 июля 2019. 10 июля 2020 года.
  65. Science. (англ.) . Business Insider (22 июня 2017). Дата обращения: 1 ноября 2017. 1 ноября 2017 года.
  66. (англ.) . Universitat Politècnica de Catalunya (18 октября 2018). Дата обращения: 25 января 2019. 26 января 2019 года.
  67. Stickgold, Emma (2014-08-31). . Boston Globe (англ.) . из оригинала 16 декабря 2014 . Дата обращения: 15 декабря 2014 .

Ссылки

  • McMillan, Robert (2015-10-13). . Wired (англ.) . Дата обращения: 20 октября 2015 .
Источник —

Same as Гамильтон, Маргарет (учёный)