Documente Academic
Documente Profesional
Documente Cultură
1. Notiuni generale
Dezvoltarea software-lui pe criterii de eficienta impune imbunatatirea productivitatii muncii prin
folosirea, in toate fazele ciclului de elaborare a programelor, a unor instrumente software care sa asiste
dezvoltatorul in activitatea de elaborare a software-ului de buna calitate, intr-un termen cat mai scurt si
la un cost redus. Initial, preocuparile au fost indreptate spre folosirea instrumentelor cu precadere in
cadrul activitatilor de scriere de cod, testare si depanare a programelor. Ulterior, aceste preocupari s-au
extins si asupra celorlalte faze. Astfel, a avut loc un proces de agregare a instrumentelor disparate,
specializate in instrumente complexe (medii integrate, produse de tip CASE) care sa asiste cat mai
adecvat procesul de realizare a produselor software. In tabelul de mai jos este reflectata corespondenta
intre fazele ciclului de dezvoltare si categoriile de instrumente care ofera facilitati pentru aceste faze.
Faza Instrument
Analiza CASE
Proiectare CASE
Implementare CASE , medii de dezvoltare, instrumente
pentru gestiunea versiunilor si a configuratiilor.
Testare si depanare CASE, medii de dezvoltare, instrumente de
testare.
Un instrument software, in general, este o entitate software care prelucreaza sau actioneaza asupra
unei alte entitati software. Instrumentele de programare sunt entitati software care actioneaza asupra
elementelor de constructie a programelor (modele, cod-sursa, cod-obiect, cod executabil), realizand
transformari ale acestora si/sau analizarea lor din punct de vedere sintactic, functional sau calitativ.
Un mediu integrat de dezvoltare constituie un ansamblu integrat de instrumente de programare, care
asista dezvoltatorul pe parcursul activitatilor de codificare, obtinere a programului executabil, testare si
depanare. Integrarea instrumentelor se manifesta prin utilizarea lor intr-o maniera consistenta, adesea
in mod transparent pentru programator.
Un mediu de dezvoltare vizuala faciliteaza, in plus, asistarea programatorului in realizarea interfetelor
grafice ale aplicatiilor. Mediile de programare ofera facilitati sporite de reutilizare a programelor, sub
forma bibliotecilor de subprograme si cadrelor de dezvoltare a aplicatiilor (application framework).
Un produs de tip CASE reprezinta un ansamblu de metode, instrumente si procese destinate ingineriei
software asistate de calculator. Acest tip de instrumente acopera si etapele de analiza-proiectare,
oferind facilitati de reprezentare grafica a modelelor si diagramelor folosite de metodele / limbajele de
analiza si proiectare.
1
2.1 Instrumente de programare
Conform definitiei de mai sus, acestea realizeaza de regula transformari ale elementelor de constructie
a programelor. Instrumentele de programare includ:
• Editoare pentru codul sursa, care faciliteaza scrierea unitatilor compilabile. Editoarele cuprind in
mod standard functii de creare / salvare / deschidere de fisiere, copiere / inserare de text, cautare; pot
avea facilitati suplimentare de evidentiere a elementelor sintactice (syntax highlighting) si verificare a
corectitudinii constructiilor de limbaj.
• Compilatoare, care realizeaza transformarea codului sursa in cod-obiect, semnaland erorile de
sintaxa. Este integrat cu editorul, facilitand corectarea erorilor depistate prin pozitionarea in codul
sursa pe liniile implicate. Programatorul are la dispozitie optiuni privind compilarea optimizata dupa
diferite criterii sau platforme hardware, utilizarea unor versiuni standard ale limbajului de programare,
s.a.m.d.
• Editoare de legaturi pentru obtinerea codului executabil prin legarea subprogramelor referite in
codul sursa. Adesea este apelat in mod transparent pentru utilizator, dupa rularea compilatorului, daca
acesta nu a semnalat erori.
• Interpretoare, care efectueaza prelucrarea si executia directa a instructiunilor sursa ale programelor.
• Asambloare – permit accesul la orice functie hardware sau a sistemului de operare prin instructiuni
de nivel scazut (limbaj masina, functii ale sistemului de operare).
• Preprocesoare si precompilatoare care maresc portabilitatea limbajelor de programare, respectiv
a compilatoarelor.
• Emulatoare care permit rularea unor instructiuni specifice altor platforme hardware.
3
4. Medii integrate de dezvoltare vizuala
Mediile integrate de dezvoltare vizuala (sau medii vizuale de dezvoltare) reprezinta o evolutie a
mediilor integrate, vizand asistarea programatorului in realizarea interfetelor video ale aplicatiilor.
Este de remarcat ca toate componentele uzuale ale mediilor de dezvoltare de tip clasic se regasesc si in
cadrul mediilor vizuale. Termenul de “programare vizuala” se refera la scrierea codului sursa al
aplicatiilor, pornind de la interfata cu utilizatorul, definita in maniera intuitiva prin plasarea unor
componente de interfata pe suprafata ferestrei aplicatiei. Aceasta operatie are ca efect scrierea
automata a codului aferent crearii componentelor de interfata in fisierele sursa. Obiectivul acestor
medii de programare este de a scuti programatorul de scrierea codului specific lucrului cu interfata
grafica, acesta concentrandu-se pe functionalitatea aplicatiei.
Mediile de programare vizuala includ si gestiunea unitara a fisierelor corespunzatoare unei anumite
aplicatii sub forma unui proiect. Fisierele unui proiect pot fi: fisiere sursa, fisiere de definire a
ferestrelor aplicatiei, fisiere de resurse etc. Programele realizate cu aceste medii de programare sunt
construite in maniera orientata pe evenimente. Spre deosebire de programele “clasice”, in care se
defineste succesiunea de prelucrari de la intrarea in program pana la terminarea sa, orientarea pe
evenimente presupune scrierea de cod pentru tratarea evenimentelor generate de utilizator prin
interactiunea cu elementele de interfata (ex. click pe buton, modificarea unui camp text etc.) In acest
sens programatorul scrie proceduri specifice, care vor fi apelate automat la aparitia evenimentelor
tratate.
Mediile de dezvoltare vizuala existente pe piata sunt orientate spre un anumit limbaj de programare.
Cateva exemple:
Management proiect ➔
Analiza ➔
Proiectare ➔ A n a l iz o r d e p r o i e c t e ➔ D e p o z i t p r o i e c t e
Generare de cod ➔
4
A doua generatie de produse CASE a adus in plus fata de prima generatie faptul ca generarea de cod
se face pe un mainframe pe care exista un generator central de cod si care stocheaza codul generat
intr-un depozit, permitand lucrul in echipa pentru elaborarea de proiecte de complexe, asigurand in
acelasi timp facilitati de management a proiectelor. In general, acestei generatii ii apartin CASE-uri
care ofera suport pentru intreg ciclul de viata, numite si Integrated-CASE ( I-CASE ) si care ofera
suport pentru realizarea proiectelor folosind mai multe metode de analiza si proiectare.
Structura generatiei a doua de produse CASE este prezentata mai jos:
Management proiect ➔
Analiza ➔
Proiectare ➔ Analizor de proiecte ➔ Depozit proiecte
Generare de cod ➔ Generator central de cod ➔ Depozit cod generat
Generatia a treia de CASE cuprinde medii CASE sau banc de lucru( workbench), intelegand prin
aceasta o colectie de produse de tip CASE si de alte componente integrate care asigura suportul pentru
majoritatea tipurilor de interactiuni intre componentele mediului si intre utilizator si mediu. Sub un
astfel de mediu CASE sunt asigurate atat monitorizarea realizarii proiectelor cat si realizarea propriu-
zisa asigurand pana la generarea de cod integral si generarea automata a documentelor cu posibilitati
de inginerie inversata (reverse engineering).
Generatia a treia de CASE presupune utilizarea acestora in organizatii dezvoltatoare de software si este
generatia actuala care ofera:
o facilitati individuale pe PC;
o facilitati la nivel de proiect pe LAN ;
o facilitati la nivel de organizatie pe un server central;
o facilitati la nivel de cloud.
Structura generatiei a treia de instrumente CASE este prezentata in Figura 1:
Facilitati la nivel
Facilitati locale Facilitati de retea de organizatie
Consolidare
Consolidare, si
Planning analiza si management
Analizor management la nivel de
de proiecte de proiecte organizatie
Analiza
Depozit de Depozit la
Proiectare
Depozit nod de proiect nivel de
local organizatie
Generare cod
Server
5
6. Componente de baza ale unui instrument CASE
Pentru realizarea tuturor functiilor amintite anterior indiferent de metoda de analiza si proiectare
pentru care devine suport, dar cu precizarea ca produsul CASE nu va putea depasi posibilitatile
metodei, un astfel de produs trebuie sa contina urmatoarele categorii de componente:
➢ editor de diagrame
➢ analizor de structura
➢ depozit central (repository)
➢ generator de cod
➢ instrumente pentru inginerie inversata
➢ generator de documentatie
➢ suport pentru ciclul de viata
➢ instrument pentru gestiunea proiectului (management proiect)
➢ interfata utilizator cu browser specializat
INTERFATA UTILIZATOR
DEPOZIT CENTRAL
( REPOSITORY )
GENERATOR GENERATOR DE
DE COD DOCUMENTATIE
Figura 2. Componentele unui mediu CASE
Majoritatea componentelor sunt proiectate sa asigure suport pentru anumite metodologii functii/date
sau orientate obiect.
In continuare este prezentata o descriere succinta a unora dintre componentele unui produs de tip
CASE:
➢ Editorul de diagrame -este componenta obligatorie a oricarui produs de tip CASE si permite
construirea si modificarea tuturor tipurilor de diagrame utilizate de metodologia/metodologiile
implementate prin CASE. Introducerea informatiilor in editor poate fi facuta in doua moduri:
o de catre utilizator, prin intermediul unei interfete;
o din repository, atunci cand acesta este actualizat prin reverse engineering.
Deoarece editorul de diagrame este prima componenta cu care interactioneaza utilizatorul si in acelasi
timp cea mai utilizata de acesta, el trebuie sa satisfaca anumite conditii:
o sa permita introducerea si modificarea usoara a tuturor entitatilor grafice descrise de metoda de
proiectare;
6
o suprafata grafica sa fie de calitate, sa permita operatii de zoom, de grupare si aliniere a
elementelor diagramei;
o sa permita tiparirea eficienta a documentelor si paginarea lor precum si selectarea informatiilor
ce vor fi tiparite;
o sa dea posibilitatea de a decide entitatile ce vor fi cuprinse intr-o pagina fara a trunchia
informatiile;
o sa permita construirea automata a unor tipuri echivalente de diagrame.
Pentru realizarea acestor facilitati si deoarece optiunile si comenzile de editare a diferitelor diagrame
sunt foarte numeroase editorul de diagrame foloseste in general bare de comenzi, cutii de dialog sau
meniuri senzitive de context.
➢ Depozitul de date (repository) -este, de asemenea, o componenta obligatorie care are drept
rol acumularea si stocarea in maniera organizata a tuturor informatiilor introduse de persoane diferite
la momente diferite, eventual in locuri diferite. Repository-ul este elementul central, inima unui
CASE, care trebuie sa memoreze toate informatiile despre proiecte sisa permita ca pornind de la
acestea sa se creeze informatie noua care sa fie la randul ei plasata in repository.
Pentru un proiect sunt verificate si corelate toate informatiile existente in repository cu scopul de a
asigura integritatea si consistenta lor. Mai exact diferitele tipuri de diagrame reprezinta aceeasi
informatie privita din diferite puncte de vedere, deci trebuie sa aiba o legatura logica intre ele. Datele
introduse in anumite diagrame pot fi utilizate si in alte tipuri de diagrame si depozitul de date este cel
care asigura consistenta informatiei intre diferitele diagrame. Modificarile efectuate asupra unei entitati
dintr-o diagrama sunt automat reflectate in reprezentarea ulterioara a aceleasi entitati in orice alta
diagrama.
Dintre caracteristicile si in acelasi timp avantajele oferite de acest instrument, sunt urmatoarele:
o documentatia de realizare a oricarui proiect, in totalitatea ei, se gaseste in repository, de unde
poate fi tiparita integral sau partial si la cerere;
o documentatia finala a produsului software este realizata pe baza informatiilor despre proiect,
continute in repository;
o cresterea preciziei si a acuratetei documentatiei fata de cazul in care aceasta este realizata pe
hartie, deoarece sunt detectate erorile, inconsistentele si omisiunile, stiut fiind ca mai cu seama
in cazul aplicatiilor si produselor software complexe elaborate in cadrul unei echipe aceste
aspecte sunt greu de controlat;
o asigura lucrul in echipa si in retea, pe de-o parte prin accesul controlat al membrilor echipei la
componente de diferite nivele ale proiectului, pe de alta parte prin gestionarea legaturilor dintre
componentele ce formeaza arhitectura unei aplicatii, a unui proiect.
➢ Analizorul de structura -este componenta care are drept rol depistarea si eliminarea unor erori
dificil de localizat si tratat in fazele ulterioare celei de introducere a informatiilor.
Analizorul este in stransa legatura cu editorul de diagrame si cu repository si functia lui este de a
compara ultimele date introduse cu cele existente pe repository, si de a semnala:
o introducerea in acelasi domeniu de vizibilitate (diagrama, dictionar de date, etc.) a doua entitati
de acelasi tip cu acelasi nume;
o verifica daca toate entitatile referite sunt definite;
o semnaleaza relatii de mostenire definite circular;
o verifica corectitudinea semanticasi sintactica a adnotarilor formale.
➢ Instrumente pentru reverse engineering - au drept rol revenirea din fazele de sfarsit ale
realizarii aplicatiei in fazele de inceput, adica actualizarea diagramelor in raport cu modificarile
efectuate in cod. Acest lucru permite dezvoltarea interactiva a unui produs software prin bascularea
intre proiectare si implementare.
7
➢ Generatorul de cod - permite transformarea in cod, intr-un anumit limbaj de programare, a
➢ .
diagramelor realizate in faza de proiectare.