Documente Academic
Documente Profesional
Documente Cultură
Introducere
Fazele de realizare a unui produs software
Metodologii de dezvoltare
Criterii de selectare a unei metodologii
Metodologia cascada
Metodologia V
Metodologia spirala
Metodologii agile
SCRUM
Extreme Programming (XP)
Metodologia Rational Unified Process
Concluzii
Slide: 3
Title: Introducere
Slide: 4
Title: Introducere
Slide: 5
Title: Introducere
Care sunt motivele pentru care aplicatiile software sunt livrate cu defecte?
Software-ul mai complex decat hardware-ul
Greu de desoperit toate defectele in faza de testare
Care este solutia?
Slide: 6
Title: Introducere
Ciclul de viata al unui produs software (eng: Software Product Life Cycle)
Ciclul de realizare a unui produs software (eng: Software Development Life Cycle)
Slide: 7
Analiza cerintelor
Realizarea specificatiilor
Proiectare
Dezvoltare
Testare
Instalare
Mentenanta
Slide: 8
Slide: 9
Slide: 10
10
NU
Clientul nu este competent in detalii tehnice
Clientul nu poate fi de acord in cunostinta de cauza cu
stipularile tehnice din specificatii.
E necesar sa restrangem multimea posibilelor solutiile
tehnice?
DA
Este nevoie sa integram intr-un sistem existent
Timpul de dezvoltare depinde de implementare
Intretinerea (costul) depinde de implementare
Slide: 11
11
Slide: 12
12
Slide: 13
13
Slide: 14
14
Document de specificatii
Acest document este folosit ca referinta
Provocari
Nivelul de detaliu
? Mare: mai precis, obtinut mai greu, munca inutila
? Mic: prea vag, nu poate ghida eficient dezvoltarea
Audienta documentelor
? 2 versiuni: una pentru client, alta pentru dezvolatori?
Notatia folosita
? Informala, semiformala, formala
Slide: 15
Title: Tipuri de specificatii
15
Specificatii functionale
Ce trebuie sa faca sistemul
Specificatii non-functionale
Specificatii privind datele
? Formatul datelor la intrare/iesire
? Formatul datelor din interiorul sistemului
Constrangeri
? tehnologice
? performanta
Recomandari
? Ajuta la luarea deciziilor de proiectare cand sunt mai multe
optiuni
Slide: 16
Title: Exemple
16
Slide: 17
Title: Proiectare
Slide: 18
Slide: 19
Title: Testare
Teste de functionare
Teste de performanta
Teste de acceptanta
Testare automata
Testare manuala
Slide: 20
Title: Instalare
Slide: 21
Title: Mentenanta
Instruirea utilizatorilor
Suport
Rezolvarea probleme care apar
Adaugare de noi functionalitati
Slide: 22
Slide: 23
Dezvoltarea incrementala
Dezvoltarea iterativa
Incurajeaza comunicarea cu clientul
Sistemul evolueaza prin adaugarea de nou functionalitati in
fiecare iteratie
In primele iteratii se poate pune accentul pe functionalitatile
critice
Slide: 24
Buget
Joaca un rol cheie
Dimensiunea echipei
Metodologii agile = echipe mici
Tehnologiile utilizate
Unelte si tehnici
Natura proiectului
Procese existente in companie
Slide: 25
Cowboy coding
O metodologie? utilizata de multe firme.
Costuri foarte ridicate pentru proiecte complexe
Produsul nu este livrat la timp
Prodosul are o calitate slaba
Nu este generata documentatie
Mentenanta este foarte dificial datorita lipse de documente de design si arhitectura
Slide: 26
Slide: 27
Realizare specificatii
Proiectare
Implementare
Testare
Instalare integrare
Slide: 28
Slide: 29
Title: Metodologia V
Slide: 30
Title: Metodologia V
Analiza cerinte
Realizare specificatii
Proiectare
arhitectura
Implementare
Testare sistem
Teste de
integrare
Testare
Unitati
Proiectare
detaliata
Testare de acceptanta
Slide: 31
Title: Metodologia V
Slide: 32
Title: Metodologia V
Slide: 33
Slide: 34
Slide: 35
Slide: 36
Slide: 37
Title: Modelul Spirala (cont.)
Slide: 38
Slide: 39
Slide: 40
Haos datorita schimbarii cerintelor - cerintele unui proiect pot sa se schimbe în faza de
design,
implementare si chiar lansare. În mai toate metodologiile de dezvoltare, analiza este facuta în
partea de început a proiectului, si nici o schimbare nu mai este permisa pîna spre final.
Estimari nerealiste de timp, cost si calitate a proiectelor - managerul de proiect si dezvoltatorii tind
sa subestimeze cît timp si resurse sunt necesare pentru un proiect, si cîte functionalitati pot fi
livrate. Acestea nu pot fi niciodata prevazute 100% în faza de început a ciclului de dezvoltare.
Slide: 41
Title: Solutia?
Slide: 42
Title: Caracteristicile Agile
Este iterativ: o iteratie are între 1-4 saptamîni,în rezultat sunt livrate anumite functionalitati
ale proiectului.
Este bazat pe timp:durata iteratiei e fixa si nu poate fi modificata pe parcursul proiectului. În acest
fel exista întotdeauna un rezultat productiv la finalul iteratiei.
Deschis catre client:la finalul fiecarei iteratii exista un rezultat care poate fi prezentat clientului.
Bazat pe livrarea de versiuni intermediare ale produsului: fiecare iteratie va implementa complet
toate “task-urile” cuprinse în acea iteratie
Slide: 43
XP
SCRUM
DSDM,
Crystal,
Feature Driven
Lean Development
etc.
Toate folosesc principii de baza ale filozofiei Agile, dar o
implementeaza în moduri diferite.
Slide: 44
Slide: 45
"You Aren't Going To Need It... unless the business says so!".
Slide: 46
Slide: 47
Slide: 49
Slide: 50
Title: Avantaje
Slide: 51
Slide: 52
Slide: 53
Scrum demo
DEMO
Slide: 54
Title: Metodologia XP
Slide: 55
Title: Metodologia XP
Extreme Programming(XP)
XP descrie 4 principale activitai
Codare – principala activitate
Testare – orice modul implementat trebuie testa
Ascultare(comunicare) – programatorul trebuie sa comunice cu
clientul pentru a intelege necesitatile acestuia
Proiectarea – realizarea unei arhitecturi corecte a sistemului va eficientiza sistemul si va reduce
dependentele care nu sunt necesare intre diferitele module ale sistemului
Se preteaza pentru proiecte cu cerinte dinamice sau cele care nu sunt bine definite de la inceput
Trebuie sa existe un parteneriat intre client si programatori
Nu genereaza foarte multa documentatie
Slide: 56
Slide: 57
57
Extreme Programing (XP) este o model modern, usor (lightweight), de dezvoltare, inspirat
din RUP.
Dezvoltarea programelor nu înseamna ierarhii, responsabilitati si termene limita, ci înseamna
colaborarea oamenilor din care este formata echipa
Membrii echipei sunt încurajati sa-si afirme
personalitatea, sa ofere si sa primeasca cunoastere si sa devina programatori straluciti
XP considera ca dezvoltarea de programe înseamna în
primul rând scrierea de programe
Slide: 58
58
Echipa de dezvoltare nu are o structura ierarhica. Fiecare
contribuie la proiect folosind maximul din cunostintele sale.
Scrierea de cod este activitatea cea mai importanta.
Proiectul este în mintea tuturor programatorilor din echipa, nu în documentatii, modele sau
rapoarte.
La orice moment, un reprezentant al clientului este disponibil pentru clarificarea cerintelor.
Codul se scrie cât mai simplu.
Se scrie cod de test întâi.
Daca apare necesitatea rescrierii sau aruncarii de cod, aceasta se
face fara mila.
Modificarile aduse codului sunt integrate continuu (de câteva ori
pe zi).
Se programeaza în echipa (programare în perechi). Echipele se
schimba la sfârsitul unei iteratii (1-2 saptamâni).
Se lucreaza 40 de ore pe saptamâna, fara lucru suplimentar.
Slide: 59
Slide: 60
Slide: 62
Slide: 63
Ciclul de dezvoltare al aplicatiei este descompus in sub- cicluri, fiecare ciclu este cumpus din
faze
Fazele sunt:
Initializare
Elaborare
Constructie
Tranzitie
Slide: 64
Un document de viziune
Un model Use-case initial (10-20% complet)
Un plan de proiect cuprinzand fazele si iteratiile
O analiza a riscurilor
Un model de bussines daca e necesar
Unul sau mai multe prototipuri
Slide: 65
Slide: 66
Slide: 67
Slide: 68
Slide: 69
Slide: 70
Title: Concluzii