2012-01-06 78 views
5

Tôi đang duyệt mã của một ứng dụng mã nguồn mở lớn và muốn tìm hiểu cách nó được thiết kế và cách nó hoạt động. Có một công cụ có thể đảo ngược thiết kế mã C và C++ vào các biểu đồ trình tự không? Có thể điều này có thể hơi xa nhưng về một công cụ có thể cho tôi danh sách các hàm được gọi (trong các mô-đun khác nhau và theo thứ tự đúng) khi nói ứng dụng đang xử lý một đầu vào? Hoặc giúp tôi nhanh chóng phân tích một ứng dụng cụ thể (đặc biệt là một ứng dụng có cơ sở mã lớn)?sơ đồ tuần tự

Mong các câu trả lời vì tôi nghĩ đây phải là chủ đề được đề cập đầy đủ.

+0

Tôi đã thử nhiều công cụ trước khi từ bỏ và tạo http://www.zenuml.com. Tôi tìm thấy mã kỹ thuật đảo ngược vào sơ đồ tuần tự không thực sự là một ý tưởng hay. Tôi biết một vài công cụ làm tốt nhưng vẫn còn, kết quả là không thể đọc được. Với ZenUML, bạn nghĩ to và rõ ràng. –

Trả lời

3

Có một số nhưng chúng đắt tiền. Rational Rose là nổi tiếng nhất trước khi nó được IBM mua lại.

Bản chất của ngôn ngữ C++ khiến việc phân tích tĩnh trở nên thực sự khó khăn. Đó là lý do tại sao có rất ít công cụ có thể làm điều đó. Kể từ khi phát triển không phải C++ sử dụng các ngôn ngữ hỗ trợ sự phản ánh/nội tâm, kiểu công cụ này đã thực sự để lại C++ phía sau. Đó không phải là để nói rằng không có gì, chỉ là họ là khó tìm và thường là một phần của một gói 4GL giống như đắt tiền. Rational Rose chủ yếu là một công cụ cho phép bạn lập sơ đồ một hệ thống và nó sẽ giúp theo dõi các thành phần và cuối cùng tạo ra mã nguồn bằng nhiều ngôn ngữ. Nó cũng có thể đảo ngược mã nguồn của kỹ sư thành các biểu đồ ở một mức độ.

Sản phẩm Rational Rose được Rational Requisite Pro hỗ trợ khá nhiều, với một phần lớn chức năng (tập trung vào Java) được xếp vào nền tảng Phát triển ứng dụng WebSphere của IBM, bây giờ được gọi là RAD tôi tin.

Các công cụ Rational được biết đến rất toàn diện vì chúng thực sự được nhắm mục tiêu cho các cửa hàng phát triển lớn làm việc với đội ngũ nhân viên lớn, thường bắt đầu từ hơn 50 nhà phát triển, cho một dự án duy nhất.

Do sự phức tạp của ngôn ngữ C++ (từ góc độ dụng cụ) và sự phổ biến của các ngôn ngữ như Java và C#, các nhà cung cấp đã thực sự nhấn mạnh C++.

Tôi không am hiểu về Visual Studio, vẫn hỗ trợ C++, nhưng tôi sẵn sàng đoán rằng hỗ trợ UML UML chỉ có trong các phiên bản chuyên nghiệp đắt tiền như Pro hoặc Ultimate.

+0

Tôi có thể biết thêm về các công cụ này không? Tôi nghĩ rằng chủ đề này phải được bao phủ tốt nhưng bây giờ tôi bắt đầu nghĩ khác đi. –

0

Hệ thống Sparx 'Enterprise Architect có thể ghi lại việc thực hiện ứng dụng và tạo biểu đồ trình tự từ dấu vết này, ngoài kỹ thuật đảo ngược tĩnh thông thường từ mã nguồn. Sự hỗ trợ Analyzer Thực hiện (trong EA 9.2):

  • Microsoft Windows Native C
  • Microsoft Windows Native C++
  • Microsoft Windows Visual Basic
  • Microsoft .NET gia đình (C#, J #, VB)
  • Sun Microsystems Java
  • PHP

Bạn cần ít nhất là Giáo sư Phiên bản chuyên nghiệp của EA, tại thời điểm viết chi phí US $ 199 (một chín chín) cho một giấy phép một chỗ ngồi.

Có sẵn very old demo video trên trang web (từ ba phiên bản chính trước đây).