Bất cứ khi nào tôi nghe về những nỗ lực liên kết một số loại số liệu dựa trên mã với lỗi phần mềm, điều đầu tiên tôi nghĩ đến là độ phức tạp theo chu kỳ của McCabe . Các nghiên cứu khác nhau đã phát hiện ra rằng có một mối tương quan giữa độ phức tạp chu kỳ cao và số lượng khuyết tật. Tuy nhiên, các nghiên cứu khác xem xét các mô-đun có kích thước tương tự (về dòng mã) cho thấy có thể không có mối tương quan.
Đối với tôi, cả hai số dòng trong một mô-đun và độ phức tạp chu kỳ có thể đóng vai trò là các chỉ số tốt về các khiếm khuyết có thể xảy ra, hoặc có lẽ khả năng lớn hơn là các khiếm khuyết sẽ được đưa vào nếu sửa đổi được thực hiện cho một mô-đun. Một mô-đun (đặc biệt là ở cấp độ lớp hoặc phương thức) có độ phức tạp chu kỳ cao là khó hiểu hơn vì có một số lượng lớn các đường dẫn độc lập thông qua mã. Một mô-đun (một lần nữa, đặc biệt là ở cấp độ lớp hoặc phương thức) với số lượng dòng lớn cũng khó hiểu vì sự gia tăng các dòng có nghĩa là nhiều điều đang xảy ra. Có nhiều công cụ phân tích tĩnh hỗ trợ tính toán cả hai dòng mã nguồn theo các quy tắc cụ thể và độ phức tạp theo chu kỳ, có vẻ như việc bắt chúng sẽ lấy trái cây treo thấp.
Các biện pháp phức tạp Halstead cũng có thể thú vị. Thật không may, tính hợp lệ của chúng dường như bị tranh luận phần nào, vì vậy tôi không cần thiết phải dựa vào chúng. Một trong những biện pháp của Halstead là ước tính các khiếm khuyết dựa trên nỗ lực hoặc khối lượng (mối quan hệ giữa độ dài chương trình về tổng số toán tử và toán hạng và từ vựng chương trình về các toán tử và toán tử riêng biệt).
Ngoài ra còn có một nhóm các số liệu được gọi là Số liệu CK. Định nghĩa đầu tiên của bộ số liệu này dường như nằm trong một bài báo có tiêu đề Một bộ số liệu cho thiết kế hướng đối tượng của Chidamber và Kemerer. Họ định nghĩa các phương thức có trọng số cho mỗi lớp, độ sâu của cây kế thừa, số lượng trẻ em, khớp nối giữa các lớp đối tượng, đáp ứng cho một lớp và thiếu sự gắn kết trong các phương thức. Bài viết của họ cung cấp các phương pháp tính toán cũng như mô tả về cách phân tích từng cái.
Về mặt tài liệu học thuật phân tích các số liệu này, bạn có thể quan tâm đến Phân tích thực nghiệm về số liệu CK cho độ phức tạp của thiết kế hướng đối tượng: Ý nghĩa đối với các khiếm khuyết phần mềm, được tác giả bởi Ramanath Subramanyam và MS Krishna. Họ đã phân tích ba trong số sáu số liệu CK (phương pháp trọng số cho mỗi lớp, khớp nối giữa các đối tượng được phân loại và độ sâu của cây thừa kế). Liếc qua tờ giấy, có vẻ như họ thấy đây là những số liệu có khả năng hợp lệ, nhưng phải được giải thích một cách thận trọng vì "cải thiện" người ta có thể dẫn đến những thay đổi khác cũng dẫn đến xác suất lỗi cao hơn.
Phân tích thực nghiệm về các số liệu thiết kế hướng đối tượng để dự đoán các lỗi nghiêm trọng cao và thấp, được tác giả bởi Yuming Zhou và Hareton Leung, cũng kiểm tra các số liệu của CK. Cách tiếp cận của họ là xác định xem họ có thể dự đoán các khiếm khuyết dựa trên các số liệu này hay không. Họ phát hiện ra rằng nhiều số liệu của CK, ngoại trừ độ sâu của cây thừa kế và số lượng trẻ em) có một số mức ý nghĩa thống kê trong việc dự đoán các khu vực có thể xác định được khuyết điểm.
Nếu bạn có tư cách thành viên của IEEE, tôi sẽ khuyên bạn nên tìm kiếm trong Giao dịch của IEEE về Kỹ thuật phần mềm để biết thêm các ấn phẩm học thuật và Phần mềm IEEE cho một số báo cáo ứng dụng và thực tế hơn. ACM cũng có thể có các ấn phẩm liên quan trong thư viện kỹ thuật số của họ .