kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế - Pdf 10



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Văn Thế
KIỂM TRA SỰ TINH CHẾ HAI MÔ HÌNH
CÓ ÁP DỤNG MẪU THIẾT KẾ

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Tóm tắt
Nội dung chính của bài khóa luận “Kiểm tra sự tinh chế hai mô hình có áp dụng
mẫu thiết kế” có thể được trình bày ngắn gọn qua các vấn đề sau:
- Tìm hiểu về khái niệm và vai trò của Mẫu thiết kế (design pattern) nói chung và
mẫu thiết kế hợp nhất nói chúng cũng như việc áp dụng mẫu thiết kế hợp nhất
(union design pattern)
- Thực hiện chuyển biểu đồ lớp UML sang dạng đặc tả OWL Ontology trên cơ sở
lý thuyết bài khóa luận của sinh viên Giáp Thị Ngọc Thúy đã thực hiện.
- Tìm hiểu một số công cụ đã có hỗ trợ việc so sánh hai OWL Ontology, phân
tích những ưu nhược điểm của chúng.
- Tìm kiếm giải pháp cho việc truy vấn OWL Ontology từ ngôn ngữ lập trình
Java đồng thời viết những luật Prolog kiểm tra sự tương đương của hai phiên
bản của một biểu đồ lớp trước và sau khi áp dụng mẫu thiết kế hợp nhất.
- Thiết kế và cài đặt công cụ hỗ trợ so sánh hai OWL Ontology hay hai phiên bản
của một biểu đồ lớp trước và sau khi áp dụng mẫu hợp nhất thông qua những
luật Prolog.

Mục lục
MỞ ĐẦU 1
CHƢƠNG 1: GIỚI THIỆU VỀ MẪU THIẾT KẾ 2

4.3.1. Biểu đồ tuần tự 28
4.2.2.1. Biểu đồ tuần tự của ca sử dụng “Import OWL Ontology” 28
4.2.2.2. Biểu đồ tuần tự của ca sử dụng “Compare two OWL Ontology” 28
4.3.2. Biểu đồ lớp chi tiết 29
4.3.3. Thiết kế riêng từng chức năng 30
4.2.2.3. Chức năng “Import OWL Ontology” 30
4.2.2.4. Chức năng “Compare two OWL Ontology” 30
4.3.4. Thiết kế giao diện người dùng 31
4.4. Cài đặt và kiểm thử 32
4.4.1. Cài đặt 32
4.4.1.1. Môi trường thực hiện và những phần mềm, thư viện liên quan 32
4.4.1.2. Truy vấn Owl Ontology 33
4.4.1.3. Kiểm tra hai mô hình bằng các luật Prolog 37
4.4.2. Một số trường hợp kiểm thử 41
CHƢƠNG 5: TỔNG KẾT 47
5.1. Tổng kết quá trình thực hiện và kết quả đặt được 47
5.1.1. Về mặt khảo sát, lựa chọn phương án và phân tích thiết kế 47
5.1.2. Về mặt cài đặt và kiểm thử 47
5.2. Hướng phát triển 48

DANH SÁCH CÁC BẢNG BIỂU
Bang 1: Mô tả các lớp trong OWL Ontology đặc tả biểu đồ lớp trong UML 22
Bang 2: Kịch bản ca sử dụng “Import OWL Ontology” 25
Bang 3: Kịch bản ca sử dụng “Compare two OWL Ontology” 26

DANH SÁCH CÁC HÌNH VẼ
Hinh 1 Biểu đồ lớp cho mẫu thiết kế hợp nhất 3
Hinh 2: Các kiểu dữ liệu trong Prolog 7
Hinh 3: Kết quả so sánh hai phiên bản của một OWL Ontology với Protégé 10
Hinh 4: Kết quả quá trinh so sánh hai OWL Ontology với OWLDiff 13

OWL
Web Ontology Language
3
Prolog
Programing in Logic
1

MỞ ĐẦU
OWL (Web Ontology Language) là ngôn ngữ để phát triển Ontology. Các
Ontology được thể hiện bằng ngôn ngữ OWL có ưu điểm là dễ mở rộng, có thể chia sẻ
qua Internet, hỗ trợ khả năng suy luận bằng cách thực hiện truy vấn các thông tin trong
Ontology.

vấn đề chung trong thiết kế phần mềm. Một mẫu thiết kế không phải là một thiết kế
hoàn thiện để có thể chuyển đổi trực tiếp thành mã, nó chỉ là một mô tả hay là sườn
(template) mô tả cách giải quyết một vấn đề có thể được dùng trong nhiều tình huống
khác nhau. Các mẫu thiết kế hướng đối tượng thường cho thấy mối quan hệ và sự
tương tác giữa các lớp hay các đối tượng, mà không cần chỉ rõ các lớp hay đối tượng
của từng ứng dụng cụ thể. (Wikipedia)
Có hàng nghìn những mẫu thiết kế cung cấp những giải pháp cho rất nhiều
những vấn đề khác nhau trong việc thiết kế những hành vi như giao diện người máy,
cấu trúc của hệ thống, hành vi của hệ thống. Những mẫu thiết kế được biểu diễn bởi
những ngôn ngữ và ký hiệu khác nhau chẳng hạn như văn bản, UML và những ngôn
ngữ mô hình hóa
Một bản mô tả của mẫu thiết kế cần có những vấn đề chính sau:
1. Vấn đề mô điều kiện áp dụng mẫu thiết kế. Nó giải thích rõ hơn về bài toán và
ngữ cảnh của nó. Nó bao gồm một danh sách những điều kiện phải được thỏa
mãn trước khi nó được áp dụng mẫu thiết kế. Bài toán được biểu diễn qua phần
mục đích và tính khả dụng trong tài liệu mẫu thiết kế.
2. Vấn đề mô tả những thành phần tạo lên bản thiết kế, những quan hệ, vai trò và
sự hợp tác của chúng. Nó được biểu diễn qua phần cấu trúc, sự hợp tác và
những thành phần tham gia trong tài liệu của mẫu
1.1. Vai trò của mẫu thiết kế
Bên cạnh những lợi ích trực tiếp của một giải pháp tốt cho việc tinh chế thiết kế
của những hệ thống phần mềm, chất lượng tốt hơn, những mẫu thiết kế thậm trí còn có
thể cải thiện tài liệu và bảo trì những hệ thống đã có và cho phép những người thiết kế
trừu tượng hóa những chi tiết thiết kế đã quen thuộc (Ví dụ: những quan hệ, những
3

phương thức) và tập chung vào những nhiệm vụ quan trọng hơn. Những mẫu cũng làm
cho việc sử dụng lại những thiết kế và cấu trúc trở nên đơn giản hơn.
1.2. Mẫu thiết kế hợp nhất (Union Design Pattern)
Mẫu thiết kế hợp nhất là một mẫu mang tính cấu trúc mô tả quan hệ kế thừa

và phương thức trừu tượng cái mà biểu diễn những hành vi không cố định của hệ
thống. Những lớp con có những phương thức cụ thể thực thi những hành vi khác nhau
của hệ thống và biểu diễn tính đa hình của hệ thống.
5

CHƯƠNG 2: OWL ONTOLOGY VÀ PROLOG
Trong Chương này chúng tôi xin giới thiệu những khái niệm của một OWL
Ontology và ngôn ngữ Prolog, những công cụ chính được sử dụng trong bài Khóa luận
này. Tuy nhiên do tính chất của bài Khóa luận chúng tôi chỉ có thể giới thiệu một số
nét chính về OWL Ontology cũng như ngôn ngữ Prolog.
2.1. OWL Ontology
OWL (Web Ontology Language) là một trong những ngôn ngữ biểu diễn tri
thức cho những ontology được đưa ra bởi W3C (World Wide Web Consortium – Tổ
chức những chuẩn quốc tế cho World Wide Web). Chúng được thể hiện bởi những
chuỗi ký tự dựa trên nền tảng RDF (Resource Description Framework)/XML
(Extensible Markup Language) cho web ngữ nghĩa (Semantic Web). Owl được chia
làm 3 loại: OWL - Lite, OWL - DL, OWL - FULL
Các thành phần của OWL Ontology
- Các cá thể (Individuals) - Thể hiện
Các cá thể là các thành phần cơ bản, nền tảng của một Owl Ontology. Các cá thể
trong một Owl Ontology có thể bao gồm các đối tượng cụ thể như con người, động
vật, cái bàn…. Một Owl Ontology có thể không cần bất kỳ một cá thể nào, nhưng
một trong những lý do chính của một Owl Ontology là để cung cấp một ngữ nghĩa
của việc phân lớp các cá thể, mặc dù các cá thể này không thực sự là một phần của
ontology.
- Các lớp (Classes) - Khái niệm
Các lớp là một thể hiện của một nhóm, tập hợp các đối tượng. Chúng có thể chứa
các cá thể, các lớp khác, hay là sự phối hợp của cả hai.
Một lớp có thể chứa các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ),
có thể là lớp chỉ chứa những cá thể riêng lẻ, Một lớp có thể xếp gộp vào hoặc bị


Mỗi nguyên tử biểu diễn một quan hệ giữa các hạng (term). Như vậy, hạng và
quan hệ giữa các hạng tạo thành mệnh đề.
Hạng được xem là những đối tượng “dữ liệu” trong một chương trình Prolog.
Hạng có thể là hạng sơ cấp (elementary term) gòm hằng (constant), biến (variable) và
các hạng phức hợp (compound term).
Các hạng phức hợp biểu diễn các đối tượng phức tạp của bài toán cần giải quyết
thuộc lĩnh vực đang xét. Hạng phức hợp là một hàm tử (functor) có chứa các đối
(argument), có dạng:
Tên_hàm_tử (Đối_1, Đối_2,…, Đối_n)
b. Các kiểu dữ liệu trong Prolog
Các kiểu dữ liệu trong Prolog được biểu diễn trong hình sau đây:

Hinh 2: Các kiểu dữ liệu trong Prolog
2.1.2. Sự kiện và Luật trong Prolog
2.2.2.1. Xây dựng sự kiện
Ví dụ về sự kiện:
parent(pam, bob).
sister(mary, tom).
8

brother(peter, tomy).
Sau khi hệ thống nhận được những sự kiện này, nếu người dùng đặt câu hỏi
?-parent(pam, bob).
Sau khi hệ thống tìm thấy sự kiện này trong chương trình, Prolog trả lời:
Yes
Nếu đặt câu hỏi
?-parent(X, bob).
Hệ thống sẽ trả lời:
X = pam

xứng đáng được lựa chọn để biểu diễn biểu đồ lớp UML trong hoàn cảnh này.
Chúng ta có thể dễ dàng chuyển một biểu đồ lớp trong UML sang OWL
Ontology bằng việc áp dụng những ánh xạ chuyển những chi tiết đặc tả một biểu đồ
lớp trong UML sang OWL Ontology đã được trình bầy cụ thể trong bài khóa luận của
sinh viên Giáp Thị Ngọc Thúy và ở đây chúng tôi xin phép không trình bày lại nữa.
10

3.2. Thực hiện so sánh hai OWL Ontology
Ngày nay cũng đã xuất hiện khá nhiều những công cụ cho phép người dùng so
sánh hai phiên bản khác nhau của một owl ontology. Trước khi đưa ra giải pháp để
thực hiện việc so sánh hai OWL Ontology chúng tôi cũng xin trình bày về thực trạng
của một vài công cụ điển hình hỗ trợ cho việc so sánh hai OWL Ontology hiện nay.
3.2.1. Protégé
Protégé được phát triển bởi Trung tâm nghiên cứu thông tin Y sinh Stanford
(Stanford Center for Biomedical Infomationn Research) của trường đại học Y khoa
Stanford (Stanford University School of Medicine)
Protégé là một công cụ dựa trên nền tảng mã nguồn mở và được sử dụng miễn
phí. Đây là một công cụ hỗ trợ việc mô hình hóa tri thưc dưới dạng Ontology với
nhiều định dạng như: owl, rdf, rdfs,… Bên cạnh đó, Protégé còn cho phép chúng ta
quản lý nhiều ontology như việc trộn hai ontology, so sánh hai phiên bản khác nhau
của một ontology,… Tuy nhiên trong bài viết này chúng ta chỉ quan tâm đến chức
năng so sánh hai phiên bản khác nhau của một ontology.
Hình ảnh sau biểu diễn kết quả quả của quá trình kiểm tra hai phiên bản khác
nhau của một Owl Ontology bằng Protégé:

Hinh 3: Kết quả so sánh hai phiên bản của một OWL Ontology với Protégé
Trong bảng kết quả nhận được ở trên có chứa các cột:
11

 f1, f2: Là hai cột biểu diễn những lớp, thuộc tính của phiên bản trước đó và


13 Hinh 4: Kết quả quá trinh so sánh hai OWL Ontology với OWLDiff
Nhận xét: Chúng ta có thể thấy rằng với OWLDiff việc so sánh hai OWL
Ontology được chi tiết và rõ ràng hơn rất nhiều so với việc sử dụng công cụ Protégé,
việc thể hiện kết quả cũng được cải thiện rất nhiều. Song một vấn đề cực kỳ quan
trọng là kiểm tra cấu trúc của hai OWL Ontology biểu diễn biểu đồ lớp UML hầu như
không được thể hiện và việc thể hiện kết quả so sánh cũng không tạo nên mối quan hệ
phân cấp rõ ràng giữa các thành phần của một biểu đồ lớp.
3.2.3. Giải pháp thực hiện so sánh hai OWL Ontology
Để có thể thực hiện việc so sánh hai OWL Ontology nhiệm vụ đâu tiên là chúng
ta phải thực hiện việc truy vấn trên hai OWL Ontology đó và lấy ra những chi tiết
được sử dụng để biểu diễn hai biểu đồ lớp trong UML tương ứng. Có rất nhiều ngôn
ngữ, công cụ hỗ trợ việc truy vấn OWL Ontology như: OQUEL (Ontology Query
Language), COQL (CML Ontology Query Language), Protégé-OWL API,… Tuy
nhiên để cho dễ dàng hơn trong việc truy vấn OWL Ontology trong ngôn ngữ java
(ngôn ngữ chính thực hiện chương trình) chúng tôi sẽ sử dụng bộ thư viện của
Protégé-OWL API. Đây là một thư viện cung cấp các lớp và các phương thức cho
14

phép chúng ta có thể tạo, truy vấn các OWL Ontology (việc truy vấn OWL Ontology
sẽ được trình bày chi tiết hơn trong phần cài đặt ở Chương 4).
Các chi tiết sử dụng để đặc tả hai OWL Ontology vừa truy vấn sẽ được lưu lại
như là một cơ sở dữ liệu Prolog để rồi sau đó chúng ta có thể sử dụng những ràng buộc
được viết dưới dạng các mệnh đề Prolog để thực hiện kiểm tra. Như đã trình bầy ở trên
Prolog là một ngôn ngữ lập trình logic, nó hỗ trợ rất tốt cho việc suy luận vì vậy việc
sử dụng những Prolog để thực hiện kiểm tra sẽ giúp chúng ta có thể kiểm tra được đầy
đủ và chính xác hơn. Sau đây là những ràng buộc của hai OWL Ontology hay hai biểu


Hinh 5: Biểu đồ lớp trước khi áp dụng mẫu hợp nhất

Hinh 6: Biểu đồ lớp sau khi áp dụng mẫu hợp nhất
16

Tuy nhiên việc thực hiện tối ưu hóa biểu đồ lớp sử dụng mẫu thiết kế hợp nhất
được thực hiện tự động hay do con người thực hiện cũng không thể tránh được những
sai sót không móng muốn. Đó là điều tối kỵ trong việc phát triển phần mềm, trong
phát triển phần mềm, một sai sót dù là nhỏ cũng có thể khiến cho chúng ta tốn không ít
kinh phí để có thể loại bỏ chúng.
Chúng ta có thể bắt gặp những lỗi sau trong việc áp dụng mẫu hợp nhất (không thỏa
mãn những tính chất của mẫu hợp nhất được đưa ra trong Chương 1):
 Không xác định được lớp cha trừu tượng của một các lớp con

Hinh 7: Kết quả của việc không tìm ra lớp cha trừu tượng của các lớp con
khi áp dụng mẫu hợp nhất
Sai sót kiểu này sẽ làm cho việc mã hóa vướng phải sự trùng lặp không cần
thiết và rất khó kiểm soát và chỉnh sửa những sai sót khi xảy ra.
 Không xác định đầy đủ những phương thức cụ thể của lớp cha trừu tượng

Hinh 8: Kết quả của việc không xác định đầy đủ các phương thức cụ thể
của lớp cha trừu tượng
 Không xác định đầy đủ những phương thức trừu tượng của lớp cha trừu tượng


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status