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
Proiectare
Implementare
CASE
CASE
Medii de dezvoltare, CASE (parial),
instrumente pentru gestiunea versiunilor i
configuraiilor.
Medii de dezvoltare, instrumente de testare
Testare i depanare
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 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 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.
7-4
7-6
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.
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
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
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
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
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.
7-10
n general putem reprezenta structura unui mediu CASE avnd aceste componente ca n figura 7.6:
INTERFAA UTILIZATOR
EDITOR DE
DIAGRAME
ANALIZOR DE
STRUCTUR
INSTRUMENT PENTRU
GESTIUNEA PROIECTULUI
GENERATOR DE
DOCUMENTAIE
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.