Đo độ phức tạp xoay vòng của McCabe

Một phần của tài liệu Mô hình đánh giá độ tin cậy hệ thống phần mềm (Trang 30)

6. Kết quả nghiên cứu, đóng góp khoa học của luận án

1.3.1.2. đo độ phức tạp xoay vòng của McCabe

Bảng 1.1. Độ phức tạp McCabe của một số cấu trúc cơ bản

Cấu trúc Lƣu đồ Độ phức tạp xoay vòng

Tuần tự

If .. then ..

else

While .. do

13

"Độ đo độ phức tạp xoay vòng McCabe (McCabe’s Cyclomatic Complexity Metric)" [85] là độ đo dựa trên đồ thị luồng điều khiển tương ứng của chương trình. Độ phức tạp mang tính xoay vòng cung cấp định lượng về độ phức tạp của chương trình bằng cách đánh giá các điểm rẽ nhánh của đồ thị luồng điều khiển, tương ứng với nó là các điểm rẽ nhánh trong mã nguồn. Ban đầu, một thủ tục rỗng với đồ thị luồng điều khiển nối thẳng từ điểm vào đến điểm kết thúc sẽ có độ phức tạp xoay vòng bằng 1. Độ đo này sẽ tăng lên 1 mỗi khi các từ khóa sau xuất hiện: If, Repeat, While, For, Or, And.

Theo Berger [1], "số xoay vòng (cyclomatic number)" của đồ thị có hướng bao gồm thành phần liên thông mạnh được định nghĩa là:

(1.17) với và . Chúng ta hoàn toàn có thể chứng minh được chính bằng số lượng tối đa chu trình độc lập tuyến tính của : kích thước của tập các chu trình tạo nên cơ sở của tất cả các chu trình trên . McCabe gợi ý rằng chương trình có độ đo McCabe cao sẽ tạo ra khó khăn trong sản xuất cũng như bảo hành và đưa ra cận trên tốt nhất của chương trình Fortran là 10. Khi ứng dụng khái niệm số đo xoay vòng vào lưu đồ của một chương trình, McCabe đưa ra một số chú ý sau:

 Đồ thị luồng điều khiển chương trình không phải là một đồ thị có hướng liên thông mạnh: cần thêm một cạnh ảo nối từ đầu ra out tới đầu vào in.

 Thông thường đồ thị luồng điều khiển khi thêm cạnh ảo ở trên vào sẽ có một thành phần liên thông.

(1.18) Số 2 trong công thức (1.18) có được do và một cạnh ảo được thêm vào. Một số lưu đồ cơ bản và số xoay vòng tương ứng được trình bày trong Bảng 1.1. Độ phức tạp xoay vòng đánh giá mức độ khó khăn khi tiến hành kiểm thử tất cả các đường đi trên đồ thị luồng điều khiển, từ đó cung cấp các thông tin hữu ích trong đáp ứng các yêu cầu và mô tả của phần mềm. Tuy nhiên, theo Friedman [63], độ đo McCabe sẽ không hữu ích nếu nhà phát triển và kiểm thử muốn phát hiện và loại bỏ tất cả các lỗi của phần mềm.

Một phần của tài liệu Mô hình đánh giá độ tin cậy hệ thống phần mềm (Trang 30)

Tải bản đầy đủ (PDF)

(153 trang)