Margaret Hamilton (yazılım mühendisi) - Margaret Hamilton (software engineer)

Margaret Hamilton
Margaret Hamilton 1995.jpg
1995 yılında Hamilton
Doğmak
Margaret Elaine Heafield

( 1936-08-17 )17 Ağustos 1936 (85 yaşında)
Eğitim Michigan Earlham Koleji
Üniversitesi
Meslek Yazılım Mühendisi
eş(ler)
Çocuklar 1 kızı, Lauren Hamilton
Akraba James Cox Chambers (eski damadı)
Ödüller Cumhurbaşkanlığı Özgürlük Madalyası

Margaret Heafield Hamilton (17 Ağustos 1936 doğumlu) Amerikalı bir bilgisayar bilimcisi , sistem mühendisi ve işletme sahibidir. O Yazılım Mühendisliği Bölümü yönetmeniydi MİT Enstrümantasyon Laboratuvarı için on-board uçuş yazılımını geliştirdi, NASA 'nın Apollo programı . Daha sonra, her ikisi de Cambridge, Massachusetts'te olmak üzere, 1976'da Higher Order Software ve 1986'da Hamilton Technologies olmak üzere iki yazılım şirketi kurdu .

Hamilton, altmış proje ve altı ana program hakkında 130'dan fazla makale, bildiri ve rapor yayınlamıştır. " Yazılım mühendisliği " terimini ortaya atan kişilerden biridir .

22 Kasım 2016'da Hamilton, NASA'nın Apollo Ay misyonları için yerleşik uçuş yazılımının geliştirilmesine öncülük eden çalışmaları nedeniyle Başkan Barack Obama'dan Başkanlık Özgürlük Madalyası aldı .

Kişisel yaşam ve eğitim

Margaret Elaine Heafield, 17 Ağustos 1936'da Paoli, Indiana'da Kenneth Heafield ve Ruth Esther Heafield ( kızlık soyadı  Partington); iki küçük kardeşi var: David ve Kathryn. Aile daha sonra Margaret'in 1954'te Hancock Lisesi'nden mezun olduğu Michigan'a taşındı. Annesinin öğrenci olduğu Earlham Koleji'ne geçmeden önce 1955'te Michigan Üniversitesi'nde matematik okudu ; 1958'de matematik alanında lisans derecesini felsefe alanında yan dal ile tamamladı. Earlham'daki matematik bölümünün başkanı Florence Long'un soyut matematiği takip etme ve matematik profesörü olma arzusuna yardımcı olduğunu belirtiyor. Babası (bir filozof ve şair) ve büyükbabası (bir okul müdürü ve Quaker bakanı) dahil olmak üzere başka ilham kaynakları vardı . Bu adamların, çalışmalarına felsefe alanında yandal yapması için ilham verdiğini söylüyor.

Earlham'dayken Hamilton, kimya alanında kıdemli bir uzman olan ilk kocası James Cox Hamilton ile tanıştı. Earlham'dan mezun olduktan sonraki yaz, 15 Haziran 1958'de evlendiler. Kocası lisans eğitimini Earlham'da tamamlarken, o kısa bir süreliğine Boston, Indiana'daki bir devlet okulunda lise matematiği ve Fransızca öğretti . Çift daha sonra , James'in daha sonra Brandeis Üniversitesi'nden kimya alanında yüksek lisans derecesini alacağı Boston , Massachusetts'e taşındı ; 10 Kasım 1959'da Lauren adında bir kızı vardı. James daha sonra 1963'te Harvard Hukuk Fakültesi'nden mezun oldu ; Boston'da bir hukuk firması kurdu ve daha sonra Amerikan Sivil Özgürlükler Birliği'nin yönetim kurulunda görev yaptı . Çift 1967'de boşandı ve Margaret iki yıl sonra Dan Lickly ile evlendi .

Kariyer

Boston'da, başlangıçta Brandeis'te soyut matematik alanında lisansüstü eğitime kaydolmayı amaçladı . Ancak, 1959 yazında, Hamilton için çalışmaya başladı Edward Norton Lorenz de, meteoroloji de bölüm MIT . O üzerinde programlama, hava tahmin için yazılım geliştirdi LGP-30 ve PDP-1 de bilgisayarlar Marvin Minsky 'ın Proje MAC . Çalışmaları, Lorenz'in kaos teorisi üzerine yayınlarına katkıda bulundu . O zamanlar bilgisayar bilimi ve yazılım mühendisliği henüz yerleşik disiplinler değildi; bunun yerine, programcılar uygulamalı deneyimle işi öğrendiler. 1961 yazında başka bir projeye geçti ve onun yerine Ellen Fetter'ı işe aldı ve eğitti .

SAGE Projesi

1961 1963 için, Hamilton çalıştı Yarı Otomatik Yer Ortamı de (SAGE) Projesi MIT Lincoln Lab o prototip için yazılım yazdığı programcılar biriydi AN / FSQ-7 bilgisayar (XD-1) , tarafından kullanılan ABD Hava Kuvvetleri muhtemelen düşmanca uçaklara aramak için. Ayrıca Hava Kuvvetleri Cambridge Araştırma Laboratuvarlarında bir uydu izleme projesi için yazılım yazdı . SAGE Projesi, MIT tarafından hava sistemlerini tahmin edebilen ve simülatörler kullanarak hareketlerini takip edebilen bir bilgisayar sistemi oluşturmak için başlatılan Project Whirlwind'in bir uzantısıydı . SAGE yakında uçaksavar hava savunmasında askeri kullanım için geliştirildi. Hamilton dedi ki:

Yeni başlayan biri olarak bu kuruluşa geldiğinizde yaptıkları, hiç kimsenin çözemediği veya çalıştıramadığı bu programı size atamaktı. Yeni başladığımda bana da verdiler. Ve olan şey, zor bir programlamaydı ve onu yazan kişi, tüm yorumlarının Yunanca ve Latince olması gerçeğinden memnun kaldı. Bu yüzden bu programa atandım ve gerçekten çalışmasını sağladım. Hatta cevaplarını Latince ve Yunanca olarak yazdırdı. İşe almak için ilk kişi bendim.

Onu Apollo uçuş yazılımının baş geliştiricisi olarak NASA'daki pozisyona aday yapan bu projedeki çabalarıydı.

Draper Laboratuvarı

Hamilton, 1969'da kendisinin ve MIT ekibinin Apollo projesi için ürettiği yazılımların listelerinin yanında duruyordu.
Hamilton, Apollo uçuş yazılımı tasarımcısı olarak görev yaptığı süre boyunca

Hamilton daha sonra MIT'deki Apollo Uzay Misyonu üzerinde çalışan Charles Stark Draper Laboratuvarı'na katıldı . Hamilton başlangıçta bu süreç için bir programcı olarak işe alındı, ancak sistem tasarımlarına geçti. Sonunda, navigasyon ve aya iniş rehberliği için tüm yazılım olan tüm Komut Modülü yazılımından sorumluydu. Sonunda Apollo ve Skylab için yazılımı geliştirmekle tanınan bir ekibi yönetti . Hamilton'ın ekibi, Apollo komut modülü, aya iniş aracı ve ardından Skylab için çeşitli kıdemli bilim adamları tarafından tasarlanan algoritmaları içeren uçuş içi yazılım geliştirmekten sorumluydu. Ekibinin başka bir parçası sistem yazılımını tasarladı ve geliştirdi. Bu, yeniden başlatmalar ve Hamilton'un tasarlayıp geliştirdiği Ekran Arayüzü Rutinleri (Öncelikli Ekranlar olarak da bilinir) gibi hata algılama ve kurtarma yazılımlarını içeriyordu. Bilgisayar bilimi derslerinin yaygın olmadığı ve yazılım mühendisliği derslerinin olmadığı bir dönemde uygulamalı deneyim kazanmak için çalıştı. Hamilton ayrıca Yazılım Mühendisliği Bölümünün Direktörü olarak görev yaptı.

Uzmanlık alanları şunlardır: sistem tasarımı ve yazılım geliştirme , kurumsal ve süreç modelleme , geliştirme paradigması, resmi sistem modelleme dilleri, sistem modelleme ve geliştirme için sistem odaklı nesneler, otomatik yaşam döngüsü ortamları, yazılım güvenilirliğini ve yeniden kullanımını en üst düzeye çıkarma yöntemleri , etki alanı analiz , yerleşik dil özellikleriyle doğruluk , sağlam sistemler için açık mimari teknikleri, tam yaşam döngüsü otomasyonu, kalite güvencesi , sorunsuz entegrasyon, hata algılama ve kurtarma teknikleri, insan-makine arayüz sistemleri, işletim sistemleri , uçtan uca test teknikleri ve yaşam döngüsü yönetimi teknikleri. Bunlar onun kodunu inanılmaz derecede güvenilir kıldı çünkü programcıların anormallikleri büyük problemler haline gelmeden önce belirlemelerine ve düzeltmelerine yardımcı oldular.

Apollo programı

Apollo 11 görevinin kritik anlarından birinde, Apollo Rehberlik Bilgisayarı , yerleşik uçuş yazılımıyla birlikte Ay'a inişin iptal edilmesini önledi. Üç dakika önce ay lander Ay'ın yüzeyini ulaştı birkaç bilgisayar alarmları tetikleyen bulundu. Yerleşik uçuş yazılımı, bu alarmları, astronotları öncelikli alarm ekranlarıyla kesintiye uğratan "asla gerçekleşmemesi gereken ekranlar" ile yakaladı. Hamilton tam da bu duruma yıllar önce hazırlanmıştı:

Hamilton'ın hatırlamaktan hoşlandığı başka bir güvenlik önlemi daha vardı. "Öncelikli ekran" yeniliği, astronotun ve bilgisayarın en önemli anda senkronizasyondan kayması riski yaratmıştı. Alarmlar çalarken ve öncelikli ekranlar normal olanların yerini alırken, ekranların arkasındaki yeni programlara gerçek geçiş, bugün olduğundan "bir adım daha yavaş" oluyordu.

Hamilton bu konuda uzun uzun düşünmüştü. Bu, Aldrin'in öncelik ekranındaki bir düğmeye çok hızlı basması durumunda yine de "normal" bir yanıt alabileceği anlamına geliyordu. Çözümü: Öncelikli bir ekran gördüğünüzde, önce beşe kadar sayın.

Bazı açıklamalara göre, astronotlar yanlışlıkla randevu radar anahtarını açık bırakmış ve bu alarmların tetiklenmesine neden olmuştur (radarın astronotlar tarafından yanlışlıkla açık bırakılıp bırakılmadığı, Robert Wills tarafından Ulusal Bilgisayar Müzesi ile tartışılmaktadır ). Bilgisayar, arazi aracının randevu radarına sağlanan yanlış aşamalı gücün neden olduğu kesintilerle aşırı yüklendi . Program alarmları "yönetici taşmalarını" gösterdi, yani rehberlik bilgisayarı tüm görevlerini gerçek zamanlı olarak tamamlayamadı ve bazılarını ertelemek zorunda kaldı. J. Halcombe Laning tarafından tasarlanan asenkron yönetici , Hamilton ekibi tarafından asenkron uçuş yazılımı geliştirmek için kullanıldı:

Uçuş yazılımının sistem yazılımının sistem genelindeki "öldür ve yeniden hesapla" özelliğini içeren hata algılama ve kurtarma teknikleri nedeniyle, anlık görüntü ve geri alma tekniklerine "güvenli bir yerden" yeniden başlatma yaklaşımı, Ekran Arayüzü Rutinleri (Öncelikli ekranlar olarak AKA) birlikte acil bir durumda kritik alarmların öncelikli görüntüleriyle astronotların normal görev görüntülerini kesintiye uğratma kabiliyetine sahip olmak için döngüdeki adam yetenekleri oluşturulabildi. Bu, tüm olaylarının, olup biten her şeye göre doğru sırada ve doğru zamanda gerçekleşmesini sağlamak için yazılımdaki her sürece benzersiz bir öncelik vermemize bağlıydı.

Hamilton'un öncelikli alarm ekranları, astronotların normal ekranlarını kesintiye uğratarak, "astronotlara inme / kalmama kararı verme (iniş veya inme)" acil bir durum olduğu konusunda onları uyardı . Görev kontrolünde görev yapan NASA bilgisayar mühendisi Jack Garman , öncelikli ekranlarda astronotlara sunulan hataların anlamını anladı ve "Git, git!" diye bağırdı. ve devam ettiler. Hamilton'u NASA Uzay Yasası Ödülü'ne aday gösteren kıdemli teknoloji uzmanı Paul Curto, Hamilton'un çalışmasını "ultra güvenilir yazılım tasarımının temeli" olarak nitelendirdi.

Hamilton daha sonra olayı şöyle yazdı:

Bilgisayar (ya da daha doğrusu içindeki yazılım), kendisinden yapması gerekenden daha fazla görev yapmasının istendiğini anlayacak kadar akıllıydı. Daha sonra, astronot için 'Şu anda yapmam gerekenden daha fazla görevle aşırı yüklendim ve sadece daha önemli görevleri yerine getireceğim' anlamına gelen bir alarm gönderdi; yani iniş için gerekli olanlar... Aslında bilgisayar hata durumlarını tanımaktan daha fazlasını yapmaya programlanmıştı. Yazılıma eksiksiz bir kurtarma programı seti dahil edilmiştir. Bu durumda yazılımın eylemi, daha düşük öncelikli görevleri ortadan kaldırmak ve daha önemli olanları yeniden kurmaktı ... Bilgisayar bu sorunu tanımasaydı ve kurtarma işlemi yapmasaydı, Apollo 11'in başarılı ay olacağından şüpheliyim. iniş öyleydi.

—  Apollo Uçuş Bilgisayar Programlama MIT Draper Laboratuvarı, Cambridge, Massachusetts Direktörü Margaret H. Hamilton'dan "Computer Got Loaded" başlıklı mektup, Datamation , 1 Mart 1971

İşletmeler

1976'da Hamilton , Apollo programı üzerinde çalışan MIT'deki deneyimlerinden kaynaklanan hata önleme ve hata toleransı hakkında daha fazla fikir geliştirmek için Saydean Zeldin ile Yüksek Dereceli Yazılım (HOS) adlı bir şirket kurdu. MIT'de geliştirdikleri HOS metodolojisine dayanarak USE.IT adlı bir ürün yarattılar. ABD Hava Kuvvetleri tarafından Entegre Bilgisayar Destekli Üretim (ICAM) projesinde geliştirilen bir modelleme dili olan IDEF'in otomatik bir versiyonu olan C-IDEF'i resmileştirme ve uygulama projesi de dahil olmak üzere çok sayıda hükümet programında başarıyla kullanıldı . 1980'de İngiliz-İsrailli bilgisayar bilimcisi David Harel , HOS'tan ve/veya alt hedefler açısından türetilen yapılandırılmış bir programlama dili için bir teklif yayınladı . Diğerleri, HOS'u, dilsel niceleyicilerin anlambilimini resmileştirmek ve güvenilir gerçek zamanlı gömülü sistemlerin tasarımını resmileştirmek için kullandı.

Hamilton 1984 yılına kadar HOS'un CEO'suydu ve 1985'te şirketten ayrıldı. Mart 1986'da Cambridge, Massachusetts'te Hamilton Technologies, Inc.'i kurdu . Şirket, sistem tasarımı ve yazılım geliştirme gerçeğinden önceki geliştirme paradigmasına dayalı olarak , Evrensel Sistemler Dili (USL) ve ilişkili otomatikleştirilmiş ortamı olan 001 Araç Takımı etrafında geliştirildi.

Miras

NASA için resmi fotoğraf , 1989

Anthony Oettinger , Barry Boehm ve Hamilton, " yazılım mühendisliği " disiplinini adlandırmakla itibar kazandılar . Hamilton, "yazılım mühendisliği" terimini nasıl oluşturduğunu ayrıntılarıyla anlatıyor:

Terimi ilk bulduğumda, daha önce hiç kimse, en azından bizim dünyamızda duymamıştı. Uzun zamandır devam eden bir şakaydı. Radikal fikirlerim hakkında benimle dalga geçmekten hoşlanıyorlardı. En saygın donanım gurularından birinin, bir toplantıda herkese, yazılım geliştirme sürecinin de tıpkı donanımda olduğu gibi bir mühendislik disiplini olarak kabul edilmesi gerektiğini benimle hemfikir olduğunu açıkladığı unutulmaz bir gündü. Kendi başına yeni 'dönemi' kabul ettiği için değil, onun ve odadaki diğerlerinin kabulünü başlı başına bir mühendislik alanı olarak kabul ettiğimiz için.

Hamilton ilk Apollo misyonları sırasında "yazılım mühendisliği" terimini kullanmaya başladığında, yazılım geliştirme diğer mühendisliklere kıyasla ciddiye alınmadı ve bir bilim olarak görülmedi. Hamilton, yazılım geliştirmeyi bir mühendislik disiplini olarak meşrulaştırmakla ilgileniyordu. Zamanla "yazılım mühendisliği" terimi, diğer teknik disiplinlerle aynı saygıyı kazandı. IEEE Software Eylül/Ekim 2018 sayısı, yazılım mühendisliğinin 50. yılını kutluyor. Hamilton, "Hatalar"dan ve bunların yazılım mühendisliği ile ilgili çalışmalarını nasıl etkilediğinden ve bir sistemdeki "Hataların" çoğunluğunu önlemek için kendi dili olan USL'nin nasıl kullanılabileceğinden bahseder. Yazısında Wired Robert McMillan kaydetti: "O dünyanın ilk taşınabilir bilgisayar için kod yazarken onun meslektaşları ile çalıştı MIT azından o bilgisayar programlama temel ilkeleri yaratılmasına yardımcı". Hamilton'un yenilikleri, insanları Ay'a götürmede önemli bir rol oynama başarısının ötesine geçiyor. Göre Kablolu ' ın Karen Tegan Padir: "O, diğer erken programlama öncüsü birlikte COBOL [ sic ] mucit Grace Hopper , ayrıca girip yazılım gibi KÖK alanlarında daha başarılı kadınlar için kapıyı açmak için yardımcı olmak için muazzam kredi hak "

2019'da, Apollo inişinin 50. yılını kutlamak için Google, Hamilton'a bir saygı duruşunda bulunmaya karar verdi. Ivanpah fabrikasındaki aynalar, Hamilton ve Apollo 11'in ay ışığında bir resmini oluşturacak şekilde yapılandırıldı.

Ödüller

Barack Obama ödülleri Başkanlık Özgürlük Madalyası 2016 yılında Hamilton
Margaret Hamilton'ın Honoris Causa töreni, 2018

Yayınlar

  • Hamilton, M.; Zeldin, S. (Mart 1976). "Yüksek Dereceli Yazılım—Yazılımı Tanımlamak İçin Bir Metodoloji". Yazılım Mühendisliğinde IEEE İşlemleri . SE-2 (1): 9–32. doi : 10.1109/TSE.1976.233798 . S2CID  7799553 .
  • Hamilton, M.; Zeldin, S. (1 Ocak 1979). "Tasarım ve doğrulama arasındaki ilişki". Sistemler ve Yazılım Dergisi . 1 : 29–56. doi : 10.1016/0164-1212(79)90004-9 .
  • Hamilton, M. (Nisan 1994). "Gerçekten Önce İç Geliştirme" . (Kapak hikayesi). Özel Editoryal Ek. 8ES-24ES. Elektronik Tasarım .
  • Hamilton, M. (Haziran 1994). "001: Tam Bir Yaşam Döngüsü Sistem Mühendisliği ve Yazılım Geliştirme Ortamı" . (Kapak hikayesi). Özel Editoryal Ek. 22ES-30ES. Elektronik Tasarım .
  • Hamilton, M.; Hackler, WR (2004). "Derinlemesine Entegre Rehberlik Navigasyon Birimi (DI-GNU) Ortak Yazılım Mimarisi İlkeleri". (29 Aralık 2004'te revize edilmiştir). DAAAE30-02-D-1020 ve DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
  • Hamilton, M.; Hackler, WR (2007). " Önleyici Sistemler Mühendisliği için Evrensel Sistemler Dili ", Proc. 5. Anne. Konf. Sistem Müh. Araş. (CSER), Stevens Teknoloji Enstitüsü, Mart 2007, kağıt #36.
  • Hamilton, M.; Hackler, WR (2007). " SysML için Resmi Bir Evrensel Sistem Semantiği ". 17. Yıllık Uluslararası Sempozyum, INCOSE 2007, San Diego, CA, Haziran 2007.
  • Hamilton, M.; Hackler, WR (2008). " Evrensel Sistemler Dili: Apollo'dan Alınan Dersler ". IEEE Bilgisayar , Aralık 2008.
  • Hamilton, MH (Eylül 2018). "Hatalar Bize Ne Anlatıyor" . IEEE Yazılımı . 35 (5): 32–37. doi : 10.1109/MS.2018.290110447 . S2CID  52896962 .

Ayrıca bakınız

Referanslar

daha fazla okuma

  • Steafel, Eleanor (20 Temmuz 2019). "Erkeklerle dolu bir odada bir kadın". Telgraf Dergisi . Londra: Daily Telegraph plc. 56-59, 61. OCLC  69022829 .

Dış bağlantılar