The Orthogonality of the Object-Oriented Software Applications by hwp67431

VIEWS: 7 PAGES: 4

									Revista Informatica Economică, nr.4(32)/2004                                                     93



       The Orthogonality of the Object-Oriented Software Applications
                             Prof.dr. Ion IVAN, prep. Marius POPA
                       Catedra de Informatică Economică, A.S.E. Bucureşti


The paper aims to present some aspects regarding the object-oriented orthogonality metrics.
There are presented the basic elements of the object-oriented development environment, the
object-oriented metrics of the software products and software cohesion. Also, there are pro-
vided some orthogonality metrics in order to evaluate the similarity degree of this kind of ap-
plications.
Keywords: orthogonality, metrics, object-oriented software.


O      rtogonalitatea produselor program
       Analiza şi proiectarea orientate-obiect a
produselor program sunt elemente foarte uti-
                                                   să salveze o stare şi care oferă o serie de ope-
                                                   raţii care examinează starea şi/sau o modifi-
                                                   că.
lizate în dezvoltarea de software. Această         Ortogonalitatea surprinde diferenţele dintre
modalitate de realizare de software aduce un       două elemente. Datele sunt ortogonale dacă
plus de calitate în ceea ce priveşte               ele sunt complet diferite. Se defineşte un in-
mentenanţa şi modificarea aplicaţiilor infor-      dicator de ortogonalitate care, în caz de orto-
matice dezvoltate.                                 gonalitate ia valoarea 1, iar în caz de identita-
Metodologia orientată-obiect de dezvoltare         te ia valoarea 0. Astfel, se remarcă existenţa
de produse program presupune o abordare di-        unui spectru al gradelor de ortogonalitate
ferită de metodele tradiţionale a descompune-      dintre două elemente, cu valori în intervalul
rii funcţionale şi fluxurilor de date a sistemu-   [0,1].
lui analizat. Tradiţional, sistemul este anali-    Forma pe care o iau indicatorii de ortogonali-
zat prin considerarea separată a datelor de        tate este strâns legată de tipul datelor compa-
comportament. Analiza şi proiectarea orien-        rate, de complexitatea acestora, precum şi de
tate-obiect combină cele două elemente, fie-       specificul analizei. În lucrarea de faţă se va
care clasă de date şi operaţiile aferente fiind    considera ortogonalitatea la nivelul aplicaţii-
grupate într-o singură entitate.                   lor orientate-obiect.
Concepte utilizate în analiza şi proiectarea       Cuvintele reprezintă unitatea constructivă a
orientate-obiect:                                  programelor sursă, fiind identificate două ca-
- clasă de obiecte – o mulţime de obiecte ca-      tegorii: cuvinte rezervate ale limbajului; cu-
re împart o structură şi un comportament co-       vinte utilizator. Orice analiză trebuie să în-
mune; este un şablon pe baza căruia se             ceapă de la elementele de construcţie a pro-
instanţiază obiecte;                               gramelor sursă.
- moştenire – o relaţie între clase prin care o
clasă preia atributele şi metodele definite în     Metrici de ortogonalitate orientate-obiect
una sau mai multe clase;                           Analiza ortogonalităţii produselor program
- instanţiere – proces de creare a unui obiect     orientate-obiect se efectuează pe baza siste-
şi iniţializarea sa cu date specifice;             mului de metrici orientate-obiect prin inter-
- atribut – variabilă definită în cadrul unei      mediul cărora sunt cuantificate elementele
clase de obiecte; mulţimea atributelor reflectă    specifice programării orientate-obiect. Într-o
starea unui obiect;                                aplicaţie informatică orientată-obiect metrici-
- metodă – operează asupra datelor ca răs-         le tradiţionale sunt aplicate pentru metodele
puns a mesajelor primite, fiind parte a decla-     care conţin operaţiile clasei de obiecte. În ca-
raţiei clasei de obiecte; mulţimea metodelor       tegoria metricilor tradiţionale se includ:
precizează comportamentul unui obiect;             - complexitatea ciclomatică – utilizată în
- obiect – o instanţiere a unei clase capabilă     evaluarea aplicaţiei unui algoritm;
94                                                         Revista Informatica Economică, nr.4(32)/2004


- numărul de linii – include linii de cod, ex-     se exprimă prin numărul de clase asociate cu
presii şi comentarii; prezintă importanţă în       clasa de obiecte pentru care se cuantifică
înţelegerea, reutilizarea şi mentenanţa codu-      acest indicator;
lui aplicaţiei;                                    - înălţimea arborelui de moştenire – se de-
- ponderea liniilor de comentariu – utilizată      termină ca maximul dintre lungimile drumu-
pentru evaluarea caracteristicilor de înţelege-    rilor de la noduri la rădăcină în cadrul arbore-
re, reutilizare şi mentenanţă a aplicaţiei.        lui de moştenire şi se exprimă ca număr de
Există un număr foarte mare de metrici speci-      noduri traversate de drumul de lungime ma-
fice abordării orientate-obiect a aplicaţiilor     ximă; este utilă în evaluarea caracteristicilor
informatice prin intermediul cărora se cuanti-     de reutilizare, înţelegere şi testare a codului
fică elemente caracteristice claselor de obiec-    sursă;
te, moştenirii, metodelor, obiectelor, poli-       - numărul descendenţilor – reprezintă numă-
morfismului. În categoria metricilor orienta-      rul subclaselor imediate unei anumite clase
te-obiect se includ:                               din ierarhia de moştenire; permite evaluarea
- metode per clasă de obiecte – se exprimă         testabilităţii şi proiectării produsului pro-
prin numărul de metode implementate în ca-         gram.
drul unei clase de obiecte sau ca sumă a           Pentru aplicaţia Liste_simple dezvoltată în
complexităţilor metodelor; este o metodă de        limbajul de programare Java, valorile metri-
predicţie a timpului şi efortului necesar pen-     cilor prezentate mai sus sunt date în tabelul 1.
tru dezvoltarea şi mentenanţa clasei de obiec-     Aplicaţia Liste_simple implementează opera-
te;                                                ţii de bază cu care se operează în cazul struc-
- răspunsul la mesaje – numărul metodelor          turii de date lista simplă înlănţuită:
care pot fi invocate ca răspuns la un mesaj        - inserarea unui element în listă;
transmis de un obiect sau o altă metodă din        - verificarea existenţei unui element în listă
clasă; o valoare mare a acestui indicator de-      prin testarea valorilor informaţiilor utile din
termină un efort sporit în testarea şi depana-     noduri;
rea clasei;                                        - afişarea pe ecran a valorilor din noduri în
- coeziunea – reflectă măsura în care meto-        ordinea inserării lor;
dele dintr-o clasă sunt legate una de cealaltă     - afişarea pe ecran a informaţiilor utile din
în vederea asigurării unui comportament co-        noduri în ordinea inversă a inserării lor în lis-
respunzător al obiectului;                         tă;
- asocierea – reflectă intensitatea asocierii      - determinare lungime listă.
stabilită de conexiune de la o entitate la alta;
               Tabelul 1. Metrici orientate-obiect pentru aplicaţia Liste_simple
                                               Răspunsuri la       Nr. clase        Nr. de des-
          Clasa de obiecte     Nr. de metode
                                                  mesaje           asociate          cendenţi
        Nod                          6              0                  0                 0
        ListaSimpla                  9              11                 2                 1
        ListaOrdonata               11              12                 1                 0
        Test1                        1              29                 1                 0
        Test2                        1              12                 1                 0
Codurile sursă a două produse software se                                              m   m
                                                   metrica m este: Oi , j = min( I im , I jm ) , unde: I im -
compară raportând valorile metricilor orien-                                   max( I i , I j )
tate-obiect. De asemenea, anterior efectuării      valoarea metricii m pentru programul sursă
acestor calcule este necesar să asigure com-
                                                   Pi; I m - valoarea metricii m pentru programul
                                                         j
parabilitatea celor două programe din punctul
de vedere a limbajelor de programare utiliza-      sursă Pj.
te în implementarea lor.                           Pentru două programe sursă Pi şi Pj se con-
Pentru două texte sursă Pi şi Pj, forma gene-      struieşte matricea MO care conţine valorile
rală a indicatorului de ortogonalitate pentru      indicatorilor de ortogonalitate pentru cele n
                                                   metrici luate în considerare în analiza orto-
Revista Informatica Economică, nr.4(32)/2004                                                                                                95


gonalităţii. Matricea MO este simetrică în ra-                                                 software de calitate înaltă constituind obiec-
port cu diagonala principală şi are următoa-                                                   tivul care se doreşte a fi atins.
rea formă:                                                                                     În contextul orientat obiect, coeziunea urmă-
              O1,1                    O1, 2      O1, 3 ... O1, n −1      O1, n               reşte măsurarea intensităţii legăturilor dintre
                                                                                 
              O2,1                    O2 , 2     O2 ,3 ... O2, n −1       O2 , n             elementele unei clase. Pentru o anumită clasă
        M O = ...                                                                            de obiecte un nivel ridicat de coeziune se
                                                                                 
              On −1,1            On −1, 2 On −1, 3 ... On −1, n −1      On −1, n             asigură atunci când metodele definite folo-
                                                                                             sesc seturi similare de instanţe a variabilelor.
              On ,1
                                 On , 2 On , 3          ... On , n −1   On , n  
                                                                                               Conform analizelor realizate pe module cu
Pentru o mulţime de programe sursă scrise                                                      diferite nivele de coeziune, modulele cu ni-
într-un limbaj de programare orientat-obiect                                                   vele de coeziune mai puternice au mai puţi-
se determină un indicator agregat de ortogo-                                                   ne defecte raportate decât modulele cu nivele
nalitate pe baza valorilor din matricea MOM:                                                   de coeziune mai slabe.
          OS1,1               OS1, 2           OS1, 3 ... OS1, ns −1         OS1, ns      
                                                                                             Cercetările în domeniu au condus la identifi-
          OS 2,1              OS 2, 2          OS 2 ,3 ... OS 2, ns −1       OS 2, ns        carea a opt categorii generale ale coeziunii
 M OM   = ...                                                                             
                                                                                               [NICU03]: funcţională, informaţională, sec-
                                                                                          
          OS ns −1,1         OS ns −1, 2 OS ns −1, 3 ... OS ns −1, ns −1     OS ns −1, ns    venţială, comunicaţională, procedurală, tem-
                                                                                          
          OS ns ,1
                             OS ns , 2 OS ns , 3         ... OS ns , ns −1   OS ns , ns     porală, logică şi coincidentală.
unde: ns – numărul de texte sursă supuse                                                       Structura unui program este evidenţiată în
analizei comparative; OSi,j – indicator agre-                                                  termeni de module, funcţii, subrutine, metode
gat al ortogonalităţii două programe sursă                                                     sau proceduri. Stabilirea coeziunii acestor
scrise într-un limbaj de programare orientat-                                                  structuri impune analiza părţilor componente.
obiect, cu următoarea expresie analitică:                                                      Aceste elemente reprezintă una sau mai mul-
                                                                                               te linii de cod care dau obiectivele modulu-
                          ∏O                    . Pe baza valorilor cu-
             n ( n −1)
OS i , j =       2                      i, j                                                   lui. Legăturile dintre aceste componente de-
                         i =1, n
                          j =i +1, n                                                           termină nivelele de coeziune ale modulelor.
prinse în matricea MOM se desprind concluzii                                                   În [IVAN03] sunt definiţi indicatori de eva-
cu privire la modul de dezvoltare a produse-                                                   luare a coeziunii pentru sistemele software
lor program orientate-obiect, precum şi ca-                                                    orientate obiect.
racteristici de calitate a acestora.                                                           Coeziunea clasei de obiecte, pornind de la
                                                                                               atributele definite în aceasta, se determină
Coeziunea software                                                                             conform expresiei analitica a indicatorului Ca
                                                                                                                   n
Coeziunea reprezintă măsura în care elemen-
tele unei colectivităţi sunt legate unele de ce-
                                                                                                                 ∑ na    i
                                                                                               [IVAN03b]: Ca =    i =1
lelalte. Cu cât coeziunea are un nivel mai ri-                                                                     n ⋅ nac
dicat, cu atât este mai uşor de dezvoltat, în-                                                 unde: nai – numărul de atribute referite în ca-
treţinut şi refolosit modulul respectiv, fiind                                                 drul metodei i; n – numărul de metode defini-
mai puţin predispus la erori.                                                                  te în cadrul clasei; nac – numărul de atribute
În contextul programării procedurale, coezi-                                                   ale clasei de obiecte.
unea modulului este o caracteristică de calita-                                                Conform acestui indicator, coeziunea este
te software. Problema care se pune este de a                                                   maximă atunci când toate metodele clasei
conferi unui modul un nivel ridicat de calita-                                                 utilizează toate atributele definite.
te care să oferă performanţe ridicate pentru                                                   În cazul aplicaţiei Liste_simple valorile aces-
sistemul proiectat. Pentru asigurarea unui ni-                                                 tui indicator sunt date în tabelul următor:
vel ridicat a produselor program au fost in-
troduse metrici de coeziune, realizarea unui

                         Tabelul 2. Valorile indicatorului de coeziune în aplicaţia Liste_simple
                                       Nod                   ListaSimpla                   ListaOrdonata       Test1          Test2
         Ca                            0,66                      0,88                           0,81             0              0
96                                                           Revista Informatica Economică, nr.4(32)/2004


Gradul de conectivitate al metodelor clasei se        de obiecte, care se determină conform relaţi-
determină conform indicatorului LCC, având            ei: NP = N ⋅ ( N −1) , unde N reprezintă numărul
următoarea formă analitică [IVAN03a]:                             2
      NIC , unde: NIC – numărul de conexi-            de metode publice ale clasei de obiecte.
LCC =
       NP                                             Pentru aplicaţia Liste_simple valorile indica-
uni, directe sau indirecte, stabilite între me-       torului LCC sunt date în tabelul:
todele clasei de obiecte; NP – numărul ma-
xim de perechi de metode publice ale clasei
             Tabelul 3. Valoarea indicatorului de conectivitate a metodelor claselor
                                  pentru aplicaţie Liste_simple
                   Nod          ListaSimpla      ListaOrdonata         Test1           Test2
       LCC          0               0,05              0,07               0               0
Ponderea perechilor de metode publice ale             gram orientate-obiect, având în vedere ele-
clasei de obiecte, care folosesc aceleaşi atri-       mentele caracteristice analizei şi proiectării
bute, în numărul maxim de perechi de meto-            de software orientat-obiect.
de este: TCC = NDC , unde: NDC – numărul
                  NP                                  Bibliografie
de conexiuni directe între metodele clasei de         [CHID94] Shyam CHIDAMBER, Chris
obiecte; NP – numărul maxim de perechi de             KEMERER – A Metrics Suite for Object-
metode publice ale clasei de obiecte.                 Oriented Design, IEEE Transactions on Sof-
În cazul aplicaţiei Liste_simple valorile indi-       tware Engineering, June, 1994, pg. 476 – 492
catorului TCC sunt identice cu cele ale indi-         [IVAN04a] Ion IVAN, Marius POPA, Ro-
catorului LCC deoarece există numai legături          land DRĂGOI – Validarea ortogonalităţii
directe între metodele claselor de obiecte            firmelor şi emblemelor agenţilor economici,
construite în cadrul aplicaţiei. În practică, uti-    revista Studii şi Cercetări de Calcul Econo-
lizarea indicatorilor prezentaţi în paragrafele       mic şi Cibernetică Economică, 2004, în curs
anterioare este dificilă deoarece nu au la bază       de apariţie
modele empirice explicite.                            [IVAN04b] Ion IVAN, Marius POPA, Cris-
În ceea ce priveşte ortogonalitatea coeziunii,        tian TOMA, Iulian RĂDULESCU – The Ag-
se aplică aceleaşi etape prezentate în capito-        gregation of the Data Orthogonality Metrics,
lul anterior.                                         Proceedings of „The 35th International Sci-
                                                      entific Symposium of METRA”, vol. 1, Bu-
Concluzii                                             cureşti, 27 – 28 mai 2004, pg. 590 – 595
Determinarea ortogonalităţii aplicaţiilor in-         [IVAN03a] Ion IVAN, Constantin NICU-
formatice orientate-obiect oferă informaţii cu        LAE, Paul POCATILU – Metrici pentru eva-
privire la procesul de dezvoltare a acestora:         luarea coeziunii software orientat obiect, re-
reutilizare de componente în realizarea de noi        vista Studii şi Cercetări de Calcul Economic
aplicaţii sau versiuni ale unor produse exis-         şi Cibernetică Economică, Bucureşti, 2003
tente pe piaţă, evaluarea nivelului de calitate       [IVAN03b] Ion IVAN, Zsolt MARK, Paul
a noului software etc. Aplicarea metricilor şi        POCATILU, Marius POPA, Doru UNGU-
efectuarea analizei de ortogonalitate permit          REANU – Cohesion – Software Quality
asigurarea şi evaluarea unor caracteristici de        Characteristic, The 30th Session of Scien-
calitate în raport cu celelalte produse de pe         tific Presentations „Modern Technologies in
piaţă privind: eficienţa implementării proiec-        the XXI Century”, Academia Tehnică Milita-
tului produsului program; complexitatea; li-          ră, 6 – 7 noiembrie 2003, în format electronic
zibilitatea/utilitatea   programului        sursă;    pe suport CD, ISBN 973-640-012-3
reutilizabilitatea/aplicabilitatea aplicaţiei; tes-   [NICU03] Constantin NICULAE – Coeziu-
tabilitatea/mentenanţa aplicaţiei. Viitoarele         nea – caracteristică de calitate software, Lu-
direcţii de cercetare vizează stabilirea catego-      crare de licenţă, ASE, Bucureşti, 2003
riilor de ortogonalitate pentru produse pro-

								
To top