2012-04-25 16 views
10

Trong Sonar, cho một lớp Java Đặc biệt, tôi thấy:Sự khác nhau giữa "phức tạp" metric và "phức tạp/phương pháp" metric

Complexity:  830 

Complexity /method:  8,1 

Làm thế nào bạn có thể giải thích sự khác biệt giữa hai số liệu?

Mức độ phức tạp của lớp có phức tạp không?

Mức độ phức tạp tối đa mà một lớp học nên ở dưới? Tôi biết các phương thức nên nhỏ hơn 10 đối với sự phức tạp của phương thức, nhưng số phức tạp của lớp tối đa mà một lớp nên phù hợp để được coi là không phức tạp là gì?

Cảm ơn.

EDIT

Tôi cũng nhìn vào hành vi vi phạm quy tắc Cyclomatic-phức tạp trong file.

Đối với một số phương pháp, sonar nói với những con số khác nhau phức tạp (trong tiếng Pháp):

"La complexité cyclomatique de la classe est de 28 alors que le tối đa autorisé est de 10."

bằng tiếng Anh:

"Độ phức tạp chu trình lớp là 28 nhưng tối đa cho phép là 10".

Tôi không hiểu tại sao nó nói "độ phức tạp của chu trình lớp" vì nó có vẻ là một "phương thức phức tạp về chu kỳ".

Ngoài ra, lớp học được đề cập không xuất hiện trên lớp phức tạp nhất được sắp xếp theo độ phức tạp/phương pháp trung bình, vì sonar cho biết nó chỉ có độ phức tạp trung bình là 8,1.

Trả lời

6

Bạn có thể xem trang Wiki "Định nghĩa số liệu" của chúng tôi (và cụ thể hơn trên "Complexity" section) để biết thêm về ý nghĩa của các số liệu được tìm thấy trong Sonar.

  • "phức tạp" là tổng độ phức tạp của một tài nguyên (đối với file => tổng của sự phức tạp của mỗi lớp được định nghĩa trong tập tin)
  • "phức tạp/phương pháp" là "phức tạp" chia cho số phương thức được tìm thấy trong tệp
  • ... v.v. cho các số liệu khác.
+1

Cảm ơn câu trả lời của bạn. Có lẽ nó là tôi nhưng nó không phải là rõ ràng rằng "phức tạp" có nghĩa là "tổng hợp các phương pháp phức tạp", nhưng bây giờ nó có vẻ hiển nhiên thực sự. Trang wiki không nói rằng nó là tổng của tất cả các phương thức phức tạp. –

+0

@ Jérôme: Chính thức, tổng số phức tạp của McCabe cho một lớp học được gọi là WMC (Phương pháp trọng số cho mỗi lớp) như được mô tả [ở đây] (https://sonarqube.sourcemeter.com/plugins/resource/491408?page=sm-help #Complexity). –

+0

liên kết được trình bày không phân biệt giữa các chỉ số phức tạp mà xử lý âm thanh: như CoreMetrics.FILE_COMPLEXITY và CoreMetrics.COMPLEXITY – XtianGIS