Sunteți pe pagina 1din 11

Instrumente i medii de dezvoltare

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
Proiectare
Implementare

CASE
CASE
Medii de dezvoltare, CASE (parial),
instrumente pentru gestiunea versiunilor i
configuraiilor.
Medii de dezvoltare, instrumente de testare

Testare i depanare

Fig. 7.1. Asistarea ciclului de dezvoltare cu instrumente software

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 software disparate


n aceast categorie sunt incluse instrumentele software puternic specializate pentru anumite subactiviti ale realizrii produselor program. Ele sunt concepute i difuzate n mod independent de alte

instrumente software i constituiau norma nainte de apariia mediilor integrate de dezvoltare. i astzi
sunt folosite n mod curent instrumente izolate care acoper necesiti specifice, neincluse ca faciliti
standard n medii integrate i produse CASE.
Putem diferenia trei categorii de astfel de instrumente:

Instrumente de programare

Instrumente de testare

Instrumente pentru gestiunea versiunilor i configuraiilor

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.

Instrumente pentru gestiunea versiunilor i configuraiilor


n faza de implementare se pot utiliza instrumente care faciliteaz gestionarea elementelor de construcie
a programelor n condiiile lucrului n echip, respectiv gestiunea versiunilor i gestiunea configuraiilor.
Procesul de gestiune a versiunilor are rolul de a asigura lucrul consistent i coerent cu elementele de
construcie a programelor (fiiere surs, fiiere binare, executabile, documente). Necesitatea unei atare
gestiuni este evident pentru proiectele de dimensiuni medii i mari, unde un numr mare de artefacte
software este continuu supus modificrilor de ctre mai muli dezvoltatori.
La nivelul dezvoltatorului individual, gestiunea versiunilor implic evidena i arhivarea versiunilor
succesive ale fiierelor, cu posibilitatea de a accesa versiunile anterioare. Dezvoltatorul are astfel
posibilitatea de a identifica modificrile care au cauzat apariia unor erori.
La nivelul echipei, gestiunea versiunilor cuprinde, n plus:
gestiunea centralizat a fiierelor; astfel ca membrii echipei s utilizeze cele mai noi versiuni validate
gestiunea lucrului concurent, care are rolul de a asigura consistena fiierelor atunci cnd accestea
sunt modificate concomitent de mai muli membri ai echipei. Aceasta se realizeaz fie prin asigurarea
accesului exclusiv la un anumit fiier, fie prin proceduri de integrare a modificrilor cu semnalarea
zonelor de conflict (zone din fiier modificate de mai muli programatori)
Instrumentele de gestiune a versiunilor sunt construite n general n jurul unui depozit (repository) care
conine versiunile succesive ale fiierelor unuia sau mai multor proiecte. Operaiile uzuale ntr-un astfel de
instrument sunt:
check-out extragerea unui fiier din depozit n vederea modificrii
check-in actualizarea fiierului modificat, nsoit eventual de analiza diferenelor (diff) i
integrarea modificrilor concurente (merge), cu semnalarea conflictelor.
Dintre instrumentele de gestiune a versiunilor amintim: Rational ClearCase, Microsoft Visual
SourceSafe, CVS (Concurrent Versions System).
Gestiunea configuraiilor se aplic n cazul dezvoltrii unui produs software n mai multe configuraii (de
exemplu pentru mai multe platforme hardware sau sisteme de operare, sau pentru limbi diferite) n mod
simultan. Se urmrete, pe de o parte, gestionarea unitar a elementelor comune tuturor configuraiilor, iar pe
de alt parte gestionarea elementelor specifice fiecrei configuraii.
Cele mai multe instrumente de gestiune a versiunilor includ i gestiunea configuraiilor. Asemenea faciliti
sunt prezente i n cadrul unor instrumente de tip CASE, o alt posibilitate fiind integrarea produselor
CASE cu instrumente specializate de gestiune a versiunilor i configuraiilor.

7-4

Instrumente i medii de dezvoltare a programelor

Medii integrate de dezvoltare clasice


Mediile integrate de dezvoltare, (IDE - Integrated Development Environment) cuprind ansamblul de
instrumente necesare implementrii ntr-un anumit limbaj de programare. Ca exemple se pot aminti Turbo
Pascal, Borland C.
n componena unui mediu integrat de dezvoltare intr, n mod obligatoriu, urmtoarele instrumente:
Editor
Compilator
Editor de legturi
Pe lng acestea sunt prezente i faciliti de testare i depanare, care asist programatorul n
activitatea de depistare i corectare a erorilor. Programul creat este rulat sub controlul mediului de
dezvoltare i poate fi ntrerupt i reluat dup necesiti.
Depistarea erorilor este facilitat prin:
ntreruperea execuiei programului n anumite puncte, stabilite de utilizator (breakpoints)
execuia pas-cu-pas a programului (trace), cu posibilitatea parcurgerii subprogramelor apelate
(trace into) sau nu (step over).
inspectarea coninutului variabilelor (watch) la un moment dat n cursul rulrii.

Medii integrate de dezvoltare vizual


Mediile integrate de dezvoltare vizual (sau medii vizuale de dezvoltare) reprezint o evoluie a
mediilor integrate, viznd asistarea programatorului n realizarea interfeelor grafice ale aplicaiilor.
Este de remarcat c toate componentele uzuale ale mediilor de dezvoltare de tip clasic se regsesc i n
cadrul mediilor vizuale.
Termenul de "programare vizual" se refer la codificarea aplicaiilor pornind de la interfaa cu
utilizatorul, definit n manier intuitiv, prin plasarea unor componente de interfa pe suprafaa
ferestrei aplicaiei. Aceast operaie are ca efect scrierea automat a codului aferent crerii
componentelor de interfa n fiierele surs.
Obiectivul acestor medii de programare este de a scuti programatorul de scrierea codului specific
lucrului cu interfaa grafic, acesta concentrndu-se pe funcionalitatea aplicaiei.
Mediile de programare vizual includ i gestiunea unitar a fiierelor corespunztoare unei anumite
aplicaii sub forma unui proiect. Fiierele unui proiect pot fi: fiiere surs, fiiere de definire a
ferestrelor aplicaiei, fiiere de resurse etc.
Programele realizate cu aceste medii de programare sunt construite n manier orientat pe
evenimente. Spre deosebire de programele "clasice", n care se definete succesiunea de prelucrri de
la intrarea n program pn la terminarea sa, orientarea pe evenimente presupune scrierea de cod
pentru tratarea evenimentelor generate de utilizator prin interaciunea cu elementele de interfa (ex.
clic pe buton, modificarea unui cmp text etc.) n acest sens programatorul scrie proceduri specifice,
care vor fi apelate automat la apariia evenimentelor tratate.
Mediile de dezvoltare vizual existente pe pia sunt orientate spre un anumit limbaj de programare.
Cteva exemple:
C/C++: Visual C++ (Microsoft), C++Builder (Borland-Inprise)
Java: Visual J# (Microsoft), JBuilder (Borland-Inprise), JDeveloper (Oracle)
Pascal/Object Pascal: Delphi (Borland-Inprise)
Basic: Visual Basic (Microsoft)

Produse de tip CASE


Concepte i caracteristici
Termenul de CASE - acronimul pentru Computer Aided Software Engineering - reprezint colecii de
metode, instrumente i procese destinate ingineriei software asistat de calculator. Aceast denumire a
fost introdus n 1987 de John Manley pentru a desemna dezvoltarea de software utiliznd instrumente
care s acopere i etapele de analiz-proiectare i s ofere faciliti pentru reprezentrile grafice
folosite cu precdere de metodele de analiz i proiectare.
n accepiunea actual, un produs de tip CASE sau un mediu CASE sprijin una sau mai multe metode
de analiz i proiectare automatiznd ntr-o msur ct mai mare activitile desfurate n cadrul
acestor metode i asistnd parial sau n totalitate activitile ciclului de via al software-ului inclusiv
managementul i asigurarea calitii.
Termenul de inginerie software asistat de calculator presupune utilizarea de instrumente software care
s ajute n toate etapele ciclului de dezvoltare ncepnd de la analiza cerinelor, proiectarea
specificaiilor i pn la o posibil generare automat de cod pe baza specificaiilor de proiectare. Se
poate vorbi, practic, de o extindere a instrumentelor ce serveau iniial etapa de codificare i asupra
fazelor precedente ale dezvoltrii de software. n mod evident, att tehnologiile CASE, ct i
metodologiile de realizare a software-ului pe care le sprijin sunt utile n dezvoltarea sistemelor,
aplicaiilor i programelor mari, complexe, a pachetelor i sistemelor de programe.
Avnd n vedere varietatea i multitudinea de colecii de instrumente existente, vom enumera cteva
din caracteristicile suplimentare, necesare ca o colecie de instrumente s fie calificat drept un produs
de tip CASE sau un mediu CASE:
 s ofere faciliti grafice puternice pentru a descrie i documenta software-ul
 s fie integrat, astfel nct s permit transmiterea uoar a datelor ntre componente
 s stocheze informaiile referitoare la software ntr-un depozit computerizat, permind accesarea
acestor informaii de ctre toi membrii echipei de elaboratori
 s poat fi utilizat ca baz pentru automatizarea procesului de producere a software-ului utiliznd una
sau mai multe metode de analiz proiectare
 s fie reutilizabil pentru dezvoltarea de noi sisteme, aplicaii i programe
 s poat fi utilizat pe orice platform hardware ncepnd cu calculatoare personale pn la mainframe-uri
 s permit realizarea uoar a interfeei cu utilizatorul final i expandarea interaciunii cu acesta
 s asigure dezvoltarea de aplicaii n limbaje de programare evoluate
 s asigure din punct de vedere calitativ software-ul realizat.
Performanele instrumentelor i mediilor de tip CASE actuale s-au constituit pe baza elementelor prezentate
anterior ntr-o evoluie care reprezint un proces continuu. Importana i avantajele utilizrii CASE-urilor n
realizarea pachetelor, sistemelor de programe de aplicaie poate fi rezumat la cteva aspecte:
scurteaz durata de realizare a proiectelor i de implementare a aplicaiilor
asigur din punct de vedere calitativ produsul software i cresc ncrederea utilizatorului n
calitatea acestuia
asist realizarea fiecrei etape i deci mbuntesc calitatea procesului de realizare
dezvoltarea software-ului se face conform unor metodologii care specific pe lng etapele de
dezvoltare, coninutul i ieirile fiecrei etape, n mod difereniat dup natura produsului sau
dup domeniul su de aplicaie
obinerea de specificaii de definiie complete
acurateea specificaiilor de realizare (de proiectare)
obinerea unei ci uor de ntreinut i dezvoltat (n ideea c un produs software nu este
niciodat n mod real terminat, dezvoltarea sa fiind prelungit de operaiile de mentenan).

7-6

Instrumente i medii de dezvoltare a programelor

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.

Generaii de produse CASE


La ora actual se vorbete deja despre generaii de produse CASE [BAL94].
O prim generaie de CASE include faciliti pentru diverse etape ale ciclului de via tradiional sub
form de instrumente (de obicei disparate) pentru:
 planificarea strategic (la nivelul sistemelor complexe)
 etapa de analiz
 etapa de proiectare
 generare de cod
Aceast prim generaie de produse CASE se caracterizeaz n primul rnd prin aceea c:
 instrumentele vehiculeaz un numr mare de date
 ofer interfa grafic pentru utilizator
 sunt utilizate n general pe PC
 partea de generare de cod se refer la definirea datelor (ecrane, rapoarte, definiii, fragmente de cod).
Aceast structur este reprezentat n figura 7.2.
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

Fig. 7.2 Generaia I de CASE

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
central
d e co d

A nalizo r d e
p ro iecte

A naliza
P ro iectare
G enerare d e
co d

D ep o zit
p ro iecte

D epo zit co d
generat

Fig. 7.3 Generaia a II-a de CASE

Generaia a treia de CASE cuprinde CASE-urile ultimei perioade, numite i medii CASE sau
Workbench (banc de lucru), nelegnd prin aceasta o colecie de produse de tip CASE i de alte
componente integrate care asigur suportul pentru majoritatea tipurilor de interaciuni ntre
componentele mediului i ntre utilizator i mediu. Sub un astfel de mediu CASE sunt asigurate att
monitorizarea realizrii proiectelor ct i realizarea propriu-zis asigurnd pn la generarea de cod
integral i generarea automat a documentelor cu posibiliti de inginerie invers (reverse engineering).
Generaia a treia de CASE presupune utilizarea acestora n organizaii elaboratoare de software i este
generaia actual care ofer:
 faciliti individuale pe PC
 faciliti la nivel de proiect pe LAN
 faciliti la nivel de organizaie pe mainframe
Aceste faciliti se bazeaz pe o structur reprezentat n figura 7.4.
Faciliti la nivel
de proiect pe LAN
Faciliti
individuale
Planning
Analiza

Analizor de
proiecte

Proiectare
Generator de
cod

LAN

Alte PC

Consolidare
analiza,
management la
nivel de proiecte

Faciliti la
nivel de
organizare pe
main-frame
Consolidare
analiza la
nivel de
organizaie

Depozit local
Depozit de nod
de proiect

Alte PC

Depozit la nivel
de organizaie

LAN

Fig. 7.4 Generaia a III-a de CASE

Clasificarea i evaluarea produselor CASE


Clasificarea produselor CASE poate fi fcut dup o multitudine de criterii. Un prim criteriu, care
reflect i evoluia metodelor de analiz i proiectare, ar fi dup cum ofer suport pentru metode
orientate obiect sau pentru metode funcii / date:
a) dup metodele de analiz i proiectare implementate

neorientate obiect, bazate pe metodologii de analiz i proiectare structurat (sau metode


funcii/date)
 pur orientate obiect
 mixte - care suport ambele tipuri de metodologii.
b) dup numrul metodelor de analiz i proiectare implementate
 ofer suport pentru o singur metod de analiz proiectare
 ofer suport pentru mai multe metode i n acest caz dac
- folosete independent mai multe metode
- permite trecerea automat a documentelor realizate pentru o anumit metod n documente
echivalente ale altei metode.
c) dup cum acoper etapele ciclului de via i de realizare a aplicaiilor
 acoper una sau mai multe pri ale ciclului de via
 acoper tot ciclul de via (I-CASE)
d) dup codul generat
 nu genereaz cod
 genereaz cod care conine:
- numai abloane i cod parial ce trebuie completat i optimizat
- cod integral, executabil pe baza transformrii directe a proiectului
e) dup cum asigur modul de lucru:
 n echip
 n reea
f) dup modul n care permite realizarea altor proiecte, sau abloane de proiecte, integral sau parial
g) permite reverse engineering - actualizarea diagramelor dup modificri n cod
h) permite includerea sa ntr-un mediu integrat de dezvoltare IDE (Integrat Development Environment)


n continuare se vor prezenta cteva exemple de produse CASE din categoriile amintite cu specificarea
faptului c i celelalte criterii amintite anterior mai pot servi la aprecierea acestor produse i la o
viziune complet asupra capabilitilor lor.
 din categoria CASE-urilor care implementeaz metodologii de ingineria informaiei integrate
amintim produsele IEF - Information Engineering Facility i IEW - Information Engineering
Workbench
 din categoria CASE-urilor care implementeaz metodologii integrate (MERISE, SASDM) amintim
produsele EXCELERATOR, TEAMWORK, AMC - DESIGNER
 din categoria CASE-urilor suport pentru ciclul de via bazate pe metodologii structurate sau
orientate obiect amintim produsele SYSTEM-ARCHITECT, EASY-CASE, WESTMOUNT,
CAYENNE-ObjectTeam, Rational Rose.
 din categoria CASE-urilor neintegrate suport pentru tehnici i proceduri din ingineria software la
nivel de activitate/sarcin amintim ER-Modeler, ABC.
Produsele CASE trebuie s satisfac urmtoarele condiii: a) s creasc eficiena elaborrii produselor
program i b) s nu scad calitatea i sigurana n funcionare a produselor program obinute. Din punct
de vedere al utilizatorului se mai adaug la condiiile de mai sus aceea c preul produsului CASE
trebuie s fie convenabil. n general cerina global fa de produsele de tip CASE este s produc
software (programe i documentaie) acceptabile.
Calitatea produselor de tip CASE se poate msura prin calitatea produselor program rezultate, motiv
pentru care sunt suportate n general grupe de caracteristici, atribute i metrici de calitate software.
Calitatea global a produselor obinute cu produse de tip CASE este mai ridicat dect a acelora
obinute fr acestea. Figura 7.5 ilustreaz acest fapt.

Calitatea
global

Cu CASE

Fr CASE
timpul

Fig. 7.5 Calitatea global

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.

Componente de baz ale unui produs CASE


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
DIAGRAME

ANALIZOR DE
STRUCTUR

INSTRUMENTE PENTRU INGINERIE INVERS


DEPOZIT CENTRAL
(REPOSITORY)
SUPORT PENTRU
CICLUL DE VIA
GENERATOR DE
COD

INSTRUMENT PENTRU
GESTIUNEA PROIECTULUI
GENERATOR DE
DOCUMENTAIE

Fig. 7.6 Componentele unui mediu CASE

Majoritatea componentelor sunt proiectate s asigure suport pentru anumite metodologii funcii/date
sau orientate obiect.
n continuare este prezentat o descriere succint a unora dintre componentele unui produs de tip
CASE:
Editorul de diagrame - este component obligatorie a oricrui produs de tip CASE i permite
construirea i modificarea tuturor tipurilor de diagrame utilizate de metodologia/metodologiile
implementate prin CASE. Introducerea informaiilor n editor poate fi fcut n dou moduri:
 de ctre utilizator, prin intermediul unei interfee
 din repository, atunci cnd acesta este actualizat prin reverse engineering.
Deoarece editorul de diagrame este prima component cu care interacioneaz utilizatorul i n acelai
timp cea mai utilizat de acesta, el trebuie s satisfac anumite condiii:
 s permit introducerea i modificarea uoar a tuturor entitilor grafice descrise de metoda de
proiectare;
 suprafaa grafic s fie de calitate, s permit operaii de zoom, de grupare i aliniere a elementelor
diagramei;
 s permit tiprirea eficient a documentelor i paginarea lor precum i selectarea informaiilor ce
vor fi tiprite;
 s dea posibilitatea de a decide entitile ce vor fi cuprinse ntr-o pagin fr a trunchia
informaiile;
 s permit construirea automat a unor tipuri echivalente de diagrame.
Pentru realizarea acestor faciliti i deoarece opiunile i comenzile de editare a diferitelor diagrame
sunt foarte numeroase editorul de diagrame folosete n general bare de comenzi, cutii de dialog sau
meniuri senzitive de context.
Baza de informaii (repository) - este, de asemenea, o component obligatorie care are drept rol
acumularea i stocarea n manier organizat a tuturor informaiilor introduse de persoane diferite la
momente diferite, eventual n locuri diferite. Repository -ul este elementul central, inima unui CASE,
care trebuie s memoreze toate informaiile despre proiecte i s permit ca pornind de la acestea s se
creeze informaie nou care s fie la rndul ei plasat n repository.
Pentru un proiect sunt verificate i corelate toate informaiile existente n repository cu scopul de a asigura
integritatea i consistena lor. Mai exact diferitele tipuri de diagrame reprezint aceeai informaie privit
din diferite puncte de vedere, deci trebuie s aib o legtur logic ntre ele. Datele introduse n anumite

diagrame pot fi utilizate i n alte tipuri de diagrame i depozitul de date este cel care asigur consistena
informaiei ntre diferitele diagrame. Modificrile efectuate asupra unei entiti dintr-o diagram sunt
automat reflectate n reprezentarea ulterioar a aceleai entiti n orice alt diagram.
Dintre caracteristicile i n acelai timp avantajele oferite de acest instrument sunt urmtoarele:
 documentaia de realizare a oricrui proiect, n totalitatea ei, se gsete n repository, de unde
poate fi tiprit integral sau parial i la cerere
 documentaia final a produsului software este realizat pe baza informaiilor despre proiect,
coninute n repository
 creterea preciziei i a acurateei documentaiei fa de cazul n care aceasta este realizat pe
hrtie, deoarece sunt detectate erorile, inconsistenele i omisiunile, tiut fiind c mai cu seam
n cazul aplicaiilor i produselor software complexe elaborate n cadrul unei echipe aceste
aspecte sunt greu de controlat
 asigur lucrul n echip i n reea, pe de-o parte prin accesul controlat al membrilor echipei la
componente de diferite nivele ale proiectului, pe de alt parte prin gestionarea legturilor dintre
componentele ce formeaz arhitectura unei aplicaii, a unui proiect.
Analizorul de structur - este componenta care are drept rol depistarea i eliminarea unor erori
dificil de localizat i tratat n fazele ulterioare celei de introducere a informaiilor.
Analizorul este n strns legtur cu editorul de diagrame i cu repository i funcia lui este de a
compara ultimele date introduse cu cele existente pe repository, i de a semnala:
 introducerea n acelai domeniu de vizibilitate (diagram, dicionar de date, etc.) a dou entiti
de acelai tip cu acelai nume
 verific dac toate entitile referite sunt definite
 semnaleaz relaii de motenire definite circular
 verific corectitudinea semantic i sintactic a adnotrilor formale.
Instrumente pentru reverse engeneering (inginerie invers) au drept rol revenirea din fazele de
sfrit ale realizrii aplicaiei n fazele de nceput, adic actualizarea diagramelor n raport cu
modificrile efectuate n cod. Acest lucru permite dezvoltarea interactiv a unui produs software prin
bascularea ntre proiectare i implementare.
Generatorul de cod - permite transformarea n cod, ntr-un anumit limbaj de programare, a
diagramelor realizate n faza de proiectare.
Browser specializat - este instrumentul pentru vizualizarea informaiilor unei mulimi de entiti
cu structur complex, entiti ntre care exist o multitudine de relaii.
El permite accesul direct al utilizatorului la diagramele care descriu proiectele, coninute n repository
i pentru a facilita accesul la informaii dispune de opiuni de filtrare i cutare. Aceste posibiliti fac
posibil regsirea rapid a resurselor unui proiect i reutilizarea unor module n cadrul diferitelor
proiecte n curs de dezvoltare
Generator de documentaie - conine modele de documente i ofer utilizatorului posibilitatea de
a-i concepe propriile documente n mod flexibil. Fiind legat de repository, furnizeaz informaii la zi
referitoare la proiect. Orice modificare a unei diagrame dintr-un proiect induce modificarea automat a
documentului asociat. Pot fi generate rapoarte standard pentru monitorizarea unui proiect i pentru
evaluarea informaiilor de dezvoltare, dar pot fi realizate i rapoarte proprii ale utilizatorului.
Gestiunea configuraiei - configuraia nsemnnd proiectul aplicaiei, codul i documentaia, toate
putnd fi gestionate global. Acest lucru permite membrilor echipei de dezvoltare s lucreze n paralel
i n acelai timp s folosesc informaia coninut n modelul global pentru a dezvolta orice proiect
nou.