.


:




:

































 

 

 

 





 

1994 . . (Chidamber ) , [24]. - () . , , .

- . .

1: WMC (Weighted Methods Per Class)

 

, 1...,c2,..., n. (, ). , 1.

. , , ( ). , . WMC .

. i = 1, WMC .

, . .

1. . . , . , , . , , . (, ), .

2. , , . ( ).

. , , . .

. . .

WMC . , , . . , . , 8 Smalltalk 24 C++ [45]. , , , ; , .

2: DIT (Depth of Inheritance Tree)

 

DIT . . 14.3 DIT 3.

. 14.3.

 

, DIT, .

DIT , . . ( DIT) , .

, DIT , .

3: NOC (Number of children)

 

, , . NOC , . . 14.3 2 21 22.

NOC , .

NOC . , .

, . NOC , .

DIT NOC . - , . . , : , 7 2 , , 7 + 2 [22].

4: (Coupling between object classes)

 

, , , . , .

: ; .

.

, , . , , .

, . , , , . .

. .

5: RFC (Response For a Class)

 

. RS , . RS

,

{Ri} , , {} .

RFC , :

RFC card{RS}.

: RFC , .

RFC , . .

, , , .

RFC . .

6: LOM (Lack of Cohesion in Methods)

 

( ). LCOM , (). , LCOM = 0.

:

q ;

q .

q Ij , j

,

= card { Iij | Ii Ij = 0},

= card {Iij | Ii Ij 0}.

-: LCOM , , , .

LCOM.

1: : M1, M2, 3, 4. :

I1={a, b}; I2={, }; I3={, }; I4={, }.

= card (I13, I14, I23, I24, I34) = 5; = card (I12) = 1.

LCOM = 5-1=4.

2: : M1, M2, 3. :

I1 = {a,b};I2={a,c};I3={x,y},

= card (I13, I23) = 2; = card (I12) = 1,

LCOM = 2- 1 = 1.

, . LCOM , . , .

LCOM , , , ( ). LCOM , .

: , LCOM.

- -. , . .

WMC . . , . :

1) :

Set_interval (min. max)

Setjnethod (method)

Set_precision (precision)

Set_function_to_integrate (function)

Integrate;

2) :

Integrate (function, min, max. method, precision)

WMC2:

.

WMC2 = 5 , . , WMC = 5, WMC = 1.

ANAM (Average Number of Arguments per Method):

ANAM = WMC2/WMC.

ANAM . - , .

, LCOM. LCOM :

LCOM = max (0, - ),

NL :

NLCOM = /( + ).

: 0 NLCOM 1, NLCOM 1, .

- . BIH (Behaviourial Information Hiding):

BIH - (WEOC/WIEOC),

WEOC ( WMC);

WIEOC .

WIE , WMC, , . BIH = 1, . IM, . BIH . , , BIH, , 1. WMC BIH, 1, , .





:


: 2016-10-06; !; : 503 |


:

:

, .
==> ...

1545 - | 1401 -


© 2015-2024 lektsii.org - -

: 0.021 .