Curs 9 MP Procese Specifice Proiectelor Informatice - Ciclul de Viata

Embed Size (px)

DESCRIPTION

Curs 9 MP Procese Specifice Proiectelor Informatice - Ciclul de Viata

Citation preview

  • 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