Một số khỏi niệm

Một phần của tài liệu Đo sản phầm phần mềm xây dựng trong môi trường hướng đối tượng (Trang 32 - 35)

− Một đối tượng trong hệ thống được biểu diễn bởi:

X = <x, p(x)> trong đú x là dấu hiệu hay tờn để nhận dạng X trong hệ thống, p(x) là tập hữu hạn cỏc thuộc tớnh và phương thức của đối tượng.

− Cố kết (cohesion) là sự liờn quan, gắn bú giữa cỏc thành phần trong cựng một lớp. Đõy là một thuộc tớnh quan trọng. Xu hướng tốt là tăng tớnh cố kết giữa cỏc phương thức trong một lớp sẽ đảm bảo sự thực hiện ẩn, tăng khả năng bảo trỡ.

σ(M1, M2) = I1∩ I2 trong đú:

σ(M1, M2): mức độ liờn quan giữa phương thức M1 và M2 Ii : tập cỏc biến được sử dụng bởi Mi

Vớ dụ: I1 = {a, b, c, d, e} và I2 = {a, b, e} thỡ σ(M1, M2) = {a, b, e}.

Nếu một lớp cú nhiều phương thức cựng tỏc động lờn một tập cỏc biến, ta núi lớp đú cú tớnh cố kết cao.

− Kết dớnh (coupling) là sự liờn quan gắn bú giữa cỏc thực thể trong hệ thống (đối tượng). Một lớp được gọi là kết dớnh với một lớp khỏc nếu nú phụ thuộc vào lớp ấy, vớ dụ nú truy cập vào thuộc tớnh hay kớch hoạt phương thức của lớp khỏc. Cỏc lớp cú tớnh kết dớnh cao khụng thể coi là một thành phần độc lập của hệ thống. Khi sửa chữa cỏc lớp này, cỏc thành phần khỏc của hệ thống cũng cú khả năng phải sửa chữa theo. Tớnh kết dớnh nhỏ thể hiện một thiết kế tốt, làm tăng tớnh độc lập giữa cỏc modul, tăng khả năng tỏi sử dụng.

Giả sử ta cú 2 đối tượng X = <x, p(x)>, Y = <y, p(y)> p(x) = MX∪ IX

p(y) = MY∪ IY

trong đú Mi là tập cỏc phương thức và Ii là tập cỏc thuộc tớnh của đối tượng i. Kết dớnh là sự kiện MX gọi MY hay MX truy cập IY và ngược lại. Một phương thức của lớp X nếu gọi tới phương thức hay sử dụng thuộc tớnh của lớp Y thỡ X cú tớnh kết dớnh với Y.

− Độ phức tạp của một lớp: độ phức tạp của một đoạn mó lệnh tỷ lệ với cụng sức cần để hiểu, viết ra nú hay sửa chữa đoạn mó lệnh đú. Tuy nhiờn việc đo trực tiếp giỏ trị đú là khụng thể thực hiện được. Chỳng ta dựng một cỏch đo tương đối bằng cỏch cộng độ phức tạp của cỏc phương thức trong lớp đú ta được độ phức tạp của lớp. Độ đo này gọi là WMC (Weighted Method per Class). Độ phức tạp của một phương thức cú thể đo bằng số dũng mó lệnh (LOC - lines of code) hoặc độ phức tạp cyclomatic. Độ phức tạp cyclomatic dựa vào tổng số cỏc con đường đi độc lập qua đồ thị điều khiển của chương trỡnh. Trường hợp đơn giản, WMC của một lớp chỉ cần tớnh bằng tổng số cỏc phương thức trong lớp đú, độ phức tạp của mỗi phương thức bằng 1.

Độ phức tạp của <x, p(x)> = |p(x)| (|p(x)| là lực lượng của p(x) ).

− Cõy thừa kế : Cõy thừa kế là đồ thị cú hướng khụng cú chu trỡnh với cỏc lớp là cỏc nỳt, gốc và lỏ. Thừa kế là một tớnh chất quan trọng của lập trỡnh hướng đối tượng. Sử dụng thừa kế rỳt ngắn thời gian phỏt triển qua việc sử dụng lại mó. Tuy nhiờn sử dụng thừa kế nhiều sẽ gõy khú khăn cho việc thiết kế và bảo trỡ. Hai độ đo tớnh thừa kế được giới thiệu là độ sõu và độ rộng của cõy thừa kế. - Độ đo chiều sõu cõy thừa kế (Depth of Inheritance Tree – DIT). Độ sõu

thừa kế của một lớp là chiều dài đường đi từ nỳt của lớp đú đến lớp là gốc của cõy thừa kế. Độ sõu này càng lớn thỡ lớp hậu duệ càng cú khả năng cú nhiều thuộc tớnh và phương thức thừa kế, càng khú kiểm soỏt cỏc hành vi

của nú. Độ sõu lớn đồng nghĩa với độ phức tạp thiết kế tăng, nhưng cũng đồng thời tăng tớnh tỏi sử dụng.

- Độ đo số con của một lớp (Number Of Children – NOC) là số lớp được thừa kế trực tiếp từ lớp đú. Nú biểu hiện tiềm năng ảnh hưởng của một lớp lờn toàn hệ thống. Một lớp cú nhiều con sẽ cần được kiểm tra kỹ lưỡng vỡ chất lượng của nú ảnh hưởng đến cỏc con. Độ đo này ảnh hưởng đến việc đỏnh giỏ thiết kế, kiểm tra, tỏi sử dụng.

− Thụng điệp giữa cỏc lớp: Cỏc đối tượng tương tỏc qua sự trao đổi cỏc thụng điệp. Đối tượng đỏp lại thụng điệp bằng cỏch kớch hoạt một phương thức cú chức năng xử lý thụng điệp đú. Như vậy cỏc phương thức là sự đỏp lại cỏc thụng điệp mà lớp nhận được.

RFC (Responce set For a Class) = tập tất cả cỏc phương thức cú thể bị kớch hoạt để đỏp lại thụng điệp mà lớp nhận được.

RFC cú thể gồm cả những phương thức bờn ngoài lớp vỡ lớp cú thể gọi cỏc phương thức bờn ngoài lớp để đỏp lại cỏc thụng điệp. Tập này là hữu hạn vỡ số phương thức của mỗi lớp là hữu hạn và số lớp cũng là hữu hạn. Trong pha triển khai hay bảo trỡ, tập này cú thể thay đổi khi cỏc lớp được tạo thờm cỏc chức năng xử lý thụng điệp mới.

− Tổ hợp cỏc lớp: Thiết kế lớp một quỏ trỡnh lặp lại cỏc hoạt động: tạo lớp con (tạo lớp mới dựa trờn cỏc lớp đó cú), phõn chia (chia nhỏ một lớp thành cỏc lớp nhỏ hơn), tổ hợp (nhúm cỏc lớp đó cú vào trong một lớp mới). Tổ hợp của hai lớp là một lớp bao gồm cỏc thuộc tớnh của cả hai lớp con hợp lại.

Giả sử X = <x, p(x)> và Y = <y, p(y)> là hai lớp, thế thỡ X+Y được ký hiệu là Z = <z, p(z)> trong đú p(z) = p(x) ∪ p(y).

Giả sử lớp foo_a cú cỏc thuộc tớnh (phương thức và biến) a, b, c, d và lớp foo_b

cú cỏc thuộc tớnh a, l, m, n thỡ foo_a + foo_b cú cỏc thuộc tớnh là a, b, c, d, l, m, n.

Kết quả của sự tổ hợp là một khụng gian trạng thỏi thống nhất cho cỏc phương thức và biến cho hai lớp cũ, loại bỏ cỏc thụng điệp giữa hai lớp thành phần trước đõy.

2.1.2 Cỏc tớnh chất của phộp đo hướng đối tượng.

Cho lớp P và hệ đo à, luụn luụn cú thể tỡm được lớp Q sao cho à(P) <> à(Q). Tớnh chất này nghĩa là tất cả mọi lớp khụng thể cú cựng độ đo, nếu khụng sẽ mất ý nghĩa là một phộp đo.

2. Tớnh khụng duy nhất

Cú thể tồn tại lớp P và lớp Q sao cho à(P) = à(Q). Điều đú nghĩa là hai lớp khỏc nhau cú thể cú chung một độ đo, vớ dụ hai lớp cú cựng độ phức tạp.

3. Tớnh phụ thuộc vào chi tiết thiết kế

Hai lớp P và Q cú cựng chức năng khụng đảm bảo rằng à(P) = à(Q). Chi tiết của việc thiết kế lớp mới ảnh hưởng quyết định đến độ đo của lớp. (adsbygoogle = window.adsbygoogle || []).push({});

4. Tớnh đơn điệu

Với hai lớp P và Q, tớnh chất sau phải được thỏa món: à(P) < à(P+Q) và à(Q) <

à(P+Q), trong đú P+Q là lớp tổ hợp của hai lớp P và Q. Độ đo của lớp tổ hợp khụng bộ hơn độ đo của hai lớp thành phần.

5. Tớnh khỏc nhau của tương tỏc

∃ P, ∃ Q, ∃ R thỏa món:

à(P) = à(Q) nhưng à(P+R) <> à(Q+R).

Tương tỏc giữa lớp P và lớp R khỏc với tương tỏc giữa lớp Q và lớp R dẫn đến độ đo khỏc nhau của hai lớp tổ hợp P+R và Q+R.

6. Tương tỏc làm tăng độ phức tạp

∃ P và ∃ Q thỏa món:

à(P) + à(Q) < à(P+Q)

Khi hai lớp được tổ hợp, sự tương tỏc giữa cỏc lớp cú thể làm tăng giỏ trị độ đo.

2.1.3 Cỏc phộp đo trong hệ đo CK

Trong phần này chỳng ta trỡnh bày nhúm cỏc phộp đo do Chidamber, Kemerer đề xuất gồm cú WMC, DIT, NOC, CBO, RFC, LCOM. Để đơn giản, chỳng ta bỏ qua chứng minh cỏc độ đo này thỏa món 6 tớnh chất nờu trờn. Cỏc kết quả đo thực nghiệm được trỡnh bày trong chương 4.

Một phần của tài liệu Đo sản phầm phần mềm xây dựng trong môi trường hướng đối tượng (Trang 32 - 35)