Documente Academic
Documente Profesional
Documente Cultură
Ciclul de Viata
Ciclul de Viata
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
DEFINIRE
CERINŢE
ANALIZA
PROIECTARE
IMPLEMENTARE COD
TESTARE
UTILIZARE&MENTENANŢĂ
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.
4-4 Ciclul de viaţă al produselor program
Cerinţe utilizator
Cerinţe software
Proiectare arhitecturală
Transfer
Utilizare şi mentenanţă
timp
Cerinţe utilizator
Cerinţe software
Proiectare arhitecturală
Transfer
Utilizare şi mentenanţă
timp
SPECIFICAŢII DE
PROIECTARE CERINŢE
V1 V2 V3 V4 VERSIUNE
IMPLEMENTARE &
FINALĂ
TESTARE
INDIVIDUALĂ
INTEGRARE
Fig. 4.4 Modelul în spirală
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.
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
efort
Testare
Implementare
Proiectare
Analiza
timp
Fig. 4.5 Diagrama efort-timp
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:
4-8 Ciclul de viaţă al produselor program
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.
Dezvoltare
EFORT ulterioară
Efort în
trecut Eliminare
efort
Efort în
viitor
TIMP
PROGRAMARE INTEGRARE
EFORT PROIECTARE ŞI ŞI
DE TESTARE TESTARE
ANSAMBLU COMPONENTE GLOBALĂ
ANALIZA
STUDIUL EXPERIMENTARE
ORGANIZATORIC (BETA-TESTE)
PROIECTARE
DE
DETALIU EXPLOATARE
STUDIU ŞI
PRELIMINAR MENTENENŢĂ
MANAGEMENTUL PROIECTULUI
INIŢIALIZARE TIMP
4-10
PROIECT
Fig. 4.7 Etapele de realizare, produse intermediare, efort absolut şi cumulat în timp
Realizarea produselor program 11
Volum de Profit
Consum de desfacere
realizare
2 4 6 8 10 12 14 16 18
timp