Documente Academic
Documente Profesional
Documente Cultură
1
Modele ale ciclului de viata software (Software development life cycle models
or process models):
Waterfall model (Modelul cascada)
V model (modelul in V)
ESA ( European Space Agency) model
Incremental model (Modelul iterativ si incremental)
Dezvoltarea agila
Prototyping (Dezv pe baza de prototip)
Spiral model (Modelul in spirala)
Modelul cascada
2
In prima sa versiune, modelul avea numai sgei descendente, care
materializeaz nlnuirea etapelor; el nu prevedea iteraii. Sgeile ascendente au
fost adugate mai trziu pentru a ilustra principiul c o etap repune n discuie
numai etapa precedent.
3
Abordarea n cascad d rezultate satisfctoare numai n cazul n care este
efectiv posibil nlnuirea fazelor fr prea multe probleme. Aceasta presupune
ca ansamblul cerinelor s fie perfect cunoscut i problema complet nteleas de
analiti. Trebuie de asemenea ca soluia s fie uor de determinat de proiectani i
codificarea simpl - redus ideal la generarea automat a codului plecnd de la
documentele de proiectare.
In realitate se constat c partea de necunoscut poate fi nsemnat n anumite
dezvoltri, n special datorit:
- nenelegerii cerinelor de ctre client sau analist;
- instabilitii cerinelor;
-alegerilor tehnologice;
-schimbrilor de personal.
Din toate aceste motive sunt necesare reveniri n etape anterioare ale procesului
de dezvoltare. Aceste reveniri sunt de fapt o reflectare a realitii. Dac aceste
reveniri sunt ocazionale i limitate la faze adiacente, modelul n cascad este
pertinent. In caz contrar, modelul n cascad nu corespunde realitii.
Avantaje:
Dezavantaje:
4
4. Toate riscurile sunt incluse intr-un singur ciclu de dezvoltare
Modelul in V
5
Partea din stanga reprezinta lantul de specificare a sistemului iar cea din dreapta
lantul de testare. Partea de jos a v-ului reprezinta implementarea
-cele reprezentate prin liniile care formeaza V-ul, care corespund nlanuirii i
eventualei iteraii din modelul cascad; etapele se deruleaz deci secvenial, urmnd
V-ul de la stnga la dreapta;
-cele reprezentate prin linii orizontale, care indic faptul c o parte din
rezultatele etapei din care pleac sgeata sunt utilizate direct n etapa int. De
exemplu, la terminarea etapei de proiectare arhitectural, cazurile de teste de
integrare trebuie s fie complet descrise.
Prototiparea
Pentru sisteme noi, n mod special dac ele sunt mari i complexe este puin probabil
s se construiasc o specificaie complet, logic i valid nainte ca sistemul sa fie
construit i utilizat. Acest fapt a condus la ideea prototiprii. Ideea este de a permite
6
viitorilor utilizatori s exerseze cu o prim versiune a sistemului, care poate fi obinut
rapid prin tehnici de simulare i/sau de interpretare a specificaiilor. In acest ultim
caz, limbajele logico-funcionale sunt n mod sigur chemate s joace un rol important.
Un prototip care este utilizat pentru a desprinde cerinele viitorilor utilizatori, este o
"machet exploratoare".
7
Pentru dezvoltarea prototipului se folosesc limbaje de nivel foarte nalt:
Smalltalk, PROLOG, LISP, SETL i altele. In prezent exist limbaje i medii de
dezvoltare specializate pentru construirea prototipurilor. Astfel de limbaje sunt
limbajele de generaia a 4-a (4GL).
Cu toate c se poate folosi acelai limbaj de programare, att pentru
realizarea prototipului ct i pentru dezvoltarea aplicaiei, se recomand ca prototipul
s fie considerat un sistem "nchis", adic s nu fie folosit ca baz pentru dezvoltarea
aplicaiei. Aceasta deoarece:
- prototipul a fost dezvoltat prin modificri succesive, de aceea arhitectura sa
iniial a fost alterat, ceea ce ngreuneaz ntreinerea;
- prototipul trebuie s corespund cerinelor utilizatorilor numai din punct de vedere
funcional. De aceea, n dezvoltarea sa sunt neglijate aspecte ca: eficiena,
adaptabilitatea, compatibilitatea i chiar fiabilitatea.
Modelul Incremental
8
Cum se aplica
9
Se incepe cu o implementare simpla a unui subset al cerintelor software. Rezulta
o prima livrare.
Scopul primei implementari este de a crea un produs la care utilizatorul poate
reactiona. El trebuie sa puna in evidenta aspectele cheie ale problemei si sa
furnizeze o solutie sufient de simpla pentru a fi inteleasa si usor de implementat.
10
Avantaje:
In fiecare etapa este livrat un produs executabil, care satisface o parte din
cerintele utilizator. Opus modelului cascada in care se elaboreaza documente.
Prototipurile sunt livrate clientului/utilizatorilor.
Feedback-ul utilizatorilor este distribuit pe intreg parcursul dezvoltarii.
In cazul aparitiei unor schimbari in cerinte acestea pot fi incoporate in
urmatorul prototip.
Dezavantaje
Ciclul de via Incremental se bazeaz pe evoluia prototipurilor executabile. Din
nefericire, programele nu se preteaz n mod natural evoluiei, din contr, ele sunt
deseori foarte "fragile" la modificri. Efectul unei modificri locale se poate
propaga n ansamblul aplicaiei. Fiecare nou increment poate necesita
reorganizarea structurii interne, degradand arhitectura initiala a programului,
facndu-l greu de verificat i de ntreinut.
11
Erorile de proiectare sunt mai greu de eliminat.
Abordarea obiect bazat pe modularitate i ncapsulare conduce la programe mai
robuste i mai rezistente fa de schimbri. Din acest punct de vedere, abordarea
obiect furnizeaza un cadru confortabil pentru dezvoltarea prin evoluie, ntr-o
manier iterativ.
Clientul poate vedea ce se poate face si poate cere mai mult!
Abordarea incrementala se poate transforma usor intr-una codifica si
repara ( build and fix ).
Planificarea
Principalul risc in utilizarea unui model incremental este de a lucra intr-o manierea
ad-hoc. Determinarea unui plan de actiuni este de prima importanta pt succesul
abordarii incrementale. In faza de analiza preliminara se determina scopul
proiectului si se incearca determinarea riscurilor majore ale proiectului, se determina
o lista o cerintelor si constrangerilor mai importante, pt a construi un plan de
dezvoltare. Se stabileste natura fiecarui icrement si ordinea de construire a
incrementelor.
12
Construirea in paralel a incrementelor: risc
Este un proces de dezvoltare iterativ. Cei care l-au definit, Ivar Jacobson, Grady
Booch, and James Rumbaugh, il caracterizeaza astfel:
Centrat pe arhitectura
Inerativ si incremental
13
produsului. In fazele initiale, un proiect initial poate fi extins cu unul mai detaliat. In
fazele urmatoare, incrementele sunt in mod tipic aditive.
Este un cadru conceptual pentru proiectele software. Exista mai multe metode de
dezvoltare agila, cum sunt cele expuse de Agile Alliance, o organizatie non-
profit.
Pentru orice proiect software exista o serie de factori de risc care pot periclita
finalizarea cu succes a proiectului, cum ar fi: factori de experienta ( conducatorului
de proiect, a echipei), factori de planificare, factori tehnologici, factori externi
(modificarea cerintelor, modificarea interfetelor externe).
Cele mai multe metode de dezvoltare agila incearca sa minimizeze riscul
dezvoltand software-ul in intervale scurte de timp, numite timeboxes, constand
din 1-4 saptamani. Data de sfarsit a unui timebox nu poate fi modificata. Daca
echipa depaseste data, iteratia este anulata si replanificata.
Fiecare iteratie este un proiect software in miniatura si include toate activitatile
necesare livrarii mini-incrementului unei noi functionalitati: planificare, analiza
cerintelor, proiectare, codificare, testare, documentare.
Fiecare noua iteratie trebuie sa livreze un nou produs. La sfarsitul fiecarei iteratii
echipa re-evalueaza prioritatile proiectului.
14
Pentru mai multe informatii despre metodele de dezvoltare agila:
http://www.agilealliance.org/.
15
In comparatie cu modelul cascada
Modelul spirala
16
2. Evaluarea alternativelor: analiza riscurilor, prototiparea
3. Dezvoltarea produsului: proiectarea de detaliu, testarea unitara, integrarea,
.
4. Planificarea urmatorului ciclu: evaluarea de catre client, planificarea
dezvoltarii si a livrarii catre client.
17
Ulterior Boem a sugerat o versune modificata a modelului modelul spirala WinWin,
care adauga la inceputul fiecarui ciclu activitati de identificare a partilor interesate in
proiect (stakeholders) si conditiile lor de castig (win conditions).
18