LCOM (Lack of Cohesion in Methods)

Một phần của tài liệu đánh giá độ tin cậy phần mềm (Trang 37)

Định nghĩa: Giả sử lớp C1 cú n phương thức M1, ...., Mn. Gọi {Ij} = tập cỏc biến được sử dụng bởi phương thức Mi. Gọi P = {(Ii, Ij)| Ii∩Ij = ∅} và Q = {(Ii, Ij)| Ii

∩Ij <> ∅}.

LCOM = |P| - |Q|, nếu |P| > |Q| = |P| - |Q|, nếu |P| > |Q| 0, ngược lại 0, ngược lại

í nghĩa: LCOM thể hiện sự tương tự giữa cỏc phương thức trong cựng một lớp. Mức độ tương tự giữa hai phương thức là:

σ() = I1∩I2, trong đú I1 và I2 là cỏc biến do M1 và M2 sử dụng.

LCOM là hiệu số của số cặp lớp cú độ tương tự là 0 trừ đi số cặp lớp cú độ tương tự khỏc 0. Càng cú nhiều phương thức giống nhau thỡ lớp đú càng cú tớnh cố kết cao, bởi vỡ cố kết là mối liờn hệ giữa cỏc thành phần trong cựng một lớp.

Quan niệm trực giỏc về LCOM:

− Nếu một lớp cú tớnh cố kết thấp thỡ lớp đỳ nờn được chia nhỏ thành cỏc lớp con.

− Tớnh cố kết thấp làm tăng độ phức tạp, tăng khả năng xảy ra lỗi trong quỏ trỡnh phỏt triển.

− LCOM là mức độ thiếu cố kết giữa cỏc phương thức trong một lớp, giỏ trị càng bộ thể hiện một thiết kế lớp càng tốt.

2.1.4 Tổng kết về cỏc phộp đo CK:

Mỗi phộp đo CK liờn quan đến một khớa cạnh của cỏch tiếp cận hướng đối tượng. WMC, DIT và NOC liờn quan đến bước đầu tiờn của quỏ trỡnh thiết kế lớp, (xỏc định cỏc lớp), WMC thể hiện độ phức tạp cũn DIT và NOC liờn quan đến vị trớ của lớp trong sơ đồ thiết kế lớp. WMC va RFC thể hiện tiềm năng đỏp lại cỏc thụng điệp từ bờn ngoài của lớp. LCOM thể hiện tớnh đúng gúi và bao bọc dữ liệu, tớnh cố kết giữa cỏc thành phần trong lớp. WMC, RFC và LCOM liờn quan đến bước thứ hai của quỏ trỡnh thiết kế lớp (xỏc định ý nghĩa của cỏc lớp). RFC và CBO là độ đo thể hiện mức độ trao đổi thụng tin giữa cỏc lớp qua số lớp kết dớnh và số phương thức được gọi tới, chỳng liờn quan đến bước thứ ba của quỏ trỡnh thiết kế lớp.

Độ đo Xỏc định cỏc lớp Xỏc định ý nghĩa cỏc lớp

Mối quan hệ giữa cỏc lớp WMC √ √ DIT √ NOC √ RFC √ √ CBO √ LCOM √

Bảng 2.1: Vai trũ của cỏc độ đo CK trong cỏc giai đoạn thiết kế lớp

Sử dụng cỏc độ đo CK trong quỏ trỡnh phỏt triển phần mềm hướng đối tượng giỳp cho nhà quản lý kiểm soỏt và cú thể cú cỏc cải tiến. Sử dụng WMC, DIT và NOC giỳp nhà quản lý xỏc định xem liệu cú nhiều lớp cha quỏ hay liệu cỏc lớp cha cú nhiều phương thức quỏ hay khụng (cỏc lớp cú nhiều phương thức thỡ thớch hợp cho ứng dụng cụ thể, tớnh sử dụng lại thấp). Sử dụng RFC và CBO kiểm soỏt sự trao đổi thụng điệp giữa cỏc thành phần trong hệ thống. Cỏc độ đo này sẽ thay đổi theo quỏ trỡnh phỏt triển phần mềm, khi bổ xung thờm lớp mới, khi bổ xung thờm thụng điệp giữa cỏc lớp. Kiểm soỏt cỏc độ đo này trong vũng đời phần mềm giỳp nhà quản lý kiểm soỏt được tiến triển của hệ thống hướng đối tượng.

2.1.5 Một vớ dụ về cỏc phộp đo CK

Để minh họa cho cỏc phộp đo nờu ở trờn, ta đưa ra một vớ dụ minh họa sử dụng cỏc phộp đo đú. Tập lồi (convex set) cú 2 con là polygon và ellipse. Polygon cú một phương thức tớnh chu vi perimeter. Cỏc con của nú đều thừa kế phương thức này.

Hỡnh 2.1: Vớ dụ minh họa về cỏc phộp đo CK - Weighted Method per Class (WMC)

Để đơn giản, quy ước WMC được tớnh bằng số phương thức của mỗi lớp WMC (POLYGON) = 2

- Responce for a Class (RFC)

Ta đếm số phương thức cú thể bị kớch hoạt đỏp lại một thụng điệp. Với lớp Triangle cú phương thức area cú thể kớch hoạt 3 phương thức của cỏc lớp con nờn

RFC (Triangle) = 3

- Coupling Between Object (CBO)

Lớp Polygon khụng phụ thuộc vào lớp khỏc (khụng kể lớp thừa kế) nờn CBO (Polygon) = 0

- Depth of Inheritance Tree (DIT) DIT (Polygon) = 1

- Number of Children (NOC) NOC (Polygon) = 2

Một số kết quả thực hiện cỏc phộp đo CK được trỡnh bày trong chương 4.

2.2 Mụ hỡnh đỏnh giỏ chất lượng phần mềm hướng đối tượng.

Mụ hỡnh đỏnh giỏ chất chất lượng sản phẩm phần mềm hướng đối tượng dựa trờn mụ hỡnh ISO 9126 và FCM. Cỏc mụ hỡnh ISO 9126 và FCM chưa hoàn chỉnh do chưa chỉ ra cụ thể cỏc nhõn tố nào ảnh hưởng đến thuộc tớnh chất lượng, ngoài ra cũng chưa biết với mỗi nhõn tố dựng cỏc tiờu chuẩn và độ đo nào. Một số mụ hỡnh được phỏt triển từ ISO 9126 và FCM cho phần mềm hướng đối tượng như REBOOT, QMOOD. Mụ hỡnh REBOOT phỏt triển từ FCM, đề xuất hai nhõn tố cần đo là chất lượng và khả năng tỏi sử dụng. Mụ hỡnh QMOOD (Quality Model for Object Oriented Design) xỏc định cụng thức liờn hệ giữa cỏc thuộc tớnh chất lượng bờn ngoài với cỏc thuộc tớnh trong như cố kết, kết dớnh, thừa kế. Điểm khỏc là QMOOD tiến hành ở pha thiết kế, cũn REBOOT lại thực hiện khi đó cú mó lệnh.

Mụ hỡnh REBOOT (ReusE Based on Object Oriented Technology) (adsbygoogle = window.adsbygoogle || []).push({});

REBOOT (mụ hỡnh sử dụng lại cho phần mềm hướng đối tượng) là kết quả nghiờn cứu của dự ỏn Espirit2 [20]. Nhúm nghiờn cứu đưa ra mụ hỡnh chung để đỏnh giỏ khả năng sử dụng lại và chất lượng dựa trờn mụ hỡnh FCM. Trong quỏ trỡnh thiết lập mụ hỡnh, để xỏc định xem cỏc độ đo (thuộc tớnh trong) nào ảnh hưởng lờn chất lượng và tớnh sử dụng lại (thuộc tớnh ngoài), họ tiến hành thăm dũ ý kiến của cỏc chuyờn gia phần mềm tại năm nước chõu Âu tham gia vào dự ỏn Espirit2. Cỏc chuyờn gia cho ý kiến về tầm quan trọng của cỏc thuộc tớnh, nhõn tố đối với chất lượng phần mềm. Sau đú nhúm REBOOT đó xõy dựng lờn mụ hỡnh đỏnh giỏ tớnh sử dụng lại và mụ hỡnh đỏnh giỏ chất lượng.

Hỡnh 2.2: Mụ hỡnh REBOOT

Hỡnh 2.2 thể hiện cỏc thuộc tớnh được đỏnh giỏ trong mụ hỡnh QMOOD. Mụ hỡnh REBOOT đỏnh giỏ hai thuộc tớnh là tớnh sử dụng lại và chất lượng thành phần. Thuộc tớnh sử dụng lại được chia thành bốn nhõn tố, thuộc tớnh chất lượng được chia thành hai nhõn tố, cỏc nhõn tố này lại được xỏc định qua cỏc tiờu chuẩn, mức dưới cựng để xỏc định cỏc tiờu chuẩn là cỏc độ đo, cỏc độ đo này do người sử dụng lựa chọn. Mụ hỡnh REBOOT sử dụng 35 độ đo trong đú cú 15 độ đo hướng đối tượng.

Cỏc thụng số được chuẩn húa về giỏ trị nằm giữa 0 và 1. Nếu giỏ trị nằm gần 0 thỡ thuộc tớnh đú cú vấn đề, nếu càng gần 1 càng tốt. Cỏc thuộc tớnh mức cao được tớnh qua cỏc thuộc tớnh mức thấp, mức cuối cựng là cỏc độ đo. Tổng cỏc hệ số của một cụng thức biểu diễn thuộc tớnh mức cao qua cỏc thuộc tớnh ở mức thấp hơn bằng 1. Vỡ thế ta chỉ cần tiến hành chuẩn húa cỏc thuộc tớnh nằm ở mức thấp nhất là cỏc độ đo về giỏ trị nằm giữa 0 và 1. Trong mụ hỡnh FCM cú ba dạng hàm để tiến hành chuẩn húa:

Hàm tuyến tớnh Hàm giới hạn trờn Hàm giỏ trị tối ưu

f(a) = 1 ; f(b) = 0 f(a) = 0.99 ; f(a+b) = 0.5 f(a)=1 ; f(a+b) = f(a-b) = 0.5

Bảng 2.2: Cỏc dạng hàm chuẩn húa độ đo

Với mỗi độ đo muốn chuẩn húa, ta cần xỏc định dạng chuẩn húa (thuộc một trong ba loại trờn). Vớ dụ như độ đo WMC cú thể dựng hàm chuẩn húa là dạng thứ hai (hàm giới hạn trờn) vỡ độ phức tạp của lớp càng thấp càng tốt. Ngoài ra ta cũng phải xỏc định cỏc ngưỡng a và b cho hàm chuẩn húa. Chẳng hạn với WMC thỡ ta cú thể đặt ngưỡng a = 3, b = 20. Cỏc tham số x và y được xỏc định bằng cỏch thay f(a) và f(b) vào f(m).

Mụ hỡnh QMOOD (Quality Model for Object Oriented Design).

QMOOD (mụ hỡnh chất lượng đỏnh giỏ thiết kế hướng đối tượng) [18] là mụ hỡnh để đỏnh giỏ cỏc thuộc tớnh ngoài như: khả năng sử dụng lại, chức năng, tớnh hiệu quả của sơ đồ thiết kế hướng đối tượng dựa trờn cỏc thuộc tớnh trong (độ đo) trờn cỏc thành phần. Trong mụ hỡnh QMOOD, cỏc độ đo được xỏc định dựa trờn cỏc thành phần của sơ đồ thiết kế hướng đối tượng như là cỏc lớp, mối liờn hệ giữa cỏc lớp. Dựa trờn độ đo của từng lớp, chỳng ta xỏc định cỏc độ đo cho sơ đồ thiết kế tổng thể hệ thống. Cú 12 tiờu chuẩn thể hiện tớnh chất hướng đối tượng vớ dụ như trừu tượng húa (abstraction), bao bọc dữ liệu (encapsulation), kết dớnh (coupling), cố kết (cohesion)... Mụ hỡnh QMOOD thể hiện mối liờn hệ giữa cỏc nhõn tố chất lượng như: sử dụng lại, chức năng, ... qua cỏc tiờu chuẩn thể hiện tớnh chất hướng đối tượng. Cỏc mối liờn hệ và hệ số giữa chỳng được xỏc định dựa trờn ý kiến cỏc chuyờn gia về tầm ảnh hưởng của cỏc thuộc tớnh trong lờn

cỏc thuộc tớnh ngoài. Mụ hỡnh QMOOD đó được dựng để đỏnh giỏ một số hệ thống thương mại được phỏt triển hướng đối tượng [14].

QMOOD sử dụng 12 tiờu chuẩn thể hiện tớnh hướng đối tượng (xem bảng 2.3) Mỗi thuộc tớnh hướng đối tượng được cụ thể húa qua một độ đo, cỏc độ đo này liờn quan đến pha thiết kế.

Tiờu chuẩn Độ đo

Kớch thước thiết kế Kớch thước thiết kế trong cỏc lớp (DSC) Cỏc mức phõn cấp Số cỏc mức phõn cấp (NOH)

Trừu tượng Trung bỡnh số cỏc lớp cha (ANA)

Đúng gúi Truy cập dữ liệu (DAM)

Tớnh độc lập Tớnh độc lập chức năng (MFM) Kết dớnh Kết dớnh trực tiếp giữa cỏc lớp (DCC)

Cố kết Cố kết giữa cỏc phương thức trong lớp (CAM)

Tổ hợp Sự kết hợp giữa cỏc lớp (MOA)

Thừa kế Trừu tượng chức năng (MFA)

Đa hỡnh Số phương thức đa hỡnh (NOP)

Thụng điệp Kớch thước giao diện lớp (CIS) Độ phức tạp Số cỏc phương thức (NOM)

Bảng 2.3: Cỏc tiờu chuẩn và độ đo trong mụ hỡnh QMOOD.

Cỏc hệ số thể hiện mối liờn hệ giữa cỏc thuộc tớnh trong qua cỏc thuộc tớnh ngoài nằm giữa khoảng –1 và 1. Hệ số dương thể hiện mối liờn hệ ảnh hưởng tớch cực, vớ dụ tớnh cố kết tăng thỡ tăng khả năng sử dụng lại, ngược lại hệ số õm thể hiện ảnh hưởng tiờu cực. Vớ dụ như:

Khả năng tỏi sử dụng = 0.5 * Kớch thước thiết kế - 0.25 * Kết dớnh + 0.25 * Cố kết + 0.5 *

Thụng điệp.

Khả năng tỏi sử dụng

Tớnh mềm dẻo

Khả năng hiểu Chức năng Khả năng mở rộng Hiệu quả Kớch thước thiết kế 0.5 -0.33 0.22 Cỏc mức phõn cấp 0.22 Trừu tượng -0.33 0.50 0.20 Đúng gúi 0.25 0.33 0.20 Tớnh độc lập Kết dớnh -0.25 -0.25 -0.33 -0.50 Cố kết 0.25 0.33 0.12 Tổ hợp 0.50 0.20 Thừa kế 0.50 0.20 Đa hỡnh 0.50 -0.33 0.22 0.50 0.20 Thụng điệp 0.50 0.22 Độ phức tạp -0.33 Tổng +1.0 +1.0 -1.0 +1.0 +1.0 +1.0

Bảng 2.4: Mối liờn hệ giữa cỏc thuộc tớnh ngoài và thuộc tớnh trong của mụ hỡnh QMOOD (adsbygoogle = window.adsbygoogle || []).push({});

Khả năng tái sử dụng

Kích thước thiết kế NOC

Tính mềm dẻo Khả năng hiểu Chức năng Khả năng mở rộng Hiệu quả Các mức phân cấp Trìu tượng Đóng gói Kết dính Cố kết Tổ hợp Kế thừa Đa hình Thông điệp Độ phức tạp NOH ANA DAM DCC CAM MOA MFA NOP CIS NOM

Nhân tố chất lượng Tiêu chuẩn Độ đo

Hỡnh 2.3: Mụ hỡnh QMOOD.

Bảng 2.4 liệt kờ cỏc hệ số liờn hệ giữa cỏc độ đo dựng trong mụ hỡnh QMOOD. Mụ hỡnh QMOOD dựa trờn mụ hỡnh ISO 9126 nờn QMOOD cũng chia thuộc tớnh chất lượng thành 6 nhõn tố là khả năng tỏi sử dụng, tớnh mềm dẻo, khả năng hiểu, chức năng, khả năng mở rộng, hiệu quả (hỡnh 2.3).

Kết luận chương 2:

Trong chương này chỳng ta đó tỡm hiểu cỏc phộp đo CK cho phần mềm hướng đối tượng, cỏc phộp đo này thể hiện tớnh hướng đối tượng của sản phẩm, số

lượng ớt (6 độ đo) và dễ thu thập nờn cú nhiều triển vọng được sử dụng để đỏnh giỏ phần mềm.

Cú nhiều mụ hỡnh được đề xuất để đỏnh giỏ phần mềm hướng đối tượng. Trong số đú nổi bật là cỏc mụ hỡnh REBOOT, QMOOD. Muốn chứng minh được tớnh đỳng đắn để cú thể đem ỏp dụng rộng rói những mụ hỡnh đú trong quỏ trỡnh phỏt triển phần mềm, chỳng cần được nghiờn cứu kỹ hơn về mặt lý thuyết và cần nhiều kết quả đo thực nghiệm sử dụng cỏc mụ hỡnh để kiểm định chỳng.

Xuất phỏt từ nguyờn nhõn cú nhiều phộp đo và mụ hỡnh đỏnh giỏ phần mềm hướng đối tượng được đề xuất, chỳng tụi đề xuất một quy trỡnh đỏnh giỏ phần mềm hướng đối tượng cú tớnh mở để người sử dụng cú thể tạo dựng mụ hỡnh đỏnh giỏ phần mềm phự hợp với mụi trường và yờu cầu cụ thể. Vấn đề về quy trỡnh đỏnh giỏ này và xõy dựng cụng cụ trợ giỳp đo phần mềm hướng đối tượng được trỡnh bày trong chương tiếp theo.

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM TRỢ GIÚP ĐO PHẦN MỀM

HƯỚNG ĐỐI TƯỢNG

3.1 Phõn tớch cỏc yờu cầu

Cỏc mụ hỡnh đỏnh giỏ chất lượng dựa trờn mụ hỡnh ISO 9126 và FCM cú nhược điểm là khú chứng minh về mặt lý thuyết, cỏc thuộc tớnh được sử dụng trong cỏc mụ hỡnh khụng thống nhất nhau. Ngoài ra việc sử dụng cỏc mụ hỡnh trong cỏc mụi trường cụ thể cũng cần cú những sử đổi cho phự hợp.

Ngày nay cú hàng trăm cụng cụ đo phần mềm núi chung và đo phần mềm hướng đối tượng núi riờng trờn thế giới. Cỏc nhúm nghiờn cứu khi đưa ra cỏc phộp đo hướng đối tượng của mỡnh đều xõy dựng cỏc cụng cụ để thu thập cỏc độ đo tương ứng. Cú thể kể ra một số cụng cụ giỳp cho quỏ trỡnh thu thập cỏc độ đo hướng đối tượng sau đõy.

Cụng cụ Chức năng Địa chỉ REBOOT [20] Thu thập cỏc độ đo và tớnh toỏn trờn mụ hỡnh REBOOT ftp://ftp.idt.unit.no/pub/reboot/ QMOOD++ [18] Thu thập cỏc độ đo (30 độ đo) và tớnh toỏn trờn mụ hỡnh QMOOD http://indus.cs.uah.edu JBOOMT [14] Thu thập cỏc độ đo từ mó nguồn của chương trỡnh (C++). Tớnh toỏn trờn cỏc mụ hỡnh đỏnh giỏ chất lượng phần mềm hướng đối tượng. www.pku.edu.cn/research/JBOOMT Understandin g [21] Phõn tớch mó nguồn của cỏc phần mềm hướng đối tượng (C++, Java, Ada, Small talk ,...) và tớnh toỏn cỏc độ đo (200 độ đo).

www.scitools.com

Canata [17] Test cỏc phần mềm viết bằng C++ và cung cấp cỏc độ đo qua quỏ trỡnh

test đú (số lỗi, sự bao phủ cỏc nhỏnh của chương trỡnh )

Bảng 3.1: Một số cụng cụ đo phần mềm hướng đối tượng

Nhận xột:

Như vậy cú rất nhiều cụng cụ để chỳng ta lựa chọn khi tiến hành thu thập cỏc độ đo hướng đối tượng. Mặt khỏc chỳng ta nhận thấy rằng cỏc mụ hỡnh phõn cấp về chất lượng đều cú điểm chung là chỳng được phõn thành 3 hoặc 4 mức, đều dựa trờn cỏc mụ hỡnh cơ bản như là ISO 9126 hay là FCM. Như vậy, cần thiết phải cú một cụng cụ đỏnh giỏ chất lượng phần mềm hỗ trợ nhiều mụ hỡnh khỏc nhau, cung cấp một giao diện mềm dẻo cho phộp người sử dụng xõy dựng mụ hỡnh theo ý muốn, ngoài ra cũng nờn tận dụng những cụng cụ đo phần mềm hướng đối tượng đó cú sẵn.

Vỡ vậy chỳng tụi đề xuất quy trỡnh đỏnh giỏ phần mềm hướng đối tượng cú tớnh mở để người sử dụng cú thể thay đổi và sửa chữa mụ hỡnh cho phự hợp. Cỏc mụ hỡnh được lưu trữ trong thư viện để người sử dụng lựa chọn và cải tiến hoặc cú thể đưa thờm cỏc mụ hỡnh mới vào.

Hỡnh 3.1: Quy trỡnh đo phần mềm hướng đối tượng

Cỏc bước đo phần mềm hướng đối tượng:

1. Chọn lựa mụ hỡnh: Cỏc mụ hỡnh như REBOOT, QMOOD được đưa sẵn vào

thư viện mụ hỡnh. Người sử dụng cú thể lấy mụ hỡnh cú sẵn trong thư viện mụ hỡnh hoặc tạo mới cỏc mụ hỡnh hoặc sửa đổi cỏc mụ hỡnh đó cú sẵn cho phự hợp.

2. Thu thập dữ liệu: Dữ liệu được thu thập nhờ cỏc cụng cụ. Cú rất nhiều cụng

cụ hỗ trợ cho quỏ trỡnh thu thập dữ liệu. Chẳng hạn như bộ cụng cụ Rational Rose [19] trợ giỳp cho quỏ trỡnh thu thập thụng tin ở pha thiết kế hướng đối tượng. Một số bộ cụng cụ khỏc giỳp phõn tớch mó nguồn của chương trỡnh và (adsbygoogle = window.adsbygoogle || []).push({});

thu thập cỏc độ đo như: Understanding C++, Understanding Java [21]. Sau khi thu thập được dữ liệu, cỏc độ đo sẽ được tớnh toỏn và đưa vào cơ sở dữ

Một phần của tài liệu đánh giá độ tin cậy phần mềm (Trang 37)