Showing posts with label structuri repetitive. Show all posts
Showing posts with label structuri repetitive. Show all posts

Sunday, December 3, 2017

Criterii de optim

Criteriile de optim sunt importante căci de la ele pornește totul.  Astfel de criterii sunt:
- maximizrea dimensiunii problemei de rezolvat;
- maximizarea nivelului calitatii agregate a produsului software;
- maximizrea  fiabilității produsului software;
- maximizrea preciziei rezultatelor;
- maximizarea  flexibilitățiiin structurii cheilor în procesul de regăsire;
- maximizrea gradului de satisfacție al utilizatorului;
- maximizrea nivelului de secutitate al produsului software;
- maximizrea productivității echipei de dezvoltare;
- maximizrea  gradului de acoperire prin testare a ramurilor produsului software;
- maximizarea gradului de generalitate a probelelor de rezolvat;
- maximizrea duratei etapei de utilizare;
- maximizarea gradului de ocupare a masivelor definite static;
- maximizarea elementelor care asigură continuitatea în interfețe;
- minimizarea costului de construire a unui produs software;
- minimizarea costului calității produsului software;
- minimizarea duratei tranzacției;
- minimizarea duratei procesului de mentenanță;
- minimizarea lungimii efectului de ondulană;
- minimizarea necesarului de memorie;
- minimizarea lungimii produsului software;
- minimizarea ciclurilor mașină;
- minimizarea duratei de realizare a produsului;
- minimizarea complexității programului;
- minimizarea volumului de date necesar pentru regăsire;
- minimizarea  numărului de fișiere utilizate în program;
- minimizarea  numărului de încărcări/descărcări de pe server;
- minimizarea expresiilor logice din selectarea articolelor;
- minimizarea volumului de variabile de tip static;
- minimizarea numărului de apeluri de proceduri;
- minimizarea numărului de instrucțiun return executate;
- minimizarea numărului de instrucțiuni de salt necondiționat;
- minimizarea volumului de instrucțiuni prin duplicare de cod;
- minimizarea  volumului de conversii de tip;
- minimizarea listelor de parametrii.
Procesul de optimizare este în cazul produselor software de o mare complexitate și tot timpul trebuie găsit un echilibru, căci se urmărește de regulă satisfacerea mai multor criterii de optim simultan, ceea ce este deosebit de dificil de obținut. Este rezonabil să se extragă o submulțime de criterii și acestora să li se dea note, iar după aceea să li se calculeze coeficienții de importanță și criteriile să fie agregate folosind acele ponderi, care din timp în timp trebuie recalculate.
Criteriile  de optim sunt dorințe intime ale oricărui programator, dar punerea în operă este anevoioasă că programatorul nu face ce vrea el și are nenumărate constrângeri de care trebuie să țină seama. Uneori deși îmi propusesem să scriu cel mai fain program din câte existau pe planetă, beneficiarul, dar și șefii veneau cu biciușca și mă mânau de la spate și nu numai că uitam de visul meu frumos, dar o mai și zbârceam. Lucrul cel mai urât este să știi unde ai greșit și să nu ai cum să-ți îndrepți greșeala dintr-o mie de motive, care mai de care mai obiective, indispensabile, presante și imposibil de controlat.








(023 decembrie 2017)



Optimizarea programelor

Optimizarea programelor a fost o temă care m-a obsedat din studenție. Mi-am zis, când făceam Cercetări operaționale, că dacă se optimizează rații de calorii pentru vaci, dacă se face programare numere întregi pentru sortimente de strunguri și autoturisme, de ce nu s-ar face și optimizarea programelor. Atunci nu era ca acum să dai pe internet pe Google un search cu software și optimization ca să apară nenumărate articole. Atunci am găsit în Communicațion of the ACM  articolul referit prin:
Donald E. KNUTH - Structured Programming with go to Statements, ACM Journal Computing Surveys 6, no. 4, 1974, pg. 268–301.
Și de atunci a început aventura mea cu optimizarea programelor.
Am studiat.
Am scris porgrame cu optimizări în ele.
Am scris articole.
Am coordonat lucrări de diplomă.
Am coordonat lucrări la sesiuni științifice.
Am scris și o carte.
Am coordonat și o teză de doctorat.
Cu alte cuvinte, era să fiu dat afară de la grădiniță pentru cât am insistat pe acest subiect, pe care îl consider excepțional și care în viitor va face diferența cîci în cloud computing nu se va lucra decât numai cu lucrări performante, care fac totul perfect și se demonstrază că altceva mai bun nu există.
Ca să arăt că nu bat câmpii exemplific cu:

  • Ion IVAN, Catalin BOJA - Practica optimizarii aplicatiilor informatice ,Editura ASE, Bucuresti, 2007, 479 pg, ISBN 978-973-594-932-7
  • Ion IVAN, Adrian PIRVULESCU - Atribuirea de ponderi pentru criteriile de optimizare a aplicatiilor informatice, Revista Romana de Statistica, vol. 54, nr. 2, 2005, pg. 21 - 31
  • Ion IVAN, Sergiu COMAN, Alexandru BALOG - Tehnici de evaluare a efectelor optimizarii de programe (1), Revista de Statistica, vol.32, nr. 1, 1983 pg. 27 - 33
  • Ion IVAN, Sergiu COMAN, Alexandru BALOG - Tehnici de evaluare a efectelor optimizarii de programe (2), Revista de Statistica, vol. 32, nr. 4, 1983, pg. 46 - 50
  • Ion IVAN, Eugen DUMITRASCU, Daniel MILODIN, Dragos PALAGHITA - Optimum Criteria for Developing Defined Structures , Informatica Economica, vol. 12, nr. 2, 2008, pg. 43 - 54, ISSN 1453-1305
  • Ion IVAN, Catalin BOJA -Optimizarea bicriteriala a software, Informatica Economica, vol. 10, nr. 1, 2006, pg. 17 - 24, ISSN 1453-1305
  • Ion IVAN, Catalin BOJA -Optimizarea empirica a software, INFORMATICA ECONOMICA, vol. 9, nr. 2, 2005, pg. 43 - 50
  • Ion IVAN, Cristian CODREANU - Optimizarea programelor Assembler, Informatica Economică, vol. 2, nr. 2, 1998, pg. 26 - 37
  • Ion Ivan, Gheorghe Nosca, Otilia PÎrlog - The optimization of the software quality cost using neural networks, The 4th International Symposium of Economic Informatics Information Technology, Bucharest, May 6-9, 1999, INFOREC Printing House, pp. 177 Ă˘â‚Źâ€œ 180, ISBN 973-98508-5-5
  • Ion IVAN, Adrian VISOIU, Mihai DOINEA - Image Processing Oriented to Security Optimization, Journal of Information Technology and Communication Security, The 2nd International Conference on Security for Information Technology and Communication, 19 - 20 November 2009, Bucharest Romania, ASE Publishing House Romania, pp. 31 - 38, ISBN 978-606-505-283-3
  • http://www.ionivan.ro/teaching16600-procomp-10optimizare.php
Deci problema este deosebit de vastă, suculentă, inepuizabilă și sursă de soluții originale, drept care va dăinui peste veacuri, atât timp cât lumea vă căuta să-i fie din ce în ce mai bine. Optimizarea programelor este un lucru deosebit căci de acest proces epinde fundamental performanța oricărei aplicații, căci între o aplicație online rapidă și una mai lentă, diferența este acum de milioane de USD, la cât de mulți clienți fac trab=nzacții cu o aplicație de acest tip.




(23 decembrie 2017)