Saturday, December 2, 2017

Mentenanța

Mentenanța unui program este total diferită de cum era mentenanța programelor prin anii '70 sau '80 sau chiar și '90. În vremurile de emult programatorul era un fel de Marița bună la toate, deci se înțelege că automat to el făcea și mentenanța. Dacă știa să facă produsul mentenabil, avea viață ușoară. Dacă nu, muncea cam mult și fără spor.
Pentru a face un program mentenabil sunt nenumărate modalități. Totul este ca programatorul să știe că tot el va face mentenanța. 
Dacă utilizatorul spune că seriile lui de date au 67 de termeni, la definire se vor face alocări de 200 de componente și numărul efectiv cu care se va lucra este introdus prin program. Programatorul neinspirat care va lucra cu constanta 67 peste tot în program, când utilizatorul zice că lucrează cu o serie de 81 de termeni, teste tot prin program unde apare 67 trebuie să-l înlocuiască cu 81 și din cauza vitezei dacă are și vreo instrucșțiune etichetată cu 67, va înlocui eticheta cu 81 ceea ce declanșează răzmeriță și tot programul se strică. Și dacă programatorul nu lucrează cu variante, dacă utilizatorul îi va spune că de fapt seria tot 67 de termeni are, va năduși să restabilească ceea ce a fost inițial, dar cu siguranță va rămâne într-un colțișor un 81 uitat și nemodificate și evident erorile se vor ține lanț căci se va lucra cu variabilele de la 68 la 81 care nu au fost inițializate.
Acum limbajele de programare moderne au tot felul de facilități care permit realizarea mentenanței în doi timpi și trei mișcări. Cine știe să folosescă inteligent facilitățile de template la definirea de tipuri de variavile va reuși să construiască biblioteci foarte variate fără a avea redundanta din FORTRAN unde se construiau patru biblioteci dacă se dorea să se folosească operanzi de tip INTEGER, de tip REAL, de tip DOUBLE PRECISION și de tip COMPLEX. Folosind template se va construi o singură bibliotecă și doar se va specifica tipul cu care se lucrează.
experiența acumulată îl face pe programator să scrie din start programe direct mentenabile folosind modalități precum:
- alocări dinamice de variabile omogene;
- lucru cu vectori de pointeri spre funcții;
- rezervarea de zone suplimentare în articole;
- realizarea de construcții deschise;
- dezactivarea de opțiuni la cerere;
- restrângeri de variante prin generalizări;
- gestionarea ondulanței prin modularizare;
- gestionarea variantelor de program;
- separarea părților instabile ale programului.
mentenanța depinde foarte mult de discuțiile inițiale ale definirii problemei, când sunt descifrate toate punctele în care intervin modificări concretizate prin:
- schimbări a ceea ce există;
- adăugări ale unor elemente;
- eliminări de componente.
Toate acestea se produc simultan în procesul de mentenanță. La programul de calcul al salariilor apar noi cerințe concretizate prin:
- adăugarea în articol de noi câmpuri conform legii;
- schimbări în algoritmul de calcul;
- modificări în treptele de impozitare;
- introducerea unui alt mod de tipărire;
- efectuarea de tranzacții online.
Toate sunt firești și noul sistem de lucru pe care codul fiscal care va intra în vigoare la 1 ianuarie 2018 va impune schimbări de substanță în programul de calcul al salariului, căci se pornețte de la salariul brut și din el se fac scăderi, nu de la salariul net la care se făceau adunări pentru a ajunge la salariul brut de azi. Dacă cei ce au gândit sistemul de programe pentru salarii au avut o viziune mult mai cuprinzătoare, cu siguranță nu vor muncii prea mult în procesul de mentenanță. În cazul în care însă au lacrat ca prin anii '70, evident vor munci aproape luând totul de la zero, căci lor li se va părea că totul este schimbat.
Pentru a face un program ușor mentenabil se impune:
- structurarea pe funcționalități a programului;
- introducerea de comentarii în programe;
- adoptarea de tehnici de parametrizare;
- implementarea unei formule de însumare de produse;
- includerea unei rezerve de zonă de memorie în articol;
- construirea unui program de inițializare a parametrilor;
- parametrii sunt de fapt un articol într-un fișier.
Nu mă apuc eu să dau sfaturi celor care mănâncă programe de calcul salarii pe pâine, dar mi-aș putea da acum seama cât de meseriași au fost la proiectarea acum câțiva ani a noii structuri de program, căci mi se pare impardonabil să fie aruncate peste bord peste 40% din textele sursă de azi, doar pentru faptul că s-a modificat legea. Stabilitatea programului și mentenabilitatea sa sunt strâns legate.
Efortul de mentenanța software arată cât de bună a fost soluția adoptată. Sunt sigur că un program se proiectează din star să fie mentenabil, dacă cei ce se ocupă de acest aspect sunt vizionari și adoptă strategia că din mentenanță se trăiește cu mult mai bine decât din scrierea de programe. Scrierea de programe are caracter de unicat, pe când mentenanța este perpetuă și este indispensabilă clienților care deja s-au obișnuit cu produsul și nu l-ar schimba din inerție, comoditate sau așa pur și simplu, din teama de nou.
Programele FORTRAN nementenabile sunt cele care fac munca programatorilor creativă, căci ei nu mai pierd mult timp cu procesul de a prelua în program tot felul de modificări după ani și ani de la implementare.
Totuși lumea trebuie să scrie programe mentenabile, iar pentru urmărirea facilă a textului trebuie create blocuri distincte sau introduse elemente de variabilitate, lucrându-se cu date citite pentru a obține efectele dorite.




(29 noiembrie 2017)

No comments:

Post a Comment