În culisele unui salt uriaş

În anul 1977 când am terminat studiile la Politehnica bucureşteană, proiectul meu de diplomă era compus dintr-un program şi date ('input') care necesitau două cutii lungi şi grele de cartele perforate şi avea ca rezultat ('output') un text tipărit pe imprimantă, ale cărui file se adunau într-un teanc gros de vreo 10 centimetri. Îmi închipuiam desigur că programul meu era unul dintre cele mai inteligente şi mai complexe realizări posibile. Astăzi, datorită miniaturizării puterii de calcul şi a memoriei este greu de imaginat că programarea calculatoarelor cerea în primele decenii de existenţă ale acestora spaţii considerabile şi chiar şi o forţă fizică ne-neglijabilă pentru a permite manipularea 'intrărilor' şi 'ieşirilor' sistemelor de calcul. Citind despre Margaret Hamilton, eroina rubricii CHANGE.WORLD de astăzi, constat că ceea ce 'realizasem' eu în 1977 era cam nimic faţă de complexitatea sistemului  proiectat de ea pentru comanda şi supravegherea navigaţiei capsulei spaţiale Apollo 11, cea care i-a dus pe Lună pe astronauţii Neil Armstrong şi Buzz Aldrin la prima aselenizare din istoria omenirii, pe 20 iulie 1969. Printarea codului sursă al acestui sistem avea cam înălţimea programatoarei! Despre complexitatea şi robusteţea codului care practic a salvat misiunea într-unul dintre momentele sale critice puţin cunoscute - în cele ce urmează.

(sursa imaginii http://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software)

Să vedem însă cine este Margaret Heatfield Hamilton, una dintre figurile pe nedrept, poate, mai puţin cunoscute în istoria ştiinţei calculatoarelor. Născuta în 1936, a studiat matematica şi şi-a început şi desfăşurat o mare parte a carierei la Massachussets Institute of Technology, legendarul MIT., una dintre instituţiile academice şi de cercetare cu contribuţii excepţionale în dezvoltarea ştiinţei calculatoarelor şi a comunicaţiilor. Situat pe malul stâng al râului Charles, MIT împreună cu Universitatea Harvard fac din Cambridge-ul american (care poate fi considerat un fel de cartier al Boston-ului) un centru de excelenţă academică şi intelectuală cu nimic mai prejos decât omonimul său britanic. Printre primele proiecte la care a participat Margaret Hamilton s-a aflat un program de prognoză meteorologică urmat de programe instalate pe avioane militare care permiteau detectarea avioanelor inamice. Talentul său în programe aplicative în timp real, rulând pe platforme neconvenţionale (mai târziu acestea vor fi numite 'embedded') de o complexitate deosebită, i-au permis o avansare relativ rapidă, şi în a doua jumătate a anilor 60 Margaret Hamilon se găsea la conducerea echipei din M.I.T. care fusese contractată de NASA pentru a dezvolta sistemul de navigaţie autonomă care să asigure aselenizarea în siguranţă a capsulei şi reîntoarcerea spre staţia Apollo a primilor astronauţi care aveau să păşească pe Luna.

(sursa imaginii http://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software)

 

Despre complexitatea proiectului Apollo şi rolul său în dezvoltarea diferitelor tehnologii noi în anii 60 şi în deceniile care au urmat s-au scris şi se vor mai scrie multe. Voi dedica şi eu un episod viitor din CHANGE. WORLD acestui subiect. Să menţionez pentru moment că, pentru a face posibil transportul pe satelitul Pământului al astronauţilor, au trebuit inventate sau dezvoltate în mod accelerat discipline tehnice inexistente sau aflate în acel moment în stadii incipiente ale evoluţiei lor. Materialele rezistente la radiaţii şi temperaturile extreme, fibrele optice pentru comunicaţii, tehnologia video, electronica miniaturizată sunt doar câteva dintre exemple, cărora li se adaugă ştiinţa calculatoarelor şi mai ales aplicaţiile în timp real, în condiţii de siguranţă sporită. Margaret Hamilton şi echipa ei au trebuit să inventeze concepte noi şi să găsească căi de rezolvare a unor probleme legate de robusteţea sistemelor, viteza lor de răspuns asincronă (adică fără a aştepta completarea unui ciclu complet al programelor care până în acea perioadă lucrau 'în buclă'), interfaţa cu operatorul uman aflat în situaţie foarte complexă de solicitare şi stres fizic şi intelectual, procesarea rapidă a unei mari cantităţi de date primite de la senzori fizici dintre cei mai variaţi, detectarea erorilor şi repararea lor automată, fără intervenţie umană.

(sursa imaginii http://www.nasa.gov/centers/marshall/moonmars/apollo40/apollo11_aldrin.html)

 

Robusteţea sistemului proiectat de echipa de la M.I.T a fost probată într-unul dintre cele mai critice momente ale misiunii Apollo 11. Unitatea de calcul a modului spaţial rula programe atât pentru sistemul de ghidare folosit la aselenizare cât şi pentru sistemul de radar necesar la decolare în faza de întoarcere a modului. Cele două dispozitive electronice erau dotate cu surse de alimentare electrică necompatibile, ceea ce însemna că ambele trebuiau să funcţioneze în permanenţă, şi când erau utile şi când nu era necesar. Această problemă de proiectare 'hardware' nu ar fi fost critică dacă sistemul de calcul nu ar fi fost suprasolicitat, ceea ce s-a întâmplat în momentele cele mai dificile ale aselenizării. Radarul transmitea date complet inutile şi 'înăbuşea' sistemul de ghidare. Software-ul proiectat de echipa Margaretei Hamilton luase însă în considerare şi această alternativă şi, folosind o metodă devenită astăzi standard, dar inovatoare pentru acea vreme. de scădere a priorităţii programelor mai puţin utile, a reuşit să elibereze unitatea de calcul în timp pentru a executa toate operaţiile necesare ghidării la aselenizare a modulului spaţial în care se aflau cei doi astronauţi. Dacă acest sistem de calcul nu ar fi fost acolo şi nu ar fi funcţionat, aselenizarea lui Apollo 11 nu ar fi avut loc şi Neil Armstrong nu ar fi avut ocazia să rostească în acea zi (în România era noapte) istoricele sale cuvinte: 'Un pas mic pentru om, un salt uriaş pentru omenire'.

(sursa imaginii http://kampungnetworks.blogspot.co.il/2009/03/software-engineering-chapt...)

Margaret Hamilton a continuat în deceniile care au urmat o remarcabilă carieră de cercetare şi în paralel a adus contribuţii excepţionale ştiinţei calculatoarelor. Trebuie avut în vedere că, în anii în care echipa de la MIT lucra pentru NASA, ştiinţa calculatoarelor nu era încă recunoscută ca atare, şi cărţile ei fundamentale după care zeci de generaţii de ingineri au studiat calculatoarele nu fuseseră încă scrise. Margaret Hamilton nu le-a avut la îndemână, ea a contribuit la scrierea lor. Dupa 1976, anul în care a părăsit MIT., a condus companii şi proiecte în domeniul 'ingineriei de software', termen pe care ea l-a inventat, la început oarecum în glumă. Compania pe care a înfiinţat-o în 1986 se numeşte Hamilton Technologies şi are ca principal produs un limbaj universal de sisteme - Universal Systems Language (USL) bazat pe ideea proiectării sistemului înainte de scrierea codului - şi sistemul automat de testare care implementează această idee.

(sursa imaginii https://ro.wikipedia.org/wiki/Apollo_11#/media/File:AS11-40-5850HR.jpg)

Reflectând asupra începuturilor carierei sale, Margaret Hamilton observa că în anii 50 sau în prima parte a anilor 60 majoritatea programatorilor erau femei. Programele calculatoarelor păreau pur şi simplu o opţiune mai puţin interesantă pentru studenţii sau inginerii bărbaţi. Au trebuit să apară sisteme complexe şi proiecte cu expunere publică majoră, cum a fost programul Apollo, care au necesitat dezvoltarea ingineriei de calculatoare (software engineering) ca disciplină inginerească distinctă.  Subdiscipline ca programele asincrone, priotizarea progamelor (priotirized scheduling), testarea completă (end-to-end testing) îşi datorează existenţa şi conţinutul contribuţiilor ei. La ele se adaugă astăzi multe alte discipline, cum ar fi ingineria specificaţiilor (requirements engineering), administrarea configuraţiilor (configuration management), ingineria calităţii programelor. Nucleele fiecăruia dintre ele par a-şi avea originea în ideile ei, dezvoltate cu un scop precis, acela al aselenizării 'Vulturului' (numele de cod al capsulei Apollo 11) la locul ales din sudul Mării Liniştii de pe lună, în acel iulie 1969. 

Add a comment