1 / 48

Managementul P roiectelor Software

Managementul P roiectelor Software. Universitatea “Politehnica” Bucuresti Facultatea de Automatica si Calculatoare Catedra Calculatoare Conf. Dr. Ing. Costin-Anton Boiangiu Costin.Boiangiu@cs.pub.ro. Managementul Proiectelor Software. Capitolul 3. Faza de planificare.

ronni
Télécharger la présentation

Managementul P roiectelor Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Managementul Proiectelor Software Universitatea “Politehnica” Bucuresti Facultatea de Automatica si Calculatoare Catedra Calculatoare Conf. Dr. Ing. Costin-Anton Boiangiu Costin.Boiangiu@cs.pub.ro

  2. ManagementulProiectelor Software Capitolul 3. Faza de planificare

  3. Planul de proiect • Planul de proiect : • estedocumentul cu care culmineazatoateactivitatile de planificareexecutate de catremanagerii de proiect • are un important rolcomunicational: oferamanagementului superior o vedere de ansambluasupraobiectivelorproiectuluisiasupramoduluiprin care acesteavorfiindeplinite • planurile de proiectsunt de obiceisupuseunui review foarteatentdeoarecegreseli flagrante lasatenerezolvate in aceastaetapa pot conduce la problemefoarte grave in faza de executie

  4. Structuraplanului de proiect • Sumarulproiectului • un overview de nivelinalt al proiectului • Sectiunea de planificare • modul de executie al diferitelorproceduri de planificare • modul de dezvoltarecevafifolosit, estimareatimpilor de executie etc. • Sectiunea de urmarire (tracking) • masuratorilecevorfifacute in timpulproiectului • sistemelefolositepentruinregistrareadatelor, etc. • Sectiuneadestinataechipei • structurasimembriiechipei • rolurilesiresponsabilitatilediferitilormembriaiechipei

  5. Planul de proiect - detalii • Un proiect software este o munca de echipa; in managementuluneiechipe de dezvoltatetrebuiescluate in considerareatatobiectiveleproiectului, cat siobiectiveleindividuale ale fiecaruimembru al echipei • Comunicarea, atat cu membriiechipei cat si cu clientii, esteesentiala; planificareatrebuiesaia in considerareeventualeconflictece pot aparea in relatia cu ambelepartimaisusmentionate • Documentareadetaliata a diferitelor task-uri de planificareesteesentiala; de asemenea, un review atent din parteamanagementului superior estenecesarapentru a detecta din timpeventualeleprobleme de planificare

  6. Planul de proiect - detalii • Informatiiesentiale in planul de proiect: • Obiectiveleproiectului • Procesul de dezvoltarefolosit • Modul de management • Estimareaefortului • Punctele de control intermediar (Milestones) • Planul de management al riscului • Controlulcalitatii • Planul de urmariresiverificare al proiectului • Organizareaechipei • Modul de rezolvare el eventualelorconflicte in cadrulechipesi/sau cu clientul

  7. Planificarea pas cu pas • Pasul 0 – Alegerea proiectului • SelectareaproiectuluiestenumitasiPasul 0 deoareceeste o etapace se afla de fapt in afaraprocesului principal de planificare al proiectului • In aceastaetapa au loc activitaticeduc la luareauneidecizii in legatura cu proiectecatevorfiincepute – aceastadeciziepoatefiluata individual saupoatesafaca parte dintr-o strategiepetermen lung a companiei

  8. Planificarea pas cu pas • Pasul 1 – Identificarea domeniului si a obiectivelor proiectului • Identificareaobiectivelorsimasurareaeficientei cu care acestea pot fiatinse • Instituireauneiautoritati in cadrulproiectului • Identificareatuturorpersoanelorinteresate in proiect, precumsi a intereselorindividuale ale fiecareia • Modificareaobiectivelor in luminaanalizeiasuprapersoanelorinteresate in proiect • Stabilireametodelor de comunicare cu toatepartileinteresate

  9. Planificarea pas cu pas • Pasul 2 – Identificarea infrastructurii • Stabilireamodului in care proiectul se incadreaza in strategiacompaniei • Identificareastandardelorsi a procedurilor de instalare • Identificareamodului in care vafiorganizataechipa de dezvoltare • Deciziilestrategicesunt de obiceidocumentate fie intr-un plan de strategie business, fie intr-un plan tehnologicdezvoltatpebazaplanului business

  10. Planificarea pas cu pas • Pasul 3 – Analiza caracteristicilor • Stabilireatipului de proiect (proiectul are ca finalitateatingereaanumitorobiective/un anumitprodus) • Identificareacelormaiimportanteriscuri • Analizamodului de implementare, avand in vederecerinteleutilizatorilor • Selectareaciclului de viatafolositpentrudezvoltare • Revizuireaestimarilorasupraresurselor

  11. Planificarea pas cu pas • Pasul 4 – Identificarea produselor si a activitătilor • Identificareasidescriereaproduselor finale cevorrezulta ca urmare a proiectului • Documentareaeventualelorprobleme ale produsului • Dezvoltareauneiretele de activitatiideala • Modificarearetelei de activitati, luand in considerarenevoiapentruetapeintermediaresipuncte de verificare • In aceastaetapaactivitatilesuntdescrisefoarte in detaliu; planurile de termen lung suntdescrisesuccint, accentulfiind pus pe task-urileimediate

  12. Planificarea pas cu pas • Pasul 5 – Estimări ale efortuluipentrufiecareactivitate • Efectuarea de estimarifolosind o abordare de jos in sus • Estimari de personal • Estimari de timp • Estimari de resurse • Revizuireaplanuluipentru a creaactivitatice pot ficontrolate • Activitatilecedureazamulttimpsuntfoartegreu de controlat; este de preferat ca acesteasa fie impartite in sub-activitati cat maiscurte, pentru a se puteamasura cat maieficientstadiul in care se aflaproiectul.

  13. Planificarea pas cu pas • Pasul 6 – Analiza riscurilor • Identificareasicuantificareariscurilordatorateactivitatilor • Importanta (seriozitatea) riscului • Probabilitatea de aparitie • Planificareareduceriiriscurilorsi a uneimodalitati de masurare a evenimentelorneprevazute • Ajustareaplanurilorsi a estimarilorastfelincatsaia in considerareriscurileidentificare anterior

  14. Planificarea pas cu pas • Pasul 7 – Alocarea resurselor • Identificareasialocarearesurselor • Se inregistreazatipul de personal necesarpentrufiecareactivitate • Personaluldisponibilpentruproiectesteidentificatsialocatprovizoriu la diferitele task-uri • Revizuireaplanurilorsi a estimarilor, astfelincatsaia in considerareconstrangeriledatorateresurselor • In cazul in care anumitimebriiaiechipeitrebuiesalucreze la maimult de un task in acelasitimp, se hotaraste o ierarhie de prioritati

  15. Planificarea pas cu pas • Pasul 8 – Revizuirea/Publicareaplanului • Revizuireaaspectelor legate de calitate in planul de proiect • Documentareaplanurilorsiajungerea la un acord din parteatuturorpartilor implicate • Pasul 9 – Executiaplanului • Pasul 10 – Niveleinferioare de planificare

  16. Planificarea pas cu pas – Concluzii(1) • Oricarearfiabordareafazei de planificare a unuiproiect, aceastatrebuiesacontina: • Stabilireaobiectivelorproiectului • Analizacaracteristicilorproiectului • Stabilireauneiinfrastructuri care sacontina o organizarepotrivitasi un set de standarde, metodesiuneltecevorfifolosite in cadrulproiectului

  17. Planificarea pas cu pas – Concluzii(2) • Identificareaproduselor generate de catreproiect, precumsi a activitatilornecesarepentru a creaacesteproduse • Alocarearesurselor la fiecareactivitate in parte • Stabilireaunorpuncte de control a calitatii • Managementulunuiproiecteste un procesiterativ; cand se apropietimpulefectuariiuneianumiteactivitati, aceastatrebuie re-planificatamai in detaliu

  18. Planificarea pas cu pas – Concluzii(3) Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999

  19. Metode de dezvoltare ale ciclului de viata • Proiectein-house • Echipa de dezvoltaresiutilizatoriiapartinaceleiasiorganizatii • Proiectul se incadreazaintr-un portofoliu de sistemeinformationaledejaexistente • Metodelesitehnologiilefolositesunt dictate de standardele locale • Proiecte de tip software house • Utilizatoriisiechipa de dezvoltarefac parte din organizatiidiferite • Metodelesitehnologiilefolositesuntstabilite de catremanagerul de proiectpentrufiecareproiect in parte

  20. Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Tehnologiaaleasaestefoarteimportantadeoarecedetermina: • necesarul de intruire al personalului • tipul de personal care esterecrutat • mediul de dezvoltare (atat hardware, cat si software) • aranjamentele de intretinere ale sistemului • Tipuri de metodologii • OO – Object Oriented • JSP (Jackson Structured Programming) • SSADM (Structured System Analysis and Design Method) • Etc.

  21. Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Criterii: • Produsuldezvoltatva un pachet general (ex. procesator de text) sau un pachet specific uneianumiteaplicatii (ex. sistem de rezervare a biletelor la o companieaeriana)? • Este sistemulunul care necesitaanumiteuneltepentrudezvoltare: • contineprocesariconcurente ale datelor? • este un sistembazatpeinformatii (knowledge-based)? • necesitaprocesarigraficefoarteavansate?

  22. Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Criterii (continuare): • Sistemulesteunul critic din punct de vedere al securitatii? (o eroareaparutapoatepune in pericol de exempluviataunoroameni?) • Care estenaturamediului hardware/software in care produsulvafi operational? • Produsulesteunulorientatpe date sauunulorientatpe control?

  23. Metode de dezvoltare ale ciclului de viata • Planultehnic • Introduceresisumar al contrangerilor • Caracteristicilesistemului • Riscurilesiincertitudinileproiectului • Cerinteleclientuluireferitoare la implementare • Abordarearecomandata • Selectareametodologiei • Metode de dezvoltare • Unelte software • Mediul software/hardware tinta

  24. Metode de dezvoltare ale ciclului de viata • Planultehnic (continuare) • Implementarea • Mediul de dezvoltare • Mediul de intretinere • Pregatirea (training-ul) • Implicatii • Produsesiactivitati ale proiectului • Raportfinanciar

  25. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Metodestructurate (inclusivmetodele Orientate peobiecte) • Suntalcatuitedintr-o multime de pasisireguli care, candsuntaplicate, genereazaprodiagramele de flux, de date, etc. (fiecareasemeneaprodusestedocumentatatent) • De celemaimulteorisuntmultmaiconsumatoare de timpdecatmetodele intuitive, acestlucruducandsi la o crestere a costurilorproiectului • Avantaje: sistemulestemultmaiputinsensibil la erorisimultmaiusor de intretinut la sfarsit • Recomandate in cazulproiectelormari, care implica multi dezvoltatorisi multi utilizatori

  26. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Metode de dezvoltarerapida • Se bazeazape workshop-uri de trei-cincizile in care dezvoltatoriilucreazaintensivimpreuna cu clientiipentru a identificasipentru a cadea de acordasupracerintelor business ale proiectului • Un principiuesentialfolositesteacela de time-box – intindereafiecareietape a proiectuluiesteconstransa de un deadline predeterminat, foartescurtsiinflexibil • Cerintelece nu pot fisatisfacuteintr-un anumit time-box, sunt mutate in etapeleurmatoare

  27. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelul in cascada • consideratmetoda “clasica” de dezvoltare a sistemelor • permitecontroluleficient al proiectelorsiestimareafoarte exacta a timpilor de executie Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999

  28. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelulprocesului in V Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999

  29. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelulprocesului in V (continuare) • Extindeactivitatile de testare din modelul in cascada • Fiecare pas are un proces de validarecorespunzator; in cazul in care apardefecte, procesul de validareintoarcedezvoltarea la pasul de dezvoltarecorespunzator; totipasiiurmatoritrebuiescapoirefacuti • Ideal, acest tip de feed-back artrebuisaaparanumai in cazuluneidiscrepantemariintrespecificatiileuneianumiteactivitatisiceeace a fost de faptimplementat

  30. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelul in spirala • Poateficonsiderat ca o altavedere a modelului in cascada • Un mai mare grad de detaliuestenecesat la fiecareetapa a proiectului, acestfaptjustificandsi un mai mare grad de incredere in probabilitate de succes a proiectului • Acest model poatefivazut ca o spirala in care sistemuldezvoltatestevazut din ce in cemai in detaliu la fiecarerotatie • Un proces de evaluare a etapeiprecedente are loc inainteainceperiiuneinoiiteratii

  31. Metode de dezvoltare ale ciclului de viata

  32. Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) • Dezvoltareiterativă • bazatăpeideea de ciclu de producţie • procesul de dezvoltarecuprindemaimultecicluri de producţie • Dezvoltareincrementală • fiecareciclu are o complexitate (un nivel de detaliere) mai mare decâtprecedentul • Modelulspirală (Boehm, 1986)B. W. Boehm, A spiral model of software development and enhancement, ACM Sigsoft, Software Engineering Notes, 11(1986), No. 4, 14-23. • combinătrăsăturile • cicluluiclasic de viaţă • prototipizării • element nou: ANALIZA RISCURILOR

  33. Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) Activităţileunuiciclu de producţie • (1) planificare • stabilireaobiectivelor, alternativelor de rezolvareşi a restricţiilorpentruciclulcurent • (2) analizariscurilor • analizeazăalternativele de rezolvareşirestricţiile din (1) • identificăfactorii de risc • decizia GO/NO GO (continuă/renunţă) • dacătoatecerinţeleclientuluisuntîndeplinite, dezvoltareaesteîncheiată • dacăriscurilesuntpreamari se opreştedezvoltarea • dacăriscurile se pot ţine sub control, se începe un nouciclu de producţie • (3) inginerie - începutulunuiciclunou • dezvoltareaprodusuluipeurmătorulnivel de detaliere • se pot folosi • modelulclasic • prototipizarea - pentruclarificareaunorcerinţe • (4) evaluareaclientului

  34. Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) Avantaje • abordareevoluţionistă • ajută la înţelegerea riscurilor şi la identificarea modalităţilor de ţinere sub control a acestora • prototipizarea este folosită ca mecanism de reducere a riscurilor • ciclul clasic de viaţă este încorporat într-un cadru iterativ, care reflectă mai bine lumea reală Dezavantaje • analizariscuriloreste o activitateacritică • atenţieacordatăriscurilortehniceîntoateetapeleproiectului • dacă un risc major nu estedescoperit

  35. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Prototipuri software Tipuri de prototipuri: • Throw-away • Folositdoarpentru a testauneleidei; se renunta la el in momentul in care incepedezvoltareasistemului operational • Evolutionar • Este dezvoltatsimodificat in continuupana in momentul in care poatedeveni un sistem operational • Incremental • Sistemul operational estedezvoltatsiimplementat in etapemici; feed-back-ul de la etapeleanterioareestefolositsiinfluenteazadezvoltareaetapelorurmatoare

  36. Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Dezvoltatorulcrează un model al programului care trebuierealizat; modelulpoatefi: • un prototippehârtiesau un model bazatpe calculator care prezintăinteracţiuneaom-calculator într-o manierăcepermiteutilizatoruluisă o înţeleagă • un prototipfuncţional, care implementează un subset al funcţiilorpe care trebuiesă le realizezeprogramul • un program existent care îndeplineşte o parte din/toatefuncţiiledoritepentrunoul program • o parte din funcţiileacestuiatrebuieîmbunătăţiteîntimpulprocesului de dezvoltare

  37. Metode de dezvoltare ale ciclului de viata

  38. Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Activităţi: • (1) colectareacerinţelor • dezvoltatorulşiutilizatorulstabilesc • obiectivelegenerale • cerinţelecunoscute • domeniileîn care cerinţelevorfi definite ulterior • (2) producerearapidă a unuiproiect • se reprezintăaceleelemente care suntpercepute de utilizator • formatuldatelor de intrare • formatulrezultatelor • (3) construireaprototipului • (4) evaluareaprototipului de cătreutilizator • (5) rafinareaprototipului • (6) realizareaprodusului final Activităţile (3) - (5) se repetăpânăcândsuntsatisfăcutetoatecerinţeleclientului

  39. Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Avantajeleutilizariiprototipurilor: • Comunicareaesteimbunatatita: de obiceiclientiipreferasa nu citeascadocumentelefoartemariproduse de catremetodele de dezvoltarestrcuturate. Chiarsidaca le citesc, le estemultmaigreusaisifaca o idee in legatura cu sistemuldezvoltat, spredeosebire de utilizareaunuiprototip • Cand nu exista un sistemdeja existent care poatefiimitat, clientii pot testadiferiteprototipuripentru a isidaseama care dintreele le estecelmaiutil

  40. Metode de dezvoltare ale ciclului de viata Avantajeleutilizariiprototipurilor (continuare): • Necesarul de documentatieesteredusdatoritafaptului ca prototipulpoatefiexaminat in practica • Costurile de intretineresuntreduse; dacaclientul nu ceremulteschimbari ale prototipului, estefoarteprobabil ca acestasa nu cearanicimulteschimbari ale produsului final • Clientii pot fimultmaiimplicati in deciziile legate de design-ul final al sistemului

  41. Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Tehnicilegeneratiei a 4-a

  42. Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) 4GL - Fourth Generation Languages Instrumente CASE Computer-Aided Software Engineering • specificareacerinţelor se face folosindlimbaje de specificare • apropiate de limbajul natural SAU • folosindnotaţiimatematice (algebrice) • sprijinpentrumodelare, inclusivteste de consistenţăşivaliditate • traducereaautomată a specificaţiilorîn cod sursă (forward engineering), trecându-se prinnivele de • analiză - modele de analiză • proiectare - modele de proiectare • generareaspecificaţiilor din cod sursă (reverse engineering) • facilităţigrafice de nivelînalt • sprijinpentru diverse metodologii de analiză şi proiectare • generare automată de documentaţie

  43. Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) Activităţi: • (1) colectareacerinţelor • ideal: clientuldescriecerinţelefolosindlimbajul de specificare al instrumentului CASE • înrealitate: dialog între client şispecialistulînspecificareacerinţelor • estenecesarăcunoaşterealimbajului de specificare (mai ales cândacesta nu esteapropiat de limbajul natural) • (2) proiectare • include elaborarea de modelepentruanalizăşiproiectare • estenevoie de o reprezentare a modelelor care săpermităgenerareaautomată de cod • (3) implementarefolosindgenerareaautomată de cod sursă • estecompletată (eventual) de codificareamanuală a zonelorneacoperite de generareaautomată • (4) testarea • se respectătoateetapeletestării • elaborareadocumentaţiei

  44. Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) Avantaje • productivitateridicată • întreţinereuşoară a programelor DACĂ • cerinţelesunt formulate corect • activitatea de proiectareestebinestructurată Dezavantaje • curba de învăţare a folosiriiinstrumentelorestelungă • codulgenerat nu esteîntotdeaunaşieficient • costuri de achiziţie/întreţinerefoartemari • probleme de migrare, comunicare cu alteinstrumentesimilare • problemădeschisă: întreţinereasistemelormari Regulă: instrumentul nu înlocuieştegândireaumană Vezi: http://www-106.ibm.com/developerworks/components/library/co-ipuse.html?dwzone=components

  45. Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) • WBS reprezinta de fapt o decompozitie a munciinecesaredezvoltariiunuiproiect in bucati din ce in cemaimici • Decompozitiaesteefectuatapana al nivelul la care existasuportulpentru o urmariredetaliata a progresului la care se aflaproiectul • Fiecare pas elementar din decompozitievaavea un cost si o estimaremunciiindividuala; eforturileaferentesicosturileactivitatilor de la nivelelesuperioaresunt calculate pursisimpluprininsumareaeforturilorsicosturiloractivitatilor din care suntcompuse • In momentul in care lista de task-uri, impreuna cu estimarileaferente, esteaprobata, estimarile de cost devinbugetulproiectului

  46. Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) SursaExemplu: Richard Bechtold, Essentials Of Software Project Management (Section 17), Management Concepts Inc., 1999

  47. Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) • O intrebareesentiala in dezvoltarealistei de task-uridetaliateesteurmatoare: Pana la ceniveltrebuiescdescompuseactivitatile? • Ideea care se urmaresteesteurmatoarea: la nivelulcelmai de jos, o activitate nu poatefispreexempluterminata in procent de 50%. Aceastatrebuiesa fie atat de simplaastfelincatsa nu se poataspunadespre ea decat ca este fie 0% sau 100% realizata. • Exemple: pentruproiectelecedureazaintre 4 si 12 luni, activitatiletrebuiescdescompuse in general panacandnivelulcelmai de josreprezintaaproximativ 1 sau 2 saptamani de munca; pentruproiectelemailungi se paoteajungesipana la 4 sichiar 8 saptamani

  48. Metode avansate de planificare si analiza a proiectelor • Liste de resurse detaliate (Rbs – Resource breakdownstructures) • Suntsimilarelistelor de task-uridetaliate, dar se refera la organizatie, echipa de dezvoltatorisipersonalulimplicat in realizareaprodusului • Relatiaceamaiimportantaceestedocumentataprinintermediul RBS esteaaceea a autoritatii: cine raspunde in fata cui si cine spune cui cesafaca • Nu esteimportantapozitia in cadrulorganizatiei a fiecaruiindivid in parte (se urmarestedocumentareafaptului ca angajatul X raspunde in fatamanagerului Y, indiferentdaca X estesecretara, unuldintreprogramatorisau un alt manager)

More Related