-6- NGHIÊN CỨU CÔNG CỤ HỖ TRỢ TỰ ĐỘNGTRONGSỬDỤNGLẠIMẪUTHIẾTKẾ Họ tên: Đinh Minh Anh Lê Thị Thanh Thảo Cán bộ hướng dẫn: PGS.TS. Nguyễn Văn Vỵ Cán bộ đồng hướng dẫn: Ths. Vũ Diệu Hương 1. Giới thiệu Hiện nay nhu cầu về phần mềm ngày càng tăng lên. Hoạt động sản xuất phần mềm ngày càng chuyên nghiệp hơn. Trong quá trình phát triển phần mềm, vấn đề làm thế nào để tăng tính sửdụng lạ i của các tài nguyên phần mềm đã và đang rất được quan tâm nghiên cứu, ứng dụng. Việc sửdụnglại các tài nguyên phần mềm đã và đang mang lại nhiều lợi ích đáng kểtrong hoạt động phát triển phần mềm trong và ngoài nước. Tổ chức sửdụnglại các tài nguyên phần mềm một cách có hệ thống giúp tiết kiệm tài nguyên và thời gian, giảm chi phí và rủi ro, tăng lợi nhuậ n… Và nó hiện đang là một xu hướng công nghệ lớn, được đầu tư triển khai nghiên cứu và bước đầu ứng dụng trên thế giới và cả trong nước. Trong các loại tài nguyên phần mềm có thể sửdụng lại, mẫuthiếtkế được đánh giá là có tính khái quát và trừu tượng cao [1]. Mẫuthiếtkế là các mẫu hỗ trợ cho các hoạt độngthiếtkế phần mềm. Chúng đưa ra các vấn đề có thể xảy ra trong giai đoạn thiếtkế và giải pháp cho những vấn đề đó. Do đó khả năng ứng dụng của nó là rất lớn. Như vậy, vấn đề đặt ra ở đây là làm thế nào để có thể tựđộng hóa quá trình ứng dụngmẫuthiết kế. 2. Cơ sở lý thuyết Đáp ứng nhu cầu trên, luận văn của chúng tôi lựa chọn là: “Nghiên c ứu công cụ hỗ trợ tự độngtrongsửdụnglạimẫuthiết kế”. Chúng tôi tập trung nghiên cứu về việc sửdụngmẫuthiếtkếtrong phát triển phần mềm. Cụ thể hơn là hướng tới kỹ thuật biểu diễn chặt chẽ và nhất quán cho tất cả các mẫu. Đề xuất của chúng tôi là thể hiện mẫu bằng các ontology. Ontology được s ử dụng để mô tả một miền thông tin bằng việc xác định các lớp, các thuộc tính và mối quan hệ giữa chúng. Chúng tôi sửdụng ngôn ngữ Web Ontology OWL để thể hiện ontology trong luận văn này. OWL [2] là ngôn ngữ mang tính mở cao, có thể dễ dàng bổ sung thông tin khi thể hiện mẫu, đồng thời ngôn ngữ này được sửdụng rộng rãi trên môi trường web ngữ nghĩa nên OWL ontology mang tính chia sẻ cao. Hướng tới việc tựđộng hoá sửdụngmẫuthiếtkếtrong phát triển phần mềm, vấn đề tìm kiếm mẫu phải được quan tâm. Cùng với sự phát triển của các ngôn ngữ ontology, các ngôn ngữ truy vấn cũng được phát triển để phục vụ cho hoạt động truy vấn ontology trên web ngữ nghĩa. Ngôn ngữ truy vấn chúng tôi lựa chọn sửdụngtrong luận văn này là OWL-QL [3]. Đây là ngôn ngữ truy vấn mới nhất được nghiên cứu hiện nay. Ngôn ngữ này độc lập về cú pháp bề mặt nên có thể ứng dụng được trong nhiều khung cảnh khác nhau. Giải pháp chúng tôi đưa ra trong luận văn này là xây dựng một thư viện mẫu, nghiên cứu cách thức truy vấn sao cho có thể tăng khả năng tựđộng hóa quá trình tìm kiếm mẫu và tăng hiệu quả sửdụng mẫu. 3. Thực nghiệm triển khai Chúng tôi triển khai thử nghiệm một thư viện mẫuthiết kế. Phương pháp xây dựng thư viện mẫu của chúng tôi là sửdụng ngôn ngữ web ontology OWL (Web Ontology Language), và tham khảo cách biểu diễn mẫuthiếtkế được đề xuất bởi GangOfFour. Thư viện mẫu này chính là một ontology về mẫuthiết kế. Trong quá trình thiếtkế ontology, chúng tôi sửdụngcôngcụ Protége. Đây là một côngcụ khá phổ biến và rất hữu ích trong các dự án về ontology. Côngcụ truy vấn chúng tôi sửdụngtrong luận văn này là một số côngcụ truy vấn đang được phát triển phổ biến hiện nay như OWQL hay RacerPro để thực hiện truy vấn trên ontology bằng ngôn ngữ truy vấn OWL-QL. Kết quả đạt được của luận văn đó là: Hiểu về mẫuthiết kế, vấn đề sửdụng lại, đặc biệt là sửdụnglạimẫuthiếtkếtrong phát triển phần mềm. -7- Mô tả ngôn ngữ OWL và xây dựng thử nghiệm một ontology về mẫuthiết kế. Mô tả ngôn ngữ truy vấn ontology OWL-QL và đề xuất giải pháp truy vấn trên thư viện mẫu đã xây dựng. 4. Kết luận Trong khoá luận này, chúng tôi đã giới thiệu khái quát về mẫuthiếtkế và vấn đề sửdụngmẫuthiếtkếtrong phát triển phần mềm. Để hỗ trợ cho hoạt độngtựđộng hoá sửdụng mẫu, chúng tôi đề ra giải pháp thể hiện mẫu bằng ontology và thực hiện truy vấn mẫu bằng các ngôn ngữ truy vấn ontology. Chúng tôi giới thiệu một ngôn ngữ thể hiện ontology phổ biến hiện nay là ngôn ngữ web ontology OWL và xây dựng thử nghiệm một ontology mẫuthiếtkế bằng ngôn ngữ này. Để thực hiện truy vấn, chúng tôi có giới thiệu một số ngôn ngữ truy vấn hiện nay và lựa chọn sửdụng ngôn ngữ OWL-QL dành cho những OWL ontology. Các côngcụ hỗ trợ truy vấn hiện nay đang được xây dựng và phát triển. Chúng tôi sửdụng các côngcụ này đề thử nghiệm triển khai truy vấn trên thư viện mẫu đã xây dựng. Nội dung chính của luận văn gồm 4 chương: Chương 1: Mẫuthiếtkế và vấn đề sửdụngmẫuthiếtkếtrong phát triển phần mềm. Chương 2: Một số vấn đề cơ bản về ngôn ngữ OWL. Chương 3: Xây dựng thử nghiệm thư viện mẫuthiếtkếsửdụng OWL. Chương 4: Ngôn ngữ truy vấn ontology và đặc tả truy vấn ontology bằng OWL-QL. Nghiên cứu công cụ hỗ trợ tự động tìm kiếm trên ontology. Chương 5: Sửdụngcôngcụ truy vấn để khai thác ontology mẫuthiết kế. Cuối cùng là kết luận và hướng phát triển tiếp theo của đề tài. 5. Tài liệu tham khảo: 1. Ths.Vũ Diệu Hương, PGS.Ts.Nguyễn Văn Vỵ, Trường Đại học Công nghệ - ĐHQGHN, huongvd@vnu.edu.vn, vynv@vnu.edu.vn; “Nghiên cứu cơ bản về mẫuthiếtkế và vấn đề áp dụngmẫutrong phát triển phần mềm”. 2. “OWL Web Ontology Language Guide”, www.w3.org/TR/owl-guide 3. Richard Fikes - Stanford University, Patrick Hayes - University of West Florida, and Ian Horrocks - University of Manchester; “OWL- QL - A Language for Deductive Query Answering on the Semantic Web”. . cụ hỗ trợ tự động trong sử dụng lại mẫu thiết kế . Chúng tôi tập trung nghiên cứu về việc sử dụng mẫu thiết kế trong phát triển phần mềm. Cụ thể hơn là. thiệu khái quát về mẫu thiết kế và vấn đề sử dụng mẫu thiết kế trong phát triển phần mềm. Để hỗ trợ cho hoạt động tự động hoá sử dụng mẫu, chúng tôi đề