curs 9 mp procese specifice proiectelor informatice - ciclul de viata
DESCRIPTION
Curs 9 MP Procese Specifice Proiectelor Informatice - Ciclul de ViataTRANSCRIPT
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 1
Procese specifice proiectelor informatice
Modele de dezvoltare a programelor
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 2
Cuprins
Ciclul de viata al programelorModele de baza: cascada, spirala, spirala-cerc
Prezentarea detaliata a modelelor ciclul de viata in V modelul incremental modelul de prototipare modelul Boehm
Sinteza Modalitatea de alegere a ciclului de viata
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 3
Ciclul de viata
4 Etape principale Analiza cerinte modele
Proiectare arhitectura proiectare detaliata
Implementare programare instalare
Testare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 4
Analiza
Proiectare
Implementare
Testare
Ideea modelului in cascada
o succesiune de etape urmate intr-osuccesiune stricta
Nu exista intoarceri in urma (sau exista putine)
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 5
Discutie asupra modelului in cascada
Avantaje
Simplu si usor de inteles
Forta documentatiei : o faza nu se poate termina inainte ca easa fie validata (documente)
Verificarea este inerentafiecarei faze
Progresul este tangibil (pentruechipa de dezvoltare)
Dezavantaje
Model dirijat de documente Nu este inteles de catre clienti Clientul vede doar produsul final
Ipoteza de fezabilitate Valabila doar daca cerintele sunt stabile si
problemele cunoscute
Lipsa de flexibilitate nu trateaza evolutia programului, in special a
cerintelor
Probleme descoperite in faza de validare
Irealist in majoritateacazurilor
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 6
Ideea modelului in spirala
Fiecare bucla o faza de dezvoltare
Numarul de cicluri variabil
Bucla din interior trateaza primele faze (fezabilitate).
Bucla din exterior este pentru livrare
Testare Analiza
Implementare Proiectare
caracteristic pentru orientarea pe obiecte
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 7
Ideea modelului spirala-cerc
Testare Analiza
Implementare Proiectare
Forma intermediara 1
Forma intermediara 2
start
Stabilitate si perfectionare continua
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 8
Modele simple
Code and fix analiza scurta prioritate programarii se modifica mult
Nu se adapteazapentru dezvoltarea in echipa sau pentruprograme mari Model primitiv (< 1970)
Relative Costs of Phases
Maintenance (67%)Requirements (2%)Specification (5%)
Design (6%)
Module coding (5%)
Module testing (7%)Integration (8%)
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 9
In realitate, modele mai complexe
Activitati Analiza cerintelor Proiectare Programare Validare & verificare Pregatirea testelor Managementul proiectelor /
planificare Asigurarea si controlul
calitatii Gestiunea versiunilor Producerea de documente
Proces ansamblu de activitati si
inlantuirea lor Activitate
sarcini restrictii resurse un mod de realizare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 10
Exemplu de model in cascada
Definirea unuiansamblu mai largsi mai complet de activitati
Fiecare activitateeste validata de un document
Studiu preliminarAnaliza cerintelorAnaliza sistemuluiProiectarea sistemuluiProgramarea si testele unitareIntegrarea si testelede integrareInstalareaExploatarea si mentananta
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 11
Modelul in cascada cu iteratie
Mai flexibil, dardificil de gestionat
Numarul de iteratiilimitat
Analizacerintelor
Analizasistemului
Proiectareasistemului
Programarea si testele unitare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 12
Ciclul de viata in V Caz de aplicare prototip pentru
industrie fabricarea unui
produs
Orientare, fezabilitate
Analizacerintelor si sistemului
Proiectareaarhitecturii
Proiectareadetaliata
Programarea
Teste unitare
Teste de integrare
Teste de acceptare
Mentenanta
Cronologie
Caiet de sarcini
Specificatiiarhitecturale
Specificatiidetaliate module
program
sistem
Definire teste unitare
Definire teste integrare
Definire teste
de validare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 13
Caracteristici ale ciclului in V
Intoarcerea catre o etapa anterioara costisitor limitata la n-1
Repartizarea efortului Cerinte + specificatie : 30-40 % Arhitectura - programare : 20-30 % Testare : 30-40 %
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 14
Ideea modelului incremental Un increment = o parte functionala
coerenta a produsului final Fiecare increment adauga functionalitati
noi Fiecare increment e testat ca un produs
final
dveloppement dun incrment
Specificatiiexterne
Analizacerintelor
Proiectare
Codare
TestLivrare
Dezvoltareaunui increment
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 15
Dezvoltarea incrementala pornind de la un invelisArhitectura stabilaPrima versiune furnizeaza un invelis completFiecare versiune noua furnizeaza unul sau mai multe sisteme, respectandarhitectura
Est posibila dezvoltarea in paralel.
Ciclu de viatacomplet
Ciclu de viatacomplet
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 16
Dezvoltarea incrementala pornind de la un nucleu
Arhitectura evolutiva Prima versiune constituie un nucleuVersiunile urmatoare se bazeaza pe existenta si extinderea unei arhitecturiFiecare versiune presupune un ciclu de viata complet
nucleu ciclu de viatacomplet
ciclu de viatacomplet
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 17
Discutie asupra modelului incremental
Avantaje
Se furnizeaza rapid o prima versiune a sistemului Bine pentru management In general, aceasta versiune nu intra in
productie
Riscurile de esec sunt diminuate
Descoperirea problemelor relativdevreme
Partile importante sunt furnizate primele, deci testate mai mult
Clientii pot adauga cerinte in oricemoment
Dezavantaje
Dificil de definit incrementele : maparea cerintelor pe incrementeeste complexa Prea putine incremente ne apropiem de modelul
cascada Prea multe incremente - dificil
Dificil de conceput de la inceput o arhitectura stabila sau care sa evolueze usor
Nu trateaza toate posibilitatile de evolutie, in special pe cele care pun in discutie arhitectura
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 18
Ciclu de viata cu prototipare
Prototip evolutiv Primul increment
dintr-un ciclu de viata(incremental)
Prototip exploratoriu Pentru a studia
fezabilitatea A priori se va abandona
Dfinition des objectifs
Dfinition desfonctionnalits
Dveloppementdu prototype
valuation du prototype
Analizacerintelor
Specificatiiprototipare
Proiectare
Codare
TestLivrare
Definireobiective
Definirefunctionalitati
Dezvoltareprototip
Evaluareprototip
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 19
Discutie asupra modelului cu prototipare
Avantaje
Permite implicareautilizatorului si clarificareazonelor cu probleme
Permite evaluarea riscurilorsi testarea unei solutii
Util in toate ciclurile de viata Exista instrumente software
pentru prototipare
Dezavantaje
Costuri neintelese bine de catre manageri si de catreclienti
Tentatia de a construiplecand de la prototip si prinurmare utilizarea unorsolutii neoptimale
Nu abordeaza decat o fazade dezvoltare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 20
Modelul Boehm (in spirala)
Planul de dezvoltare
Planul testelor si integrarii
Concept Cerinte
Validare
Proiectare
Proiectare detaliata
Planul ciclului de viata
Analiza riscurilor
Serie de prototipuri
Validare si verificare
Codificare
Teste unitare
Integrare
Acceptare
Definireaobiectivelor fazei
Evaluarea riscurilor si planul de gestiune
Dezvoltarea si validarea
Planificareafazeiurmatoare
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 21
Discutie asupra modelului in spirala
Exemple de bucle fezabilitate prototipaj dezvoltare iterativa
Exemple de riscuri personal insuficient calendar si buget irealiste dezvoltare de functionalitati
nepotrivite dezvoltare de interfete cu
utilizatorul nepotrivite produs nerentabil volatilitatea cerintelor probleme de performanta cerinte exagerate pentru
tehnologia disponibila sarcini sau componente
externe cu functionaredefectuoasa
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 22
Sinteza I
Modelul cascada
Conditii de utilizare Doar cand cerintele sunt bine
cunoscute si nu trebuiemodificate Functionalitati / Asteptari ale
utilizatorilor Tehnologii utilizate
Inca destul de popular Simple si similare proceselor
folosite in alte discipline Adesea utilizate de
nespecialisti
Modelul incremental
Impartirea proiectului in incremente
Fiecare increment adauga noifunctionalitati
Fiecare increment trebuie testatca un produs final
Incrementele sunt definitea priori (clasificarea cerintelor efectuata de catre client pe catposibil)
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 23
Sinteza II
Modelul cu prototipare Ofera functiile
principale ale programului final
A nu se confunda cumacheta Se aseamana cu
programul doar la exterior
Nu ofera nici una dinfunctionalitatile sale
Modelul in spirala Ofera un cadru in care
trebuie instantiata fiecarebucla
Trebuie gasit un modelde proces potrivit pentrufiecare bucla
Recunoasterea explicita a notiunii de risc
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 24
Verificarea cunostintelor
1. Cand se definesc testele de acceptare pentru ciclul de viata in V:
a) Dupa proiectarea arhitecturii
b) Dupa analiza cerintelorc) Dupa studiul de
fezabilitate
2. Pentru care din urmatoarele modele de dezvoltare evaluarea riscurilor este luata in considerare in mod explicit:
a) Cascadab) Boehmc) Ciclu de viata in V
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 25
Tipuri de procese de dezvoltare
Controlate Planificare precisa Asigurarea calitatii Metode de analiza si de
proiectare Folosirea
instrumentelor software (CASE)
Agile Se focalizeaza pe
dezvoltare Se bazeaza pe o
dezvoltare iterativa Vizeaza furnizarea
rapida a unui programexecutabil, pe care clientii pot s-oimbunatateasca
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 26
Metode agile
Pentru dezvoltarea unor aplicatii ale carorcerinte se schimba
Extreme programming (Beck) Crystal (Cockburn) Adaptive software development
(Highsmith) Feature driven development (Palmer)
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 27
Pricipii ale metodelor agile Utilizator se implica in dezvoltare furnizeaza cerintele stabileste prioritatile si evalueaza iteratiile
Program furnizat incremental Recunoasterea talentului dezvoltatorilor prin
procesul impus Proiectare orientata spre evolutie Pastrarea simplitatii
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 28
Programarea extrema (XP)
Selectia scenariilor Definirea sarcinilor Planificarea incrementelor Dezvoltarea (integrare si
testare) Furnizarea incrementului Evaluarea sistemului
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 29
Realizarea unui increment
Sedinte de lucru in fiecare dimineata Programarea in doi Sala se afla de preferinta la sediul clientului (war
room) Programatorii definesc si executa testele Proiectare minimala Adaptare constanta a codului pentru simplificare Integrare continua Ritm intens
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 30
Tehnici XPProgramarea in doi
Codul apartine tuturor Revizuire constanta a
codului eficace si mai putin costisitoare decatinspectiile formale
Se favorizeazarestructurarea coduluipentru simplificare
Productivitate egala capentru doi programatoriindependenti
Testarea in XP
Testele se definesc primele
Pentru fiecare sarcinarezulta niste teste
Se definesc impreuna cuclientul, inainte de implementare
Scrierea de teste automate
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 31
Dificultati ale metodelor agile
Clientul nu este intotdeauna de acord sa participe la dezvoltare
E necesara o implicare intensa a dezvoltatorilor
Atribuirea prioritatilor este adesea complexa (mai ales daca exista mai multi clienti)
E necesara munca suplimentara pentru a mentine simplitatea programului
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 32
Cum se alege ciclul de viata
Natura produsului vizat (program comandat, produs pentru marele public, )
Riscuri legate de cerinte, specificatii, fezabilitate
Restrictii impuse de client Restrictii interne ale echipei
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 33
Alegerea ciclului de viata pentru exempleleurmatoare: Program de gestiune a personalului
(concedii, plati, decontari al deplasarilor) Conducerea de la distanta a unui robot in
timp real (nou) O noua versiune a unui produs pentru
marele public Cerinte slab definite, client grabit Cerinte precise, dezvoltare lunga (2 ani)
-
UPB Facultatea Automatica si Calculatoare Management de proiect - Anca Ionita 34
Bibliografie
Jan Somerville, Software Engineering, 8thEdition, Addison-Wesley, 2006
Andrew Stellman, Jennifer Greene, "Applied Software Project Management", ISBN: 0596009488, Oreilly & Associates Inc
prezentare curs Gnie Logiciel, Philippe Lalanda, UJF, Grenoble
Procese specifice proiectelor informatice CuprinsCiclul de viataIdeea modelului in cascadaDiscutie asupra modelului in cascadaIdeea modelului in spiralaIdeea modelului spirala-cercModele simpleIn realitate, modele mai complexeExemplu de model in cascadaModelul in cascada cu iteratieCiclul de viata in VCaracteristici ale ciclului in VIdeea modelului incrementalDezvoltarea incrementala pornind de la un invelisDezvoltarea incrementala pornind de la un nucleuDiscutie asupra modelului incremental Ciclu de viata cu prototipareDiscutie asupra modelului cu prototipareModelul Boehm (in spirala)Discutie asupra modelului in spiralaSinteza ISinteza IIVerificarea cunostintelorTipuri de procese de dezvoltareMetode agilePricipii ale metodelor agileProgramarea extrema (XP)Realizarea unui incrementTehnici XPDificultati ale metodelor agileCum se alege ciclul de viataAlegerea ciclului de viata pentru exemplele urmatoare:Bibliografie