2009-03-01 30 views
5

Gần đây tôi đã được yêu cầu phân tích một dự án và xác định 20 lớp học là cao nhất có nguy cơ dựa trên các số liệu thiết kế.Phân tích dự án bằng Sourcemonitor

Tôi đã bắt đầu phân tích dự án và tôi đã quyết định chọn ra các lớp có Độ phức tạp tối đa cao nhất. Tôi có nên nhìn vào bất cứ điều gì khác ngoài sự phức tạp tối đa. tức là số lượng cuộc gọi, báo cáo, lớp học, phương pháp/lớp học, độ sâu tối đa, vv .. Tôi có đi đúng hướng không? nếu không phải những gì khác tôi nên nhìn?

Xin cảm ơn trước.

Trả lời

5

Tôi chủ yếu xem xét độ phức tạp tối đa, độ sâu tối đa và số lượng câu lệnh. Ba số liệu này sẽ phát hiện các phương pháp viết thực sự tồi tệ (dài, lồng sâu và với nhiều quyết định và phụ thuộc).

Sắp xếp nguồnMonitor báo cáo về từng trong số ba số liệu đó và ghi lại 20-30 lớp hàng đầu, sau đó chọn những thứ được xếp hạng cao trong cả ba danh sách.

+0

Có lẽ điều này phụ thuộc vào ngôn ngữ dự án, nhưng trong C++ tôi thấy rằng * Phương pháp hiển thị số liệu ... * cung cấp kết quả tốt nhất cho một điểm kiểm tra nhất định. BTW: Bạn có đề nghị cân nhắc ba tiêu chí này ('wc': trọng số của độ phức tạp,' wd': trọng số của chiều sâu, 'ws': trọng số của câu lệnh), và sau đó tìm' max (wc * C + wd * D + ws * S) 'hay không thực dụng? – Wolf

+1

@Wolf Tôi nghĩ rằng bạn đang làm quá nhiều thứ. Công cụ này chỉ cung cấp cho bạn số liệu về một số tiêu chí khác nhau. Chỉ cần chọn số liệu bạn cảm thấy mô tả tốt nhất trạng thái mã của bạn và sau đó hành động trên các tệp nguồn tồi tệ nhất theo các chỉ số đó. Tôi không nghĩ rằng có một công thức chính xác cho vấn đề này. – zendar

1

Đây là một nơi tốt để bắt đầu, nhưng tôi sẽ nói rủi ro cũng được kết hợp với số lượng mã có chứa các bài kiểm tra đơn vị.

Ví dụ: chức năng với cyc. độ phức tạp của 20 có độ bao phủ mã đơn vị thử nghiệm 100% là an toàn hơn một hàm với cyc. độ phức tạp của 10 không có kiểm tra đơn vị.

+0

Chức năng bao phủ 100% có nhiều khả năng là "chính xác" hơn so với chức năng không có kiểm tra; nhưng độ phức tạp cao hơn của nó có nghĩa là nó có khả năng đòi hỏi nhiều công sức hơn (công sức) để sửa đổi hoặc mở rộng nó. – Schollii

+0

Đúng, nhưng Giám sát nguồn không hỗ trợ phạm vi kiểm tra đo lường. Có lẽ không phải là công cụ tốt nhất để tối ưu hóa nhiệm vụ * 'xác định 20 lớp có nguy cơ cao nhất dựa trên số liệu thiết kế * ... – Wolf

Các vấn đề liên quan