Essay:

Essay details:

  • Subject area(s): Marketing
  • Price: Free download
  • Published on: 14th September 2019
  • File format: Text
  • Number of pages: 2

Text preview of this essay:

This page is a preview - download the full version of this essay above.

Model destinat estimării costului complet al sistemelor de programe orientate pe obiecte

Lector dr. Marian Cristescu

Universitatea „Lucian Blaga” Sibiu

Alegerea costului activităţii de bază este influenţată de nevoia unei evaluări precise a costului total al produsului software, iar evaluarea costului final, al activităţilor desfăşurate în timpul procesului de dezvoltare software, este puternic influenţată de costurile indirecte.

Distincţia dintre estimarea efortului de dezvoltare şi modul de alocare a costurilor indirecte este sugerată prin următoarele motive:

• sunt necesare două proceduri diferite: o analiză statistică a bazei de date a produselor de bază şi o analiză a proceselor în care este implicată firma respectivă;

• cea din urmă necesită diferite metrici şi se referă la caracteristici ale produselor sau proceselor;

• bugetul de date este diferit pentru cele două module: pe de o parte costul de elaborare per unitatea de timp, iar pe de altă parte costurile indirecte;

• primul modul necesită o procedură de validare care permite o comparare a   diferitelor tehnici.

Ca urmare a fost dezvoltat un model de estimare a costului unui produs software, dezvoltat pe baza tehnologiei orientării pe obiecte [CARM00]. Acest model este destinat să spijine firmele producătoare de software în procesul de evaluare a preţului unui anumit sistem de programe.

Pentru simplificare, modelul are la bază ipoteza conform căreia, costul de susţinere a procesului de dezvoltare este singurul cost direct, în timp ce restul costurilor sunt considerate indirecte. Ipoteza este în conformitate cu informaţiile furnizate de sondajul descris anterior.

Modelul este alcătuit din două module interactive diferite, conform figurii 1. Primul modul are ca scop estimarea costului direct al procesului de dezvoltare şi are la bază un model de estimare a costului pentru software procedural, care a fost realizat şi testat [CARM00]. Modelul estimează efortul de dezvoltare în funcţie de timpul necesar lansării produsului, iar apoi calculează costul corespunzător. Al doilea modul se bazează pe costul activităţii de bază şi este menit să aloce produsului costurile indirecte.

   

Figura 1. Schema modelului de estimare a costului pentru procesele de realizare a sistemelor de programe orientate pe obiecte

Modulul de estimare a efortului de dezvoltare - costul de elaborare al unui produs   este calculat prin:

   (1)

unde:

  - este costul de elaborare per unitatea de timp - exprimat în mod tipic prin cost/lună, şi care se referă la resursele de muncă umană implicate în acest proces;

efort - se referă la timpul de care are nevoie un singur factor, implicat în procesul de dezvoltare, pentru a-şi efectua sarcina ce i-a fost stabilită.

Acest modul este concentrat pe estimarea efortului; efortul este dependent de diferite caracteristici ale produsului (metrici)  

   (2)

Această ipoteză este mai complexă, datorită numărului mare de variabile independente care trebuie luate în calcul, în funcţie de metoda de estimare aleasă.

O ipoteză alternativă furnizează o procedură mai simplă. Aceasta constă în estimarea unei valori nominale a efortului, în funcţie de o singură metrică şi care măsoară dimensiunea produsului software:

efort nominal = f(m)     (3)

iar ulterior are loc corectarea acestei valori în funcţie de cei N factori de corecţie K

  şi se obţine

   (4)

În cadrul modelului este luată în considerare următoarea funcţie pentru estimarea efortului:

   (5)

unde: m reprezintă numărul total al metodelor publice folosite în cadrul sistemului de programe, funcţia de corecţie este un produs de  , care depinde de caracteristicile produsului şi ale procesului, iar a şi b sunt parametrii dependenţi de informaţiile stocate în baza de date a produselor.

Modelul necesită determinarea următoarelor cantităţi pentru un sistem de programe specific:

• funcţia f a efortului nominal;

• metrica m care oferă o dimensiune a sistemului de programe care va fi dezvoltat;

• parametrii a şi b;

• funcţia de corecţie  

Funcţia efortului nominal şi metrica m au fost alese ca:

efort nominal =  (6)

În această funcţie, parametrul a indică unităţile de măsură ale productivităţii, deoarece acesta reprezintă timpul de lucru necesar per unitatea de dimensiune a software.

Parametrul b se referă la scala efectelor şi anume: când b > 1, sunt generate efecte neeconomice; de exemplu, efortul creşte în timp ce dimensiunea sistemelor de programe obţinute descreşte, datorită dificultăţilor sporite de proiectare şi codificare a sistemului de programe, precum şi a complexităţii procesului de testare.

Una din metricile utilizate pentru măsurarea dimensiunii sistemelor de programe orientate pe obiecte, este numărul metodelor publice; aceasta este o măsură a funcţiilor pe care fiecare clasă de obiecte le execută; este o metrică cel mai bine corelată cu efortul real.

Pentru a se realiza selecţia au fost luate în considerare următoarele trei metrici:

• numărul de linii ale codului sursă;

• numărul de clase utilizate;

• numărul total de metode publice orientate obiect.

În [PITT98], a fost calculat, cu ajutorul unei funcţii exponenţiale, un coeficient de corelaţie R, pentru evaluarea corelaţiei existente între efortul real şi metrici. Procesul de evaluare necesită construirea unei baze de date cu caracteristicile sistemelor de programe analizate.

În continuare este prezentat modul în care a fost realizată selecţia metricilor care exprimă cel mai bine efortul real de dezvoltare a unui sistem de programe. Pentru aceasta a fost utilizată o bază de date formată din cinci subsisteme. În acest caz subsistemele au fost considerate ca sisteme de sine stătătoare. Caracteristicile lor sunt prezentate în tabelul 1.

Tabelul 1. Caracteristicile componentelor unui sistem de programe utilizate pentru calcularea coeficienţilor de corelaţie

Subsistem LOC Număr de clase Număr metode publice Efort (oameni/lună)

PARTENERI 1630 6 31 1,5

MISCARI 1150 5 37 1

NOMEN 2600 12 74 9,3

SCADENTE 1200 7 26 0,7

CONTRACTE 350 4 7 0,3

Cei doi parametrii a şi b sunt obţinuţi cu ajutorul metodei celor mai mici pătrate.

Pentru fiecare produs  , trebuie cunoscute date referitoare la efortul real  , numărul total al metodelor publice utilizate în cadrul claselor  , şi valorile tuturor factorilor de multiplicare (  (j=1,…,N)).

Prin substituirea acestor valori în ecuaţia (5), pentru fiecare produs  , sunt căutate valorile lui a şi b care satisfac cel mai bine toate ecuaţiile (5) aferente produselor P.

Conform metodei celor mai mici pătrate, valorile parametrilor a şi b sunt obţinute prin minimizarea următoarei expresii, derivată din ecuaţia (4):

E =    (7)

Funcţia de corecţie a efortului nominal depinde de un set de factori care măsoară anumite caracteristici ale produselor şi proceselor.

Ca şi în cazul modelului prezentat anterior, funcţia de corecţie este exprimată ca un produs al anumitor factori de corecţie:

   (8)

Pentru cazul sistemului de programe analizat au fost luaţi în considerare factorii prezentaţi în tabelul 2.

   Tabelul 2. Factorii de multiplicare pentru funcţia de corecţie a efortului nominal

Factor Descriere Evaluare

K1 DR Gradul de refolosire Empirică

K2 DFR Dezvoltare pentru reutilizare Calcul

K3 CPLIF Complexitatea interfeţei om-maşină Calcul

K4 AEXP Experienţă în domeniul problemei Empirică

K5 ACAP Capabilitatea analistului Empirică

K6 DPCAP Capabilitatea proiectantului şi programatorului Empirică

K7 CPLX Complexitatea produsului Calcul

K8 CPLXE Complexitatea mediului operaţional Empirică

Factorii de la K4 la K7 au fost aleşi dintre cei cunoscuţi din literatura de specialitate, [CARM00]. Primii trei factori sunt specifici tehnologiei orientării pe obiecte. Faţă de factorii cunoscuţi din literatura de specialitate, în lucrare s-a adăugat un factor nou, K8 care exprimă complexitatea mediului operaţional şi este evaluat în mod empiric. Factorii evaluaţi prin metode empirice au fost obţinuţi pe baza experienţei acumulate de programatorii din compania care a dezvoltat sistemul de programe.

Modulul pentru estimarea alocărilor suplimentare – are ca obiectiv realizarea evaluării alocărilor suplimentare, la nivel de sistem de programe.

Alocările suplimentare sunt efectuate către orice produs i, prin intermediul unuia sau mai multor coeficienţi de alocare.

Modelul adoptat este cel al costului activităţii de bază. Trăsătura principală a acestui mod de abordare este aceea care specifică faptul că utilizarea unei resurse, implicate în diferite activităţi, este măsurată printr-un parametru specific - estimatorul costului - pentru fiecare activitate, în loc de a aloca costul resursei respective, fiecărui produs în parte, printr-o singură operaţie de alocare fundamentală.

Această abordare necesită următoarele etape:

• modelarea organizării proceselor prin gruparea activităţilor omogene;

• partajarea resurselor între diferitele activităţi implicate de aceast mod de abordare;

• definirea elementelor care influenţează costul, astfel încât parametri să fie capabili să măsoare şi să explice modul în care fiecare produs utilizează resursele, pentru realizarea unor activităţi specifice.

În tabelele 3 şi 4 sunt prezentate resursele, activităţile şi estimatorul costului pentru cazul companiei care a dezvoltat sistemul de programe analizat.

Resursele au fost clasificate în: personal, bunuri depreciate, servicii şi altele.

Activităţile au fost clasificate în: activităţi desfăşurate în sprijinul procesului de dezvoltare şi activităţi neindustriale.

   Tabelul 3. Resursele implicate în estimarea costului sistemului de programe

Personal Bunuri depreciate Servicii Altele

personal administrativ deprecieri hardware şi software asistenţă tehnică materii prime

personal vânzări şi de marketing deprecierea companiei cheltuieli de pregătire telefon

deprecierea bibliotecilor software servicii de consultanţă energie

Publicitate mărfuri

costuri financiare

    Tabelul 4. Activităţile implicate în estimarea costului sistemului de programe

   

Activităţi de sprijinire a procesului de dezvoltare Activităţi neindustriale

prima discuţie cu clientul Administrative

rediscutarea modificărilor necesare managementul personalului

utilizarea reţelelor de comunicaţie – Internet Marketing

asistenţă după vânzare – întreţinere achiziţii

dezvoltarea internă a componentelor reutilizabile

organizarea laboratoarelor

În cadrul modelului au fost luaţi în considerare următorii estimatori ai costului:

• complexitatea, măsurată ca medie a adâncimii arborelui de moştenire pentru clasele folosite în cadrul produsului;

• inventivitatea, măsurată ca raportul dintre numărul de clase noi care se dezvoltă şi numărul total de clase ale produsului;

• reutilizabilitatea, măsurată ca raportul dintre numărul de clase reutilizabile dezvoltate şi numărul total de clase ale produsului;

• efortul, obţinut cu ajutorul primului modul de estimare a costului;

• numărul de produse, folosit pentru a aloca costurile suplimentare, în  mod egal pentru toate produsele.

Concluzii:

Un procent de 35%, din totalul costului de elaborare a sistemului de programe, implicat de dezvoltarea personalului, este considerat ca suplimentar.

În mod similar, s-a constatat că 30% din procesele specifice de depreciere hardware sau software sunt suportate în cadrul activităţilor descrise.

Aceste valori au fost definite pe baza aprecierilor realizate de către experţi cu privire la companiile mici şi mijlocii producătoare de software.

Bibliografie:

[BENY96] - Benyahia H., “Costs and productivity estimation in Computer Engineering

    Economics”, The Engineering Economist, 1996,Vol. 41, nr. 3, pag. 229-241;

[CARM00] - Carmel E., Becker S., "A process model for packaged software development",

   IEEE Transactions on Engineering Management, 2000, vol. 42, nr.1, pag. 50-61;

[CHID94] - Chidamberer S.R. and Kemerer C.F., 1994, “A metric suite for Object-Oriented

    design”, IEEE Transaction On Software Engineering, Vol. 20, nr. 6, iunie 1994;

[KHAN95] - Khan E.H., Al-A'ali M., “Object-Oriented programming for structured

    procedural programmers”, IEEE Computer, octombrie 1995, pag. 48-57;

[PITT98] - Pittman M., "Lessons learned in managing object-oriented development", IEEE

   Transaction On Software Engineering, 1998, Vol.10, nr.1, pag.45-53.

...(download the rest of the essay above)

About this essay:

This essay was submitted to us by a student in order to help you with your studies.

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, . Available from:< https://www.essaysauce.com/essays/marketing/2017-12-4-1512423209.php > [Accessed 14.10.19].