Rational Rose là phần mềm công cụ hỗ trợ mạnh cho phân tích, thiết kế hệ thống phần mềm theo hướng đối tượng. Nó giúp mô hình hoá hệ thống trước khi viết mã trình, đảm bảo tính đúng đắn, hợp lý của kiến trúc hệ thống từ khi khởi đầu dự án. Mô hình Rational Rose là bức tranh hệ thống, nó bao gồm toàn bộ các biểu đồ của UML, tác nhân, ca sử dụng, đối tượng, lớp, thành phần và các nút triển khai trong hệ thống. Nó mô tả chi tiết hệ thống bao gồm những gì và chúng làm việc ra sao, để người phát triển hệ thống có thể sử dụng mô hình lập kế hoạch chi tiết cho việc xây dựng hệ thống. Rational Rose hỗ trợ giải quyết nhiều vấn đề quan trọng trong quá trình xây dựng và phát triển hệ thống, chẳng hạn việc đội ngũ dự án giao tiếp với khách hàng hay làm các tài liệu yêu cầu.
Rational Rose Enterprise Edition cho phép phát sinh mã trình từ mô hình của UML sang một ngôn ngữ và dịch ngược từ một ngôn ngữ sang mô hình UML. Rose Eterprise cho phép phát sinh mã trình sang các ngôn ngữ Ada83, Ada95, ANSI C++, CORBA, Java, COM, Visual Basic, Visual C++, C++, Oracle, DB2, SQL Server, XML... và dịch ngược từ mã nguồn của các hệ trên sang mô hình của UML. Hơn nữa Rational Rose Enterprise Edition 7.0.0.0 cho phép mô hình hoá các ứng dụng trên website và tái thiết kế các ứng dụng trên nó.
Mô hình UML Mã nguồn của
một ngôn ngữ Dịch xuôi
34
Rational Rose Enterprise Edition hỗ trợ tiến trình thiết kế kĩ nghệ đảo ngược cả với một số ngôn ngữ lập trình trên mang như ASP, JSP và các trang HTML. Nó gán các stereotype thích hợp cho các lớp và tạo các mối quan hệ giữa chúng. Ngoài ra, nó còn cho phép phát sinh và thiết kế kĩ nghệ đảo ngược trên các hệ thống cơ sở dữ liệu như: IBM DB2, Microsoft SQL Sever, Oracle và Sysbase Adaptive Sever 12.x.
Là một công cụ rất mạnh sử dụng cho UML, Rational Rose Enterprise Edition được sử dụng để tạo ra các biểu đồ trong UML:
− Biểu đồ ca sử dụng – use case diagram
− Biểu đồ đối tượng – object diagram
− Biểu đồ lớp – class diagram
− Biểu đồ tuần tự - sequence diagram
− Biểu đồ trạng thái – state diagram
− Biểu đồ tương tác – collaboration diagram
− Biểu đồ hoạt động – activity diagram
− Biểu đồ thành phần – component diagram
− Biểu đồ cài đặt – deployment diagram
35
Hình 1-15: Biểu đồ lớp
36
Hình 1-17: Biểu đồ trạng thái của hệ thống bán vé
37
Hình 1-19: Biểu đồ hoạt động của hệ thống đặt hàng ở nhà hàng
38
Hình 1-21: Biểu đồ cài đặt của một hệ thống
Không chỉ dừng lại với việc tạo ra các biểu đồ UML, Rational Rose Enterprise Edition còn giúp ta sinh ra mã chương trình từ các biểu đồ đó. Chính nhờ điều này mà qui trình phát triển có thể trở nên tự động hơn, giúp giảm bớt rất nhiều phần việc trong quá trình xây dựng phần mềm. Để có thể sinh ra mã trình từ biểu đồ trong Rational Rose Enterprise Edition ta có thể thực hiện theo các bước cơ bản sau:
Kiểm tra mô hình: Chọn menu Tools -> Check Model, khi đó lỗi mô hình sẽ
được hiển thị trong cửa sổ log
Hình 1-22
Tạo lập thành phần: Mở Component diagram sau đó sử dụng biểu tượng Component trong thanh công cụ để bổ sung thành phần mới vào biểu đồ
Thực hiện ánh xạ lớp vào thành phần:
39
Chọn Open Specification.
Chọn tab Realizes
Click chuột phải trên lớp (những lớp) thích ứng và chọn Assign
Hình 1-23
Browser sẽ chỉ ra tên thành phần trong dấu <<>> sau tên lớp trong Logical View.
Đặt thuộc tính phát sinh mã trình: Có nhiều thuộc tính cho phát sinh mã nguồn có thể gán cho lớp, thuộc tính và các thành phần khác nhau của mô hình. Các thuộc tính này điều khiển mã trình sẽ được phát sinh như thế nào. Rose cung cấp bộ thuộc tính mặc định. Thí dụ, một đặc tính cho phát sinh mã trình của thuộc tính C++ là GenerateOperation, nó điều khiển các Get( ) sẽ được phát sinh cho thuộc tính này hay không. Để quan sát đặc tính phát sinh mã trình, chọn Tools->
40
thành phần mô hình như Class, Attribute, Operation…Mỗi ngôn ngữ có thành phần mô hình khác nhau.
Hình 1-24
Chọn lớp, thành phần hay gói: Khi phát sinh mã trình ta có thể phát sinh cho lớp, thành phần hay gói vào cùng thời điểm. Mã trình có thể phát sinh từ biểu đồ hay browser. Nếu phát sinh mã từ gói, thì có thể chọn gói Logical view trên biểu đồ lớp hay chọn gói Component view trên biểu đồ thành phần. Cũng có thể phát sinh mã trình đồng thời cho nhiều lớp, thành phần hay gói.
Phát sinh mã trình: Sau khi chọn lớp hay thành phần trên biểu đồ, vào menu Tools sẽ hiển thị ra các ngôn ngữ mà Rational hỗ trợ, chọn ngôn ngữ thích ứng trong thực đơn phát sinh mã trình. Nếu có lỗi xảy ra trong quá trình phát sinh mã trình, chúng được hiển thị trên cửa sổ log.
Không phải phát sinh mã trình đối với bất cứ ngôn ngữ nào cũng cần phải thực hiện đầy đủ theo các bước trên. Ví dụ đối với ngôn ngữ C++ ta có thể bỏ qua bước thứ hai, hoặc bước 1 ta không nhất thiết phải thực hiện đối với mọi ngôn ngữ. Tuy nhiên, để có một chương trình chính xác và đầy đủ, ta nên thực hiện đầy đủ theo các bước ở trên.
41
Hình 1-25: Sinh mã nguồn từ mô hình UML của Rational Rose
Không chỉ dừng lại ở việc dịch mã nguồn từ biểu đồ, Rational Rose còn hỗ trợ trong việc dịch ra biểu đồ từ mã nguồn của hệ thống. Như vậy, với một chương trình mà ta chỉ có mã nguồn, với sự hỗ trợ của Rational Rose ta sẽ xây dựng lại được các biểu đồ của hệ thống đó. Đây chính là một tính năng quan trọng của Rational Rose phục vụ cho việc tái kỹ nghệ hệ thống.