ABONAMENTE VIDEO REDACȚIA
RO
EN
Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 30
Abonament PDF

Metrici în programarea obiectuală - Interviu cu Tudor Gîrba

Ovidiu Mățan
Fondator @ Today Software Magazine



DIVERSE

Tudor Gîrba este cercetător și consultant software. El a devenit recent cunoscut prin câștigarea premiului anual la categoria Junior oferit de către AITO (Association Internationale pour les Technologies Objets), organizație ce promovează cercetarea din aria tehnologiilor orientate pe obiect. El va fi prezent în 13 decembrie la Cluj, la evenimentul Be Fast & Curios organizat de către compania 3Pillar Global. 

[Ovidiu Mățan] Descrie pentru cititorii revistei noastre capabilitățile engine-ul Mondrian care a primit premiul al II-lea la ESUG 2006 Innovation Awards și totodată a contribuit pentru cel oferit de către AITO.

[Tudor Gîrbă] Mondrian este o platformă de vizualizare a datelor. Particularitatea lui constă în faptul că s-a numărat printre primele astfel de platforme care a oferit o modalitate de "scriptare" succintă. De exemplu, vizualizarea unei ierarhii de clase arată așa:

view nodes: classes.
view edgesToAll: #directSubclasses.
view treeLayout

Dacă dorim să extindem vizualizarea în așa fel încât fiecare clasă să fie reprezentată de un dreptunghi ale cărui dimensiuni să fie date de metrici de cod, putem scrie:

view shape rectangle
height: #numberOfMethods;
width: #numberOfAttributes.
view nodes: classes.
view edgesToAll: #directSubclasses.
view treeLayout

Mondrian a deschis un nou drum în domeniul vizualizărilor arătând cum se pot exprima succint vizualizări complicate.

Platforma de analiză a software-ului și a datelor Moose a parcurs din 2003 sub îndrumarea ta trecerea de la o platformă academică la una ce poate fi folosită cu ușurință și în mediul comercial. Așa cum este descris în The Moose Book avem un proces bine definit prin module de achiziție a datelor, descriere a modelelor și engine-uri de prelucrare a datelor și tool-uri. Poți să ne dai câteva exemple de folosire a sa în aplicații software sau de analiză a datelor ?

[Tudor] Moose este un proiect open-source larg care a început acum 17 ani în Elveția la Universitatea din Berna. Eu îl conduc de 12 ani, iar în prezent e susținut de mai multe companii și grupuri de cercetare din lume. Scopul platformei Moose este acela de a face cât mai ușoară programarea analizelor. Această abilitate conferă programatorilor posibilitatea de a combina servicii de analiză generice pentru a le adapta la contextul sistemelor.

O clasă mare de astfel de utilizări e dată de "testarea" arhitecturii sistemelor software. De exemplu, într-un sistem client-server JEE poate fi de dorit să nu se folosească @Stateful beans. Un astfel de test ar arăta așa:

allTypes noneSatisfy: [ :type | type isAnnotatedWith: 'Stateful' ]

Acesta a fost un exemplu oarecum simplu. O regulă puțin mai complicată ar putea să specifice ca apelurile dinspre codul interfeței cu utilizatorul către server să se realizeze doar prin interfețe care sunt implementate de @Remote beans. Un "test" în direcția aceasta ar arăta așa:

(((allTypes select: #isUIType) flatCollect: #clientTypes) select: #isServerType)
   allSatisfy: [ :type | 
   type isInterface and: [ type directSubclasses anySatisfy: [:class | class isAnnotatedWith: 'Remote' ]]]

Aplicațiille Moose nu se limitează doar la astfel de testări, ci la tool-uri de analiză de date care pot avea interacțiuni sofisticate.

De exemplu, în poza de mai jos putem vedea o sesiune de analiză formată din patru pași. În primul panou se construiește o vizualizare a claselor, iar vizualizarea e arătată în al doilea panou; selectarea unei clase din această vizualizare duce la deschiderea unui nou panou cu detalii ale clasei. În acest al treilea panou, se mai poate construi o altă vizualizare care arată în partea dreaptă cum sunt utilizate atributele de către metodele clasei curente.

Acesta este doar un exemplu care arată cum se pot combina și contextualiza analizele într-un mediu vizual și interactiv. Mai multe informații despre Moose pot fi găsite la: http://moosetechnology.org

Tema pe care o vei aborda la evenimentul Be Fast & Curios este Humane Assessment ce reprezintă o nouă metodă de software engineering cu scopul de a ajuta în luarea deciziilor. Poți să ne descrii în linii mari despre ce este vorba? 

Inginerii software petrec mai mult de jumătate din timp evaluând starea curentă a sistemelor pentru a înțelege cum să purceadă mai departe. Cu alte cuvinte, evaluarea sistemelor software (software assessment) e cea mai costisitoare activitate din cadrul dezvoltării software-ului. Cu toate acestea, nimeni nu vorbește despre această activitate. O consecință a acestui fapt e că inginerii software ajung să consume cea mai mare parte din timpul alocat evaluării citind cod. Din păcate, cititul codului e practic cea mai puțin scalabilă modalitate de a înțelege codul și nu e metoda adecvată pentru înțelegerea sistemelor mari. Ca un exemplu, dacă un om care citește rapid are nevoie de 2 secunde pentru a citi o linie de cod, el ar avea nevoie de aproximativ o lună de lucru pentru a citi 250'000 de linii de cod (dimensiunea unui sistem mediu). Având în vedere faptul că inginerii software au nevoie de a înțelege starea sistemului în fiecare zi, în cele din urmă deciziile se iau pe baza unor impresii parțiale și de multe ori incorecte despre realitate.

Dar lucrurile nu trebuie să stea așa. Humane Assessment este o metodă care oferă o abordare sistematică a luării deciziilor și la baza ei stă ideea că adunarea de informații poate fi realizată de către tool-uri automate. În același timp, astfel de tool-uri trebuie să fie contextualizate pentru că un sistem are multe detalii specifice. De aceea e necesar ca inginerii software să poată să construiască astfel de tool-uri in timpul dezvoltării software.

Pentru a face acest lucru practicabil avem nevoie de un nou gen de platforme care să ofere posibilitatea programatorilor de a construi tool-uri contextuale rapid și necostisitor. Aici intervin abilitățile platformei Moose. Prin Moose, noi arătăm că acest lucru este într-adevăr posibil, iar eu susțin că tipul de funcționalități oferite de platformă ar trebui să devină comune în tool-urile de dezvoltare (IDE-uri). Tool-urile sunt necesare, dar nu sunt suficiente. De aceea, Humane Assessment oferă un ghid atât în ceea ce privește tipurile de abilități pe care inginerii ar trebui să le posede, cât și în ceea ce privește modificarea proceselor de dezvoltare. De exemplu, având în vedere faptul că structura sistemului se modifică permanent, este nevoie să se urmărească și ajusteze zilnic arhitectura sistemului. În acest scop Humane Assessment recomandă o ședință zilnică scurtă care să includă doar ingineri și în cadrul căreia se abordează doar probleme care au fost evidențiate printr-o analiză automată dezvoltată în înaintea ședinței.

Mai multe informații despre Humane Assessment se pot găsi la: http://humane-assessment.com

Dacă mâine ar trebui să scrii un articol despre software, care ar fi titlul acestuia ?

[Tudor] Software environmentalism.

Care este perspectiva ta asupra evoluției tehnologiei peste 10 ani și impactul acesteia în viața de zi cu zi a oamenilor?

[Tudor] Tehnologia va avea un rol din ce în ce mai pregnant în viața noastră de zi cu zi. Acesta este o direcție evidentă. Mai puțin evident e ceea ce implică acest lucru.

Viteza cu care producem sisteme noi crește pe zi ce trece. Pe de o parte, acesta e un lucru bun. Pe de alta parte, abilitatea noastră de a ne debarasa de sisteme vechi nu a ținut pasul. Să luam un exemplu: un studiu Gartner arată ca în lume mai există în uz circa 10.000 de sisteme de tip mainframe. Acestea sunt sisteme care pot ajunge chiar mai în vârstă decât majoritatea programatorilor din ziua de astăzi. Aceasta ne arată că software-ul nu e chiar atât de "soft" pe cât am putea crede. Odată creat un sistem, el produce consecințe și dependențe inclusiv la nivel economic și social care îi cimentează poziția și îl face aproape imposibil de "aruncat". Singurele opțiuni rămân "recondiționarea și reciclarea".

Datorita proporției și impactului industriei software, e nevoie să privim producția de sisteme software ca pe o problemă de importanță și dimensiune ecologică. Orice sistem trebuie să fie construit în așa fel încât în viitor să poată fi ușor de dezasamblat. Aceasta e o responsabilitate pe care noi, ca ingineri ai lumii de mâine, trebuie să ne-o însușim.

LANSAREA NUMĂRULUI 149

Marți, 26 Octombrie, ora 18:00

sediul Cognizant

Facebook Meetup StreamEvent YouTube

NUMĂRUL 147 - Automotive

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects