Documente Academic
Documente Profesional
Documente Cultură
1
modele bazate pe analiza punctelor funcŃionale. Parametrii acestor modele se determină prin metode
statistice.
2
14
FCT = 0.65 + 0.1∑ ci , (4)
i =1
3
• Rezultatele furnizate de acest model pot subestima realitatea deoarece în documentul
specificaŃiilor software nu este elaborat la nivel de detalii de implementare.
• Abordarea bazată pe puncte funcŃionale nu se poate aplica în cazul în care se utilizează
mediile de dezvoltare integrate de tipul CASE, în cazul programării orientate obiect sau reutilizării
librăriilor.
2. Modelul COCOMO
Modelul COCOMO (COnstructive COst Model – Modelul constructiv al costurilor) este cel
mai bun şi documentat model utilizat în estimarea efortului. COCOMO a fost dezvoltat de Boehm
pe baza analizei a 63 de proiecte software. Modelul furnizează o formulă detaliată de determinare a
orarului dezvoltării proiectului, a efortului de dezvoltare general, de descompunere pe faze şi
activităŃi precum şi a efortului de întreŃinere. COCOMO estimează efortul în luni-om. Estimarea se
bazează pe numărul de linii de cod (SLOC – source lines of code) exprimat în mii de instrucŃiuni de
cod livrat (KDSI – thousands of delivered source instructions). Aceste instrucŃiuni includ toate
instrucŃiunile programului, instrucŃiunile de formatare, declaraŃiile de date. Nu sunt numărate
comentariile. Modelul COCOMO presupune că modelul de dezvoltare ales pentru proiectul
software este cel în cascadă şi că proiectul are asigurat un management performant.
Modelul COCOMO este dezvoltat în trei versiuni, în funcŃie de nivelul de rafinare a
estimării: de bază, intermediar şi detaliat. În cele ce urmează vom discuta despre primele două.
Boehm ia în considerare trei clase de siteme:
1. Încorporate. Aceste sisteme sunt caracterizate de constrângeri severe. Produsul este
integrat într-un mediu strict şi are constrângeri de timp, fiind relativ nou pentru companie. Un
exemplu tipic este cel al sistemelor de timp real (în aeronautică, medicină etc.).
2. Organice. Această clasă cuprinde sistemele ce sunt dezvoltate de echipe mici, într-un
mediu cunoscut, cu o interfaŃă relaxată. În această categorie intră proiectele relativ mici.
3. Semidetaşate. Sistemele software din această clasă sunt intermediare celor două
prezentate anterior. Exemple de astfel de sisteme sunt sistemele de operare şi sistemele de
management al bazelor de date.
4
Modelul COCOMO determină de asemenea orarul de dezvoltare al proiectului, M (exprimat
în luni) folosind efortul calculat anterior:
M = c ⋅ Efort d , (9)
unde parametrii c şi d au valorile precizate în tabelul 2.
ObservaŃiile anterioare rămân valabile şi în cazul determinării orarului de dezvoltare a
proiectului. În figura 3 este prezentată dependenŃa orarului de numărul de linii de cod sursă livrate.
Tabel 2. Valorile parametrilor orarului de dezvoltare
Clasa de sisteme c d
Încorporate 2.5 0.32
Organice 2.5 0.35
Semidetaşate 2.5 0.32
COCOMO se foloseşte şi pentru estimarea costurilor de întreŃinere. Formula se bazează pe
eforturile anterioare estimate:
Efort int retinere = TMA ⋅ Efort , (10)
unde TMA este traficul de modificare anual, adică acea fracŃiune din KDLOC care se schimbă pe
parcursul unui an.
5
2.2 Modelul COCOMO intermediar
Acest model, cel mai des utilizat, se obŃine prin rafinarea modelului de bază. ÎmbunătăŃirea
constă în luarea în considerare a 15 atribute ale produsului. Pentru fiecare astfel de atribut,
utilizatorul modelului trebuie să precizeze o pondere din gama: foarte mică (engl. very low, VL),
mică (engl. low, LO), nominală (NM), mare (engl. high, HI), foarte mare (engl. very high, VH) şi
extrem de mare (engl. extra high, XH).
Lista atributelor este compusă din caracteristici ale produsului, sistemului de calcul,
personalului şi proiectului.
Atributele produsului:
• Fiabilitate cerută (RELY). Este utilizată pentru a exprima efectul defectelor software,
într-o gamă de la inconvenient minor (VL) la defect major (VH).
• OcteŃi de date pe instrucŃiune sursă livrată(DATA).
• Complexitate (CPLX). Atributul exprimă complexitatea codului, de la un cod simplu
(VL) la un cod de timp real (XH).
Atributele sistemului de calcul:
• Timp de execuŃie (TIME) şi constrângeri de memorie (STOR). Acest atribut identifică
procentul de resurse ale calculatorului (timp şi memorie) utilizate de sistem. În starea nominală
procentul este mai mic de 50% iar ponderea extrem de mare este dată de un procent de 95%.
• Volatilitatea platformei de dezvoltare (VIRT) este utilizată pentru a indica frecvenŃa
schimbărilor hardware-ului, sistemului de operare şi mediului de programare. Schimbările frecvente
şi semnificative au o pondere mai mare.
• Timp de răspuns (TURN) reprezintă timpul scurs de la începerea aplicaŃiei până la
obŃinerea rezultatelor. LO indică un mediu cu interactivitate mare iar VH cuantifică situaŃia în care
timpul este mai mare de 12 ore.
Atributele personalului
• Capacitatea analiştilor (ACAP) şi a programatorilor (PCAP) descriu aptitudinile echipei
de dezvoltare.
• ExperienŃa în domeniul aplicaŃiei (AEXP), în limbajul de programare (LEXP) şi în
mediul de dezvoltare (VEXP). Sunt utilizate pentru a cuantifica experienŃa echipei de dezvoltare în
domeniile precizate anterior.
Atributele proiectului
• Practicile de dezvoltare moderne (MODP) sunt legate de utilizarea practicilor software
moderne cum ar fi programarea structurată şi abordarea orientată obiect.
• Utilizarea aplicaŃiilor software automate (TOOL). Acestea sunt folosite pentru măsurarea
ponderii pe care respectivele aplicaŃii le au în dezvoltarea proiectului şi la integrare. O pondere mare
presupune nivele înalte în ambele aspecte precizate.
• Modificări ale orarului planului de dezvoltare (SCED) ce constau în comprimări (HI sau
VH) sau extindere (LO sau VL) în raport cu orarul nominal (NM).
În tabelul 3 sunt prezentate ponderile caracteristicilor descrise anterior. În funcŃie de proiect,
aceste rezultate parŃiale se înmulŃesc, obŃinându-se multiplicatorul final (P). Efortul se exprimă cu
formula:
Efort = Efort no min al ⋅ P , (11)
unde efortul nominal are diferite expresii, funcŃie de tipul de sistem:
• în cazul sistemelor încorporate: Efort no min al = 2.8KDLOC1.20 ;
• în cazul sistemelor semidetaşate : Efort no min al = 2.8KDLOC1.12 ;
• în cazul sistemelor organice: Efort no min al = 2.8KDLOC1.05 .
6
ObservaŃii:
• relaŃiile anterioare sunt asemănătoare celor din modelul de bază, diferenŃa apărând la
parametrul a, parametrul b rămânând nemodificat;
• dacă atributul are valoare nominală, nu influenŃează multiplicatorul P;
• unele atribute se pot compensa: creşterea valorii unor atribute este anihilată de scăderea
valorii altor atribute;
• estimarea timpului de dezvoltare a produsului este aceeaşi ca în modelul COCOMO de
bază;
• efortul de întreŃinere se calculează cu formula:
Efort int retinere = TMA ⋅ Efort no min al ⋅ P . (12)
Multiplicând valorile de mai sus se obŃine P = 1.6095 . Eforul nominal este 2.8 ⋅ 3001.20 = 2628
luni-om. Aplicând factorul de corecŃie P se obŃine un efort de 4229 luni-om, semnificativ mai mare decât
cel estimat folosind modelul de bază.
7
persoane. Metoda Delphi ajută la coordonarea procesului de obŃinere de informaŃii de la un grup de
experŃi şi are următorii paşi esenŃiali:
• Coordonatorul prezintă fiecărui expert specificaŃiile proiectului şi alte informaŃii
relevante.
• Coordonatorul convoacă o întâlnire unde experŃii discută estimările.
• ExperŃii completează un formular cu estimările personale ale efortului de dezvoltare a
proiectului; experŃii furnizează cea mai probabilă valoare precum şi limitele inferioară şi superioară.
• Coordonatorul pregăteşte şi pune în circulaŃie un raport ce indică estimările individuale şi
de grup.
• Coordonatorul convoacă o nouă întâlnire în care experŃii discută estimările curente.
Aceste etape se repetă până când se ajunge la un consens. Estimarea de grup se obŃine ca o
medie ponderată a estimărilor individuale cu următoarea formulă:
LI + 4VP + LS
estimare = (13)
6
unde LI – limita inferioară a estimării; VP – valoarea probabilă a estimării; LS – limita superioară a
estimării.
VarianŃa unei estimări individuale este definită ca:
LS − LI
var ianta = . (14)
6
VarianŃa estimării de grup este media varianŃelor individuale.