Các nghiên cứu liên quan

Một phần của tài liệu (LUẬN ÁN TIẾN SĨ) Một số phương pháp kiểm chứng tái cấu trúc phần mềm Luận án TS. Máy tính 624801 (Trang 43 - 46)

Trong mục này, luận án trình bày và thảo luận một số nghiên cứu trong bức tranh tổng thể giải quyết bài toán tái cấu trúc biểu đồ lớp của UML.

Wimmer và các cộng sự đã cung cấp một danh mục các phép tái cấu trúc để chuyển đổi từ mơ hình sang mơ hình dựa trên một tập hợp các quy tắc [71]. Nghiên cứu của họ có ý nghĩa khơng chỉ liên quan đến sự bảo trì chất lượng của hệ thống như khả năng đọc, khả năng sử dụng lại, khả năng mở rộng của các phép biến đổi và hiệu suất của các phép biến đổi. Các phép biến đổi này được minh hoạ thơng qua siêu mơ hình được chú thích cùng với các ràng buộc OCL. Tuy nhiên, các phép tái cấu trúc trong danh mục này được mô tả bởi ngôn ngữ tự nhiên, điều này có thể dẫn đến khó khăn trong việc cài đặt và phát triển công cụ hỗ trợ tiến trình tái cấu trúc.

Sunyé và các cộng sự thực hiện tái cấu trúc trên mơ hình UML, cụ thể là trên biểu đồ lớp và máy trạng thái [64]. Thực hiện tái cấu trúc trên biểu đồ lớp, họ giới thiệu một số phép toán: (1) Thêm đặc trưng/Kết hợp (Add feature/association), (2) Loại bỏ đặc trưng/Kết hợp (Remove feature/association) và (3) Di chuyển phần tử (Move element). Để thực

hiện tái cấu trúc trên máy trạng thái, họ mô tả các phép toán cùng với việc định nghĩa các ràng buộc OCL (bao gồm tiền và hậu điều kiện). Các ràng buộc này được sử dụng trong quá trình tái cấu trúc nhằm mục tiêu bảo toàn hành vi của các máy trạng thái. Tuy nhiên, nghiên cứu của họ cũng chưa đề cập đến bảo toàn bất biến của các lớp.

Một nghiên cứu khác theo hướng biến đổi từ mơ hình sang mơ hình, Ivan Porres trình bày một ngơn ngữ hành động (Action Language) [54]. Ngơn ngữ này được áp dụng trong q trình biến đổi mơ hình. Kết quả nghiên cứu của họ tập trung vào vấn đề làm thế nào để thực hiện tiến trình tái cấu trúc như là một tập hợp các quy tắc chuyển đổi. Nghiên cứu này cũng cung cấp một vài phép tái cấu trúc trên biểu đồ lớp và máy trạng thái cùng với việc cài đặt một công cụ thực nghiệm. Tuy nhiên, họ khơng thảo luận chi tiết về các khía cạnh cải thiện thiết kế và bảo toàn hành vi của các hệ thống này.

Thomas và các cộng sự phát triển một số phép tái cấu trúc cho biểu đồ lớp có sử dụng QVT (Query/View/Transformation) [4]. Họ tập trung vào

biểu diễn các mơ hình có đi kèm với các chú thích OCL, khi đó bất kỳ phép tái cấu trúc nào làm thay đổi cấu trúc của mơ hình cũng sẽ ảnh hưởng trực tiếp đến các ràng buộc OCL. Nghiên cứu của họ đề xuất phương pháp để bảo toàn các ràng buộc OCL này. Tuy nhiên, họ chỉ minh hoạ cho phương pháp được đề xuất với một phép tái cấu trúc khá đơn giản là MoveAttribute,

đồng thời cũng khơng có sự khái qt hóa việc bảo tồn về mặt ngữ nghĩa trong tiến trình tái cấu trúc mơ hình phần mềm.

Alessandro Folli và Tom Mens sử dụng biến đổi đồ thị để thực hiện tái cấu trúc mơ hình UML [26]. Họ cũng quan tâm đến biểu đồ lớp và máy trạng thái. Nghiên cứu này đã định nghĩa một siêu mơ hình tương tự như các biểu đồ siêu mơ hình trong UML. Phương pháp đề xuất của họ khơng có nhiều đóng góp mới bởi phương pháp biểu diễn biểu đồ lớp bằng đồ thị kiểu và siêu mơ hình trong UML là khá giống nhau.

Markovic và các cộng sự đã hình thức hóa và chứng minh sự bảo tồn về mặt ngữ nghĩa của một số phép tái cấu trúc nguyên thủy, bao gồm

MoveAttribute, MoveAssociationEnd, PushDownAttibute, RenameAttribute, ExtractClass, ExtractSuperclass và PullUpMethod [40]. Họ thực hiện cài đặt các phép tái cấu trúc trên biểu đồ lớp cùng với các ràng buộc được biểu diễn bằng OCL. Nghiên cứu của họ chỉ ra rằng, cho dù cấu trúc của của các biểu thức OCL có thể bị thay đổi trong tiến trình tái cấu trúc nhưng ngữ nghĩa của nó vẫn ln được bảo tồn.

Một trong những nghiên cứu rất gần với công việc thực hiện trong chương này của luận án được tiến hành bởi Pereira và các cộng sự [53]. Phương pháp nghiên cứu được các tác giả này sử dụng chứng minh sự bảo toàn các ràng buộc hành vi dựa trên biến đổi mơ hình. Những đóng góp trong nghiên cứu của họ cụ thể là như sau:

– Biểu diễn biểu đồ lớp và các khái niệm thành phần của biểu đồ này (lớp, liên kết, thuộc tính, phương thức, v.v.); đồng thời giới thiệu một số ánh xạ (liên quan đến điều kiện kết hợp thuộc tính và phương thức): O × O 7−→ {true,false}: trả về giá trị true nếu hai phương thức "tương đương (equivalence)" nhau; trả về giá trị false trong trường hợp ngược lại;

A × A 7−→ {true,false}): trả về giá trị true nếu hai thuộc tính "tương đương" nhau; trả về giá trịfalse trong trường hợp ngược

lại;

– Mô tả các phép tốn Folding, Abstraction, Composition, Factoring

bằng ngơn ngữ tự nhiên;

– Trình bày một số chiến lược (strategy) tái cấu trúc thông qua việc kết hợp các phép tái cấu trúc Folding, Abstraction, Composition, Facto- ring;

– Minh họa phương pháp tiếp cận thông qua ví dụ.

Tuy nhiên, kết quả nghiên cứu của họ còn tồn tại một số hạn chế sau: – Phương pháp biểu diễn các thành phần của biểu đồ lớp và các ánh xạ

vẫn chưa đủ chặt chẽ. Họ chưa làm rõ khái niệm "tương đương" giữa hai phương thức cũng như giữa hai thuộc tính;

– Các phép tốn được mơ tả bằng ngơn ngữ tự nhiên, điều này có thể dẫn đến sự nhập nhằng và gây khó khăn cho cơng việc xây dựng công cụ trợ giúp tiếp theo;

– Bước đầu giới thiệu các chiến lược áp dụng trong tái cấu trúc biểu đồ lớp. Tuy nhiên, mới dừng lại ở mơ tả lý thuyết và cịn khá nhập nhằng, chưa có sự áp dụng trực tiếp vào ví dụ minh họa;

– Đặc biệt, nghiên cứu của họ chưa thực hiện xem xét ảnh hưởng của tiến trình tái cấu trúc đến các ràng buộc bất biến của biểu đồ lớp.

Bởi vậy, dựa trên những đánh giá về kết quả nghiên cứu của họ, luận án tiếp tục thực hiện giải quyết một số vấn đề sau:

– Biểu diễn một cách hình thức biểu đồ lớp và các thành phần cấu tạo lên biểu đồ lớp (biểu đồ lớp - mơ hình, lớp, thuộc tính, phương thức, bất biến của lớp, quan hệ kết hợp);

– Giới thiệu bổ sung một số khái niệmbất biến của mơ hình, cặp phương thức tương đương về ngữ nghĩa, cặp thuộc tính có thể kết hợp, tiến trình tái cấu trúc, bảo tồn bất biến trên mơ hình tái cấu trúc.

– Định nghĩa khn mẫu sử dụng để biểu diễn các phép toán Folding, Abstraction, Composition, Factoring. Xây dựng các luật tái cấu trúc

và chứng minh sự đúng đắn về bảo toàn bất biến của các luật này. Ngồi ra, với mục tiêu trình bày bài tốn tái cấu trúc trên biểu đồ lớp một cách đầy đủ (tác động đến cả các lớp và các quan hệ kết hợp), nghiên

cứu của Pereira [53] và luận án này đều trình bày lại kết quả nghiên cứu về sự biến đổi của các quan hệ kết hợp (associations) trong tiến trình tái cấu trúc.

Một phần của tài liệu (LUẬN ÁN TIẾN SĨ) Một số phương pháp kiểm chứng tái cấu trúc phần mềm Luận án TS. Máy tính 624801 (Trang 43 - 46)

Tải bản đầy đủ (PDF)

(132 trang)