Documente Academic
Documente Profesional
Documente Cultură
Sifonier Plat
Sifonier Plat
Software Engineering??
Anii 1970 Criza software
Software =
cod sursa, cod executabil, biblioteci
+
documentatii (de realizare, de instalare, de utilizare)
Activitati tehnice:
Definirea Cerintelor Utilizator
Definirea Cerintelor Software
Proiectarea arhitecturala
Proiectarea detaliata
Implementarea unitatilor program ( modulelor)
Integrarea
Testarea de sistem
Testarea de acceptare
Intretinerea si operarea
Proiectarea arhitecturala
Proiectarea detaliata
Integrarea
Testarea de sistem
Testarea de acceptare
Cerintele sunt definite cat mai clar intr-un document: Documentul Cerintelor Utilizator (URD User Requirements Document) sau Documentul Cerintelor de Sistem
Exemplu:
Sistemul trebuie s asigure procesarea fiierelor externe create de alte programe (detalii aici).
Analiza cerintelor utilizator si definirea unui set de cerinte pe care viitorul produs software trebuie
sa le indeplineasca astfel incat sa fie satisfacute cerintele utilizatorilor.
Cerintele sunt descrise in cadrul unui document numit Documentul de Cerinte Software (SRD
Software Requirements Document) sau Specificatia de sistem.
Fiecare tip de fiier extern trebuie s aib asociat o aplicaie care s fie apelat pentru fiierul
respectiv
Fiecare tip de fiier extern trebuie s fie reprezentat n fereastra utilizatorului printr-o icoan
specific
Partea cea mai importanta (destul de complicata): relatia intre client si echipa de dezvoltare
Multe programe nu se potrivesc cu ce vrea clientul din cauza unor cerinte gresite/insuficiente
Cerinte functionale:
Cerinte non-functionale
Impun diverse constrangeri (limitarea variantelor de constructie): ex: constrangeri de timp, etc.
Asa nu:
Exemplu de cerinta vaga: sistemul trebuie sa fie prietenos
Exemplu de cerinta contradictorie: sistemul poate fi utilizat de maxim zece utilizatori
la un moment dar, dar n anumite situaii pot exista douzeci de utilizatori conectai
Exemplu de cerinta nerealista: toate datele se scriu pe disc iar timpul de rspuns
trebuie s fie mai mic de o secund
Factori de risc:
1. cerine incomplete (13.1%)
2. lipsa implicrii utilizatorilor (12.4%)
3. lipsa resurselor (10.6%)
4. ateptri nerealiste (9.9%)
5. lipsa suportului executivului (9.3%)
6. schimbarea cerinelor i a specificaiilor (8.7%)
7. lipsa planificrii (8.1%)
8. sistemele nu au mai fost cerute n ntregime
(7.5%)
Proiectarea arhitecturala
Proiectarea de detaliu
Implementarea modulelor
Cea mai bine stapanita si cea mai bine utilata dintre toate activitatile ciclului de
viata.
Integrarea
Modulele care au fost testate independent sunt integrate treptat in subsisteme, pana la
nivel de sistem.
Se verifica comunicarea si interactiunea intre componentele integrate (Integration
testing)
Testarea de sistem
Testarea de acceptare
Testare alfa/beta
Intretinerea si operarea
corectarea defectelor,
Asigurarea calitatii
Scop: asigurarea cerintelor tehnice si a standardelor de calitate in procesul de dezvoltare
si de catre produsul final
Activitati de management
Revizii
factori de experienta:
factori de planificare:
factori tehnologici:
noutatea tehnologica
alegerea metodelor de dezvoltare (noi, nepotrivite)
alegerea instrumentelor de dezvoltare (noi pentru echipa, ineficiente)
factori externi:
include toate activitatile necesare pentru dezvoltarea produsului si relatiile temporale dintre ele.
Fiecare etapa din ciclul de viata este caracterizata prin activitati specifice si produsele rezultate din
activitatile respective.
Dezavantaje:
Un produs executabil, care sa demonstreze functionarea sistemului este disponibil destul de tarziu,
dupa integrare.
Deoarece modelul este secvential, exista numai uhn feedback local, la tranzitiile intre faze.
Adecvat pentru proiectele in care cerintele sunt bine intelese de la inceput si nu se modifica pe
parcursul procesului de dezvoltare.
Limitarile modelului
In realitate:
Modelul INCREMENTAL
Modelul INCREMENTAL
Modelul INCREMENTAL
MODELUL INCREMENTAL
Avantaje:
In fiecare etapa este livrat un produs executabil (satisface o parte din cerintele utilizator). Opus
modelului cascada in care se elaboreaza documente
Feedback-ul utilizatorului este distribuit pe tot parcursul dezvoltarii => isi poate defini mai bine
cerintele;
In cazul aparitiei unor schimbari in cerinte acestea pot fi incoporate in urmatorul prototip
Dezavantaje:
Fiecare nou increment poate necesita reorganizarea structurii interne, degradand arhitectura initiala a
programului, facandu-l greu de verificat si de intretinut
Abordarea incrementala se poate transforma usor intr-una codifica si repara (build and fix)
MODELUL Agile
[wikipedia]
MODELUL Agile