2011-02-04 38 views
5

Tôi có phương thức C# phức tạp chứa một tập hợp các câu lệnh xác định quyền truy cập cho người dùng.Trực quan hóa logic phương thức C#

Tôi đang tìm cách để hình dung logic này thành một biểu đồ luồng công việc hoặc tương tự.

Điều này đang sử dụng .NET 3.5 và Visual Studio 2010.

Công cụ nào (sẵn có tự do sẵn có) có sẵn để thực hiện việc này?

NB: Tôi đã tìm thấy rất nhiều công cụ để trực quan hóa các cuộc gọi phương thức (ví dụ: phân cấp cuộc gọi), đây không phải là những gì tôi đang tìm kiếm. Tôi đang tìm kiếm một công cụ để hình dung logic.

Cảm ơn

EDIT: Là một phần của cuộc điều tra của tôi, tôi đã tìm thấy Flowchart4C# nhưng nó là $ 200 để mua ngay và thử nghiệm sẽ không cho phép tôi xác nhận nó làm những gì tôi muốn nó! (< 5 báo cáo điều kiện).

+0

Chỉ cần được rõ ràng, bạn đang tìm kiếm cho một công cụ tự động phải không? –

+6

Có vẻ như bạn có thể muốn cấu trúc lại phương pháp khổng lồ này để phần chính đọc giống như tiếng Anh đơn giản như một sự khởi đầu. – Marco

+1

Tôi sẽ không thử. Trước tiên, viết các bài kiểm tra đơn vị bao gồm các đường dẫn và xác minh hành vi hiện tại. Thứ hai, sử dụng các công cụ tái cấu trúc tự động để làm rõ mã bằng cách trích xuất các phương thức, v.v. – TrueWill

Trả lời

3

Refactor phương pháp của bạn: đây là một số gợi ý để đối phó với điều kiện

http://www.refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html
http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html

nhưng có lẽ điều này là tốt nhất

http://www.refactoring.com/catalog/replaceConditionalWithVisitor.html

+0

Cảm ơn @Marco - Tôi đã tìm thấy các điều khoản bảo vệ phù hợp nhất - Tôi có các bộ công việc được giao cho các loại người dùng chất lỏng. – Russell

+0

Câu hỏi: Tái cấu trúc logic thành các phương pháp riêng biệt là một cách phủ nhận sự cần thiết cho một bản đồ. Chức năng của tôi là hiệu suất quan trọng (là một kiểm tra an ninh mỗi khi một yêu cầu web được thực hiện) sẽ phá vỡ nó thành nhiều phương pháp làm tổn thương hiệu suất? – Russell

+1

Tôi sẽ tin tưởng trình biên dịch để tối ưu hóa các cuộc gọi chức năng. Trừ khi có nhiều sao chép dữ liệu trong các tham số truyền, tôi thích mã có thể đọc được trước và lo lắng về hiệu suất sau này nếu cần. – Marco

1

Không tự động: Sử dụng dia (Windows, Linux: có sơ đồ mẫu) hoặc Inkscape (Windows, Linux, Mac: đồ họa vector).

Tự động: Refactor trước, sau đó tự động hóa.

+0

Cảm ơn @Leonidas - Tôi đồng ý Dia là một công cụ miễn phí tuyệt vời.:) Tôi đang làm việc trên bản đồ nó ra tự động lý tưởng. – Russell

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