Sunteți pe pagina 1din 12

Aspecte privind optimizarea n domeniul informaticii

aplicate n economie
n

Ctlin Boja
Asistent universitar

Academia de Studii Economice Bucureti

Abstract. The paper describes the main characteristics of the software optimization process. The
quality characteristics of software applications are presented. Based on them, there are defined optimum
criteria regarding minimization of processing volume and maximization of generality, problem to be
solved and precision. There are described methods and techniques used to reach objectives that correspond with minimization of memory space and with minimization of processing volume through modifications of source code. There are taken into consideration the number of optimum criteria analyzed
simultaneous and the characteristics of bicriteria optimization are defined. In order to analyze the effects
of optimization process and to decide on optimal solution, a method for empirical analysis of results is
defined.
Key words: optimization; software; criteria; optimum; quality.

1. Optimizarea software
Optimizarea software este un domeniu foarte larg al
ingineriei software i o etap important n dezvoltarea
produselor software.
Se consider un numr dat de programe care rezolv
aceeai problem. Dintre ele programul optim este acela
care d cea mai bun valoarea pentru un indicator numit
criteriu de performan.
A optimiza un program nseamn a mbunti
performanele acestuia, cu pretenia c s-a obinut pentru
moment o valoare mai bun a criteriului de performan.
Soluia nu este unic ntruct de la o optimizare la alta se
amelioreaz performana. n plus optimizarea software are
caracter local, referindu-se la un program care se modific
sau la rezultatul comparrii unui numr foarte mic de
programe ntre ele, programe care reprezint versiuni de
rezolvare a unei probleme.
Optimizarea programelor nseamn mbuntirea
programului. Toate referirile se fac la o mulime int de

programe. Se evit referirile de forma: oricare ar fi


programul sau pentru orice program, ntruct n activitatea
de dezvoltare software se lucreaz cu un numr mic de
programe.
Optimizarea este precedat de realizarea aplicaiei
informatice i aducerea ei la o form funcional lipsit de
orice fel de erori. Procesul de optimizare se aplic unei
aplicaii software funcionale care rezolv corect i complet
problema pentru care a fost realizat.
Optimizarea nu nseamn corectarea erorilor. Obiectivul
acestei etape este constituit de mbuntirea
caracteristicilor aplicaiei prin aducerea lor la un nivel
optim.
Conceptul de optimizare a aplicaiilor informatice
descrie procesul de mbuntirea a produsului software
prin dezvoltarea de versiuni sau soluii cu un grad crescut
pentru nivelul de calitate software. Principalele
caracteristici ale procesului sunt:

43

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

Economie teoretic i aplicat

continuitatea, care se refer reluarea procesului prin


definirea de noi obiective calitative; limitarea temporar
a relurii procesului de optimizare este dat de
constrngerile materiale, tehnologice i de timp care
afecteaz procesul de dezvoltare sau de atingere a unui
nivel calitativ considerat adecvat situaiei prezente;
n
funcionalitatea indic faptul c punctul de start al
procesului este constituit de existena unei aplicaii
software complet funcionale; pe baza acesteia sunt
determinate nivelurile calitative de baz n raport
cu care sunt evaluate rezultatele procesului de
optimizare; de asemenea, soluiile obinute
reprezint aplicaii funcionale care s permit
msurarea nivelurilor criteriilor de optim prin
aplicarea metricilor software asociate;
n
caracterul empiric descrie modalitatea prin care sunt
luate deciziile cu privire la alegerea i
implementarea unei soluii optime din mulimea
de soluii posibile; la baza procesului decizional se
afl seturi de date obiective, obinute prin msurarea
direct a nivelurilor criteriilor de optim pentru
fiecare soluie de mbuntire n parte.
n ansamblu, activitatea de optimizare include sau este
strict legat de procesele de:
n
evaluare a aplicaiei; imaginea obiectiv i complet
a aplicaiei software de optimizat este obinut n
urma msurrii directe, prin rularea cu seturi de date
diferite i n condiii de lucru reale, a nivelurilor
caracteristicilor de calitate analizate;
n
testare a versiunilor aplicaiei; odat definite
criteriile de mbuntit i soluiile de atingere a
acestor obiective se realizeaz variante diferite de
module, secvene, algoritmi, tipuri agregate de date
care s fie implementate; evaluarea efectelor
modificrii aplicaiei se realizeaz empiric prin
testare i msurare a nivelurilor criteriilor de optim;
evaluarea efectelor optimizrii prin prisma
punctelor de vedere teoretice conduce de cele mai
multe ori la ndeprtarea de cea mai bun soluie;
n
ierarhizare a versiunilor mbuntite; aplicaia software reprezint o construcie complex cu toate c
prin intermediul abordrii modulare are asociat o
imagine mult simplifcat; lipsa unei metode care s
cuantifice efectele produse de optimizare afecteaza
obiectivitatea i semnificaia deciziei de alegere a
celei mai bune versiuni; este necesar msurarea
tuturor factorilor ce influeneaz criteriul de optim
i nivelul de calitate al aplicaiei;
n
alegerea versiunii optime; n urma analizei
comparate a metodelor de optimizare se stabilete
calea de optimizare a aplicaiei astfel nct aceasta
s fie mbuntit pe ansamblu.
Importana procesului de optimizarea implic stabilirea
poziiei n ciclul de via al produsului dup ce s-a obinut
software funcional conform figurii 1.
n

44

Mentenan
Realizare aplicaie
ANALIZ
PROIECTARE
IMPLEMENTARE
MANAGEMENTUL
CALITII

TESTARE
EVALUARE

OPTIMIZARE

UTILIZARE

Figura 1. Ciclul de via a aplicaiei

n etapa de realizare a aplicaiei, specialitii ce asigur


managementul calitii software stabilesc pe baza analizei
caracteristicile software considerate eseniale pentru
viitorul produs software. Se obin niveluri estimate i se
definesc obiectivele de realizat. ntregul proces de
producie urmrete atingerea obiectivului final, realizarea
aplicaiei, precum i asigurarea nivelului de calitate propus.

2. Criterii de optim
nsuirile economice ale produselor software sunt legate
n principal de capacitatea acestuia de a genera efecte
directe asupra reducerii costurilor de producie n
ntreprinderi, n gestiunea resurselor, la reducerea ponderii
forei de munc umane n etapele de prelucrare i
interpretare a datelor, respectiv a rezultatelor.
Latura economica vizeaz i modul de fundamentare a
deciziilor, atunci cnd sunt luate n considerare soluii
oferite prin implementarea de algoritmi determiniti sau
euristici. Acetia au capacitatea de selectare a variaiilor
eficiente dintr-un numr extrem de mare de soluii considerate realizabile.
nsuirile tehnice privesc produsul software ca entitate
cu comportament specific bazat pe consumuri de resurse.
Produsul este caracterizat prin prisma structurii,
funcionalitii i a instrumentelor cu care este nzestrat.
Din aceste puncte de vedere produsul program este uor de
utilizat, uor de ntreinut, mentenabil, tolerant la erori i
elimin ntr-o proporie ridicat ansele apariiei situaiilor
care blocheaz execuia aplicaiei cu sau fr pierderea
datelor, cu consum mic de resurse i nu n ultimul rnd cu
interfa user friendly.
Caracteristicile sociale se manifest prin efectele determinate de program n colectiviti largi sau n grupuri
restrnse de utilizatori, sau prin rolul avut n procesul de
instruire sau de rezolvarea de cerine ale utilizatorilor.
nsuirile sociale vizeaz efortul utilizatorilor pentru a se
familiariza cu un program, dar i msura n care programul
rspunde ateptrilor.
Din punct de vedere al productorului calitatea software este un obiectiv. Din punct de vedere al utilizatorului
calitatea este forma concreta de manifestare a produsului
software. Productorul stabilete i ierarhizeaz
caracteristicile de calitate ce definesc programele ca
produse software:

consecin este reducerea volumului de prelucrri pn la


un nivel ct mai sczut, adic minimizarea volumului de
prelucrri.
Atunci cnd se proiecteaz soluia pentru o problem,
algoritmii identificai difer unii de ceilali prin volumul
datelor care se stocheaz n memorie, volumul rezultatelor
intermediare, operaii de prelucrare care se execut independent, modaliti echivalente, folosirea recursivitii i
stocarea de rezultate n fiiere.
Volumul de prelucrri ca numr de instruciuni
executabile se calculeaz difereniat pentru secvenele
liniare de instruciuni, pentru secvenele alternative i
pentru secvenele repetitive. Aplicnd formulele pentru
calculul volumului celor trei tipuri de structuri de control
se calculeaz volumul de prelucrri pentru orice program.
Rezultatele sunt utilizate pentru a efectua analize
comparate asupra efectelor obinute prin diverse modaliti
de optimizare.
Maximizarea preciziei. Precizia este un concept nou n
raport cu limitrile pe care le presupun reprezentrile
existente n sistemele de calcul. Se lucreaz la nivel de
bait, la nivel de cuvnt format din doi baii, la nivel de
dublu cuvnt, la nivel de precizie dubl i la nivel de zon
de memorie definit pe zece baii. Pentru fiecare tip de
zon de memorie se definete un domeniu, se definete o
reprezentare i se stabilesc efectele pe care le au operaiile
de calcul cu operanzii definii pe aceste zone de memorie
asupra indicatorilor de condiie. Programatorul trebuie s
efectueze studii privind domeniile operanzilor pentru a
obine rezultate care sunt garantate ca fiind corecte i care
nu genereaz ntreruperi de necontrolat n cazul aplicaiilor
distribuite. De exemplu, dac se lucreaz cu operanzi
definii pe un bait, acetia au valori cuprinse ntre 0 i 255,
adic {0, 1, 2, 3, 4, , 254, 255}.
nseamn c programatorul trebuie s aib grij s fac
astfel de prelucrri nct rezultatul final RFIN dup
evaluarea unei expresii s ndeplineasc condiiile 0 d
RFIN d 255.
Programul trebuie s includ secvene de verificare a
apartenenei lui la aceast mulime.
Pentru programe n care intervin iteraii precizia trebuie
stabilit astfel nct durata de obinere a soluiei s fie corespunztoare, adic s fie utilizat n fundamentarea deciziei.
n cazul n care rezultatul se obine mult mai trziu
dect momentul fundamentrii deciziei, rezultatul
respectiv este inutilizabil.
Numrul de iteraii trebuie s fie acceptabil, iar precizia,
de asemenea, trebuie s fie cu un astfel de nivel nct s nu
influeneze comportamentul efectiv al sistemului modelat.
n cazul modelelor euristice, precizia are n opoziie
eroarea sau gradul de nefolosire de resurse. Impunerea unor
condiii privind precizia trebuie s fie rezonabil fr a
determina ncercri repetate care au acelai rezultat, adic
imposibilitatea de a obine o mbuntire a utilizrii
resurselor.

45

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

independent de utilizatori: modularitate,


mentenabilitate, structurabilitate, testabilitate;
n
n funcie de nevoile acestora: fiabilitate, tolerana
la erori, generalitate, utilizabilitate.
Nivelurile stabilite ca obiectiv pentru caracteristicile
de calitate urmrite sunt rezultatul unui proces interactiv
n care intervin resursele umane i tehnice disponibile ale
echipei de dezvoltare software, cerinele utilizatorilor,
resursele financiare pe care utilizatorul le aloc dezvoltrii
software, limitrile tehnice impuse de generaiile software
i hardware la un moment dat i restriciile de personal ale
utilizatorilor.
Calitatea software este un concept complex, iar
perfecionarea sa are la baz comunicarea permanent ntre
productorul de software i utilizatori, chiar dac produsul
program este proiectat s funcioneze independent de
productor.
n contextul existenei unei canal de comunicaie,
sugestiile i reclamaiile utilizatorilor sunt sursele sigure
pentru reproiectarea produselor program i pentru
dezvoltarea de noi versiuni. Acestea elimin dezavantajele
semnalate sau introduce noi opiuni de prelucrare.
n fiecare dintre etapele descrise se urmrete obinerea
caracteristicilor de calitate la niveluri ct mai apropiate de
cele planificate.
Factorii de calitate avui n vedere sunt:
n
eficien prin economia de timp i economia de
resurse;
n
funcionalitate prin completitudine, corectitudine,
securitate, compatibilitate i interoperabilitate;
n
mentenabilitate, ce permite corectarea deficienelor
i dezvoltarea viitoare a produsului;
n
portabilitate, ce asigur independena hardware,
independena software i reutilizarea aplicaiei n
produse software diferite;
n
fiabilitatea prin toleran la erori i prin gradul n
care produsul este operaional avnd n vedere
defectarea sistemului hardware sau software;
n
utilizabilitate ce descrie efortul depus de utilizator
pentru a nelege i utiliza produsul.
Pe baza acestora sunt definite criteriile de optim. Acestea
devin obiective n cadrul procesului de optimizare deoarece
descriu calitativ i cantitativ ceea ce se urmrete a se obine
n ciclul de dezvoltare a produsului software:
Minimizarea volumului de prelucrri. Volumul de
prelucrri influeneaz decisiv durata prelucrrii datorit
faptului c acesta se definete fie ca numr de cicluri main,
fie ca numr de instruciuni executabile. Ciclul main i
instruciunea executabil se caracterizeaz prin durate, iar
un numr mare de cicluri main sau numr mare de
instruciuni executabile conduce la o durat mare de
execuie a programului. A optimiza un program nseamn
a realiza o astfel de construcie care permite obinerea
rezultatelor finale ntr-un timp ct mai scurt. Rezult c a
optimiza un program nseamn a identifica acele ci a cror
n

Economie teoretic i aplicat

Maximizarea preciziei are drept scop realizarea de


aplicaii informatice care s genereze rezultate finale i
intermediare caracterizate de un nivel al preciziei ridicat.
Anumite domenii de utilizare a aplicaiilor software impun
restricii legate de gradul de precizie minim a rezultatelor.
Urmrirea acestui criteriu influeneaz negativ restul de
criterii prin creterea spaiului de memorie necesar, a
complexitii prelucrrilor i a volumului de prelucrri.
Maximizarea dimensiunii problemei de rezolvat. Orice
problem este caracterizat prin:
n
date de intrare specificate prin structuri de date n
care se stocheaz; dac este vorba de fiiere se
precizeaz numrul de articole i lungimea fiecrui
articol; dac se lucreaz cu matrice se stabilesc
numrul de linii i numrul de coloane, iar dac se
lucreaz cu masive unidimensionale se stabilete
numrul de componente ale acestora; dimensiunea
problemei de rezolvat este dat de numrul de
articole din fiier sau de numrul de linii i coloane
al matricelor sau de numrul de componente ale
masivului unidimensional; dimensiunea problemei
de rezolvat se exprim ca sum de lungimi de zone
de memorie ocupate de datele de intrare ale acesteia;
n
paii algoritmului de prelucrare care presupun
evaluarea unor expresii n care apar ca operanzi
zonele de memorie n care sunt stocate datele de
intrare; algoritmii difer unii de ceilali prin
rezultatele intermediare care coexist pe parcursul
a mai multor pai; se construiesc algoritmi care
necesit un volum restrns de rezultate intermediare
simultane de-a lungul unei succesiuni de pai, care
ns conduc la operaii de prelucrare suplimentare;
exist algoritmi care, din contr, determin o vitez
de prelucrare ridicat i o gestiune mai bun a
iteraiilor, necesitnd ns meninerea simultan a
unui volum foarte mare de rezultate intermediare
stocate n zone de memorie;
n
rezultate finale caracterizate prin ocuparea unor zone
de memorie a cror lungime depinde de inteniile
designerilor de algoritmi de a reutiliza pai ai
algoritmului i de a reutiliza rezultate finale ulterior;
n
cerine de mentenan pentru soluia informatic
aleas concretizate prin definirea unor cmpuri
neutilizate la un moment dat, dar care se transform
din rezerv n zone de memorie cu semnificaie dedicat atunci cnd trebuie s se defineasc noi operanzi,
noi rezultate finale i noi rezultate intermediare;
mentenana presupune o nou abordare a dimensiunii
problemei de rezolvat, ntruct este necesar ca de la
nceput s se cunoasc echilibrul ce trebuie stabilit n
definirea unor limite ntre care se nscriu parametrii ce
definesc datele de intrare ale problemei.
Maximizarea dimensiunii problemei de rezolvat
urmrete realizarea unei aplicaii software care s includ un
set maximizat de funcii legate de obiectivul pentru care a

46

fost dezvoltat. Criteriul stabilete gradul de generalitate a


problemei prin includerea de factori de influen considerai,
ipoteze de calcul i metode de rezolvare a problemei. Dac se
consider aplicaia Math pentru realizarea de operaii
aritmetice de baz, atunci maximizarea gradului de generalitate
i implicit maximizarea dimensiunii problemei este atins
prin implementarea unui numr ct mai ridicat de operaii i
tipuri de date cunoscute. Atingerea acestui obiectiv afecteaz
negativ nivelul complexitii aplicaiei prin creterea gradului
acesteia.
Maximizarea dimensiunii problemei de rezolvat este o
tendin pe care programatorul trebuie s o urmreasc
simultan cu durata de rezolvare a problemei pentru care
elaboreaz software.
Maximizarea generalitii. Orice problem supus
analizei pentru a elabora software trebuie abordat gradat.
Se ia o form mai simpl, dup care apar dezvoltri. n
acest timp, programatorul capt experiena necesar
abordrii corecte a problemei i nelegerii efortului pe
care l necesit trecerea de la un nivel de complexitate la
un nivel de complexitate mai ridicat al problemei.
De exemplu, se consider problema simpl pentru
calculul mediei aritmetice simple. Textul surs al procedurii
este urmtorul.
Pentru a crete generalitatea se impune elaborarea unei
proceduri pentru calculul mediei aritmetice ponderate,
mediap(). Procedura media() nu calculeaz media aritmetic
ponderat, iar procedura mediap() nu calculeaz media
aritmetic simpl. Dac se dorete elaborarea unei proceduri
mai generale se procedeaz la concatenarea celor dou.
n cazul n care creterea generalitii se realizeaz
printr-o variabil de control VB, care are valoarea 1 dac
media aritmetic este ponderat i valoarea 0 dac media
este simpl. Procedura este:
float mediap(float x[],int* f,int n,int vb){
if(vb==0){
f = new int[n];
for(int i=0;i<n;i++)f[i] = 1;}
return mediap(x,f,n);
}
Dac se abordeaz de la nceput probleme n forma cea
mai complex cu grad de generalitate cel mai ridicat, exist
riscuri s nu poat fi neleas, iar beneficiarii s atepte
foarte mult pn la primirea primelor rezultate corecte. De
regul, costurile unui astfel de demers sunt cu mult mai
mari dect dac se parcurg mai multe stadii de la un program care soluioneaz o problem mai simpl pn la un
program asociat unei probleme complexe.

3. Optimizarea spaiului de memorie


Orice aplicaie informatic nseamn:
n
baze de date sau fiiere cu date iniiale;
n
programe de prelucrare;
n
fiiere cu date intermediare sau rezultate finale.

LAPR = LDate + LFDI + LPRG + LREZ


Programul pentru soluionarea unei probleme conine
operanzi care se constituie n definiri de variabile statice
sau dinamice i operatori care sunt concretizai prin
instruciuni executabile incluse n secvenele de programe,
proceduri, funcii, module.
Att zonele de memorie static alocat operanzilor, LZS1,
LZS2, , LZSopr, ct i zonele de memorie alocat dinamic
de lungime LDIM1, LDIM2, , LDIMoprd, precum i memoria alocat codului executabil asociat fiecrei proceduri
LEX1, LEX2, , LEXproc joac un rol deosebit de important
n asigurarea duratelor de execuie a unui program.
Zonele de memorie alocate static apar n economia
aplicaiei informatice ca avnd lungimea dat de relaia
opr

LTS =

LZS

i =1

Alocarea dinamic presupune lucru pe stiv i


transformarea n rezerv care se atribuie urmrind existena
unui necesar care s permit existena operanzilor ce ocup
cea mai mare parte din stiv, lungimea total a zonei alocate
dinamic fiind dat de relaia

{LDIM i }
LTD = 1max
i oprd
Structura programului asociat unei aplicaii informatice
este o arborescen, iar lansarea n execuie cu succes
presupune traversarea tuturor nodurilor de la rdcin pn
la frunz.
Frunzei i corespunde finalitatea execuiei, concretizat
prin afiarea unor rezultate finale.
Drumurile de la rdcina RAD la frunzele FRZ1, FRZ2,
, FRZnrfz au lungimile, respectiv, LDRUM1, LDRUM2,
, LDRUMnrfrz. Memoria ocupat depinde de modulele
din program care se ncarc, fiecrui drum fiindu-i asociat
un necesar de memorie LDRM1, LDRM2, , LDRMnrfrz.
Ca i n cazul memorie alocate dinamic, i aici necesarul
de memorie este dat de lungimea cea mai mare a drumului
de la rdcin la frunz, adic:

{LDRUM i }
LTDRUM = 1max
i nrfrz
Rezult c necesarul de memorie pentru a executa un
program este:
LPRG = LTS + LTD + LTDRUM

n acest context, necesarul de memorie pentru aplicaia


informatic este:

{LDIM i } +
LAPR = LDate + LFDI + LTS + 1max
i oprd
max {LDRUM i } + LREZ

1 i nrfrz

Algoritmii implementai pentru soluionarea unei


probleme difer unii de ceilali prin faptul c impun niveluri
diferite ale memorie utilizate.
Este deosebit de important s se efectueze o analiz detaliat
pentru a gsi algoritmii ce minimizeaz necesarul de memorie
pentru stocarea informaiilor i pentru efectuarea prelucrrilor.
Metode utilizate pentru minimizarea spaiului ocupat
de datele de intrare sunt bazate pe:
n
implementarea tipurilor de date corespunztoare;
alegerea tipului de dat corespunztor se face pe
baza unei analize a mulimii valorilor de intrare i a
situaiile prelucrate de aplicaia software; de
exemplu, implementarea unei variabile care ia valori
n mulimea {0,1} este definit ca fiind de tip char
ocupnd doar un octet;
n
analiza i utilizarea structurilor de date adecvate;
n cele mai multe cazuri se folosete mai mult spaiu
dect este necesar datorit uurinei implementrii
lucrului cu anumite structuri de date i datorit
lipsei unei analize care s precead implementarea
i care s indice cel mai potrivit mod de a stoca
datele astfel nct spaiul ocupat s fie minim;
n
reutilizarea spaiului de memorie prin reiniializri
de variabile diferite referite sub acelai nume;
n
alegerea modului de stocare a datelor de intrare; de
exemplu, stocarea informaiilor referitoare la
mulimea studenilor dintr-o facultatea se realizeaz
prin intermediul fiierelor relative; utilizarea acestei
metode prezint avantaje pentru operaiile de citire
a datelor despre un student, ns este ineficient
din punctul de vedere al minimizrii spaiului de
memorie pentru c multe zone de date nu sunt
folosite; dac numrul matricol al studenilor are
valoarea maxim 10.000 i dac poziionarea
datelor se face dup aceast valoare distinct vor
exista n fiierul respectiv tot attea zone de
memorie de dimensiune egal cu spaiul ocupat de
datele unui singur student; n cazul care mulimea
studenilor activi este cu mult mai mic dect
valoarea maxim a numrului matricol vor exista
numeroase zone din fiier care nu sunt utilizate;
n
compactarea zonei de memorie; se utilizeaz
metode i algoritmi de compresie a datelor; cu toate
c se obine un spaiu de memorie ocupat minimizat,
procesul are efecte negative asupra volumului de
prelucrri din aplicaie pentru c presupune o
cretere a efortului de prelucrare prin repetarea
operaiilor de compresie/decompresie a datelor la
fiecare citire/scriere;

47

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

Dac se noteaz:
LDate lungimea bazei de date, exprimat n KB;
LFDI lungimea fiierului cu date de intrare, exprimat
n KB;
LPRG lungimea programului, exprimat n KB;
LREZ lungimea fiierului cu rezultate finale, exprimat
n KB;
rezult c lungimea aplicaiei informatice LAPL este dat
de relaia

Economie teoretic i aplicat

suprapunere de informaii pe aceeai zon de date;


limbajul de programare C are implementat
facilitatea de a defini structuri de date de tip union
n care membrii sunt definii pe aceeai zon de
date; la nivel de date de intrare se analizeaz setul
de valori i se definesc zone din baza de date ce
conin aceeai valoarea pentru mai multe cmpuri.
O alt abordare a problemei (Ivan, Boja, 2006)
presupune stocarea datelor sub form de iruri de caractere
sij i identificarea de combinaii de simboluri ASCII i
secvene n format binar care s minimizeze spaiul ocupat
de acestea.
n varianta 1 se consider un caracter delimitator de
sfrit de ir de caractere \0 n C++, C# sau n limbaje de
asamblare, ; irul sij la care se adaug acest caracter
n

delimitator de sfrit de ir devine sij, s ij || = s ' ij , iar


lungimea irului de caractere devine lg(s 'ij ) = lg(sij ) + 1 .
Se concateneaz irurile sij care descriu elementele ci
din colectivitate. Lungimea irului pentru a descrie un element din colectivitate este dat de indicatorul
M

Liart = lg( sij ) + M .


j =1

Varianta 2 presupune efectuarea de conversii sau


compresii care au menirea de a reduce lungimea bazei de
date.
Cantitile exprimate n baza de date ca iruri de
caractere sunt supuse conversiei prin reprezentarea ntreag
binar sau virgul mobil. De exemplu valoarea 1.000,
care ocup 4 octei prin memorarea sub form de ir de
caractere, este stocat n format binar necesitnd un spaiu
de 2 baii. Rezult lungimea articolului format din:
n
cmpuri cu delimitator (comp1, comp2 i comp5);
n
cmpuri cu lungime standard impus prin conversie
pentru comp3 i comp4.
Prin varianta 3 soluia propus n variantele anterioare
este mbuntit prin definirea unei metode care s nu
includ utilizarea de delimitatori. Ipoteza de lucru i
implementare a acestei variante impune o serie de condiii
restrictive care s asigure baza modelului de date utilizat.
Se consider ablonul Art ce combin ntr-un singur
articol toate datele necesare prelucrrii unei singure
entiti. Forma acestuia este:
articol {tip1 cmp1; tip2 cmp2; tips cmps;}
Pentru a stoca datele astfel nct spaiul ocupat de acestea
s fie minimizat, se implementeaz o modalitate de aranjare
a cmpurilor astfel nct oricare dou cmpuri adiacente
cmpi i cmpi+1 s nu fie de acelai tip, tip i tip i +1 cu
i = 1..s-1. Situaia permite eliminarea delimitatorilor de cmp,
pentru c trecerea de la un tip de dat la altul este anunat
de modificarea formatului intern.
n varianta 4 se consider un vocabular Vj care descrie
mulimea valorilor acordare elementelor colectivitii Cj.

48

Mulimea Vj este descris de elementele Vj = {vj1, vj2,


, vjh }, unde vj1, vj2 sunt cuvinte din vocabularul Vj i
lg(vji) descrie lungimea cuvntului vij.
Oricare ir de caractere s ij reprezentnd valoarea
componentei j a articolului i din baza de date este inclus
n vocabularul colectivitii, Vj.
Ipoteza care st la baza implementrii acestei variante
de lucru presupune existena unui numr foarte mare de
date i un vocabular cu un numr limitat de cuvinte. Fiecare
cuvnt din vocabular ocup o anumit poziie. n descrierea
articolului se utilizeaz poziia cuvntului n articol,
nlocuind irul de caractere al valorii printr-un numr ce
reprezint poziia acesteia n vocabularul componentei.
Varianta 5 corespunde efecturii de operaii de
normalizare i de utilizare a lucrului pe iruri de baii.
Normalizarea bazei de date se obine prin:
n
pentru cmpurile numerice se definete baza de
normalizare, B norm, ca fiind valoarea minim a
seriei de date; normalizarea seriei de date sdi cu
i = 1..dimserie, se obine prin nlocuirea valorilor cu
forma sd i , dat de relaia: sd i = sdi - Bnorm;
n
pentru cmpurile reprezentate de iruri de caractere
se definete vocabularul valorilor distincte, Vsd;
normalizarea seriei de date se obine prin nlocuirea
fiecrei valori cu poziia acesteia n cadrul
vocabularului seriei.
Varianta 6 presupune transformarea alfabetului. Pe un
bait se reprezint alfabetul ASCII de 256 simboluri. n
realitate, vocabularele au la baz alfabete cu un numr
mult mai restrns de simboluri. De aceea, este reprezentativ
s se ia n considerare operarea pe vocabulare cu alfabete
restrnse.
Pentru nume i prenume se iau n considerare literele
mari i separatorul spaiu. Alfabetul acesta are 27 simboluri
+ 1 simbol separator, necesitnd 5 bii pentru reprezentare,
deoarece 24 < 27 < 25.
Astfel numele unei persoane care ocup LNT = 30 baii,
n noul context va ocupa nu 30 * 8 bii, ci 30 * 5 bii, adic
19 baii.
Variantele descrise presupun dezvoltarea de rutine
diferite care s in seama de particularitile fiecrei metode
de stocare i care s permit refacerea datelor n memoria
intern. Fiecare dintre aceste rutine presupune realizarea
unui efort, msurat n cicluri main, asociat procesului de
prelucrare i care depinde direct de complexitatea metodei.
Implementarea uneia dintre variante presupune o
analiz comparat a eficienei fiecrei metode n funcie
de tipologia datelor.
Reducerea spaiului de memorare a datelor externe se obine
prin utilizarea metodelor de compresie a datelor. n (Ivan, Verni,
1998) sunt prezentai algoritmi de compresie i indicatori de
evaluare a performanei proceselor de compresie/decompresie.
Compresia revine la a pune n coresponden iruri de
bii pentru alfabete astfel nct s se obin reducerea
lungimii fiierelor.

4. Optimizarea pe text surs


n domeniul aplicaiilor software conceptul de calitate
este definit prin prisma setului de caracteristici de calitate
software. Numeroasele sisteme de caracteristici de calitate
software, ISO 90126, ICI, propun categorii de caracteristici
ce permit derularea unui proces complex de analiz a
calitii. La nivel global, prin prisma importanei acordate
n procesul de producie, se identific dou seturi de criterii
ce descriu dimensiunea aplicaiei prin intermediul spaiului
de memorie:
n
extern, ce este ocupat de datele de intrare, datele de
ieire i codul surs;
n
intern, reprezentnd necesarul de memorie pentru
ca aplicaia s ruleze ciclul de prelucrare a datelor
de intrare.
i timpul de prelucrare a datelor i afiare a rezultatelor,
criteriu direct influenat de viteza de prelucrare.
Optimizarea calitii software revine la a mbunti o
secven program n aa fel nct s fie atins un anumit
criteriu de optim, ce definete direct nivelul de calitate al
aplicaiei.
Metode de minimizare a volumului de prelucrri
urmresc optimizarea:
n
codului surs;
n
algoritmilor implementai; se urmrete gsirea de
algoritmi de complexiti reduse care s conduc la
doritele dorite, dar care s genereze ct mai puine
prelucrri; alegerea algoritmului se face n funcie
de complexitatea acestuia, indicatorul fiind notat
cu O( ); de exemplu, dac se dorete cutarea unei
valori ntr-o mulime este mult mai eficient s se
implementeze operaia pe arbori binari de cutare
echilibrai i atunci complexitatea este O(log2N);
dac operaia este implementat pe liste, atunci
complexitatea algoritmului este O(N), fapt care va
genera mult mai multe prelucrri.
Optimizarea pe cod surs, (Ivan, Boja, 2006) include:
n
eliminarea subexpresiilor comune;
n
eliminarea instruciunilor fr sens i care nu influeneaz cu nimic determinarea rezultatului final;
n
compunerea instruciunilor care modific valoarea
unei singure variabile; situaia aceasta este prezent
atunci cnd o variabil este determinat prin
evaluarea unei expresii matematice complexe;
descompunerea prelucrrilor n mai multe
instruciuni de atribuire contribuie la creterea
gradului de nelegere a codului surs, ns implic
creterea numrului de cicluri main n primul rnd
datorit salvrii repetate a valorii n memorie;

nlocuirea expresiilor de referire complexe cu unele


mai simple;
n
eliminarea secvenelor n care apar instruciuni cu
efecte opuse;
n
eliminarea invarianilor;
n
eliminarea codului mort prin transformarea
secvenei;
n
reducerea expresiilor indiciale;
n
regruparea structurilor de control.
Ideea de a optimiza se concretizeaz prin modificri n
programe care reduc volumul de prelucrri. Volumul de
prelucrri, V, dat ca numr de iteraii se calculeaz pentru
secvena:
S = 0;
for(int i=0; i<n; i++ )
S+= x[i];
Volumul de prelucrri V este V = 3n+1 iteraii.
n

mbuntirea secvenelor conduce la micorarea


volumului de instruciuni. De exemplu, pentru generarea
matricei unitate:
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j] = 0;
for(i=0;i<n;i++)
a[i][i] = 1;
care are un volum V1 = 2n2 + 3n.
Secvena mbuntit este
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j] = (i = =j)
cu un volum V2 = n + n2.
Comparnd secvenele S1 i S2 rezult c secvena S2
este mai performant. Sunt situaii n care se urmrete
scderea gradului de complexitate.
Pentru eliminarea subexpresiilor:
a a + b b + ccc
a a + b b + c c c + d d 1
complexitatea este: C1 = 18 log218 + 17 log217.
e=

Dac nlocuim elementele subexpresiilor cu


exp = a a + b b + c c c i e =

exp
atunci
exp + d d 1

complexitatea ntregii secvene este C2 = 14 log214 +


+ 12 log212
Inegalitatea C1 > C2 conduce la concluzia c prin
eliminarea subexpresiilor se obine scderea complexitii.
Exist particulariti de la limbaj la limbaj de
programare n legtur cu posibilitile de a optimiza.

49

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

De asemenea, compresia presupune efectuarea unor


transformri asupra irurilor de simboluri astfel nct irul
rezultat s fie cu o lungime mult mai mic dect lungimea
irului iniial.

Economie teoretic i aplicat

Cunoaterea unui limbaj de asamblare rezolv multe


dintre problemele de optimizare care difer de la un limbaj
evoluat la cellalt prin gsirea numitorului comun.
Optimizarea algoritmului i a modelului matematic de
rezolvare a problemei are ca rezultat reducerea numrului
de prelucrri i, implicit, minimizarea numrului de cicluri
main. De asemenea, modul n care expresia matematic
este transpus n limbajul de programare utilizat are ca efect
mbuntirea eficienei aplicaiei, prin reducerea duratei
prelucrrilor sau n caz contrar generarea unei soluii slabe.
Optimizarea expresiilor aritmetice prin fragmentare
reprezint o modalitate de a implementa prelucrri
matematice care s conduc la un volum ct mai mic de
operaii prin identificare i reutilizarea valorii unor
subexpresii comune.
Se consider expresia
E = (a2 + b 2 + c2 + d2) (a2 + b2 + c2 + d2 - 1) (a2 + b2 +
+ c + d2 + g2) (a2 + b2 + c2 + d2 + g3) (a2 + b2 + c2 + d2 + g4)
2

n varianta V1 expresia E se implementeaz n forma


iniial i se procedeaz la compilarea ei neoptimizat.
Utiliznd informaiile referitoare la numrul de cicluri
main aferent fiecrei instruciuni, precum i un program
utilitar de msurare a volumului de prelucrri, rezult un
program dezvoltat n limbajul de programare C pentru care
sunt necesare NC(V1) = 88 cicluri main.
Dac se noteaz e1 = a2 + b2 + c2 + d2 i e5 = g2 i se
dezvolt expresia E folosindu-le se obine construcia
corespunztoare variantei V2:
E = e1 (e1 - 1) (e1 + e5) (e1 + e5 g) (e1 + e5 e5)
ceea ce conduce la obinerea unei secvene a crei
execuie necesit NC(V2) = 37 cicluri main.
Prin comparare rezult c varianta a doua conduce la
minimizarea volumului de prleucrri.
Necesitatea efecturii de calcule simbolice este dat de
obinerea de forme simplificate ale expresiilor aritmetice.
Dac se consider expresia Exp = (a2 b2)/(a + b), atunci
aceasta necesit un numr de cicluri main NC(Exp) = 52.
Dac are loc simplificarea prin calcule simbolice
obinem Exp = a b, creia i corespunde o secven de
program n C a crei execuie conduce la NC(Exp) = 2
cicluri main. Pentru a evidenia efectele operaiilor de
optimizare implementate n procesor, la prima rulare a
exemplului anterior s-a obinut un efort de prelucrare egal
cu 18 cicluri main. Prin rularea repetat a aceluiai
exemplu s-a ajuns la un nivel constant de 2 cicluri main.
Din exemplele anterioare se observ c efectuarea de
calcule simbolice conduce la optimizarea prelucrrii i
obinerea unui nivel sczut de cicluri main n condiiile
n care simplific relaiile prin evitarea efecturii unor
calcule suplimentare.

50

5. Optimizare bicriterial
Luarea n considerare a dou criterii reprezint o etap
important pentru optimizarea multicriterial a software.
Cele dou criterii alese permit msurarea riguroas a
efectelor ca modificri ale lungimii zonelor de memorie,
respectiv reducerea numrului de cicluri main.
Dac se consider metodele de reducere a volumului
de date MD1, MD2, , MDn i metode de reducere a
volumului de prelucrri MP1, MP2, , MPm rezult mn
variante de combinare a efectelor, pentru fiecare pereche
(MDi, MPj) msurndu-se costul total CTij, respectiv costul
total corectat, CTij.
Dac pentru aceeai pereche (MDi, MPj) se obine relaia
CTij = CTij rezult situaia stabil n care costul economic
coincide cu costul perceput de utilizatori.
Trebuie realizate msurri sistematice pentru a
identifica situaiile n care metodele nu conduc spre
optimizare, rezultnd eliminri de linii i de coloane din
matricea format din elementele (MDi, MPj). Astfel se
mbuntete procesul de optimizare a produsului software prin reducerea la minimum a numrului de perechi,
(MDi, MPj), pentru care se impune realizarea practic a
soluiei i evaluarea acesteia.
n vederea evalurii efectelor optimizrii bicriteriale
se analizeaz corelaia dintre volumul de date i volumul
de prelucrri.
Crearea bazei de date n form natural presupune
introducerea de la tastatur a datelor. Volumul de prelucrri,
efortul, depind de operatori i se mparte durata n:
n
durata specific operatorilor, n care se analizeaz
timpul necesar executrii rutinelor de prelucrare a
datelor i aducerea lor n formatul specificat; de
asemenea, se cuantific durata necesar obinerii
rezultatelor intermediare i finale;
n
durata de scriere pe suport, care are o pondere
nsemnat din timpul total de execuie al aplicaiei
i este influenat de caracteristicile componentelor
hardware; dac se analizeaz o aplicaie distribuit
atunci se iau n calcul i parametrii transmiterii
datelor n reea.
n continuare, problematica optimizrii este legat strict
de ceea ce se prelucreaz prin program i fr a lua n
considerare ceea ce consum operatorul. Apar i probleme
de optimizare, care fac obiectul altei abordri. Se presupune
c operatorii care introduc date au randament constante,
iar datele introduse sunt complete i corecte. Se construiete
programul PP. Datele se introduce o singur dat n baza
de date natural BDN i se utilizeaz de N ori ntr-un interval de timp dat, T.
Varianta 0: se creeaz BDN i se efectueaz prelucrrile
pentru a obine rezultatele. Programul analizat are cinci
secvene asociate operaiilor:
Secv1 introducerea date operator, V1;
Secv2 validare i scriere date pe suport, V2;

Secv3 citire date de pe suport, V3;


Secv4 prelucrare date, V4;
Secv5 afiare rezultate, V5;
unde V1, V2, V3, V4 i V5 reprezint volumul de prelucrri
ca numr de cicluri main necesare execuiei secvenelor.
Volumul total de prelucrri este V(0) cicluri main, iar
baza de date ocup zona de memorie de lungime LBDN
octei.
Varianta 1: se creeaz baza de date BDN i se produc
modificri n program pentru a optimiza programul ca
numr de cicluri main.
Programul conine:
Secv1 introducerea date operator, V1;
Secv2 validri i scriere date, V2;
Secv3 citire date de pe suport, V3;
(Secv4)modificat prelucrare date, V4;
Secv5 afiare rezultate, V5.
Varianta aceasta conine un volum de prelucrri egal
cu V(1) cicluri main, iar V(0) > V(1). Contribuia la reducerea
ciclurilor main revine secvenei Secv4modificat.
Zona ocupat de datele de intrare rmne neschimbat,
LBDN.
V(0) = V1 + V2 + k (V3 + V4 + V5)
unde k reprezint numrul de rulri ale programului pentru
obinerea de rapoarte.

n cazul n care se continu optimizarea secvenelor de


prelucrare obinndu-se V(3) este important s se obin
inegalitatea V(0) > V(2) > V(3), adic optimizarea prelucrrilor
s compenseze efectul compresiei/decompresiei.
Se observ c minimizarea spaiului de memorie e
nsoit de introducerea de secvene de prelucrare i deci
de cretere a volumului de prelucrri. Din alt punct de
vedere minimizarea prelucrrilor are ca efect scderea
volumului de cicluri main.
Efectele sunt n cele mai multe cazuri contradictorii.
Cele dou criterii nu sunt complementare, iar procesele ce
conduc la minimizarea nivelurilor lor se influeneaz
reciproc bazndu-se pe msuri ce scad nivelul unei
caracteristici i, implicit, determin creterea valorii pentru
cealalt caracteristic.
n cazul n care se dorete minimizarea volumului de
prelucrri prin controlul redundanei, crete spaiul de
memorie rezervat de aplicaie n vederea efecturii
prelucrrilor.
Existena unui unic loc unde se afl o informaie
impune repetarea operaiei de citire a acelui articol ori de
cte ori este nevoie de informaie. Minimizarea redundanei
conduce la creterea volumului de operaii de citire.
Pentru minimizarea prelucrrilor, anumite informaii
trebuie s fie memorate n mai multe locuri, ceea ce conduce la creterea lungimii zonei de memorare. Mai mult,
iniializrile presupun efectuarea de operaii n toate
punctele, nu ntr-un singur punct, fapt ce genereaz
creterea volumului de prelucrri.

V(1) = V1 + V2 + k (V3 + V4 + V5).

V(2) = (V1 + V2-0 + V2) + k (V3-0 + V3 + V4 + V5-0 + V5).


Se reduce lungimea zonei de memorie ocupat de BD la
LBDCompresat < LBDN, iar volumul de prelucrri este V(2) > V(1).
Dac V 2 > V0 > V1 rezult c efectul minimizrii
secvenei de prelucrare este depit cu mult de efectul
compresiei de date, obinnd un volum de prelucrri aferent
lucrului cu baza de date natural.
Rezult c efortul optimizrii prelucrrilor este atenuat
de compresia/decompresia datelor, fr a depi volumul
prelucrrii cu baza de date natural.

O problem P se construiete n numeroase variante n


funcie de limbajul de programare utilizat, tehnici de
programare, structuri de date folosite, mod de abordare:
distribuit, reea, standalone.
Pentru fiecare variant intervin elemente de optimizare.
Dup aceea se pune problema alegerii variantei celei mai
potrivite, concept care se identific n mare msur cu
procesul de optimizare (Ivan, Boja, 2005b).
Exist nenumrate modele de analiz, proiectare i
implementare a unui produs software. Marea majoritate
urmresc realizarea unei variante funcionale care este
mbuntit ntr-un proces repetitiv pn cnd se ating
nivelurile stabilite ca obiective finale sau pn cnd
raportul calitate/cost este optim.
Fiecare dintre variantele produsului, cu excepia
prototipului iniial, se obine n urma testrii i evalurii
variantei precedente, care este supus modificrilor la
niveluri diferite, cod surs, framework, algoritmi, pentru a
fi optimizat. mbuntirea calitii variantelor produsului
program este un proces bazat pe optimizare entropic.
Efectele optimizrii sunt materializate prin creterea
calitii produsului program. Exist situaii n care se alege
implementarea soluiei economice n defavoarea soluiei

51

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

6. Analiza empiric a efectelor optimizrii


Varianta 2: se execut compresia de date i decompresia
la fiecare execuie a programului. Se introduc secvenele:
Secv2-0 pentru compresie nainte de a fi scrise pe
suportul de memorare; se obine un spaiu de memorie
ocupat de dimensiune redus;
Secv3-0 pentru decompresia datelor; dup citirea
datelor, acestea sunt decompresate pentru a fi prelucrate;
Secv5-0 pentru compresia datelor nainte de a rescrie
baza de date; odat ce au fost obinutele rezultatele dorite,
iar sesiunea de lucru se nchide, datele obinute sunt
compresate i scrise n memorie.
Varianta 2 conduce la V(2) cicluri main:

Economie teoretic i aplicat

performante, ns aceste decizii privesc pri specifice ale


aplicaiei i sunt luate n considerare dac nu afecteaz
descrierea produsului n ansamblul su.
Optimizarea i metodele de realizare a acesteia capt
sensuri diferite n realizarea variantelor de program n
funcie de obiectivele urmrite. Din perspectiva entitii
produsului software, optimizarea conduce la obinerea
variantei finale, care este i cea mai bun din punct de
vedere al productorului.
Realizarea variantelor de program presupune obinerea
de produse software funcionale intermediare care s
reprezinte baza de evaluare a efectelor optimizrii
multicriteriale sau unicriteriale prin msurarea nivelurilor
caracteristicilor analizate. Obinerea nivelurilor agregate
permite derularea analizei comparate a variantelor de program care s conduc la alegerea soluiei optime.
Se consider lista format din apte variante ale
produsului program Prog, Prog1, Prog2, Prog3, Prog4, Prog5,
Prog6, Prog7 ce implementeaz n moduri variate metode
identice necesare rezolvrii problemei Prob. Obiectivul
analizei const n determinarea soluiei optime,
reprezentat de una dintre variante care s rezolve problema
Prob, astfel nct s fie obinute cele mai bune niveluri
pentru caracteristicile de calitate software considerate. Lista
de produse software se consider omogen prin prisma:
setului de date de intrare ce are caracteristici
comune pentru toate programele;
problemei de rezolvat;
platformei hardware i software pe care ruleaz
aplicaiile analizate.
Diferenele dintre programe au la baz modul de
implementare n surse al metodei de rezolvare. Algoritmul
de prelucrare a datelor difer prin modalitatea de
reprezentare a modelului de date i prin complexitatea
metodei de obinere a rezultatelor.
Se consider setul de caracteristici de calitate software
SQCS : C1 durata unei tranzacii; C2 durata de prelucrare;
C3 grad de ncrcare a setului de date de intrare; C4
volum de prelucrri.
Setul de caracteristici variaz n funcie de obiectivul
final al analizei i reprezint un instrument pus la dispoziia
cercettorului. Prin intermediul caracteristicilor i al
metricilor software execuia programului analizat este
descris de valori numerice ce reprezint niveluri reale,
msurate. Validarea procesului de evaluare a produsului
software evideniaz semnificaia msurtorilor i atest
faptul c niveluri obinute pentru aplicaii software diferite
sunt comparabile.
Obinerea unui indicator agregat construit pe baza
acestor niveluri direct msurate pornete de la identificarea
coeficienilor de importan asociai caracteristicilor
analizate. Obinerea variantei optime de program care s
rezolve problema Prob analizeaz influenele tuturor
caracteristicilor software luate n discuie. n acest sens,
coeficientul de importan ick, asociat caracteristicii Ck,

52

descrie ponderea acesteia n caracterizarea produsului software ca fiind optim.


Pe baza analizelor anterioare i prin studiul dependenei
dintre caracteristicile C1, C2, C3, C4 i viteza de obinere a
rezultatului se determin valorile coeficienilor de
importan.
Fiecare caracteristic software analizat are asociat o
funcie de optimizare care s conduc la alegerea nivelului
eficient. Identificarea acestei funcii are importan n
compararea direct a nivelurilor caracteristicii pentru dou
sau mai multe variante de program.
Reprezentnd criterii diferite se impune normalizarea
valorilor n vederea determinrii unui indicator agregat
care s descrie varianta de produs software printr-o valoarea
direct comparabil cu valorile agregate asociate restului
de variante. Dac criteriul Ci are funcie de optimizare de
tip Minim, valoarea normalizat se determin folosind
prima relaie, n caz contrar se utilizeaz cea de-a doua
expresie:
VNCi j =

VCimax VCi j
VCimax VCimin

(1)

VNCi j =

VCi j VCimin
VCimax VCimin

(2)

n care:
VNCij valoarea normalizat a criteriului Ci pentru
programul Progj;
VCimax valoarea maxim nregistrat de criteriul Ci
pentru variantele testate;
VCimin valoarea minim nregistrat de criteriul Ci
pentru variantele testate;
VCij valoarea nregistrat de criteriul Ci pentru
varianta curent de program Progj.
Valoare indicatorului agregat IA este determinat prin
ponderarea valorilor normalizate cu valoarea coeficientului
de importan asociat fiecrui criteriu prin relaia

IA j =

VNC

j
i

pi .

i =1

Alegerea variantei optime de program este condiionat


de o valoare mare a indicatorului agregat.
n cazul n care exist dou sau mai multe soluii
optime, se alege varianta pentru care caracteristica cu
coeficientul de importan cel mai mare are cel mai bun
nivel nregistrat.
Rezultatele msurtorilor sunt utilizate ulterior la
evaluarea influenei pe care o are dependena dintre
caracteristicile de calitate software asupra obinerii unei
soluii optime. Acest lucru se realizeaz prin analiza
suplimentar a relaiei dintre caracteristici i prin
construirea de modele de regresie care s includ acele
caracteristici ntre care exist o relaie puternic.
Determinarea unui model matematic prin intermediul
cruia se determin valoarea indicatorului agregat are la

7. Concluzii
Rezultatele au fost publicate n volumul de lucrri al
unor conferine i comunicri tiinifice, precum i n

paginile unor reviste de specialitate, iar n acest articol se


prezint ntr-o form unitar rezultatele cercetrilor
ntreprinse de autori.
La fiecare zon se face referire la articolele publicate.
Optimizarea pentru domeniul programrii paralele
reprezint o arie de cercetare distinct, iar rezultatele cele
mai convingtoare au la baz algoritmi genetici i metode
ale inteligenei artificiale n care definirea reelelor
neuronale i nvarea lor demonstreaz caracterul deschis
al demersului definit generic optimizarea aplicaiilor
informatice.
Aplicaiile informatice sunt construcii unitare n care
maximizarea gradului de satisfacie pe care l nregistreaz
utilizatorul se obine numai maximiznd nivelul de
corectitudine i nivelul de completitudine al datelor de
intrare, maximiznd indicatorul agregat asociat calitii
produsului software i obinnd rezultate finale, de
asemenea, complete, corecte i absolut necesare
utilizatorului.
Optimizarea aplicaiei informatice revine n primul rnd
la a agrega trei criterii de performan ce privesc datele de
intrare, software i rezultate finale, ntr-o singur expresie
analitic i, n al doilea rnd, a maximiza printr-un proces
iterativ de transformare simultan a datelor de intrare, a
software i a rezultatelor, indicatorul agregat al calitii
aplicaiei.

Bibliografie
Boja, C. Software Multicriterial Optimization, The Proceedings of
the Seventh International Conference of Informatics in
Economy, May 2005, Academy of Economic Studies,
Bucharest, Romania, Inforec Printing House, ISBN 973-836004-8, pp. 1068-1074
Fog, A. (1999). How to optimize for the Pentium family of microprocessors, Copyright by Agner Fog
ISO/IEC 9126 International Standard - Information Technology Software product evaluation - Quality characteristics and guidelines for their use, 1991, Geneve, Switzerland
Ivan, I., Boja, C. (2004). Metode Statistice n Analiza Software,
Editura ASE, Bucureti, ISBN 973-594-498-7
Ivan, I., Boja, C. (2006). Practica optimizrii aplicaiilor
informatice, Editura ASE, n curs de apariie

Ivan, I., Boja, C. (2005a). Collaborative systems components empirical software optimization effect assessment, The proceedings of The International Workshop on COLLABORATIVE
SUPPORT SYSTEMS IN BUSINESS AND EDUCATION,
October 28 29, 2005, Cluj-Napoca, Romania, Risoprint Printing House, Cluj-Napoca, pp 152 189, ISBN 973-651-008-9,
Romania
Ivan, I., Boja, C. (2005b). Empirical Software Optimization,
Revista Informatic Economic, ISSN 1453 1305, vol. IX,
nr. 2/2005, Editura Inforec, Bucureti, 2005, pp. 43-50
Ivan, I., Verni, D. (1998). Compresia de date, Editura CISON,
Bucureti
Ivan, I., Boja, C., Felician, A., Web Applications Optimization,
Proceedings of the InfoBUSINESS2005, Innovative

53

Aspecte privind optimizarea n domeniul informaticii aplicate n economie

baz analiza dependenei dintre caracteristicile software


de optimizat. Pe baza analizei empirice a unui set omogen
de produse program care reprezint variante de
implementare a metodei de prelucrare a datelor sunt
identificate ponderile de importan pentru fiecare criteriu
n parte.
Absena studiului empiric i orientarea pur teoretic a
cercetrii conduc la obinerea de rezultate care sunt lipsite
de semnificaie i care nu sunt validate de practic.
Optimizarea reprezint un proces continuu, care se
finalizeaz odat cu decizia de a nlocui aplicaia software
cu o alta prin reluarea activitilor de analiz, proiectare i
implementare.
Dezvoltarea permanent i cu un ritm mult prea rapid a
societii informaionale prin lansarea de noi tehnologii i
instrumente de realizare a produselor software susine
caracterul de continuitate al optimizrii, oferind mijloacele
necesare atingerii criteriilor de optim.
Abordarea empiric fundamenteaz reguli practice de
dezvoltare software. Utilizarea acestor reguli crete eficiena
produselor software.

Economie teoretic i aplicat

Applications of Information Technologies in Business and


Management , International Symposium, October 14-15,
2005, Al.I.Cuza University of Iai, Faculty of Economics
and Business Administration, Center of Research and Education in Information Systems for Management (CeSINCON),
Iasi, Volume edited by Andone I. I., PIM Publishing House,
ISBN 973-716-189-0, Iasi, Romania, 2005, pp. 21-30
Ivan, I., Boja, C. Global Software Optimization, Information
Systems & Operations Management ISOM no. 3 Workshop,
Aprilie 20 21, 2005c, Romanian American University Master of Economic Informatics, Academy of Economic Studies
Master BRIE, Bucharest, ProUniversalis Printing House, ISBN
973-87166-8-3, pp. 205-214

54

Ivan, I., Coman, S., Balog, Al., Arhire, R. Tehnici de evaluare a


efectelor optimizrii de programe, Revista de statistic, nr. 3,
7, 1983
Ivan I., Codreanu C. (1996). Optimizarea programelor assembler, Raport de cercetare, Bucureti
Linux organisation Applications, http://www.linux.org/apps/
index.html, 2006
Schaefer M. (1973). A mathematical theory of global program
optimization, Prentice-Hall,
Vervaet, E., De Cock, M. (2002). Optimize your Java applications
performance: A practical guide for squeezing every drop of
performance out of your Java apps, Java Developerworks,
http://www106.ibm.com/developerworks/java/library/j-javaopt/

S-ar putea să vă placă și