Documente Academic
Documente Profesional
Documente Cultură
Noiuni generale
Dezvoltarea software-ului pe criterii de eficien impune mbuntirea productivitii muncii prin
folosirea - n toate fazele ciclului de elaborare a programelor - a unor instrumente software care s asiste
dezvoltatorul n activitatea de elaborare a software-ului de bun calitate, ntr-un termen ct mai scurt i
la un cost redus.
Iniial, preocuprile au fost ndreptate spre folosirea instrumentelor cu precdere n cadrul activitilor de
codificare, testare si depanare a programelor. Ulterior, aceste preocupri s-au extins i asupra celorlalte
faze. Astfel a avut loc un proces de agregare a instrumentelor disparate, specializate n instrumente
complexe (medii integrate, produse de tip CASE) care s asiste ct mai adecvat procesul de realizare a
produselor software. n fig. 7.1 este reflectat corespondena ntre fazele ciclului de dezvoltare i
categoriile de instrumente care ofer faciliti pentru aceste faze.
Faz Instrument
Analiz CASE
Proiectare CASE
Implementare Medii de dezvoltare, CASE (parial),
instrumente pentru gestiunea versiunilor i
configuraiilor.
Testare i depanare Medii de dezvoltare, instrumente de testare
Aceast cretere gradual a gradului de integrare a instrumentelor este urmrit i n desfurarea acestui
capitol.
Un instrument software, n general, este o entitate software care prelucreaz sau acioneaz asupra unei
alte entiti software.
Instrumentele de programare sunt entiti software care acioneaz asupra elementelor de construcie a
programelor (modele, cod-surs, cod-obiect, cod executabil), realiznd transformri ale acestora i/sau
analizarea lor din punct de vedere sintactic, funcional sau calitativ.
Un mediu integrat de dezvoltare constituie un ansamblu integrat de instrumente de programare, care
asist dezvoltatorul pe parcursul activitilor de codificare, obinere a programului executabil, testare i
depanare. Integrarea instrumentelor se manifest prin utilizarea lor ntr-o manier consistent, adesea n
mod transparent pentru programator.
Un mediu de dezvoltare vizual vizeaz n plus asistarea programatorului n realizarea interfeelor
grafice ale aplicaiilor.
Mediile de programare ofer faciliti sporite de reutilizare a programelor, sub forma bibliotecilor de
subprograme i cadrelor de dezvoltare a aplicaiilor (application framework).
Un produs de tip CASE (Computer Aided Software Engineering) reprezint un ansamblu de metode,
instrumente i procese destinate ingineriei software asistate de calculator. Acest tip de instrumente
acoper i etapele de analiz-proiectare, oferind faciliti de reprezentare grafic a modelelor i
diagramelor folosite de metodele / limbajele de analiz i proiectare.
Instrumente de programare
Conform definiiei de mai sus, acestea realizeaz de regul transformri ale elementelor de construcie
a programelor. Instrumentele de programare includ:
Editoare pentru codul surs, care faciliteaz scrierea unitilor compilabile. Editoarele cuprind n
mod standard funcii de creare / salvare / deschidere de fiiere, copiere / inserare de text, cutare;
pot avea faciliti suplimentare de evideniere a elementelor sintactice (syntax highlighting) i
verificare a corectitudinii construciilor de limbaj.
Compilatoare, care realizeaz transformarea codului surs n cod-obiect, semnalnd erorile de
sintax. Este integrat cu editorul, facilitnd corectarea erorilor depistate prin poziionarea n codul
surs pe liniile implicate. Programatorul are la dispoziie opiuni privind compilarea optimizat
dup diferite criterii sau platforme hardware, utilizarea unor versiuni standard ale limbajului de
programare, .a.m.d.
Editoare de legturi pentru obinerea codului executabil prin legarea subprogramelor referite n
codul surs. Adesea este apelat n mod transparent pentru utilizator, dup rularea compilatorului,
dac acesta nu a semnalat erori.
Interpretoare, care efectueaz prelucrarea i execuia direct a instruciunilor surs ale
programelor.
Asambloare permit accesul la orice funcie hardware sau a sistemului de operare prin
instruciuni de nivel sczut (limbaj main, funcii ale sistemului de operare).
Preprocesoare i precompilatoare care mresc portabilitatea limbajelor de programare, respectiv
a compilatoarelor.
Emulatoare care permit rularea unor instruciuni specifice altor platforme hardware.
Instrumente de testare
Instrumentele de testare au rolul de a automatiza parial procesul de testare a programelor. Dintre categoriile de
instrumente pentru asistarea testrii fac parte:
Instrumente de capturare/redare: pot nregistra o sesiune de testare ntr-un fiier script, permind
redarea (repetarea) acesteia. Pot fi efectuate teste multiple n manier automat i se pot efectua
comparaii asupra rezultatelor. Aceste instrumente sunt eficiente n testarea regresiv.
Instrumente de execuie automat a testelor: asemntoare cu cele de mai sus, dar cazurile de test
sunt specificate de utilizator n fiiere script.
Analizor de acoperire: evalueaz gradul n care structura codului testat a fost acoperit prin
cazurile de test. Astfel de instrumente sunt utile pentru identificarea poriunilor de cod netestate.
Generator de cazuri de test: este un instrument care, pe baza unor informaii precum cerine,
modele ale datelor, modele obiectuale .a. poate genera cazuri de test semnificative. Avantajul este
eliminarea redundanei n testare, prin determinarea cazurilor de test care asigur acoperirea ct
mai mare a codului; aceast activitate, executat manual, poate fi foarte dificil.
Generator de date de test: sunt instrumente care servesc la popularea fiierelor i bazelor de date
n vederea testrii; popularea se face n general cu date aleatoare, dar unele instrumente prevd i
posibilitatea specificrii unor condiii. Instrumentele sunt utilizate n general pentru popularea cu
volume mari de date, necesare testrilor operaionale i la capacitate maxim.
Analizor logic / de complexitate: servete la cuantificarea complexitii unor poriuni de cod.
Multe astfel de instrumente ofer i reprezentri grafice ale cilor posibile n structura codului.
Sunt utile pentru determinarea cazurilor de test necesare pentru atingerea anumitor puncte din cod
din rutine complexe.
Instrumente de trasare a erorilor: permit gestiunea informaiilor privitoare la erorile detectate i
stadiul corectrii lor i centralizarea acestor informaii pentru urmrirea tendinelor acestor defecte;
pe baza acestor tendine se pot efectua mbuntiri n procesele de dezvoltare i/sau mentenan
ale organizaiei.
Instrumente de gestionare a testrii: au rolul de a asista planificarea i organizarea elementelor
implicate n testare precum fiiere script, cazuri de testare, rezultate.
Cu toate aceste avantaje i altele care mai pot fi enumerate, produsele CASE sunt n general produse
de dimensiuni mari care necesit resurse hard puternice i au un cost relativ ridicat. De asemenea, se
poate spune c metodologiile de analiz i proiectare (orientate pe funcii/date sau orientate obiect)
sunt popularizate prin produsele de tip CASE care le implementeaz (ele au renscut sub form de
software), dar acestea tind aparent s micoreze creativitatea. Cum firmele de software urmresc
productivitatea i mai apoi elementele de originalitate i elegan este sigur c produsele de tip CASE
vor fi n continu ascensiune n domeniul dezvoltrii de software.
M anagem ent
p ro ie c t
A n a liz a A n a liz o r d e
p ro ie c te
P ro ie c ta re
G e n e ra re d e
cod
D e p o z it
p ro ie c te
Caracteristic acestei generaii este faptul c instrumentele pot schimba ntre ele informaii i pot
coopera n realizarea diferitelor activiti n cadrul ciclului de via, deoarece memorarea i gestionarea
informaiilor se face utiliznd o baz de date relaional i sistemul de gestiune aferent.
De asemenea, aceast generaie ofer o interfa utilizator unitar, comun pentru toate instrumentele.
O a doua generaie de produse CASE cuprinde aceleai faciliti i n general aceleai tipuri de
instrumente cu deosebirea c s-a ncercat ca generarea de cod s se realizeze pe main-frame-uri pe care
s existe un generator central de cod i care s stocheze codul generat ntr-un depozit.
Caracteristic acestei generaii de CASE-uri este faptul c permit lucrul n echip pentru elaborarea de
proiecte de obicei complexe, de dimensiuni mari, asigurnd n acelai timp faciliti de management al
acestor proiecte att pentru activitile specifice etapelor ciclului de via la nivel de proiect ct i la
nivelul ntregii organizaii elaboratoare de software. n general acestei generaii i aparin CASE-uri care
ofer suport pentru ntreg ciclul de via, numite i integrated-CASE sau I-CASE i care ofer suport
pentru realizarea proiectelor folosind mai multe metode de analiz i proiectare (figura 7.3).
M anagem ent
p ro iect
G enerato r
A naliza A nalizo r d e central
p ro iecte d e co d
P ro iectare
G enerare d e
co d
D ep o zit D epo zit co d
p ro iecte generat
LAN
Alte PC
Fr CASE
timpul
Este mai indicat o difereniere a calitii dup complexitatea problemelor rezolvate i tipul produselor
CASE. Asfel pentru o problem simpl nu se recomand utilizarea produselor CASE, la o problem cu
complexitate redus se recomand utilizarea unui lower CASE, iar n cazul problemelor cu
complexitate ridicat sunt folosite produse upper CASE.
Calitatea se analizeaz pe fazele parcurse n realizarea produselor program. Asfel avem o calitate a
fazei de analiz, proiectare, implementare, integrare i testare i a fazei de ntreinere.
Pentru a trage concluzii justificate cu privire la calitate se recomand experiene suficiente,
semnificative privind realizarea produselor program cu ajutorul produselor CASE.
n evaluarea produselor CASE se poate face uz de primele doua legi ale termodinamicii:
Prima lege (conservarea energiei) spune c nu se poate obinute nimic far efort. Eficiena
produselor CASE se calculeaz ca un raport ntre efortul depus de analist utiliznd instrumentul CASE
fa de efortul total pentru obinerea produsului program. Se aprecieaz c eficiena utilizrii
produselor CASE este cuprins ntre 85% i 97 %. Efortul necesar se poate nlocui cu costuri, dar
legtura ntre efort i cost nu este prea puternic, lucru care creeaz probleme practice
A doua lege (un proces izolat din sistem creeaz entropie cel puin egal cu entropia sistemului)
afirm c probabilitatea este mare ca entropia (nedeterminarea) s necesite eforturi suplimentare n
realizarea produselor program cu ajutorul produselor CASE.
Efortul necesar crete exponenial cu complexitatea problemelor i cu entropia de asemenea crescut la
procese izolate din sisteme.
Pentru realizarea tuturor funciilor amintite anterior indiferent de metoda de analiz i proiectare
pentru care devine suport, dar cu precizarea c produsul CASE nu va putea depi posibilitile
metodei, un astfel de produs trebuie s conin urmtoarele categorii de componente:
editor de diagrame
analizor de structur
depozit central (repository)
generator de cod
instrumente pentru inginerie invers
generator de documentaie
suport pentru ciclul de via
instrument pentru gestiunea proiectului (management proiect)
interfa utilizator cu browser specializat
7-10 Instrumente i medii de dezvoltare a programelor
n general putem reprezenta structura unui mediu CASE avnd aceste componente ca n figura 7.6:
INTERFAA UTILIZATOR
EDITOR DE ANALIZOR DE
DIAGRAME STRUCTUR
DEPOZIT CENTRAL
(REPOSITORY)
GENERATOR DE GENERATOR DE
COD DOCUMENTAIE