Kỹ thuật đảo ngược các biểu đồ UML sử dụng IBM Rational Software Architect (Kiến trúc phần mềm Rational của IBM), phiên bản 7.5

Trong IBM® Rational® Software Architect (Kiến trúc phần mềm Rational), phiên bản 7.5, bạn có thể dịch ngược mã để phân tích một dự án Java™ bằng cách tạo ra các cây thừa kế chứa đựng các chi tiết của các lớp và các mối quan hệ giữa chúng như các biểu đồ Unified Modeling Language (UML - Ngôn ngữ mô hình hóa thống nhất). Bài viết này giải thích các bước sử dụng kỹ nghệ đảo ngược trong một dự án Java nhỏ.

Si Yin, Tư vấn, EMC

Si Yin là một cố vấn IT tại trung tâm IBM Excellence về Quản lý nước ở Amsterdam, Hà Lan. Ông là chuyên gia kỹ thuật cho các dự án Quản lý nước. Si tốt nghiệp thạc sỹ khoa học máy tính tại trường đại học Vrije Hà Lan và từng là một sinh viên Extreme Blue trong năm 2007



Fenglian Xu, Kỹ sư phần mềm, IBM

Photo of Fenglian XuTiến sĩ Fenglian Xu là một nhà phát triển phần mềm của IBM WebSphere Service Registry và Repository (Kho lưu trữ và đăng ký WebSphere của IBM) tại IBM Hursley Software Lab (văn phòng phần mềm Hursley của IBM). Trước khi làm việc trong vai trò hiện tại, cô ấy là một thành viên của đội ngũ phát triển IBM WebSphere Enterprise Service Bus, và WebSphere Process Server (máy chủ xử lý quy trình WebSphere), nơi mà cô ấy đạt tới sự thành thạo trong Java Message Service (JMS) và các kết hợp WebSphere MQ JMS, Service Gateway (cổng phục vụ) cho WebSphere Enterprise Service Bus, và WebSphere Process Server (Máy chủ xử lý WebSphere). Cô ấy cũng đã đạt được một số hiểu biết và kinh nghiệm về sự hợp nhất giữa WebSphere Application Server (máy chủ ứng dụng WebSphere) và WebSphere MQ. Trước khi Tiến sĩ Xu gia nhập IBM, cô đã làm việc cho nhiều công ty IT khác nhau, từ các ứng dụng lớp trung gian đến các ứng dụng cuối, và với dự án thí điểm eScience tại vương quốc Anh, GEODISE, nơi mà cô ấy là người tiên phong trong việc tạo ra các công cụ luồng công vệc trong kiến trúc hướng dịch vụ. Cô nhận bằng cử nhân toán học ứng dụng và công nghệ phần mềm tại trường Đại học Xian Jiaotong ở Trung Quốc và bằng tiến sĩ khoa học máy tính tại trường đại học Southampton ở Anh vào năm 1998


Cấp độ đóng góp cho developerWorks của
        tác giả

15 01 2010

Tạo cây thừa kế của các lớp sử dụng Software Analyzer (Phân tích phần mềm)

Trong các ngôn ngữ lập trình hướng đối tượng, thừa kế cho thấy các phương thức và trường dữ liệu phổ biến giữa các lớp được kế thừa bên trong cùng một phả hệ và hiển thị các trường dữ liệu và phương thức riêng biệt cho mỗi lớp. Các nhà phát triển và thiết kế có thể sử dụng cây thừa kế của các lớp trong dự án Java™ để hiểu các quan hệ giữa các lớp trong dự án đó. Giả sử rằng bạn đã tạo hoặc tải một dự án Java trong IBM® Rational® Software Architect 7.5. Để tạo một cây thừa kế trong dự án, làm theo các bước sau:

  1. Mở Software Analyzer trong Rational Software Architect phiên bản 7.5 bằng cách chọn Run > Analysis (xem hình 1). Bạn có thể sử dụng Software Analyzer để tạo ra các báo cáo dựa trên các qui tắc mà bạn đã chọn. Rational Software Architect phiên bản 7.5 bao gồm các qui tắc trong phạm vi của Java Architectural Discovery (Phát hiện kiến trúc Java), Code Review, UML Model Metrics, và Model UML (UML mô hình hóa). Việc tạo ra cây thừa kế là một qui tắc trong lĩnh vực Java Architectural Discovery (Phát hiện kiến trúc Java).
Hình 1. Mở Software Analyzer
Thực đơn liệt kê thả xuống để mở phần mềm phân tích.
  1. Tạo cấu hình:
    1. Trong trường Name, gõ tên của trường.
    2. Trong vùng Analysis Domains and Rules, mở rộng danh mục Object-oriented Patterns và tích chọn vào hộp kiểm Inheritance Tree (xem hình 2).
Hình 2. Tạo cây thừa kế
Cửa sổ Software Analyzer

Nhấn vào đây để phóng to Hình 2.

  1. Nhấn vào Analyze. Cây thừa kế sẽ được hiển thị (xem Hình 3). Cây thừa kế này cho thấy một lớp Vehicle có ba lớp con: Bicycle, CarPogoStick. Lớp Car có hai lớp con: FamilyCarSportsCar. Không có thêm bất kỳ một thông tin nào về các phương thức và các trường dữ liệu của lớp trong cây thừa kế. Để duyệt các trường dữ liệu và các phương thức của các lớp, sử dụng biểu đồ trình duyệt (browse diagram).
Hình 3. Cây thừa kế được tạo bởi Software Analyzer
Các hình ảnh được chụp lại của cây thừa kế, như mô tả trên.

Nhấn vào đây để phóng to Hình 3.


Duyệt các chi tiết của cây thừa kế bằng cách sử dụng biểu đồ trình duyệt.

Cây kế thừa mà bạn đã tạo ra với công cụ Software Analyzer không chứa đựng các chi tiết về các trường dữ liệu và các phương thức của các lớp. Để tìm hiểu về các chi tiết của mỗi lớp trong một phạm vi nhất định, hãy sử dụng biểu đồ trình duyệt. Phạm vi có thể là một gói Java, một dự án, một tập hợp các công việc hoặc là một không gian làm việc nào đó. Ví dụ, sử dụng lớp FamilyCar như là điểm bắt đầu để duyệt các chi tiết của nó với biểu đồ trình duyệt:

  1. Để mở biểu đồ trình duyệt, hãy nhấn phải chuột trên tên lớp FamilyCar.java và sau đó chọn Visualize > Explore in Browse Diagram (Hình 4).
Hình 4. Duyệt lớp FamilyCar trong biểu đồ trình duyệt
Hình ảnh các bước để mở biểu đồ trình duyệt.
  1. Trong cửa sổ Browse Diagram, trên thanh công cụ quan hệ, nhấn vào nút Extends (Xem Hình 5). Thanh công cụ quan hệ chứa năm kiểu quan hệ:
    • arrow iconExtends (Mở rộng): Duyệt các lớp mà từ đó FamilyCar được mở rộng
    • arrow iconDependency (Phụ thuộc): Duyệt các lớp được sử dụng trong các phương thức của lớp FamilyCar
    • arrow iconRealization (Thực hiện): Duyệt các giao diện được thực hiện bởi lớp FamilyCar
    • arrow iconAssociation (Liên hệ): Duyệt các lớp có quan hệ với lớp FamilyCar
    • magnifying glass iconDeclares: Duyệt các gói được khai báo trong lớp FamilyCar
    • Degree of separation (Mức độ phân chia): Duyệt mức độ mở rộng mà các quan hệ này áp dụng.
Hình 5. Biểu đồ trình duyệt của lớp FamilyCar với một mức phân chia.
Hình ảnh của một lớp trong biểu đồ trình duyệt
  1. Bên cạnh thanh công cụ quan hệ là ô thể hiện mức độ phân chia, phần này cho biết số lượng các mức độ quan hệ từ lớp FamilyCar được hiển thị trên biểu đồ. Trong hình 5, giá trị 1 cho biết rằng biểu đồ chỉ hiển thị duy nhất lớp FamilyCar. Khi bạn áp dụng giá trị 2, thì biểu đồ sẽ hiển thị các lớp FamilyCar, Car, và Vehicle (xem hình 6).
Hình 6. Lớp FamilyCar trong biểu đồ trình duyệt với hai mức độ phân chia
Hình ảnh của biểu đồ trình duyệt, như mô tả.

Biểu đồ trình duyệt của cây thừa kế là một dạng biểu đồ tạm thời mà bạn không thể lưu lại. Thông thường, bạn dùng biểu đồ trình duyệt để duyệt một lớp cho trước hoặc để làm tài liệu thiết kế cho một dự án.


Tạo ra cây thừa kế sử dụng biểu đồ chủ đề (topic diagram)

Ví dụ trước đây cho thấy cách sử dụng biểu đồ trình duyệt để minh họa cây thừa kế của một lớp. Trong một số tình huống nhất định, bạn muốn tạo ra một biểu đồ mô tả tất cả các lớp thuộc lớp FamilyCar trong suốt quá trình phát triển chương trình. Trường hợp này, bạn có thể sử dụng biểu đồ chủ đề để mô tả cây thừa kế của lớp cho trước. Không giống như biểu đồ trình trình duyệt, bạn có thể lưu lại biểu đồ chủ đề dưới dạng tệp tin mô hình để tái sử dụng.

Tạo cây thừa kế của lớp trong mô hình chủ đề:

  1. Mở biểu đồ chủ đề của lớp cho trước, chẳng hạn như FamilyCar, bằng cách nhấn phải chuột vào lớp FamilyCar.java và sau đó chọn Visualize > Add to New Diagram File > Topic Diagram (xem Hình 7).
Hình 7. Mở lớp trong biểu đồ chủ đề
Lựa chọn trong thực đơn thả xuống để mở biểu đồ chủ để
  1. Tạo biểu đồ chủ đề:
    1. Chọn một chủ đề, chẳng hạn như Inherited Java Classes (N cấp)
    2. Định rõ những phần tử có liên quan được hiển thị. Trong ví dụ này, quan hệ Extend được chọn với sự mở rộng không giới hạn theo cả hai hướng vào và ra để miêu tả cây thừa kế.
    3. Nhấn vào Finish. Kết quả được chỉ ra trên hình bên phải của Hình 8.

Để đáp ứng lại các thay đổi trong mã nguồn Java, cập nhật lược đồ bằng cách nhấn phải chuột vào vùng làm việc của biểu đồ chủ đề và nhấn vào Refresh.

Hình 8. Tạo cây thừa kế bằng cách sử dụng biểu đồ chủ đề
Ba hình ảnh màn hình được chụp lại chỉ ra cách tạo cây thừa kế

Nhấn vào đây để phóng to Hình 2.

Tích hợp biểu đồ lớp được tạo ra vào tệp tin mô hình bằng cách sử dụng Harvest

Trong Rational Software Architect, bạn có thể chuyển đổi tệp tin mô hình sang mã Java. Bạn có thế tạo một tệp tin mô hình bằng cách tạo một lớp mới với vài thuộc tính và phương thức; bạn cũng có thể tích hợp các lớp Java đã có từ dự án vào trong tệp tin mô hình. Sử dụng hàm Harvest trong Rational Software Architect để sao chép biểu đồ lớp được tạo ra vào trong tệp tin mô hình của bạn:

  1. Tạo một tệp tin mô hình rỗng bằng cách nhấn chuột vào File > New item. Cửa sổ mới được mở ra (xem Hình 9).
Hình 9. Mở cửa sổ Model
Cửa sổ New trong Rational Software Architect
  1. Nhấn vào Next và làm theo các luồng công việc trong hình 10, trong đó cho thấy biểu đồ đặc quyền (freedom diagram).
Hình 10: Tạo một tệp tin mô hình
Ba hình ảnh màn hình chụp lại: Cách tạo một tệp tin mô hình

Nhấn vào đây để phóng to Hình 10.

  1. Sao chép các biểu đồ lớp vào tệp tin mô hình mới sử dụng hàm Harvest:
    1. Chọn tất cả các lớp trong biểu đồ (xem Hình 11).
    2. Nhấn phải chuột lên biểu đồ, và sau đó nhấn chọn Harvest.
Hình 11. Harvest lựa chọn các lớp trong biểu đồ trình duyệt
Harvest feature selected in drop-down menu
  1. Dán các lớp vào tệp tin mô hình mới (Hình 11 chỉ ra kết quả).

Trong Hình 11, cả lớp Vehicle lẫn lớp Car đều không hiện thông tin các trường dữ liệu và các phương thức. Để làm hiện rõ các trường dữ liệu và các phương thức, chọn một hoặc nhiều lớp trong biểu đồ, nhấn phải chuột vào một hoặc nhiều lớp, và nhấn vào Filters > Show/Hide Compartment > All Compartments (xem Hình 12). Để xem các kết quả cuối cùng của các ngăn (compartment) cho phép, xem Hình 13.

Hình 12. Chỉ ra tất cả các ngăn của lớp Vehicle
Các thực đơn liệt kê thả xuống để lựa chọn các ngăn trong một lớp

Nhấn vào đây để phóng to Hình 12.

Hình 13. Các ngăn của lớp Vehicle
Tất cả các ngăn của lớp được hiện rõ.

Tổng kết

Để phân tích và phát triển các dự án Java, bạn có thể sử dụng các công cụ trong Rational Software Architect, phiên bản 7.5 cho việc sau:

  • Tạo cây thừa kế cho tất cả các lớp trong dự án, sử dụng Software Analyzer.
  • Để hình dung các chi tiết của một lớp là một phần của cây thừa kế, sử dụng lược đồ trình duyệt.
  • Để sử dụng một truy vấn cố định quan sát sự thay đổi mã, sử dụng biểu đồ chủ đề.
  • Để dán một lớp từ cây thừa kế vào trong tệp tin mô hình, sử dụng hàm Harvest.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=462037
ArticleTitle=Kỹ thuật đảo ngược các biểu đồ UML sử dụng IBM Rational Software Architect (Kiến trúc phần mềm Rational của IBM), phiên bản 7.5
publish-date=01152010