Chương 1: Tổng quan về công nghệ quản lý dữ liệu phi cấu trúc và hệ thống quản lý văn bản, điều hành trực tuyến
1.1. Tổng quan về các công nghệ quản lý dữ liệu phi cấu trúc
1.1.3. Các công cụ trợ giúp quá trình tái kỹ nghệ phần mềm
Có khá nhiều các công cụ hỗ trợ cho việc tái kỹ nghệ. Trong mỗi giai đoạn của quy trình lại có một công cụ phục vụ cho các công việc khác nhau. Để dịch mã nguồn sang mô hình thiết kế chúng ta có các công cụ như Rational Software Architecture, Rational Rose v.v.. Bộ công cụ DMS Software Reengineering Toolkit là công cụ tự động phân tích chương trình, tùy chỉnh mã nguồn, sửa đổi, dịch hay phát sinh ra hệ thống phần mềm. Có rất nhiều các công cụ hỗ trợ như thế, nhưng trong phạm vi luận văn này sẽ tập trung vào việc tái kỹ nghệ phần mềm với sự hỗ trợ của công cụ Rational Rose và ngôn ngữ mô hình hóa thống nhất UML.
1.1.3.1. Ngôn ngữ UML
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngôn ngữ mô hình có phần chính bao gồm những ký pháp đồ họa, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu tả các thiết kế của một hệ thống. Nó là một ngôn ngữ để đặc tả, trực quan hoá, xây dựng và làm tài liệu cho nhiều khía cạnh khác nhau của một hệ thống phần mềm chuyên sâu. UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà phân tích, nhà thiết kế và nhà phát triển phần mềm.
Trong quá trình phát triển có nhiều công ty đã hỗ trợ và khuyến khích phát triển UML có thể kể tới như: Hewlett Packard, Microsoft, Oracle, IBM, Unisys.
UML có thể được sử dụng trong nhiều giai đoạn, từ phát triển, thiết kế cho tới thực hiện và bảo trì. Vì mục đích chính của ngôn ngữ này là dùng các biểu đồ hướng đối tượng để mô tả hệ thống nên miền ứng dụng của UML bao gồm nhiều loại hệ thống khác nhau.
Có thể nói UML không phải là một phương pháp mà là một ngôn ngữ mô hình hóa đối tượng đã được công nhận là một phương pháp đối tượng và được sử dụng chung trong cộng đồng công nghệ thông tin. Nó đã trở thành một chuẩn và được sử dụng phổ biến trong qui trình kỹ nghệ phần mềm.
Việc dịch xuôi và ngược được thực hiện dựa trên các nguyên tắc ánh xạ một-một giữa các phần tử trong mô hình thiết kế và các phần tử trong mã nguồn. Kết quả của quá trình dịch xuôi có thể cho mã nguồn thực hiện được hoặc các tệp nhị phân lưu giữ
Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/
thông tin về mô hình. Kết quả của việc dịch ngược sẽ cho các mô hình thiết kế ban đầu.
Ta có thể mô tả quá trình của kĩ thuật đảo ngược trong UML như sau:
Hình 1.12: Dịch xuôi và dịch ngược trong UML 1.1.3.2. Hệ thống phần mềm RATIONAl ROSE
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ó.
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ó
Mô hình UML Mã nguồn của một
ngôn ngữ Dịch xuôi
Dịch ngược
Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/
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
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.
Ngoài ra, 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.
1.1.3.3. Tái kỹ nghệ hệ thống với kỹ nghệ đảo ngược của Rational Rose
Thiết kế bằng kỹ nghệ đảo ngược là thiết kế lấy thông tin từ mã nguồn của chương trình, rồi tạo hoặc cập nhật lại thành một mô hình trên Rational Rose. Thông qua khả năng tích hợp của Rational Rose với một số ngôn ngữ lập trình khác như:
C++/Visual C, Java, Visual Basic, Ada, CORBA, XML ..., Rational Rose hỗ trợ cơ chế thiết kế kỹ nghệ đảo ngược thành một mô hình UML.
Một trong những thách thức của các đề án Công nghệ thông tin là giữ cho mô hình đối tượng nhất quán với mã trình. Khi thay đổi các yêu cầu, thường thì ta có khuynh hướng thay đổi mã trực tiếp, thay vì thay đổi mô hình rồi phát sinh mã. Trong
Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/
Rose, ta có thể tái thiết kế hệ thống phần mềm với kĩ thuật đảo ngược đảm bảo cho mô hình đồng bộ với mã trình.
Trong tiến trình thiết kế bằng kĩ thuật đảo ngược, Rose sẽ thu thập các thông tin về: các lớp, các thuộc tính, các tác vụ, các mối quan hệ, các các gói, các thành phần...
trong chương trình nguồn. Nó sẽ sử dụng các thông tin này để tạo mới hoặc cập nhật một mô hình đối tượng. Nếu ta có một tệp tin mã nguồn chứa một lớp, tiến trình thiết kế kĩ thuật đảo ngược sẽ tạo ra một lớp tương ứng trong mô hình Rose, mỗi thuộc tính và tác vụ của lớp sẽ xuất hiện dưới dạng các thuộc tính và các tác vụ của lớp mới trong mô hình Rose. Cùng với tên thuộc tính và tên tác vụ, Rose đưa thêm vào các thông tin về tầm hoạt động, kiểu dữ liệu và các giá trị ngầm định.
Nếu ban đầu ta dùng Rose để tạo ra các lớp, dùng kĩ thuật dịch xuôi để phát sinh mã trình, sau đó thực hiện một số thay đổi với các lớp trong mã trình, các thay đổi này sẽ được phản ánh trong tiến trình thiết kế với kĩ thuật đảo ngược. Chẳng hạn, nếu xoá hay bổ sung một tác vụ trong mã trình, tác vụ này sẽ bị xoá hay bổ sung vào mô hình nhận được bằng kĩ thuật đảo ngược.
Ngoài các lớp, Rose sẽ thu thập thông tin về các mối quan hệ trong mã trình.
Nếu một lớp chứa một thuộc tính có kiểu dữ liệu là một lớp khác, Rose sẽ tạo mối quan hệ giữa hai lớp. Với các mối quan hệ kế thừa Rose sẽ tạo các mối quan hệ tổng quát hoá để hỗ trợ mọi quan hệ trong mã trình.
Có thể mô tả các quá trình phân tích thiết kế và tái thiết kế như trong các sơ đồ sau đây: Trong hình 1.23 mô tả một bước lặp trong tiến trình tái thiết kế xuất phát là mã nguồn của một ngôn ngữ lập trình được UML hỗ trợ. Trong hình 1.24 mô tả một bước lặp trong tiến trình tái thiết kế xuất phát là mô hình thiết kế của UML đã được thiết lập trước đây.
Hình 1.24 mô tả một bước lặp trong tiến trình tái thiết kế. Ban đầu từ chương trình nguồn của hệ thống được lập trước đây, nhờ kĩ nghệ thiết kế đảo ngược của Rational Rose ta chuyển nó sang mô hình thiết kế trên UML. Tiếp đến là cập nhật, sửa đổi, hiệu chỉnh, bổ sung cho bản thiết kế này trên Rose. Sau đó lại sử dụng kĩ nghệ dịch xuôi của Rational Rose để chuyển bản thiết kế này sang mã nguồn. Quá trình lặp trên có thể được thực hiện nhiều lần nếu cần thiết, và sau một bước lặp đó ta sẽ được
Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/
một thế hệ phần mềm mới có thêm các chức năng và những đặc tính mới. Trong quá trình tái thiết kế hệ thống phần mềm chúng ta có thể kết hợp hai sơ đồ trên với nhau.
Hình 1.13: Một bước lặp của quá trình tái thiết kế với xuất phát là mã nguồn
Hình 1.14: Một bước lặp của quá trình tái thiết kế xuất phát là mô hình thiết kế Quá trình tái thiết kế phần mềm với Rational Rose không những cho ta một hệ thống phần mềm mới hơn hẳn hệ thống ban đầu về tính năng, mà còn cho phép sinh ra hệ thống trong một ngôn ngữ lập trình khác ngôn ngữ ban đầu. Nhờ vậy làm tăng tính khả chuyển (có khả năng hoạt động trên môi trương mới) của hệ thống mới nhận được.
Trong điều kiện mà công nghệ thông tin thay đổi rất nhanh, nhu cầu tái thiết kế các hệ thông phần mềm là rất lớn, và tính khả chuyển trên đây có ý một nghĩa cực kỳ quan trọng trong triển khai thực tế.