PDF:

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
Si Yin ([email protected])
Tư vấn
EMC
15 01 2010
Fenglian Xu ([email protected])
Kỹ sư phần mềm
IBM
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ỏ.
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).
© Copyright IBM Corporation 2010
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
Nhẫn hiệu đăng ký
Trang 1 của 13
developerWorks®
ibm.com/developerWorks/vn/
Hình 1. Mở Software Analyzer
2. Tạo cấu hình:
a. Trong trường Name, gõ tên của trường.
b. 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ế
Nhấn vào đây để phóng to Hình 2.
c. 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, Car và PogoStick. Lớp Car có hai lớp con: FamilyCar và
SportsCar. 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).
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
Trang 2 của 13
ibm.com/developerWorks/vn/
developerWorks®
Hình 3. Cây thừa kế được tạo bởi Software Analyzer
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
2. 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ệ:
• Extends (Mở rộng): Duyệt các lớp mà từ đó FamilyCar được mở rộng
• Dependency (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
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
Trang 3 của 13
developerWorks®
ibm.com/developerWorks/vn/
• Realization (Thực hiện): Duyệt các giao diện được thực hiện bởi lớp FamilyCar
• Association (Liên hệ): Duyệt các lớp có quan hệ với lớp FamilyCar
• Declares: 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.
3. 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).
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
Trang 4 của 13
ibm.com/developerWorks/vn/
developerWorks®
Hình 6. Lớp FamilyCar trong biểu đồ trình duyệt với hai mức độ phân chia
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).
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
Trang 5 của 13
developerWorks®
ibm.com/developerWorks/vn/
Hình 7. Mở lớp trong biểu đồ chủ đề
2. Tạo biểu đồ chủ đề:
a. Chọn một chủ đề, chẳng hạn như Inherited Java Classes (N cấp)
b. Đị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ế.
c. 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ủ đề
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).
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
Trang 6 của 13
ibm.com/developerWorks/vn/
developerWorks®
Hình 9. Mở cửa sổ Model
2. 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
Nhấn vào đây để phóng to Hình 10.
3. 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:
a. Chọn tất cả các lớp trong biểu đồ (xem Hình 11).
b. Nhấn phải chuột lên biểu đồ, và sau đó nhấn chọn Harvest.
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
Trang 7 của 13
developerWorks®
ibm.com/developerWorks/vn/
Hình 11. Harvest lựa chọn các lớp trong biểu đồ trình duyệt
c. 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.
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
Trang 8 của 13
ibm.com/developerWorks/vn/
developerWorks®
Hình 12. Chỉ ra tất cả các ngăn của lớp Vehicle
Nhấn vào đây để phóng to Hình 12.
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
Trang 9 của 13
developerWorks®
ibm.com/developerWorks/vn/
Hình 13. Các ngăn của lớp Vehicle
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.
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
Trang 10 của 13
ibm.com/developerWorks/vn/
developerWorks®
Tài nguyên
Học tập
• Để biết thêm thông tin về kỹ thuật đảo ngược trong các phiên bản trước đó của Rational
Software Architect, xem Reverse engineering UML class and sequence diagrams from Java
code with IBM Rational Software Architect (Kỹ thuật đảo ngược lớp và các biểu đồ trình tự
trong UML từ mã Java với IBM Rational Software Architect) bởi Fenglian Xu và Alex Wood
(IBM developerWorks, June 2008).
• Nghiên cứu về các ứng dụng trong IBM Rational Software Delivery Platform (Nền tảng phát
triển phần mềm Rational IBM), bao gồm các công cụ cộng tác cho quản trị kiến trúc, quản trị
tài sản, quản trị sự thay đổi và loại bỏ, quản trị nhu cầu tích hợp, quản trị quy trình và vốn đầu
tư, và quản trị chất lượng. Bạn có thể tìm thấy hướng dẫn sử dụng, hướng dẫn cài đặt và các
tài liệu khác tại IBM Rational Online Documentation Center (Trung tâm học liệu trực tuyến
Rational của IBM).
• Ghé thăm Rational software area on developerWorks (Phầm mềm Rational trên
developerWord) gồm các tài nguyên kỹ thuật và các bài tập tốt nhất về các sản phẩm của
Rational Software Delivery Platform
• Duyệt qua Rational computer-based, Web-based, and instructor-led online courses (Các
khóa học trực tuyến về cơ sở tính toán Rational, nền Web. Rèn luyện các kỹ năng của bạn và
tìm hiểu thêm về các công cụ Rational với khóa học này, từ cơ bản đến nâng cao. Các khóa
học trong danh mục này có sẵn để tham khảo từ khóa đào tạo cơ sở tính toán hay khóa đào
tạo cơ sở Web. Ngoài ra, một vài khóa học nhập môn "Getting Started" cũng được cấp miễn
phí.
• Đăng ký bản tin Rational Edge cho các bài viết về những khái niệm đằng sau việc phát triển
phần mềm hiệu quả.
• Đăng ký bản tin của IBM developerWorks, cập nhật hàng tuần trên các hướng dẫn
developerWorks, các bài viết, các tải về, các hoạt động cộng đồng, các webcasts và các sự
kiện.
• Duyệt qua technology bookstore (Kho sách công nghệ) để tìm các sách trên đây và các chủ
đề kỹ thuật khác.
• Để lấy tài liệu về Rational Software Architect, xem Rational Software Architect information
center (Trung tâm thông tin Rational Software Architect).
Lấy sản phẩm và công nghệ
• Tải về phiên bản thử nghiệm phần mềm Rational của IBM.
• Tải IBM product evaluation versions (Phiên bản đánh giá sản phẩm của IBM) và cài đặt
các công cụ ứng dụng và các sản phẩm ứng dụng lớp giữa từ DB2®, Lotus®, Tivoli®, và
WebSphere®.
• Thử nghiệm bản dùng thử 30 ngày của Rational Software Architect.
Thảo luận
• Duyệt qua các developerWorks blogs và tham gia vào developerWorks community (cộng
đồng developerWorks).
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
Trang 11 của 13
developerWorks®
ibm.com/developerWorks/vn/
• Để tham gia thảo luận về Rational Software Architect với những người dùng khác, hãy tham
gia Development Tools forum (diễn đàn các công cụ phát triển).
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
Trang 12 của 13
ibm.com/developerWorks/vn/
developerWorks®
Đôi nét về các tác giả
Si Yin
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
Tiế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
© Copyright IBM Corporation 2010
(www.ibm.com/legal/copytrade.shtml)
Nhẫn hiệu đăng ký
(www.ibm.com/developerworks/vn/ibm/trademarks/)
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
Trang 13 của 13