Khóa luận Kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế

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.

pdf58 trang | Chia sẻ: lvbuiluyen | Ngày: 18/11/2013 | Lượt xem: 1601 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Khóa luận Kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠ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 Ngành: Công Nghệ Thông Tin HÀ NỘI - 2010 ĐẠ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 Ngành: Công Nghệ Thông Tin Cán bộ hƣớng dẫn: ThS. Vũ Diệu Hƣơng Cán bộ đồng hƣớng dẫn: TS. Trƣơng Ninh Thuận HÀ NỘI - 2010 LỜI CẢM ƠN Sau hơn 5 tháng tìm hiểu và thực hiện, khóa luận “Kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế” đã hoàn thành. Để đạt được kết quả này, chúng tôi đã nỗ lực hết sức đồng thời cũng nhận được rất nhiều sự quan tâm, giúp đỡ, ủng hộ của các thầy cô, bạn bè và gia đình. Trước hết, chúng em xin gửi lời cảm ơn chân thành đến bộ môn Công nghệ phần mềm khoa Công nghệ Thông tin trường Đại học Công nghệ - Đại học Quốc gia Hà Nội và các thầy cô đặc biệt là cô Vũ Diệu Hương, thầy Trương Ninh Thuận và thầy Đặng Việt Dũng đã tận tình giúp đỡ, hướng dẫn chúng em hoàn thành khóa luận này. Chúng tôi rất cảm ơn các bạn bè, các anh chị trong khoa đã bên cạnh ủng hộ, đóng góp ý kiến cho chúng tôi trong quá trình thực hiện khóa luận. Và chúng con cũng xin chân thành cảm ơn gia đình đã luôn động viên, tạo điều kiện tốt nhất cho chúng con học tập và hoàn thành khóa luận. Khóa luận đã hoàn thành với một số kết quả nhất định, tuy nhiên vẫn không tránh khỏi sai sót. Kính mong sự cảm thông và đóng góp ý kiến từ các thầy cô và các bạn. Hà Nội, tháng 5 năm 2010 Vũ Văn Thế 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 1.1. Vai trò của mẫu thiết kế .......................................................................................... 2 1.2. Mẫu thiết kế hợp nhất (Union Design Pattern) ....................................................... 3 CHƢƠNG 2: OWL ONTOLOGY VÀ PROLOG ........................................................... 5 2.1. OWL Ontology ....................................................................................................... 5 2.1. Prolog ...................................................................................................................... 6 2.1.1. Giới thiệu ngôn ngữ Prolog .............................................................................. 6 2.1.1.1. Prolog là ngôn ngữ lập trình logic. ........................................................... 6 2.1.1.2. Cú pháp Prolog ......................................................................................... 6 2.1.2. Sự kiện và Luật trong Prolog ........................................................................... 7 2.2.2.1. Xây dựng sự kiện ....................................................................................... 7 2.2.2.2. Xây dựng luật ............................................................................................ 8 CHƢƠNG 3. KIỂM TRA SỰ TINH CHẾ HAI MÔ HÌNH CÓ ÁP DỤNG MẪU THIẾT KẾ ........................................................................................................................... 9 3.1. Chuyển biểu đồ lớp trong UML sang OWL Ontology ........................................... 9 3.2. Thực hiện so sánh hai OWL Ontology ................................................................. 10 3.2.1. Protégé ............................................................................................................ 10 3.2.2. OwlDiff .......................................................................................................... 11 3.2.3. Giải pháp thực hiện so sánh hai OWL Ontology ........................................... 13 CHƢƠNG 4: XÂY DỰNG CÔNG CỤ ........................................................................... 15 4.1. Phân tích yêu cầu .................................................................................................. 15 4.1.1. Biểu đồ lớp trong UML .................................................................................. 17 4.1.2. Biểu đồ lớp đặc tả dưới dạng OWL Ontology ............................................... 21 4.1.3. Yêu cầu hệ thống ............................................................................................ 22 4.1.3.1. Yêu cầu chức năng .................................................................................. 22 4.1.3.2. Yêu cầu về mặt giao diện ......................................................................... 24 4.2. Pha phân tích ......................................................................................................... 25 4.2.1. Biểu đồ UseCase tổng quát ............................................................................ 25 4.2.2. Kịch bản cho các ca sử dụng .......................................................................... 25 4.2.3. Xây dựng biểu đồ lớp phân tích ..................................................................... 27 4.3. Pha thiết kế ............................................................................................................ 28 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 Hinh 5: Biểu đồ lớp trước khi áp dụng mẫu hợp nhất ........................................................ 15 Hinh 6: Biểu đồ lớp sau khi áp dụng mẫu hợp nhất ........................................................... 15 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 ..................... 16 Hinh 8: Kết quả của việc không xác định đầy đủ các phương thức cụ thể ....................... 16 Hinh 9: Kết quả của việc không xác định đầy đủ các phương thức ................................... 17 Hinh 10: Quan hệ kết hợp ................................................................................................... 20 Hinh 11: Quan hệ khai quát hóa ........................................................................................ 20 Hinh 12: Quan hệ cộng hợp ............................................................................................... 20 Hinh 13: Quan hệ hợp thành .............................................................................................. 21 Hinh 14: Quan hệ thực thi .................................................................................................. 21 Hinh 15: Quan hệ phụ thuộc .............................................................................................. 21 Hinh 16: Biểu đồ UseCase tổng thể ................................................................................... 25 Hinh 17: Biểu đồ lớp phân tích .......................................................................................... 27 Hinh 18: BIểu đồ tuần tự ca sử dụng “Import OWL Ontology” ........................................ 28 Hinh 19: Biểu đồ tuần tự ca sử dụng “Compare two OWL Ontology” ............................. 28 Hinh 20: Biểu đồ lớp chi tiết .............................................................................................. 29 Hinh 21: Thiết kế chức năng “Import OWL Ontology” ..................................................... 30 Hinh 22: Thiết kế chức năng “Compare two OWL Ontology” .......................................... 30 Hinh 23: Giao diện chính của chương trình khi bắt đầu chạy ........................................... 31 Hinh 24: Giao diện của chương trình với kết quả của quá trình kiểm tra ......................... 32 DANH SÁCH CÁC TỪ VIẾT TẮT STT Từ viết tắt Diễn giải 1 UML Unified Modeling Language 2 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. Một số công cụ hỗ trợ so sánh các Ontology đã được phát triển như là Protégé, OWLDiff. Các công cụ này thực hiện các chức năng như so sánh sự giống và khác nhau của hai OWL ontology, hòa trộn hai OWL Ontology. Trong công nghệ phần mềm, mẫu thiết kế được sử dụng để cải tiến thiết kế do giải pháp mẫu cung cấp mang đến một kiến trúc hệ thống tốt hơn nếu chúng ta thực hiện đúng đắn việc tích hợp giải pháp mẫu vào mô hình thiết kế ban đầu. Trong thực tế thì có nhiều trường hợp thực hiện sai việc tích hợp này. Do đó một vấn đề đặt ra là cần kiểm tra mô hình thu được sau khi áp dụng mẫu có thoả mãn các tính chất cấu trúc của giải pháp mẫu hay không. Cụ thể, khi chúng ta có một mô hình thiết kế ban đầu, một mẫu thiết kế được sử dụng để cái tiến mô hình thiết kế này và một mô hình thiết kế mới, làm thế nào để kiểm tra xem mô hình thiết kế mới có thoả mãn các tính chất cấu trúc của mẫu thiết kế hay không, hay việc áp dụng mẫu ở đây có đúng đắn hay không. Trong khoá luận của sinh viên Giáp Thị Ngọc Thuý đã đề xuất quy trình chuyển đặc tả UML sang đặc tả OWL. Khoá luận này tập trung để tìm hiểu khả năng của các công cụ sẵn có hỗ trợ so sánh các đặc tả OWL và tiến hành xây dựng thử nghiệm công cụ hỗ trợ kiểm tra sự tinh chế thiết kế hai mô hình có áp dụng mẫu thiết kế trong tiến trình phát triển hướng đối tượng. Khoá luận sẽ giới thiệu về mẫu thiết kế, minh hoạ một số trường hợp áp dụng sai cấu trúc giải pháp của mẫu thiết kế và trình bày các kết quả phân tích, thiết kế, cài đặt thử nghiệm công cụ thực hiện kiểm tra tự động kết quả tích hợp mẫu. Kết cấu của Khoá luận này bao gồm x chương. Chương 1 giới thiệu về Mẫu thiết kế, Chương 2 trình bày OWL Ontology và Prolog, Chương 3 trình bày về Kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế, Chương 4 trình bày về việc xây dựng công cụ kiểm tra sự tinh chế hai mô hình có áp dụng mẫu thiết kế, và cuối cùng là Chương 5 sẽ tổng hợp kết quả làm được và hướng phát triển của bài Khóa luận. 2 CHƯƠNG 1: GIỚI THIỆU VỀ MẪU THIẾT KẾ Trong công nghệ phần mềm, một mẫu thiết kế là một giải pháp tổng thể cho các 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 giữa một lớp cha và những lớp con của nó. Lớp cha là một sự biểu diễn mang tính trừu tượng của sự kết hợp của tất cả các lớp con. Mẫu thiết kế hợp nhất hướng đến hai mục tiêu của thiết kế hướng đối tượng là: - Tập hợp mã nguồn chung từ những lớp con và đưa nó vào một lớp cha. - Định nghĩa một lớp cha mang tính trừu tượng biểu diễn một mức trừu tượng cao hơn so với những lớp con cụ thể. Lớp cha mang tính trừu tượng đó là một sự biểu diễn của những tính chất chung của tất cả những lớp con. Những lớp con cụ thể là khác nhau, chúng chứa những thể hiện khác nhau. Mẫu hợp nhất (Union Pattern) sử dụng trên nền tảng những nguyên lý của thiết kế hướng đối tượng như tính kế thừa, tính đa hình, tính kế thừa, tính đóng gói nhằm hướng tới mục tiêu thiết kế những hệ thống mạnh mẽ hơn, linh động hơn và năng suất hơn. Một cách tổng quát, Một biểu đồ lớp UML cho mẫu thiết kế hợp nhất có dạng như sau: Hinh 1: Biểu đồ lớp cho mẫu thiết kế hợp nhất 4 Các đặc điểm của mẫu hợp nhất:  Hai hay nhiều lớp con: Một lớp con có thể là trừu tượng, trong trường hợp này lớp con đó có thể biểu diễn một tầng mang tính trừu tượng khác  Một lớp cha biểu diễn một sự trừu tượng hóa của tất cả cấc lớp con. Lớp cha đó không bao giờ được khởi tạo bởi vì nó không biểu diễn một thực thể cụ thể nào. Những phương thức cùa lớp cha có thể là trừu tượng (những hành vi thay đổi được định nghĩa trong những lớp con) hoặc cụ thể (những hành vi bất biến đối với mỗi lớp con) Tóm lại, kết quả của việc áp dụng mẫu hợp nhất là một mô hình thiết kế bao gồm một lớp cha mang tính trừu tượng và những lớp con. Lớp cha mang tính trừu tượng có cả phương thức cụ thể cái mà thực thi những hành vi bất biến của hệ thống 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ị xếp gộp vào bởi các lớp khác. Mối quan hệ xếp gộp này được sử dụng để tạo ra 6 một cấu trúc có thứ bậc các lớp, thường là với một lớp thông dụng nhất kiểu Thing ở trên đỉnh và các lớp rất rõ ràng kiểu 2002, Ford ở phía dưới cùng. - Các thuộc tính (Properties) Các đối tượng trong Owl Ontology có