2010-08-20 14 views

Trả lời

6

Mở bài blog này Identify Code Structure Patterns at a Glance nó được giải thích làm thế nào để sử dụng ma trận cấu trúc phụ thuộc để xác định các mẫu cấu trúc mã. Các ảnh chụp màn hình được thực hiện với Dependency Structure Matrix của công cụ NDepend.Dưới đây là một vài mẫu:

đang Layered (mã không có chu kỳ, chắc chắn điều thú vị nhất mà một DSM có thể cho bạn trong nháy mắt)
alt text

Mã với chu kỳ phụ thuộc
alt text

Kết dính cao/Khớp nối thấp
alt text

Đói người gọi
alt text

được ưa thích callee
alt text

Mutual Coupling
alt text

Object liệu
alt text

1

Liệt kê các hệ thống con trên trục X và Y theo cùng một thứ tự. Đánh dấu "O" theo đường chéo. Các hệ thống con phụ thuộc vào bản thân không có ý nghĩa nhiều. Đi theo chiều dọc xuống ma trận. Nếu hệ thống con đó phụ thuộc vào hệ thống con ngang tương ứng, hãy đánh dấu X.

Tốt nhất sắp xếp lại hệ thống con để hiển thị các mẫu có thể dẫn đến việc tái cấu trúc tốt.

Tôi không có một tiện dụng nào. Lấy làm tiếc.

1

Một trong những tính năng có giá trị nhất của DSM là phát hiện các chu kỳ, ví dụ giữa các dự án hoặc gói. Một chu trình được hiển thị ở phía trên bên phải của ma trận. Xem trang này để biết thêm chi tiết: http://docs.codehaus.org/display/SONAR/Dependency+Structure+Matrix

3

Erik Dörnenburg gives the best description Tôi đã xem, bao gồm một số ví dụ điển hình về cách sắp xếp biểu đồ có thể phơi bày các vấn đề về cấu trúc. Tóm lại:

  • như những người khác đã đề cập, bất cứ điều gì trên đường chéo cho thấy một chu kỳ, trong đó chủ yếu có nghĩa là ranh giới của bạn là "mờ" (không sạch)
  • vuông smallish (tốt, tam giác thấp hơn) dọc theo đường chéo = = tốt, nếu các thành phần được nhóm theo thứ bậc
  • Mặt khác, rất nhiều hàng hoặc cột trọng == vấn đề có thể: hoặc
    • hàng: bạn có một thành phần/nhóm mà rất nhiều người khác phụ thuộc vào (có thể nó đang cố gắng phân phối quá nhiều tính năng), hoặc
    • cột: bạn có một thành phần/nhóm mà phụ thuộc vào rất nhiều những người khác (có thể nó đang cố gắng để chăm sóc tất cả mọi thứ bản thân, thay vì ủy thác)
Các vấn đề liên quan