2012-09-14 32 views
8

Tôi không thông thạo UML, nhưng tôi muốn tạo một sơ đồ lớp dựa trên mã C++ hiện có. Các câu hỏi StackOverflow khác đã chỉ ra rằng hai chương trình - Kiến trúc sư doanh nghiệp và Kiến trúc sư phần mềm Rational - khá giỏi trong mã C++ "ngược lại" (tức là tạo sơ đồ lớp UML dựa trên mã C++ hiện có).Cách tạo sơ đồ lớp từ mã nguồn bằng cách sử dụng Kiến trúc sư doanh nghiệp hoặc Kiến trúc sư phần mềm Rational?

Tôi đã tải xuống phiên bản dùng thử cho cả hai ứng dụng này. Tuy nhiên, tôi không thể thực hiện bất kỳ tiến bộ nào trong việc tìm hiểu việc cần làm để tạo một sơ đồ lớp trong một trong các ứng dụng này.

Trong Rational Software Architect, tôi đã tạo một dự án UML, nhưng tôi không thể tìm thấy bất kỳ cách nào trong chương trình để chọn và kỹ sư đảo ngược, mã C++ hiện có của tôi.

Trong kiến ​​trúc sư doanh nghiệp, tôi có thể nhập mã C++ của mình, nhưng tất cả các phần tử (các lớp) xuất hiện trong một đường chéo chéo vô dụng trong biểu đồ. Tôi đã thử các cài đặt khác, chẳng hạn như vòng tròn, nhưng chúng đều không thể đọc được vì các biểu đồ quá lớn (do các thuộc tính và phương thức chiếm nhiều không gian) mà không có số lượng panning và phóng to nào hữu ích. Điều tôi muốn là che giấu mọi thứ ngoại trừ tên lớp (tức là, không hiển thị bất kỳ phương thức hoặc thuộc tính nào) để tất cả 20 lớp xuất hiện một cách thuận tiện và dễ đọc trong một màn hình.

Tuy nhiên, tôi không thể tìm cách ẩn mọi thứ ngoại trừ tên lớp. Thay vào đó, khi tôi tìm thấy một tùy chọn (trong Kiến trúc sư doanh nghiệp) dường như nó có thể ẩn mọi thứ trừ tên lớp, vì một số lý do tất cả các phần tử biến mất trong sơ đồ lớp và không lặp lại các bước & xóa và thêm lại gói làm cho sơ đồ lớp xuất hiện trở lại.

Lưu ý: Mã C++ của tôi (ít nhất là các tệp tôi đã chọn để nhập vào Enterprise Architect) chỉ có khoảng 20 lớp.

Đáng buồn thay, tìm kiếm rất cẩn thận tài liệu cho cả hai chương trình này chỉ cung cấp chung chung - không có hướng dẫn cụ thể nào về kỹ thuật đảo ngược cho một trong các chương trình này.

Tôi sẽ biết ơn nếu ai đó có thể cho tôi biết các bước cơ bản để tạo biểu đồ dễ đọc, dễ điều hướng qua. kỹ thuật đảo ngược (nghĩa là C++ - UML) chỉ hiển thị tên lớp, sao cho khoảng 20 lớp phù hợp (rõ ràng) trên một màn hình, sử dụng Kiến trúc sư doanh nghiệp hoặc Kiến trúc sư phần mềm Rational - HOẶC bất kỳ công cụ nào khác có khả năng làm điều này (tôi đề nghị EA và Rational chỉ vì chúng đã được đánh dấu trong các câu trả lời StackOverflow khác là các chương trình tốt nhất có sẵn cho mục đích này).

+0

Tôi không biết gì về các chương trình đó, tuy nhiên bạn có thể muốn xem xét doxygen là phần mềm miễn phí và có thể phù hợp với nhu cầu của bạn, có một ví dụ đơn giản [http://stackoverflow.com/questions/9484879/graphviz-doxygen-to-generate-uml-class-diagrams). –

Trả lời

12

Câu trả lời này áp dụng cho EA.

Bạn có thể nhập các tệp riêng lẻ hoặc toàn bộ thư mục, theo cách đệ quy hoặc không. Nhập thư mục là trường hợp phổ biến nhất; nhập tệp đơn lẻ không cho phép bạn tạo sơ đồ tự động.

Khi bạn nhập thư mục nguồn, bạn có tùy chọn tạo sơ đồ cho từng gói UML hoặc không có sơ đồ nào cả. Bạn cũng quyết định có nên tạo các gói cho mỗi thư mục mã nguồn, không gian tên (mặc định) hoặc tệp.

Nếu mã của bạn chỉ có 20 lớp thì có khả năng chúng nằm trong một thư mục và/hoặc không gian tên duy nhất, vì vậy hãy chơi xung quanh với tùy chọn đó (Cấu trúc gói trong hộp thoại Nhập nguồn) để nhận đúng số lượng biểu đồ.

Trong cùng một hộp thoại, có nút "Tùy chọn sơ đồ mới", mở ra hộp thoại cấu hình khác nơi bạn có thể chọn biểu đồ có chứa thuộc tính và/hoặc hoạt động của lớp hay không. Bạn cũng có thể đưa ra quyết định về cơ sở hiển thị, ví dụ: chỉ hiển thị thành viên công khai.

Hộp thoại này chỉ ảnh hưởng đến những gì được hiển thị trong biểu đồ khi chúng được tạo. Các thành viên vẫn được nhập, không được hiển thị. Điều này nghe có vẻ như những gì bạn đang sau.

Bạn có thể thay đổi tùy chọn hiển thị cho bất kỳ biểu đồ nào bằng cách bấm đúp vào vùng trống của biểu đồ, hoặc bấm chuột phải và chọn Thuộc tính. Nghe có vẻ như bạn đã vào hộp thoại này và thay đổi một cái gì đó xung quanh, nhưng tôi không thể thực sự nói những gì. Tình huống bạn mô tả, nơi bạn không thể có được màn hình hiển thị trở lại theo cách của nó, không phải là một trong những tôi đã từng gặp trong EA.

Cũng có thể chọn tùy chọn hiển thị trên cơ sở mỗi lớp bằng cách nhấp chuột phải vào biểu đồ trên sơ đồ và chọn Tính năng hiển thị. Tôi không khuyên bạn sử dụng điều này trong các sơ đồ được thiết kế ngược, tôi chỉ đề cập đến nó cho sự hoàn chỉnh.

Bố cục bạn mô tả, với tất cả các lớp trong đường chéo vô nghĩa, gợi ý với tôi rằng sơ đồ không được sắp xếp đúng cách sau khi tạo. Việc tạo sơ đồ là một quá trình gồm hai bước; đầu tiên tất cả các lớp được thả vào nó, sau đó bố trí được áp dụng.

Điều này thật kỳ lạ, vì EA tự động đưa ra sơ đồ được tạo và tôi không thể tìm thấy tùy chọn cho phép bạn bỏ chọn hành vi này. Nếu điều này vẫn còn, hãy gửi báo cáo lỗi cho Sparx Systems. Bạn luôn có thể đặt sơ đồ bằng cách mở nó và chọn Sơ đồ bố trí từ trình đơn Sơ đồ cấp cao nhất.

Nếu cuối cùng, các lớp của bạn được trải ra trong các gói khác nhau không gian tên sao cho EA tạo nhiều sơ đồ cho chúng, bạn sẽ phải hợp nhất chúng theo cách thủ công. Thực hiện điều này bằng cách mở cả hai biểu đồ, chọn tất cả (Ctrl-A) trong một, sao chép (Ctrl-C) và dán (Ctrl-V) vào khác, sau đó yêu cầu EA đến Sơ đồ bố trí một lần nữa.

Vì vậy:

  1. Nhấp chuột phải vào gói sản phẩm nào trong trình duyệt dự án, chọn Mã Engineering - Import Source Directory.
  2. Trong hộp thoại, chọn thư mục gốc và loại nguồn.
  3. Đánh dấu vào "Tạo sơ đồ logic cho mỗi gói" và chọn Cấu trúc gói phù hợp nhất với cấu trúc nguồn của bạn.
  4. Nhấp vào "Tùy chọn sơ đồ mới" và trong hộp thoại mới không hiển thị "Hiển thị thuộc tính", "Hiển thị hoạt động" và "Hiển thị phương pháp thuộc tính" nếu có.
  5. OK cả hai hộp thoại.
  6. Nếu nhiều sơ đồ đã được tạo, sao chép tất cả các lớp vào một biểu đồ.
  7. Nếu bố cục có vẻ xấu, hãy chọn Sơ đồ - Sơ đồ bố cục.

Hy vọng điều này sẽ hữu ích.

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