Showing posts with label informatica. Show all posts
Showing posts with label informatica. Show all posts

Wednesday, December 6, 2017

Introducere: considerații la istoria informaticii românești

Între anii 1999 -2003 am asistat la nenumărate întâlniri cu oameni de meserie din informatică reuniți pentru a pune bazele realizării unei istorii a informaticii de la noi. Discuțiile s-aun împotmolit la;
- titlu;
- întâietăți;
- etapizări;
- dimensiune;
- detaliere;
- atribuire;

- durată;
- fonduri.
Titlul a fost cel mai greu lucru de stabilit. Mi-am adus amintre de trei prieteni care se întâlnesc duminică dimineața să discute ce vor face în acea zi, cum își vor petrece timpul. Ei parlamentează, nu se înțeleg, vin cu tot felul de variante, argumente și contraargumente și îi găsește seara tot parlamentând. Exact așa a fost și aici. Se discuta dacă acelei cărți să i se spună istoria Informaticii românești sau istoria Informaticii din România, existând două tabere foarte echilibrate numeric dar și ca voci care își susțineau cu ardoare punctele de vedere. Această chestiune a făcut ca totul să treacă în plan secundar și progresele de la o ședință la alta să fie nesemnificative.
Întâietățile n-au depășit nici în informatică celebra dilemă despre cine a fost mai întâi, oul sau găina sau amândouă, zic eu. În acea sală erau foarte mulți dintre cei care au avut contribuții majore la dezvoltarea informaticii din țatra noastră, fără a exista o modalitate de a cunatifica importanța și nici documente din care să rezulte ziua, ora și minutul în care s-a produs nu oarecare eveniment. Pentru a lămuri care sunt întâietățile trebuiau definite criterii și ales unul care să nu se schimbe niciodată și respectivul criteriu să genereze lista imuabilă a întâietăților și punct.
Etapizările au generat discuții dintre cele mai aprinse, întrucât există nenumărate criterii. Cei ce au îmbrățișat ideia de a etapiza în timp aveau argumentele lor, cei care abordau probleba după criteriul teritorialității veneau și ei cu argumentele celor trei provincii românești, iar cei care demonstrau necesitatea etapizării după generașiile de calculatoare își căutateu și ei dreptatea, nimeni neavând izbândă și totul terminându-se în coadă de pește.
Dimensiunea cărții de istorie a informaticii se vrea ceva monumental, unii dintre participanții la discuții făceau referire la cartea lui George Călinescu Istoria literaturii române de la origini până în prezent, publicată în anul 1941. Alții vedeau eliminarea limitelor de dimensiune din moment de o astfel de abordare se realizează exclusiv în mediul virtual, dedicându-i-se un site despre al cărui nume s-au purtat discuții interminabile, deci fără rezultat concret.
Detalierea a depins de fiecare dată de efortul pe care autorii au fost dispuși să și-l asume, dar toată lumea a invocat necesitatea lucrului pe documente, cu exactitatea de ceasornic, ca și cum totul se realizează pornind de la zero, deși există nenumărate materiale despre evoluția informaticii, căci toți cei care au aniversat câte ceva au scris fie memorii, fie cărți, fie articole, deci există ceva.
Atribuirea de capitole pe autori a devenit o mare problemă mai ales că printre cei prezenți în sală se aflau persoane care se considerau deschizători de drumuri, fondatori și tătici ai informaticii românești, căci mămici nu erau invitate să aibă contribuții la atingerea obiectivului. De regulă, când apar coordonatori de organizații cărora li se atribuie sarcini exacte, deși ei spun că fac și dreg, cu siguranță că ei transferă sarcinile unor subordonați și materialele apar anonime, căci nimeni nu vrea să-și asume responsabilitatea unor materiale eterogene, făcute fără plată și mai ales fără dirijor.
Durata realizării unei istorii a informaticii de la noi a plutit la toate întâlnirile sub imperiul incertitudinii, datorită a numeroși factori dintre care dorința unei abordări științifice, obiective era factorul dominant. Este adevărat că pofta vine mâncând și totuși caracterul obiectiv este relativ căci nimeni nu știe apriori ce și cum despre ceva care face obiectul unei cercetări.

Despre fonduri s-a discutat mult și neproductiv, ca să nu spun nerealist. Mi-am adus aminte de meșterii care pun gresie care în loc de a arăta ce știu să facă și pe unde au lucrat, vin și troznesc un preț de te îndoaie, ei neștiind ce sunt aceia distanțieri. La acele ședințe exact acest aspect m-a izbit profund, anume banii. În loc să se procedeze la a face un text ca ofertă pentru obținerea finanțării pentru un proiect, unii dintre potențialii autori vorbeau de bani, de pretenții și nu corelau efortul și rezultatul cu sumele de încasat.
Toate acestea m-au determinat la un moment dat să scriu o carte de istorie a informaticii de la noi cu mult mai tendențioasă decât cartea din 1952 a lui Mihail ROLLER intitulată Istoria RPR, manual pentru învățămîntul mediu. Cartea conținea nenumărate interpretări simpliste, eronate și neștiințifice, dar i-a făcut pe alți istorici să treacă deîndată la scrierea de istorii pe care ei le considerau și științifice și obiective și românești, caracteristici care în mare parte rămâneau la stadiul de deziderat datorită restricțiilor impuse de partidul aflat la putere până în 1989.
După o analiză mai atentă mi-am zis că nu merită, pentru că ar fi pentru mine o abordare negativă și dacă tot fac ceva, să nu fie nici în dorul lelii și nici ceva aiuritor care nu folosește nimănui.
Obiectivul lucrării este de a prezenta cât mai obiectiv, dar selectiv, aspecte esențiale din evoluția de-a lungul anilor a informaticii de la noi din țară.
Am structurat lucrarea fără a folosi un criteriu anume, ci exact așa cum am considerat că este util pentru a da o imagine cât mai bună privind informatica românească, pentru că lucrării i-am dat titlul Istoria informaticii românești, căci așa mi-a venit primul gând, având senzația că am posibilitatea să includ cât mai multe lucruri, fără a fi extrem de pretențios și de generalizator.


(26 septembrie 2017)

Tuesday, November 21, 2017

&&&&& cuprins carte 2017-10-04

     Limbaje de programare ok
        Limbaj cod mașină ok
        Limbaje de asamblare ok
        Limbaje de prima generație ok
        Limbaje evoluate ok
        Limbaje de nivel înalt
        Limbaje pentru aplicații online ok
        Limbaje de descriere ok
     Publicații (pus)
       Cărți limbaje de asamblare
       Cărți FORTRAN
       Cărți de COBOL
       Cărți de PASCAL
       Cărți de C, C++, C#
       Cărți Java
       Cărți HTML, PHP
       Cărți baze de date
       Cărți sisteme informatice ok
       Cărți sisteme de operare ok
       Cărți de  structuri de date
       Cărți de informatică teoretică ok
       Cărți de bazele programării ok
       Cărțile de la ITC ok
       Cărțile de la ICI
       Alte cărți de informatică ok
       Reviste de informatică
       Volume de la conferințe
        Tirajele ok
   Învățământul de informatică
        Învățământul gimnazial
        Învățământul liceal
        Învățământul universitar
        Masterate
        Doctorate în informatică
        Arii de interes ok
        Olimpici și premianți ok
   Cercetarea în informatică
        Comisia guvernamentală ok
        Informatica la Academie ok
        ICI ok
        ITC ok
        BNP
        Laboratoare universitare ok
        Cercetările solitare ok
        Cercurile științifice studențești ok
        Lucrul individual ok
    Producția de tehnică de calcul ok
        Producția de mașini de calcul mecanice ok
        Producția de mașini eletro-mecanice ok
        Producția de mașini electronomecanice ok
        Producția de calculatoare electronice ok
        Producția de minicalculatoare ok
        Producția de calculatoare personale ok
    Centre de calcul ok
        Centrele teritoriale de calcul ok
        Centrul de calcul CINOR ok
        Centrul de calcul DCS ok
        Centrul de calcul IPIU ok
        Centrul de calcul al armatei ok
        Centrul de calcul al securității ok
        Centrul de calcul al Uzinelor Dacia ok
        Centrul de calcul de la Republica ok
        Centrul de calcul CEPECA ok
        Centrul de calcul CIPA ok
        Centrul de calcul de la Tractorul ok
        Centrul de calcul Carbochim ok
        Conferințe de informatică ok
        Conferințe specializate ok
        Conferințe omagiale ok
        Conferințe tematice ok
        Secțiuni în conferințe ok
        Conferințe științifice studențești
        Olimpiadele de informatică ok 
   Informatizarea societății ok
        Istoria soluțiilor informatice ok
        Groaza de calculator ok
        Informatizarea administrației ok
        Informatizarea în bănci ok
        Informatizarea în industrie ok
        Informatizarea în transporturi ok
        Informatizarea în medicină ok
        Societatea informațională ok
        Dezvoltatorii de software ok
        Programul  euro-200
        d-AN
   Aspecte economice ale informaticii ok (pus)
        Informatica între cheltuială și investiție ok
        Uzura fizică în informatică ok
        Uzura morală în informatică ok
        Informatica economică ok
        Economia informaticii ok
        Economia informației ok 
        Valoare informației ok
        Valorificarea informației  ok
        Economia digitală ok
        Moneda virtuală - bitcoin ok
     Strategii ale informatizării ok
        Contextul  ok
        Înainte de 1989 ok
        După 1989 ok
        Aportul agenților privați ok
        Implicațiile telefoniei mobile ok
     Generațiile de calculatoare ok
         Generația a I-a ok
         Generația a II-a  ok
         Generația a III-a ok
         Generația a IV-a ok
         Generația a V-a ok
         Generația a VI-a ok
          Generația a VII-a  ok
         Vocabularul de demult ok
         Vocabularul de azi ok
          Decalajele istorice
     Generații de suporți de stocare ok
          Banda perforată
          Cartela perforată ok
          Tb, Gb, Mb și cartelele perforate  ok
          Banda magnetică ok
          Discul fix ok
          Discul extern ok
          Memoriile de masă ok
     Tehnici de programare  ok
         Programarea în cod mașină ok
         Programarea ca artă ok
         Less GO TO ok
         Programarea  structurată  ok
         Programarea standard ok
         Programarea orientată obiect ok
         Programarea vizuală ok
         Programarea industrială ok
         Productivitatea programatorilor ok
         Confuzii ok
     Personalități ale informaticii
         Grigore Moisil
         Victor TOMA ok
         Dagoș Vaida
         Alexandru ROGOJAN ok
         Ștefan Nițchi ok
         Emil MUNTEANU ok
         Florin Filip ok
         Mircea Petrescu ok
         Adrian Petrescu ok
         Ion Gh. Roșca ok
         Victor Patriciu ok
         Nicolae Țăpuș ok
         Valentin Cristea
         Dumitru Oprea ok
         Alexandru Balog ok
         Cătălina Cocianu ok
         Costin Pribeanu ok
         Premiul Tudor TĂNĂSESCU ok
   Muzeul virtual al informaticii  ok
         Pornind de la muzeul real ok
         Animații ale principiilor ok
         Elementele primitive
         Mașinile mecanice de calcul ok
         Mașinile electrice de calcul
         Tabulatorul ok
         Calculatoarele cu cartele ok
         Calculatoarele personale ok
         Laptopurile ok
         Tabletele ok
         Scrierea de programe ok
         Sisteme informatice în acțiune ok
         Interfețele om-calculator ok
   Discipline de învățământ ok
          Bazele informaticii ok
          Birotica profesională ok
          Limbaje de programare ok
          Structuri de date ok
          Sisteme de calcul ok
          Sisteme de operare ok
          Limbaje de asamblare
          Baze de date ok
          APSIE ok
          Programe aplicative ok
          Metode numerice
          Ingineria software ok
          Rețele de calculatoare ok
          Teleprelucrare ok
          Tehnici de compilare ok
          Tehnici de programare ok
          Calitate software ok
          Grafică pe calculator ok
    Teme de licență ok
           Teme de licență la specializarea Informatică economică ok
           Teme de licență la specializarea Informatică teoretică ok
           Teme de licență la specializarea Calculatoare ok
           Teme de licență la drept ok
           Teme de licență la arhitectură ok
           Teme de licență la conservator ok
           Teme de licență la construcții ok
           Teme de licență la fizică ok
           Teme de licență la geografie ok
           Teme de licență la litere
    Specialiști în informatică ok
           Programatorii ok
           Analiștii de sistem ok
           Dezvoltatatori de baze de date ok
          Testerii ok
           Depanatorii de programe ok
           Implementatorii ok
           Operatori calculator ok
           Inginer de sistem ok
           Web designerii ok
           Designer aplicații informatice ok
           Auditor de sistem informatic ok
           Manager de proiect informatic  ok
           Profesiile oficiale
           Hackeri români ok
                Guccifer ok
                Faur Victor zis SirVic ok
                Răzvan Cernăianu akka TinKode ok
                Mircea-Ilie Ispășoiu ok
                Mihai Marius Enea Haisler zis Calu ok 
                Gheară Constantin zis Tică ok
                Ursu Romeo zis Boenică ok
                Hackerville ok
                Și lista continuă... ok
          Costuri în informatică ok
                Metrici software ok
                Efectul de ondulanță în programare ok
                Complexitatea software ok
                Lungimea unui program ok
                Costul unui sistem informatic
                Costul planificat al unui produs porgram ok
                Chiria pentru un produs software ok
                Recuperarea costurilor software. ok
                Cheltuieli în ciclul de realizare software ok
                Modelarea costurilor software ok
                Modelul de cost bazat pe complexitate  ok
                Corelația cost-complexitate software ok
                Estimarea costului unui produs software
                Devizul unui proiect informatic
         Aplicațiile informatice
               Calcularea salariilor
               Evidența contabilă
               Prognozele economice
               Programarea producției
               Evidența de personal
               Gestiunea de stocuri
               Mijloacele fixe
               Programele de optimizare

               Bibliotecile de subprograme ok
informatică, software, costuri, ciclu de dezvoltare, inginerie software, complexitate, modele de costuri, cost planificat, cost efectiv, cost estimat

(17 noiembrie 2017)
 Concluzii ok
Anexa 2
Câte ceva și despre mine ok

al doilea nivel de referire
Istoria informaticii românești
Publicații în domeniul informaticii  ok
Economie și informatică ok

Complexitatea software

Complexitatea software este unul dintre cele mai frumoase lucruri din ingineria software pe care le-am cunoscut înainte de 1989. Pe când frecventam Biblioteca Americană, tot înainte de 1989 am identificat acolo în niște reviste ceva despre complexitate și despre HALSTEAD. Am comandat acolo cartea lui Maurice Howard Halstead intitulată Software science. Era prin 1979, iar când am fost anunțat de la Biblioteca Americană să merg s-o ridic, a iscat o mică furtună în Catedra de Cibernetică Economică și multor colegi le-au ieșit ochii din orbite când mi s-a transmis mesajul de la rectorat. Am obținut cartea și după ce am citit-o viața mea despre calitatea software în general și despre complexitatea software în special, s-a schimbat la 180 de grade.
Cartea este referită prin 
  • Maurice Howard HALSTEAD - Elements of software science, Elsevier Printing House, New York, 1977, 127 pg.

Se notează:
  n1 - numărul dististinct de operatori,
  n2 - numărul distinct de operanzi,
   C - complexitatea programului,
atunci se scrie formula:

C = n1 log2 n1 + n2 log2 n2

Tot în carte se mai definesc volumul V, dificultatea și efortul E. Gurile rele vorbesc că formula pleacă de la formula entropiei și probabilitățile au fost înlocuite cu frecvențe, lucru despre care bârfitorii l-ar atribui unui anumit matematician, pe care eu n-am stat să verific că lucrurile chiar așa stau. Ceea ce știu este simplu și anume că formula a fost acceptată de informaticieni și că există deja medii online unde se calculează complexitatea pentru programe PASCAL, C++ sau și pentru alte limbaje.
Ecistă o altă modalitate de calcul a complexității cu formula lui McCABE descrisă în articolul referit prin:
  • Thomas McCABE, Charles BUTLER - Design Complexity Measurement and Testing, Communications of the ACM, vol. 32, nr. 12, 1989, 1415-1425 pg.

Complexitatea în sens McCABE este definită prin relația:

C = m-n+2

unde:
C - complexitatea;
m - numarul arcelor din graf;
n - este numarul nodurilor grafului.
Acum nu există nicio dificultate ca un program să citească un alt program scris în C++ sau PASCAL să identifice nodurile și arcele unui graf asociat programului ++ sau PASCAL și să calculeze acea complexitate, care se mai numește și numărul ciclomatic al grafului.În articolul referit prin: 
  • Ion IVAN,  Doru CAZAN, Paul POCATILU - Evaluarea performantei sistemelor informatice, Revista Informatica Economica, vol. 4, nr. 3, 2000, pg. 57 - 60 sunt tratate cele două modele dar și modelul COCOMO.

Mai sunt și alte modele, dar acestea două sunt mai des folosite, deși achizițiile de adte invită pentru OOP să se construiască alte zeci și zeci de modele de calcul pentru complexitatea de programe. Complexitatea software este o zonă extrem de interesantă ce trebuie explorată căci toate estimările pentru metrici pornesc de la complexitatea programelor. Costurile unor produse software, nivelurile de salarii care se plătesc pentru unele produse software, duratele de realizare ale produselor software se estimează plecând de la complexitatea, de asemenea, estimată a respectivelor produse software.
Pentru expresia:
e=a+b-c/d*f
numărul de operanzi este n2=6, numărul de operatori este n1=5, iar complexitatea este
C = 5 log2 5 + 6 log2 6 = 5 * 2.32 + 6 * 2.58 = 27,8
În textele programelor apar operatori precum IF(), FOR(), THEN, ELSE, DO---UNTIL, WHILE--DO, CALL(), RETURN, GO TO, SWITCH() care intră în calcule normal fa stabilirea de drecvențe pentru varianila n1.







(21 noiembrie 2017)

Monday, November 20, 2017

Metrici software

Metricile software sunt o colecție de indicatori care permit cuantificarea caracteristicilor de calitate. Cum orice indicator este o convenție din care n-a murit nimeni, cu siguranță și metricile sunt niște convenții din care nu va muri nimeni și care trebuie însă acceptate ca fiind utile pentru a crea o imagine prin comparație asupra unui produs software.
În cazul unei metrici trebuie luate în considerare o serie de ipoteze dintre care enumăr:
- nu există indicator perfect, deci nici metrică perfectă nu există;
- o metrică se definește pentru o listă de caracteristici de calitate;
- lista de caracteristici este argumentată de fiecare cum crede că este în stare;
- la câte grupuri de specialiști sunt tot atâtea metrici valabile vor exista;
- într-o metrică este rezonabil ca indicatorii să fie normați cu o aceeași semnificație;
- când se construiește o metrică se iau în considerare o serie de factori de influență;
- metrica se definește în mod realist, adică factorii sunt măsurabili;
- trebuie să existe o mulțime de programe în exploatare care fac obiectul studiilor de calitate;
- toate concluziile se obțin numai la ceea ce s-a studiat, nu și în afară;
- generalizările se fac pe riscul celui ce le produce, iar valoarea lor tinde către zero;
- metricile nu sunt universale, ci de la etapă la etapă se impune construirea de noi metrici;
- numai cine folosește curent metrici valide are elemente clare de autoperfecționare;
- evalurile specifice maximei transparențe presupun utilizarea unei metrici unice;
- comparațiile dintre produse software au la bază indicatori ai unei aceleiași metrici;
- rezultatele oferite de o metrică sunt orientative, nu constituie obiect de judecată în tribunal. Despre metrici software am scris cu mulți ani în urmă niște materiale precum:

  • Ion IVAN, Mihai POPESCU, Felix SIMION si Panagiotis SINIOROS - Metrici software, Editura INFOREC, București, 1997, 119pg. 
  • Ion IVAN, Catalin BOJA, Cristian CIUREA - Metrici ale sistemelor colaborative, Editura ASE, Bucuresti, 2007, ISBN 978-973-594-963-1, 186pg. 
  • Ion IVAN, Doru CAZAN – Metricile de calitate ale sistemelor informatice, Informatica Economica, vol.8, nr. 3, 2004, pg. 123 – 128,  2004. 
  • Ion IVAN, Marius POPA – Tipuri de metrici ale textelor, Studii si cercetari de Calcul Economic si Cibernetica Economica, vol. 38, nr. 1, 2004, pg. 25 – 36, ISSN 0585-7511., 2004
  • Ion IVAN, Constantin NICULAE, Paul POCATILU – Metrici pentru evaluarea coeziunii software orientat obiect, Studii si Cercetari de Calcul Economic si Cibernetica Economica, vol. 37, nr. 3, 2003, pg. 5 – 14, ISSN 0585-7511., 2003
  • Ion IVAN, Paul POCATILU, Mihai AMITROAIE, Metrici ale societăţii informaţionale, revista Informatica Economică, vol. 5, nr. 4, 2001, pg. 33 – 40, ISSN 1453-1305, 2001
  • Ion IVAN, Alexandra KARADIMOU, Adrian LICURICEANU, Gheorghe LUPU - Metrici de complexitate software bazate pe dependenţele instrucţiunilor, revista Informatica Economică, vol. 3, nr. 3, 1999, pg. 11 – 19, ISSN 1453-1305, 1999
  • Ion IVAN, Gheorghe LUPU, Adrian LICURICEANU – Substituirea de metrici software, Studii si Cercetari de Calcul Economic si Cibernetica Economica, vol. 33, nr. 1/1999, pg.25 – 33. , 1999
  • Alexandru BALOG, Ion IVAN - Extensii ale metricii Halstead pentru sisteme de programare, PC WORLD ROMANIA, an 5, nr.5, 1997, pag.86-87, 1997
  • Ion IVAN, Daniel VERNIS, Petrisor OPREA - Metrici pentru compresia fişierelor, revista Informatica economica, vol1, nr. 2/ 1997, pg. 100 – 104, 1997
  • Ion IVAN, Felix SIMION, Emilia STANCIU, Alexandra KARADIMOU - Metrici ale re-ingineriei software, revista Informatica Economică, vol. 1, nr. 3/ 1997, pg. 27 – 34,  1997
  • Ion IVAN, Felix Simion, Viorel Nica - Gradul de interferenta al metricilor Halstead si McCabe, Revista Romana de Informatica si Automatica, vol. 7, nr. 3, 1997, pg. 23-28, 1997
  • Ion Ivan, Popescu Mihai - Metrici software, BYTE România, vol. 2, nr. 5, mai 1996, pg. 73-82, 1996
  • Ion IVAN, Adrian VISOIU - Rafinarea metricilor software, Economistul, nr. 1947 (2973), 29 august 2005, supliment Economie teoretica si practica, nr. 466.
Metricile personale sunt formate din indicatori considerați importanți de către un specialist. Sunt metrici care sunt utilizate de acea persoană, sunt explicate tuturor celor cărora li se prezintă produse software evaluate cu ele, specificându-se atît plusurile, cîât și minusurile pe care metrica le prezintă. Se vor prezenta ipotezele de lucru, fără a lua în considerare așa-zisele condiții ideale, condiții care nu se întâlnesc niciodată în viața reală și care generează clienților așteptări ce vor fi înșelate la utilizarea curentă a produselor software prezentate în mod artificial în condiții artificiale.
Metricile stabile sunt acelea acceptate de mulți programatori și utilizatori pentru că rezultatele estimate oferite de ele s-au suprapus cu rezultatele efective înregistrate în exploatarea produselor software la foarte mulți dintre clienți. Ele au fost testate și rafinate în timp pe loturi multiple de produse software. Sunt caracterizate prin puțini indicatori care sunt și indicatori simpli.
Metricile impuse sunt cele care sunt date în standarde sau de către grupuri de lucru cu putere de decizie.
Metricile acceptate sunt cele definite la nivelul unei organizații de dezvoltare software și au rolul de a preveni exigente ale auditorilor atunci când se pune problema de auditare și dezvoltatorul nu dorește să aibă surprize, fiind prevăzător.
Metrici software sunt construcții imperfecte destinate unor oameni de asemenea, imperfecți.



(20 noiembrie 2017)

Sunday, November 19, 2017

Corelația cost-complexitate software

Corelația cost-complexitateîn software merită analizată, pentru că intuitiv ar exista concluzia că la programe mai complexe și costurile de realizare ar trebui să fie mai mari. Trebuie văzut cât de mare este nivelul acestei corelații.
Pentru a studia această corelație, dacă managerul companiei de dezvoltare software nutrește astfel de ambiții, trebuie procedat astfel:
- se ia o mulțime de programe P finalizate deja și aflate în exploatare curentă;
- întrucât programele sunt finalizate, înseamnă că se știe care sunt costurile efective ale lor;
- folosind textele sursă și niște instrumente open source se măsoară complexitatea progeamelor;
- se scriu datele într-un tabel cu trei coloane, nume program, cost și complexitate;
- se accesează un utilitar care permite calculul coeficientului de corelație;
- se introduc datele, se apelează funcția de calcul și se obțin rezultatele;
- se interpretează rezultatele și normal ar fi ca valoarea să fie destul de apropiată de 1.
Formula de calcul a coeficientului de corelație este:


unde:
r          - coeficientul de corelație;
n         - numărul de programe;
xi        - valoarea prețului pentru programul Pi;
xbarat - media prețurilor celor n programe;
yi        - valoarea complexității pentru programul Pi;
ybarat - media complexităților celor n programe.
Dacă:
 r=0 înseamnă că nu există nicio corelație între preț și complexitate;
 r este apropiat de zero, înseamnă că este o legătură foarte slabă între preț și complexitate;
 r > 0 și apropiat de 1 înseamnă că este vorba de o corelație directă puternică; cu cât complexitatea crește, cu atât crește și prețul programului;
 r < 0 și apropiat de 11 înseamnă că este vorba de o corelație inversă puternică; cu cât complexitatea crește, cu atât scade și prețul programului, ceea ce în realitate nu prea se întâmplă.
Acum foarte mulți ani când am avut posibilitatea, am studiat cu niște prieteni această corelație pentru vreo câteva sute de programe COBOL și corelația dintre cost și complexitate era de r= 0,95 indiferent de modelul după care se calcula complexitatea. Ceea ce a rezultat prin 1981 era strict legat de faptul că această corelație diferă de la limbaj de programare la limbaj de programare. Cred că și tehnicile de programare joacă un rol esențial dar nu am avutr posibilitatea să fac un studiu căci o astfel de cercetare ar presupune:
- K probleme de rezolvat;
- scrierea a K programe pentru acele probleme folosind tehnica  de programare H;
- scrierea a K programe pentru acele probleme folosind tehnica  de programare L;
- măsurarea complexității programelor scrise cu tehnica H;
- măsurarea complexității programelor scrise cu tehnica L;
- măsurarea prețurilor pentru programele scrise cu tehnica H;
- măsurarea prețurilor pentru programele scrise cu tehnica L;
- calculul coeficientului de corelație rH cu datele de la tehnica H;
- calculul coeficientului de corelație rL cu datele de la tehnica L;
- compararea celor doi coeficienți de corelație.
Chiar și așa, rezultatele au caracter relativ, căci cele K probleme sunt doar un eșantion, iar programele sunt și ele tot eșantion. În plus, este greu să găsești pe cineva să scrie cel puțin 20-30 de programe, fiecare în două variante, când se știe că totul este pe bani.
Corelația cost-complexitate  software este o chestie greu de măsurat nu din cauza efortului de calcul, ci pentru a culege date despre programe care alcătuiesc o mulțime omogenă în raport cu niște ipoteze. În caz contrar ne vom găsi în aceeași situație în care apar bancurile cu cercetătorii britanici care identifică cele mai stranii corelații, de te apucă râsul.




(18 noiembrie 2017)