cap 4 ciclul de viata al produselor program-libre

11
Ciclul de via al produselor program 4-1 Capitolul 4: Ciclul de via al produselor program Ciclul de via al unui produs software reprezint intervalul de timp de la momentul deciziei de realizare i pân la retragerea sau înlocuirea total a acestuia cu un nou produs software, reprezentând orizontul de timp în care opereaz i evolueaz produsul program. Dup glosarul de termeni - terminologie software - ai IEEE (Institute of Electric and Electronic Engineering), ciclul de via reprezint o abordare sistemic începând cu dezvoltarea, utilizarea, mentenana i pân la retragerea software-lui. Din punct de vedere al utilizatorilor cele mai importante pri ale ciclului de via sunt utilizarea curent (operaionalitate) i mentenana; produsele software sunt dezvoltate pentru a satisface nevoile consumatorilor / utilizatorilor. Din punctul de vedere al realizatorilor, etapele cele mai importante sunt cele în care se construiete produsul software. Durata ciclului de via al unui produs software depinde de caracteristicile de calitate i performan ale acestuia, dar i de o serie de factori externi produsului software cum sunt: stabilitatea funcional, relaiile sale cu mediul, dinamica metodelor, tehnicilor, conceptelor etc. Ciclul de realizare este o noiune derivat din cea de ciclu de via acoperind intervalul dintre momentul deciziei iniiale de realizare i pân la punerea în funciune a produsului software. Acest interval, împrit în general în etape, presupune analiza problemei, proiectarea produsului software, implementarea de cod, testarea i experimentarea acestuia, deci reprezint o parte a ciclului de via i anume cea care are ca scop dezvoltarea produsului. Dezvoltarea de software de înalt calitate necesit procese de producie software, utilizate pentru a dezvolta aceste produse, principii de inginerie software, pe care s se bazeze aceste procese i care încorporeaz practici ale ingineriei software [BRU 95]. Principiile dezvoltrii software sunt legate de calitate, de management i de inginerie. Aceste principii se reflect în calitatea produsului software, în termenele de realizare, precum i în costurile implicate. Referitor la principiile calitii se poate spune c noiunea de calitate nu înseamn numai testarea acesteia pentru un produs software, ci i construirea i asigurarea calitii în procesele software. Principiile generale sunt : prevenirea defectelor; asigurarea faptului c defectele au fost detectate i corectate cât mai mult posibil; stabilirea i eliminarea cauzelor care produc anumite simptome; audit i conformitate cu standarde i proceduri. În ceea ce privete principiile de management putem aminti: planificarea tuturor activitilor necesare în realizare din punct de vedere al timpului , bugetului, resurselor i restriciilor de calitate. monitorizarea continu, îmbuntirea progresiv a planurilor, revizuirea planurilor dac anumite limite de toleran au fost depite. definirea clar a structurii, rolurilor, responsabilitilor i liniilor de comunicaie între grupuri sau indivizi, persoane implicate în realizare. Ca principii de inginerie se pot preciza: descrierea clar a problemei - care întâmpin dou tipuri de dificult i majore: - cerinele sunt exprimate de obicei în termenii problemei reale (cerin e reale) i trebuie translatate în termenii uzuali contextului software; - utilizatorul nu poate preciza complet cerinele sale sau nu poate s gseasc legtura dintre ele; definirea i selectarea soluiei printr-o clar definire a componentelor; controlul riguros al relaiilor dintre componente.

Upload: matei-ivan

Post on 05-Feb-2016

2 views

Category:

Documents


0 download

DESCRIPTION

sdhsjdhs

TRANSCRIPT

Page 1: Cap 4 Ciclul de Viata Al Produselor Program-libre

Ciclul de via�� al produselor program 4-1

Capitolul 4: Ciclul de via�� al produselor program Ciclul de via�� al unui produs software reprezint� intervalul de timp de la momentul deciziei de realizare �i pân� la retragerea sau înlocuirea total� a acestuia cu un nou produs software, reprezentând orizontul de timp în care opereaz� �i evolueaz� produsul program. Dup� glosarul de termeni - terminologie software - ai IEEE (Institute of Electric and Electronic Engineering), ciclul de via�� reprezint� o abordare sistemic� începând cu dezvoltarea, utilizarea, mentenan�a �i pân� la retragerea software-lui.

Din punct de vedere al utilizatorilor cele mai importante p�r�i ale ciclului de via�� sunt utilizarea curent� (opera�ionalitate) �i mentenan�a; produsele software sunt dezvoltate pentru a satisface nevoile consumatorilor / utilizatorilor. Din punctul de vedere al realizatorilor, etapele cele mai importante sunt cele în care se construie�te produsul software.

Durata ciclului de via�� al unui produs software depinde de caracteristicile de calitate �i performan�� ale acestuia, dar �i de o serie de factori externi produsului software cum sunt: stabilitatea func�ional�, rela�iile sale cu mediul, dinamica metodelor, tehnicilor, conceptelor etc.

Ciclul de realizare este o no�iune derivat� din cea de ciclu de via�� acoperind intervalul dintre momentul deciziei ini�iale de realizare �i pân� la punerea în func�iune a produsului software. Acest interval, împ�r�it în general în etape, presupune analiza problemei, proiectarea produsului software, implementarea de cod, testarea �i experimentarea acestuia, deci reprezint� o parte a ciclului de via�� �i anume cea care are ca scop dezvoltarea produsului.

Dezvoltarea de software de înalt� calitate necesit� procese de produc�ie software, utilizate pentru a dezvolta aceste produse, principii de inginerie software, pe care s� se bazeze aceste procese �i care încorporeaz� practici ale ingineriei software [BRU 95].

Principiile dezvolt�rii software sunt legate de calitate, de management �i de inginerie. Aceste principii se reflect� în calitatea produsului software, în termenele de realizare, precum �i în costurile implicate.

Referitor la principiile calit��ii se poate spune c� no�iunea de calitate nu înseamn� numai testarea acesteia pentru un produs software, ci �i construirea �i asigurarea calit��ii în procesele software. Principiile generale sunt : � prevenirea defectelor; � asigurarea faptului c� defectele au fost detectate �i corectate cât mai mult posibil; � stabilirea �i eliminarea cauzelor care produc anumite simptome; � audit �i conformitate cu standarde �i proceduri.

În ceea ce prive�te principiile de management putem aminti: � planificarea tuturor activit��ilor necesare în realizare din punct de vedere al timpului , bugetului,

resurselor �i restric�iilor de calitate. � monitorizarea continu�, îmbun�t��irea progresiv� a planurilor, revizuirea planurilor dac� anumite

limite de toleran�� au fost dep��ite. � definirea clar� a structurii, rolurilor, responsabilit��ilor �i liniilor de comunica�ie între grupuri sau

indivizi, persoane implicate în realizare.

Ca principii de inginerie se pot preciza: � descrierea clar� a problemei - care întâmpin� dou� tipuri de dificult��i majore:

- cerin�ele sunt exprimate de obicei în termenii problemei reale (cerin�e reale) �i trebuie translatate în termenii uzuali contextului software;

- utilizatorul nu poate preciza complet cerin�ele sale sau nu poate s� g�seasc� leg�tura dintre ele; � definirea �i selectarea solu�iei printr-o clar� definire a componentelor; � controlul riguros al rela�iilor dintre componente.

Page 2: Cap 4 Ciclul de Viata Al Produselor Program-libre

4-2 Ciclul de via�� al produselor program

Activit��ile componente ale ciclul de via�� al produselor software sunt grupate în mai multe moduri, în etape sau faze. O astfel de grupare a activit��ilor componente ale ciclului de via�� este prezentat� în tabelul 4.1 [BRU 95]:

Tabelul 4.1 Etapele ciclului de via�� ETAPE OBIECTIVE PRODUSE FINALE

Cerin�e utilizator Definirea problemei Specifica�ii cerin�e utilizator Cerin�e software Analiza problemei Cerin�e �i specifica�ii software Proiectarea arhitecturii Solu�ii de ansamblu Proiect de ansamblu Produc�ie Implementare Proiect de detaliu,

Software testat Transfer Instalare Software instalat, training clien�i,

debugging Mentenan�� Evolu�ie produs software Software între�inut �i dezvoltat

Modul de grupare al activit��ilor percum �i sucesiunea etapelor conduc la diferite modele de implementare ale ciclului de via��.

Un model al ciclului de via�� pentru produse software descrie activitatea de realizare a produsului software �i fluxul procesului de dezvoltare. În decursul timpului au fost elaborate diferite strategii de implementare a conceptului de ciclu de via�� concretizate în diferite modele: � Modelul în cascad� � Modelul incremental � Modelul evolutiv � Modelul în spiral� � Inginerie software bazat� pe model

4.1. Modelul în cascad� În mod tradi�ional, activitatea de realizare a produsului software este structurat� utilizând diferite tipuri ale modelului în cascad� care descrie fluxul procesului de dezvoltare.

Un model tipic în cascad� presupune c� dezvoltarea începe cu definirea cerin�elor �i a specifica�iilor, care se pot realiza în secven�� dar �i alternându-le. Urmeaz� proiectarea care odat� terminat� se pot implementa module mici care pot fi testate individual, iar apoi împreun�; când ultimul test de integrare este complet, întregul produs software poate fi testat �i livrat �i începe etapa de mentenan�� (figura 4.1).

Fiecare etap� a ciclului de via�� are un scop bine precizat �i presupune unor activit��i specifice. La sfâr�itul fiec�rei etape se ob�in componentele produsului program în diverse stadii de elaborare precum �i documenta�ia de realizare a produsului. La trecerea de la o etap� la alta, rezultatele ob�inute sunt evaluate �i avizate. Ini�ial a existat ideea c� o faz� trebuie s� fie complet terminat� pentru a o începe pe urm�toarea. Acest principiu a fost abandonat

UTILIZARE&MENTENAN��

DEFINIRE CERIN�E

ANALIZA

PROIECTARE

IMPLEMENTARE COD

TESTARE

Fig. 4.1 Modelul în cascad�

Page 3: Cap 4 Ciclul de Viata Al Produselor Program-libre

Ciclul de via�� al produselor program 4-3

relativ repede �i s-a convenit ca o faz� s� poat� începe înainte ca precedenta s� fie complet terminat�. Con�inutul �i rezultatele acestor etape este precizat în continuare.

Definire cerin�e - are ca scop identificarea �i formularea cerin�elor globale privind realizarea produsului program cât �i justificarea necesit��ii �i oportunit��ii acestuia. Rezultatul etapei este specificarea cerin�elor utilizatorului.

Analiza – are ca scop specificarea cerin�elor func�ionale �i de calitate ale viitorului produs, identificarea mijloacelor tehnice-suport, stabilirea fazelor �i activit��ilor de elaborare, a procedurilor de control �i recep�ie. Rezultatul etapei este „Tema de Realizare”.

Proiectarea – are drept scop stabilirea arhitecturii �i structurii viitorului produs. Pentru proiectele complexe aceast� etap� se împarte în proiectare preliminar� �i proiectare detaliat�.

• Proiectarea preliminar� are ca scop specificarea detaliat� a cerin�elor func�ionale �i de calitate �i proiectarea arhitecturii func�ionale a produsului program. Documenta�ia rezultat� este „Specifica�ia

de Definire”, care con�ine: descrierea problemei de rezolvat �i a criteriilor de acceptare de c�tre utilizator; destina�ia produsului; specificarea cerin�elor �i a restric�iilor de realizare; arhitectura produsului program; (func�ionalitate, componente, interfe�e, organizarea logic� datelor); definirea formei de livrare, planul de realizare, planul de testare �i omologare. Rezultatul etapei este con�inut în „Proiectul de Ansamblu” sau „Proiectul Logic” al viitorului produs.

• Proiectarea detaliat� are ca scop proiectarea structurii fizice a produsului program: module, programe, algoritmii acestora, interfe�e, fluxuri de date �i de control, structuri fizice de date, cât �i preg�tirea test�rii. Rezultatul etapei este „Proiectul de detaliu” sau „Proiectul Fizic” care con�ine urm�toarele documente: „Specificatia de Realizare” ce precizeaz�: structura fizic�, descrierea interfe�elor interne �i externe, descrierea componentelor, descriere datelor, condi�ii �i restric�ii tehnice �i „Specificatia de Testare” pentru testul de integrare care define�te: planul de testare elaborat în etapa precedent�, cazurile de test, mediul de testare, procedurile de testare.

Elaborarea programelor are ca scop: realizarea modulelor/programelor conform specifica�iilor de realizare �i testare individual� a acestora. Testarea, aici este orientat� spre depistarea erorilor de pro-gramare la nivel individual. Rezultatele etapei sunt: fi�ierele/bibliotecile cu programele/modulele testate individual, raportul de testare individual� �i listinguri martor. În aceast� etap� se elaborez� o form� preliminar� pentru „Documenta�ia de Intre�inere” care con�ine: a) specificatia structurii produsului program �i a documentatiei (lista manualelor �i documentelor înso�itoare, lista componentelor fizice ale produsului, lista componentelor ce se pot utiliza individual; b) descrierea produsului program (descriere func�ional�, descrierea structurii, mijloace tehnice utilizate, moduri de apelare, înc�rcare, utilizare memorie, date de intrare/ie�ire); c) textele programelor în limbaj surs� autodocumentate.

Integrarea �i testarea const� în integrarea �i testarea progresiv� a produsului program în ansamblu. Testarea, în acest caz, este orientat� spre validarea func�iilor generale �i a performan�elor specificate, a interfe�elor dintre programe � programe, programe � echipamente, programe � utilizator. Rezultatul test�rii este consemnat în „Raportul de Testare” a integr�rii ce con�ine: scurta descriere a func�iunilor, condi�iile de efectuare a test�rii, rezultatele test�rii, performan�ele obtinute. Tot acum se aduc complet�ri la „Documentatia de Intretinere” �i se întocmesc forme preliminare pentru: a) „Manual de Prezentare” care con�ine: destina�ia produsului; descrierea problemei �i a metodelor de rezolvare, tipuri de date de intrare/ie�ire, lista manualelor, performan�ele �i caracteristicile de calitate, informa�ii tehnico-comerciale; b) „Manualul de Utilizare” care con�ine: destina�ia produsului, proceduri de utilizare (configura�ie, sistem de operare etc), caracteristicile produsului, proceduri de apelare, înc�rcare, execu�ie, date de intrare/ie�ire, interac�iunea utilizator-produs, alte informa�ii; c) „Manual de Exploatare” care con�ine: informa�ii generale despre produsul program, structura fizic�, procedurile de instalare / adaptare /generare, procedurile de verificare a instal�rii corecte �i mesajele specifice, modurile de execu�ie, mesajele �i dialogul cu utilizatorul.

Page 4: Cap 4 Ciclul de Viata Al Produselor Program-libre

4-4 Ciclul de via�� al produselor program

Experimentarea are ca scop verificarea în condi�ii reale a functionalit��ii �i performan�elor produsului program. Num�rul de experiment�ri este în func�ie de complexitatea �i natura produsului �i se aleg pentru experimentare unitati cât mai reprezentative. Rezultatele experiment�rii se consemneaz� într-un „Raport de Experimentare” care con�ine: descrierea sumara a produsului program, descrierea condi�iilor concrete de experimentare, evaluarea rezultatelor ob�inute, anomaliile constatate �i modul de solu�ionare, recomand�ri de perfec�ionare.

Omologarea are ca scop certificarea functionalit��ii �i a calit��ii produsului program în scopul difuz�rii sale pe scar� larg�. Omologarea se desf��oar� pe baza Programei si metodicii de omologare care con�ine: obiectul �i scopul omolog�rii, cerin�e cu privire la produs preluate din „Tema de Realizare”, cerin�e cu privire la documenta�ie, metodele �i procedurile concrete de omologare, forma de livrare a produsului.

Modelul în cascad� a avut un impact uria� asupra metodelor ingineriei software �i a fost repede adoptat, chiar înainte de a fi bine descris.

În acest model intr�rile fiec�rei etape sunt ie�irile alteia. Feedback-ul e format din erori care se r�sfrâng asupra etapei urm�toare. Erorile se propag� indirect, în plus intervin costurile modific�rilor fapt ce implic� necesitatea test�rii foarte riguroase a fiec�rei etape.

Dac� este utilizat în domenii pu�in cunoscute se poate lucra mult pentru a acoperi cerin�ele, uneori g�site prea târziu, situa�ie în care, la nivel conceptual este necesar� utilizarea de prototipuri în fazele ini�iale sau de strategii euristice, dup� caz.

Etapele modelului în cascad� necesit� un personal cu preg�tire divers� (anali�ti, programatori etc.) �i se poate spune c� este deci o strategie de implementare aproape istoric�.

4.2. Modelul incremental

Specific acestui model este faptul c� etapele finale sunt realizate în mai mul�i pa�i succesivi ceea ce permite ob�inerea de versiuni preliminare ale produsului software (figura 4.2).

Modelul incremental are urm�toarele caracteristici: � analiza �i proiectul de ansamblu (arhitectural) se realizeaz� într-o singur� component�; � proiectarea de detaliu, produc�ia, transferul �i mentenan�a sunt f�cute în mai mul�i pa�i succesivi; � elaborarea produsului software în pa�i d� posibilitatea verific�rii dac� produc�ia va da rezultatele

dorite. � Modelul incremental este mai bun decât modelul în cascad�, necesit� mai mult� organizare, dar

permite versiuni preliminare ale produsului software pe care se pot verifica calit��ile acestuia.

Fig. 4.2 Modelul incremental

Cerin�e utilizator

Cerin�e software

Proiectare arhitectural�

Proiectare de detaliu �i produc�ie

Transfer

Utilizare �i mentenan��

timp

Page 5: Cap 4 Ciclul de Viata Al Produselor Program-libre

Ciclul de via�� al produselor program 4-5

4.3. Modelul evolutiv

Comparativ cu modelele precedente, acest model, necesit� un management mai mare, o organizare mai bun�. Este foarte util când specifica�iile ini�iale nu sunt foarte clare sau când se realizeaz� un sistem nou �i nu se pot da specifica�ii precise �i complete sau când acestea sunt instabile.

Prin parcurgerea pa�ilor modelului evolutiv se realizez� un prototip ini�ial care în final prin reluarea etapelor (pa�ilor) ajunge s� satisfac� cerin�ele clien�ilor (figura 4.3). Modelul evolutiv poate fi aplicat printr-o strategie agresiv� (sau revolu�ionar�) care �ine cont de cerin�ele pie�ei în sensul dezvolt�rii continue de noi produse sau de noi func�ii, racordate la cerin�ele pie�ei de produse software.

Bazat pe prototipizare, prin repetarea tuturor etapelor, modelul evolutiv na�te în timp mai îndelungat un produs, dar permite întotdeauna rezolvarea unor noi probleme sau includerea de noi func�ii cerute de pia�a utilizatorilor de produse software.

Adaptat la cerin�ele pie�ei, modelul evolutiv poate produce o solu�ie evolutiv� sau, prin strategia agresiv�, o solu�ie revolu�ionar�. Prin combinarea acestora �i în func�ie de studiile de pia�� se poate ob�ine o solu�ie intermediar�.

Deoarece modelele precedente folosesc no�iuni ca prototipizare �i prototip, vom preciza în continuare sensul acestora.

Prototipizarea este o tehnic� de construire �i implementare par�ial� a unui sistem sau produs software astfel încât cump�r�torul, utilizatorul sau realizatorul s� poat� înv��a, cunoa�te mai mult despre problem� �i despre solu�ionarea acesteia.

Prototipul este util pentru utilizatorul final care va în�elege mai bine ce vrea sau ce se a�teapt� de la produs �i este util pentru realizator pentru a testa unele tehnici, algoritmi aplica�i, interfe�e realizate etc.

Referitor la prototip exist� dou� abord�ri : � prototip de încercare care trebuie s� fie rapid, chiar dac� nu perfect �i care poate fi utilizat pentru validarea interfe�ei, pentru particularizarea arhitecturii pentru a cuprinde cerin�ele cât mai bine, sau pentru a valida algoritmi particulari; � prototip evolutiv care, dimpotriv�, dezvolt� produsul final astfel încât s� se poat� aprecia toate caracteristicile de calitate ale produsului software final; în general acest prototip nu poate fi rapid, dar permite îmbun�t��irea modelului prin asigurarea unei calit��i ridicate a produsului software.

timp

Cerin�e utilizator

Cerin�e software

Proiectare arhitectural�

Proiectare de detaliu �i produc�ie

Transfer

Utilizare �i mentenan��

Fig. 4.3 Modelul evolutiv

Page 6: Cap 4 Ciclul de Viata Al Produselor Program-libre

4-6 Ciclul de via�� al produselor program

4.4. Modelul în spiral� Problemele majore în dezvoltarea produselor software apar, în cele mai multe cazuri, în etapa de mentenan�� care în realitate con�ine definirea de noi cerin�e de specificare, de analiz�, de proiectare.

Au fost dezvoltate în timp o serie de alte modele decât cele descrise anterior, cel mai utilizat actualmente fiind modelul în spiral� al lui Boehm care încearc� s� solu�ioneze problema amintit� anterior [JAC 96].

Modelul în spiral� (figura 4.4) poate descrie cum un produs se dezvolt� pentru a forma o nou� versiune �i cum o nou� versiune se dezvolt� incremental de la un prototip la un produs complet.

Modelul propune acelea�i etape de realizare, dar fiecare ciclu de dezvoltare începe prin studiul de

fezabilitate, apoi continu� cu specificarea cerin�elor �i analiza, proiectarea �i implementarea.

Pe de alt� parte fiecare din etapele amintite anterior se realizeaz� printr-o succesiune de activit��i: � determinarea obiectivelor etapei, a alternativelor �i restric�iilor; � evaluarea alternativelor, identificarea riscurilor �i rezolvarea lor; � dezvoltarea �i verificarea urm�torului nivel al produsului; � întocmirea planului urm�toarei etape, ales pe baza riscurilor.

Atât etapele cât �i activit��ile lor componente sunt evaluate având drept criteriu de baz� costurile implicate.

Modelul în spiral� are urm�toarele caracteristici: � con�ine aproape toate caracteristicile celorlalte modele; � celelalte modele pot fi considerate sau sunt cazuri particulare ale acestuia; � evalueaz� riscurile oric�rei abord�ri în toate etapele de dezvoltare a produselor software, iar pe

baza acestora alege abordarea corect�.

Dezvoltarea produselor software con�ine în mod uzual toate fazele �i activit��ile prezentate anterior, chiar dac� ele poart� diferite nume în diferite metodologii �i dezvoltarea decurge incremental pe parcursul acestor etape, scenariu de dezvoltare care se poate aplica indiferent de metoda de realizare utilizat�. Putem caracteriza dezvoltarea produsului ca pornind ini�ial dintr-o faz� nebuloas�, dar care se stabilizeaz� în urm�torii pa�i în subsecven�e. Metodele de dezvoltare trebuie s� ajute ca procesul de dezvoltare s� fie stabil pe cât posibil. Se presupune c� trebuie lucrat în etapa de analiz� pân� când se va în�elege sistemul în totalitate, dar nu atât de mult încât s� consider�m detaliile care vor fi modificate pe parcursul proiect�rii.

Acest lucru poate însemna c� cea mai mare durat� este alocat� analizei, ceea ce este valabil în unele modelele de implementare a ciclului de via�� prezentate anterior, cu varia�ii de la un model la altul.

Fig. 4.4 Modelul în spiral�

V1

PROIECTARE

IMPLEMENTARE &

TESTARE

INDIVIDUAL�

INTEGRARE

ANALIZ�

SPECIFICA�II DE

CERIN�E

VERSIUNE

FINAL�

V3 V2 V4

Page 7: Cap 4 Ciclul de Viata Al Produselor Program-libre

Ciclul de via�� al produselor program 4-7

O împ�r�ire a timpului alocat etapelor proiectului precum �i a rela�iei timp/efort pe etape se poate reprezenta ca în figura 4.5

Ini�ial un grup redus de persoane efectueaz� analiza �i proiectarea. Aceste activit��i se realizeaz� iterativ. Cu cât structura sistemului se stabilizeaz�, un num�r mai mare de oameni sunt antrena�i în implementare �i testare. De obicei activit��ile de analiz� �i proiectare sunt clarificate atunci când începe testarea, deoarece în acest stadiu nu sunt posibile decât pu�ine modific�ri în ceea ce s-a realizat în etapa de analiz� �i proiectare.

Dezvolt�rile din ultimii ani în domeniul tehnologiei informa�iei, mai ales în cel al metodelor �i tehnicilor de realizare a produselor software precum �i în cel al instrumentelor care asist� acest proces în toate etapele sale, au f�cut posibile noi abord�ri ale ciclului de via��. Procesul de dezvoltare a sistemelor de informa�ii �i a produselor software, v�zut ca un proces industrial, presupune, a�a cum s-a amintit anterior, existen�a unor principii, procese �i practici ale ingineriei sistemelor, aplica�iilor �i produselor program. Toate acestea sunt asigurate prin existen�a unor instrumente software - suport de dezvoltare.

Implementând metodologiile de realizare bazate pe structura func�ional� sau pe structura datelor �i/sau metodologiile orientate obiect, instrumentele pentru inginerie software asistat� de calculator permit construirea, verificarea, validarea, stocarea �i reutilizarea diferitelor modele componente ale aplica�iilor �i produselor program.

Asigurând dezvoltarea, începând de la modelele de analiz�-proiectare �i pân� la generarea automat� de cod pentru modele, aceste produse pentru inginerie software asigur� din punct de vedere calitativ produsele realizate �i permit respectarea �i/sau reducerea termenelor de livrare a produselor.

În ceea ce prive�te costurile, pentru a închide triunghiul amintit, calitate-termene-costuri, e greu de realizat o evaluare global�, acest lucru fiind posibil doar în fiecare caz concret �i la un anumit moment de timp prin balansarea intereselor firmei elaboratoare de software cu cerin�ele �i costurile pie�ei de software la un moment dat.

Aceast� nou� manier� de dezvoltare a produselor program este denumit� inginerie software bazat� pe model - Model Based Software Engineering – �i poate fi considerat� ca un nou model de implementare a ciclului de via�� [BRU95].

4.5. Inginerie software bazat� pe model

Propune dezvoltarea produsului software pornind de la un model, ceea ce face mai u�oar� în�elegerea �i expandarea, construirea acestuia. Pentru aceasta se porne�te de la urm�toarele tipuri de modele:

Analiza

Proiectare

efort

timp

Implementare

Testare

Fig. 4.5 Diagrama efort-timp

Page 8: Cap 4 Ciclul de Viata Al Produselor Program-libre

4-8 Ciclul de via�� al produselor program

• Modele de produse software Modelarea este o form� grafic� de programare de nivel foarte înalt. Modelele pot fi simulate �i animate astfel încât s� furnizeze feedback-uri �i suport pentru validare, verificare �i evaluarea performan�elor.

• Modele de procese/sisteme Modelele sunt utilizate în toate activit��ile ciclului de via��. Modelele de procese �i sisteme pot fi construite la fel de bine ca �i cele de produse software.

• Generare de cod pentru modele Modelele pot fi rafinate �i stocate automatizat �i pot fi automat incluse în programe . Mentenan�a este inclus� în modele.

• Modele de mediu (testare) Testarea este realizat� prin modelare �i simularea dispozitivelor externe.

Utilizarea modelelor presupune parcurgerea acelora�i etape ale ciclului de via��, fiecare faz� însemnând rafinarea modelului din etapa anterioar�.

Aceast� strategie permite o validare mult mai consistent� înc� din primele etape de dezvoltare a produselor software, dar presupune existen�a acestor modele de obicei cuprinse în produse integrate pentru inginere software asistat� de calculator.

Ingineria software bazat� pe modele prezint� o importan�� deosebit� deoarece: • modelul este o reprezentare abstract� a sistemului considerat, utilizat� pentru a-i în�elege mai bine

caracteristicile, pentru a-i studia mai bine propriet��ile; • utilizarea modelelor ajut� la formalizarea cerin�elor �i la punerea în eviden�� a inconsisten�ei �i

incompletitudinii.

Referitor la produsele software sunt utilizate: modele func�ionale reprezentate prin DFD (diagrame de flux de date), modele de informa�ii, de date, reprezentate prin ERD (diagrame entitate-rela�ie), modele de

control reprezentate prin DTS (diagrame de tranzi�ie a st�rilor), diagrame PETRI etc.

Din alt punct de vedere modelele pot fi: modele descriptive, care sunt statice �i modele opera�ionale

- care sunt dinamice �i pot fi gândite cu date de I/O simulate dând na�tere la prototipuri ale sistemului ce pot în acela�i timp valida propriet��ile acestuia �i pot verifica presta�iile sale.

Modelele opera�ionale �i evolutive pot executa �i testa produse software în fiecare faz� astfel încât controlul de calitate �i asigurarea calit��ii s� acopere ciclul de via�� în întregime. Sistemul final conform principiului evolutiv �i opera�ional va fi ultimul pas dintr-o transformare evolutiv� care a îmbog��it modelul abstract ini�ial al sistemului cu detalii �i func�ii progresiv introduse în sistemul construit.

Strategia de dezvoltare bazat� pe model necesit� existen�a a doi factori cheie: • un limbaj de modelare riguros care s� fie utilizat la toate nivelele (analiz�, proiectare) �i de c�tre

to�i cei implica�i (anali�ti, programatori, utilizatori finali), cu o semantic� neambigu�; • tehnologie prezentat� astfel încât s� poat� fi utilizat� practic �i s� fie înso�it� de manuale suport

avansate care s� descrie un editor grafic, un generator de cod �i o baz� de lucru pentru simulare �i aplica�ii.

Ingineria software bazat� pe model presupune pentru oricare din tipurile de modele (func�ional, de date, de control) existen�a unor elemente ca : � formalismul - care implic� un set de reguli semantice �i sintactice care s� ajute analistul în

construirea descrierii statice; � limbajul - ca executabil sau opera�ional al formalismului .

În concluzie, relativ la modalit��ile de abordare a ciclului de via�� pentru produse software, se pot face o serie de comentarii cu privire la efortul de realizare �i distribuirea lui pe etape, cu privire la durata afectat� etapelor �i cu privire la costuri �i venituri [KUL 96].

Page 9: Cap 4 Ciclul de Viata Al Produselor Program-libre

Ciclul de via�� al produselor program 4-9

Astfel, indiferent de modelul de ciclu de via�� �i de metodologia de realizare alese, dar mai ales pentru variantele “clasice” ale acestora, se poate spune c� fiecare faz� din ciclul de realizare a produselor program necesit� un efort diferit pentru ob�inerea produselor intermediare �i a documenta�iei aferente. Acest efort cre�te pîn� la mijlocul ciclului de realizare, dup� care descre�te. O reprezentare grafic� pentru varia�ia efortului absolut �i cumulat de-a lungul ciclului de realizare ale produselor software este reprezentat� în figura 4.7. Se observ� c� etapele se succed în timp �i se suprapun pe o perioad� mai mare sau mai mic�.

Comparativ cu aceast� situa�ie, varia�ia efortului în timp este diferit� la metodele “moderne” fa�� de metodele “clasice”. Astfel, dac� în etapa de analiz� �i proiectare efortul cre�te, în etapele de implementare de cod, integrare, experimentare �i mentenan�� efortul de realizare scade, în cazul noilor abord�ri. Din figura 4.6 se pot observa tendin�ele modific�rii efortului în timpul de realizare a produselor program.

Fig. 4.6 Modificarea efortului

Efort în trecut

Efort în viitor

Dezvoltare ulterioar�

Eliminare efort

TIMP

EFORT

Propunere de proiect

Etapa de proiect de ansamblu

Etapa de proiect de

detaliu

Codificare �i testare

componente

Integrare �i testare ansamblu

Experimentare Utilizare curent� �i

mentenan��

ANALIZ� PROIECTARE IMPLEMENTARE �I TESTARE UTILIZARE

Page 10: Cap 4 Ciclul de Viata Al Produselor Program-libre

EFORTURI CUMULATE PE ETAPE 40 % 30 % 30 %

DOCUMENTA�IE PE ETAPE

TEMA DE REALIZARE

PROIECT LOGIC

PROIECT FIZIC

LISTING SURS� DOCUMENTA�IE

RAPORT DE TESTARE

RAPORT DE EXPERIMENTARE

STUDIU PRELIMINAR

ANALIZA STUDIUL

ORGANIZATORIC

PROIECTARE DE

ANSAMBLU

PROIECTARE DE

DETALIU

PROGRAMARE �I

TESTARE COMPONENTE

INTEGRARE �I

TESTARE GLOBAL�

MANAGEMENTUL PROIECTULUI

EXPERIMENTARE (BETA-TESTE)

EXPLOATARE �I

MENTENEN��

INI�IALIZARE

START PROIECT VERIFICARE PREDARE SFÂR�IT PROIECT

TIMP

Fig. 4.7 Etapele de realizare, produse intermediare, efort absolut �i cumulat în timp

EFORT

Ciclu

l de v

ia�� a

l pro

du

selor p

rogra

m 4

-10

Page 11: Cap 4 Ciclul de Viata Al Produselor Program-libre

Realizarea produselor program

11

În ceea ce prive�te situa�ia cheltuielilor, veniturilor �i profitului implicate de realizarea unui produs software, se poate observa c� la începutul ciclului de via�� apar cheltuieli cu realizarea produsului, iar venituri apar dup� încheierea ciclul de realizare. În func�ie de volumul vînz�rilor se recupereaz� cheltuielile f�cute �i se ob�in �i profituri. Ilustrarea grafic� a volumului veniturilor �i cheltuielilor precum �i a profitului ob�inut se poate vedea în figura 4.8. Se poate observa cum se amortizeaz� cheltuielile în timp �i astfel apare profitul mai devreme �i nu numai dup� recuperarea total� a cheltuielilor.

De asemenea, reprezentând cheltuielile din etapa de dezvoltare �i veniturile din etapa în care produsul devine marf� se poate concluziona c� în mod normal un produs software aduce profit.

Fig. 4.8 Cheltuieli �i venituri

2 4 6 8 10 12 14 16 18

Profit

ETAPELE DE DEZVOLTARE

CICLU DE VIA��

Volum de desfacere Consum de

realizare

Costuri de finan�are

CHELTUIELI

Etape utilizare �i achizi�ionare

( Etape cu venituri)

VENITURI

timp