.


:




:

































 

 

 

 





, . , , . . UML (sequence diagram). , .

(system sequence diagram) , , , , . " ". , . , . - , "" , .

: , - . " " . . () UML , .

(system event) , . . (system operation) , . (contract) , , , , . (system operation contract) .

23. . : .

(collaboration diagrams) . , . , , .

, , UML . , , UML , . UML, "" , . - , .

, . , " " , . , . , .

. UML . ; . , . , .

24. :

.

. , , , , , . , - , , .

, , , .

;

;

, , .

- .

25. : .

, , - , , , .

. , . , - , .

, , - , .

;

.

 

26. : , .

UML . . 2 :

1. ;

2. .

:

- ;

- ;

- .

:

- (, );

- ;

- ;

.

- , .

, .

. 2 : () ().

(, , ). . . . .

:

,

, , ,

, , , . , .

.

27. : Creator.

- , .

: .

: , , :

- ;

- ;

- ;

- ;

- , ;

, .

, . , . , . . , , .

: , , .

28. : Expert

- , .

: .

: , , .

, . , . , .

: , .

: , ; , , , .

29. : Observer ().

--, .

: . .

:

-

-

- ,

: . . , . , , .

. . .

:

30. : Controller.

: ?

: , :

1. ( )

2. ( )

3. , ( )

4. ( )

, , , .

, .

. .

, , , . , . , , .

Controller .

:

1.

2.

, , , .

:

1. , , . .

2. , .

3. , , , .

:

1. .

2. , .

:

1. .

2. Command.

Command, execute. , , . execute, .

31. : Command.

:

: , . :

1. ( )

2. ( )

3. ( )

4. ( )

-.

: , ,

 

 

32. - .

- .

- . LOC (lines of code) . .

 

, .-. , . $ KLOC, . LOC , .
001     12,1      
bb02     27,2      

 

1.

 

2.

 

3.

 

4.

: .

:

1. ;

2. , ;

3. .

 

33. .

5 :

1. ;

2. ;

3. , ;

4. ;

5. , .

 

34. :

. . . . , . (data tokens), . .

. . , .

(Class Slice Abstraction) CSA(C) . .

, .

, .

(StrongData Cohesion) , , . , , :

,

SG (CSA(C)) , () .

, .

(Weak Data Cohesion) , , . , . :

,

G (CSA(C)) . . (Data Adhesiveness). , , . :

.

35. :

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

. Stack. , . .

Stack

, top Stack, Push, Pop, Vtop IsEmpty. , . , Size Pop : Size Push, , , Pop. Stack , . , . , , . , . .

.

() , .

, . , , . , , DU(M).

, : 1) ', ( ) ; 2) , ', , .

, , IU().

:

AM () = DU () IU ().

() , . :

() = [[AM (M) | M V () ]],

V(C) .

, - , . ( ).

LAC(C) , , . :

LAC (C) =[[AM (M)|M LV (C) ]],

LV (C) , .

, . 14.2, :

AC (Stack) = [[{top}, {size}, {array, top}, {array, top, size}, {pop}]].

Stack , :

AC (Stack) = LAC (Stack)

NP (C) AC (C). NP . N , NP (C) = N*(N- l)/2. :

ü NDC (C) AC(Q;

ü NIC (C) ().

:

ü (Tight Class Cohesion ()) :

() = NDC () / NP ();

ü (Loose Class Cohesion (LCC)) :

LCC () = (NDC () + NIC ()) / NP ().

, :

LCC (C) >=TCC (C).

Stack :

TCC(Stack)=7/10=0,7

LCC(Stack)=10/10=l

, 70% Stack , LCC , Stack .

LCC . , . , , . , . , .

 

36. : -

. . , [77].

- , . - . , . . .

- . , , . , , .

, - . , . , , . . , , . . (, , , ). : - .

- , . .

CDBC (Change Dependency Between Classes) , - SC (server class) . , - (client class) , CDBC , SC.

CDBC :

ü - - ( CS );

ü CS ( ).

. 14.3, , , .

 
SC SC SC /- SC SC /- SC n j n j n

, , - SC, - , . : SC , , , . , SC . -, (0 < k < 1). (1 - k).

CDBC :

;

CDBC(CC, SC) = min(n, A).

CDBC:

1) -;

2) - ( public, protected, private).

LD (Locality of Data) , , . , . , .

LD , .

C++. Mi(1 i n) . / . :

,

:

ü Li(1 i n) , Mi ( /). : ; ; , Mi;

ü Ti(1 i n) , Mi, , Mi.

, Mi , .

, , ( , Li), . , , CDBC.

37. :

1: (Weighted Methods Per Class)

C n c1, c2, c3, , cn

WMC = ∑ ci

ci=1, WMC .

2: DIT (Depth of Inheritance Tree)

.

3: NOC (Number of children)

.

7 .

4: CBO (Coupling between object classes)

, .

5: RFC (Response For a Class)

+ , .

6: LCOM (Lack of Cohesion in Methods)

, .

;

.

Ij , Mj

, =card{Iij|IiIj=0}

= card{Iij|IiIj<>0}

LCOM= -, ( >) 0,

, .. . , , .

 

38. :

,

4

1. CS (Class Size)

: 1. , ; 2. , .

, , .. . CS<=20 .

2. , , NOO (Number of Operations Overridden by a Subclass)

NOO<=3 .

3. , , NOA (Number of Operations Added by a Subclass)

. SC = 20 DIT=6 NOA<4 .

4. SI (Specialization Index)

SI = (NOO*)/M

M .

SI<=0,15

-

5. OSAVG (Average Operation Size)

OSAVG<=9

6. OC (Operation Complexity)

(. ).

OC<=65

7. NPAVG

=0,7





:


: 2017-01-21; !; : 1269 |


:

:

, .
==> ...

1921 - | 1748 -


© 2015-2024 lektsii.org - -

: 0.183 .