Managementul Proiectelor Software

Laborator 3 - Redactarea documentului de design al soluției. Mijloace de organizare a proiectului

De adus

  • Document cu împărțirea rolurilor în cadrul echipei (organizarea echipei și rolul fiecărui membru)
  • CV-urile membrilor echipei.

Software Design Document (SDD) (20 min)

  • document de specificație a soluției pentru sistemul software descris în SRS
  • răspunde la întrebarea: cum va fi construit sistemul software pentru a avea comportamentul descris în SRS?
  • prezinta metodologii, tehnologii, participanți și resurse implicate în proiect
  • se poate redacta numai după finalizarea SRS-ului fiind un răspuns la cerințele prezentate în SRS
  • este redactat de o echipă de software designers (proiectanți de sistem) și analiști business, pe baza SRS-ului și a experienței acestora
  • reprezintă ghidul de construire a soluției folosit de echipa de dezvoltare a proiectului
  • reprezintă un tool de analiză a întregului proiect în faza de început cât și de monitorizare pe parcurs

Secțiuni SDD

Un SDD are următoarele secțiuni:

  1. Modelul datelor (Data Design)
    • prezintă structurile de date importante, formatele fișierelor folosite în cadrul soluției și schema bazei de date.
    • Structurile de date pot fi:
      • globale (structuri de date disponibile tuturor componentelor arhitecturii)
      • de legătură (structuri de date trimise ca argumente între componente pentru a asigura fluxul informației la nivel de aplicație)
      • temporare (structuri de date folosite temporar).
    • Schema bazei de date este descrisă prin:
      • diagrama schemei bazei de date
      • descrierea semnificației tabelelor și, pentru fiecare tabelă, descrierea semnificației coloanelor și indicarea cheilor primare și referențiale.

  2. Modelul arhitectural (Architectural Design)
    • este o structură ierarhică alcătuită din componente interconectate
    • prezintă arhitectura sistemului – atât descriptiv, cât și sub forma unei diagrame de arhitectură
    • descrie:
      • fiecare componentă a arhitecturii,
      • restricțiile de implementare ale componentelor,
      • interacțiunea dintre componentele sistemului.
    • poate fi reprezentat prin :
      • diagrame de componente (pentru proiecte mari) - le-am numit “generic” în laboratorul 2: diagrame de arhitectură
      • diagrame de clase, în care relațiile ierarhice se bazează pe generalizare și specializare (pentru proiecte mici).

  3. Modelul interfeței cu utilizatorul (User Interface Design)
    • prezintă ferestrele aplicației și succesiunea lor în cadrul sistemului.

  4. Elementele de testare (Testing Issues)
    • identifică componentele critice ale aplicației (componente a căror performanță influențează decisiv performanța globală a aplicației)
    • propune alternative de proiectare a componentelor critice (pentru a fi folosite în cazul insuccesului soluției propuse inițial).

Conținutul unui SDD cuprinde:

  1. Scopul documentului (Document purpose)
  2. Obiective (Objectives)
  3. Conținutul documentului (Document overview)
  4. Modelul datelor (Data Design)
    • Structuri de date globale (Global Data Structure)
    • Structuri de date de legătură (Linking Data Structure)
    • Structuri de date temporare (Temporary data structure)
    • Formatul fișierelor utilizate (File Formats)
    • Descrierea bazei de date (Database description)
      • Diagrama schemei bazei de date (Database Structure Diagram)
      • Descrierea tabelelor (Tables Description)
  5. Modelul arhitectural și modelul componentelor (Architectural and component-level design)
    • Arhitectura sistemului (System Architecture)
      • Șabloane arhitecturale folosite (Architectural Patterns)
      • Diagrama de arhitectură (Architecture Diagram)
    • Descrierea componentelor (Component Description)
    • Restricțiile de implementare (Implementation Requirements)
    • Interacțiunea dintre componente (Component Interaction)
  6. Modelul interfeței cu utilizatorul (User Interface Design)
    • Succesiunea interfețelor (Flowchart)
    • Ferestrele aplicației (Screen Images)
  7. Elemente de testare (Testing Issues)
    • Componente critice (Critical components)
    • Alternative (Alternatives)

Exemplu de Document SDD

Cum să ne organizăm pentru a atinge obiectivele definite în SRS conform planurilor din SDD?

În managementul de proiect, există o serie de utilitare de organizare a lucrului în proiecte, precum:

  • WBS
  • Grafic Gantt

WBS (Work Breakdown Structure) (10 min)

  • structură arborescentă cu rolul de a determina și de a grupa sarcinile proiectului în funcție de categoria din care fac parte
  • ajută la organizarea proiectului prin clarificarea obiectivelor, a elementelor de lucru mai generale (work packages) și mai specifice (work elements)
  • pe baza WBS, se pot face estimări de durată, de resurse umane și de buget ⇒ suport pentru construirea diagramei Gantt
  • ajută la identificarea relațiilor de precedență dintre elementele de lucru (care elemente de lucru sunt independente, care sunt restricționate să aibă loc înainte de altele, etc.) - elemente vizibile în diagrama Gantt.
  • WBS reprezinta graful acțiunilor necesare unui proiect grupând acțiunile în categorii de interes
  • oferă suport pentru identificarea tuturor acțiunilor necesare și prioritizarea lor în funcție de efort, cost, durată etc.

Modul de construire a WBS:

  • nodurile arborelui conțin elementele de lucru, care pot fi produse, date, servicii
  • rădăcina arborelui coincide cu obiectivul proiectului: sistemul software de dezvoltat
  • nivelul al doilea al arborelui: subsistemele componente ale sistemului
  • tot așa în adâncimea arborelui, în sensul că orice nod părinte înseamnă un element de lucru general, iar copiii reprezintă elemente de lucru componente ale lui
  • deci, se detaliază efortul de dezvoltare a proiectului, de la obiectivul general la elemente de lucru și sarcini practice.
  • nivelul de detaliere al unui WBS nu este foarte ridicat; astfel, adâncimea arborelui nu depășește, adesea, mai mult de 4-5 niveluri.

Reguli:

  • un WBS trebuie să cuprindă prin elementele sale tot efortul necesar dezvoltării proiectului (100% din muncă)
  • elementele de muncă de pe același nivel din arbore nu se acoperă total sau parțial (nu sunt overlapping)
  • frunzele din arbore au adesea asociate resurse, durate și costuri.

Exemplu de diagramă WBS a unui proiect software:

WBS

Grafic Gantt (10 min)

  • grafic pentru planificarea temporală a sarcinilor proiectului
  • construit pe baza activităților identificate în WBS
  • indică data de început și de sfârșit a activităților din WBS și dependențele dintre activități:
    • start-to-start
    • finish-to-start
    • finish-to-finish
  • întotdeauna se va ține cont de potențialele întârzieri și vor incluse în planificare sub o formă sau alta (review, delay, etc.)
  • graficul Gantt este unul orientativ și starea sa se poate altera în timpul proiectului în funcție de situație
  • acțiunile în grafic sunt trecute ca începand cel mai curând posibil, urmând să se asigure o marjă de eroare până la momentul cel mai târziu posibil
  • este un tool bun pentru monitorizarea stării proiectului în timp, în funcție de gradul de realizare a acțiunilor până la un moment dat
  • adesea, conține și următoarele elemente:
    • o linie verticală ce marchează timpul prezent
    • alte linii verticale cu milestone-urile proiectului
    • starea activităților exprimată prin procente (100% înseamnă că activitatea a fost realizată complet).

Organizarea unui proiect înseamnă parcurgerea etapelor:

  1. Determinarea activităților proiectului (WBS)
  2. Estimarea duratelor activităților și a consumului de resurse (astfel încât costul total să fie mai mic decât bugetul alocat)
  3. Planificarea activităților în funcție de dependențe și de eventualele restricții legate de resurse (Gantt)
  4. Stabilirea de milestone-uri.

Exemplu de diagramă Gantt a unui proiect de construcție de casă:

Diagrama Gantt

Milestone

  • deadline de finalizare a unei etape importante și decisive a proiectului
  • adesea, presupune predarea unor livrabile către beneficiar
  • în vederea respectării milestone-urilor fixate, adesea se impune luarea unor decizii cu impact major asupra evoluției proiectului.
  • deși reprezintă puncte cheie în cadrul unui timeline, din varii motive acestea pot fi decalate dacă acest lucru ajută și nu au un impact negativ asupra proiectului.

Exerciții

1. Milestones (20 min)

Formați grupe de 3-4 studenți. Stabiliți câteva milestone-uri pentru dezvoltarea uneia dintre aplicațiile următoare:

  1. platformă de eLearning
  2. magazin online de produse farmaceutice
  3. sistem de management a spitalelor

Răspundeți la următoarele întrebări:

  • Ce ar însemna aceste milestone-uri?
  • Ce livrabile se așteaptă?
  • Ce procent din efortul total de implementare ar trebui să fie realizat până la acele momente?
  • La ce perioadă de la începutul proiectului estimați că ar fi optim să fie plasate aceste milestone-uri?

2. WBS (25 min)

Să se construiască diagrama WBS (în Visio) pentru aplicațiile discutate mai sus. Să se asocieze pe frunze resursele și durata asociată.

3. Gantt (15 min)

Realizați graficul Gantt pentru aplicațiile precedente.

De adus pentru laboratorul următor

  • SDD
  • diagramă WBS
  • diagramă Gantt
laboratoare/laborator-03.txt · Last modified: 2012/10/19 08:12 by andrei.maruseac