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

ĐẠI HC QUC GIA HÀ NI  
TRƢỜNG ĐẠI HC CÔNG NGHỆ  
Vũ Văn Thế  
KIM TRA STINH CHHAI MÔ HÌNH CÓ  
ÁP DNG MU THIT KẾ  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
HÀ NI - 2010  
ĐẠI HC QUC GIA HÀ NI  
TRƢỜNG ĐẠI HC CÔNG NGHỆ  
Vũ Văn Thế  
KIM TRA STINH CHHAI MÔ HÌNH  
CÓ ÁP DNG MU THIT KẾ  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
Cán bộ hƣớng dn: ThS. Vũ Diệu Hƣơng  
Cán bộ đồng hƣớng dn: TS. Trƣơng Ninh Thuận  
HÀ NI - 2010  
LI CẢM ƠN  
Sau hơn 5 tháng tìm hiểu và thc hin, khóa luận “Kim tra stinh chế hai mô  
hình có áp dng mu thiết kế” đã hoàn thành. Để đạt được kết quả này, chúng tôi đã nỗ  
lc hết sức đồng thời cũng nhận được rt nhiu sự quan tâm, giúp đỡ, ng hca các  
thy cô, bạn bè và gia đình.  
Trước hết, chúng em xin gi li cảm ơn chân thành đến bmôn Công nghệ  
phn mm khoa Công nghệ Thông tin trường Đại hc Công ngh- Đại hc Quc gia  
Hà Ni và các thầy cô đc biệt là cô Vũ Diệu Hương, thầy Trương Ninh Thuận và thy  
Đặng Việt Dũng đã tận tình giúp đỡ, hướng dn chúng em hoàn thành khóa lun này.  
Chúng tôi rt 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 thc hin khóa lun.  
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  
kin tt nht cho chúng con hc tp và hoàn thành khóa lun.  
Khóa luận đã hoàn thành với mt skết qunhất định, tuy nhiên vn không  
tránh khi sai sót. Kính mong scảm thông và đóng góp ý kiến tcác thy cô và các  
bn.  
Hà Nội, tháng 5 năm 2010  
Vũ Văn Thế  
Tóm tt  
Ni dung chính ca bài khóa luận “Kim tra stinh chế hai mô hình có áp dng  
mu thiết kế” có thể được trình bày ngn gn qua các vấn đề sau:  
- Tìm hiu vkhái nim và vai trò ca Mu thiết kế (design pattern) nói chung và  
mu thiết kế hp nhất nói chúng cũng như việc áp dng mu thiết kế hp nht  
(union design pattern)  
- Thc hin chuyn biểu đồ lp UML sang dạng đặc tả OWL Ontology trên cơ sở  
lý thuyết bài khóa lun ca sinh viên Giáp ThNgọc Thúy đã thc hin.  
- Tìm hiu mt scông cụ đã có hỗ trvic so sánh hai OWL Ontology, phân  
tích những ưu nhược điểm ca chúng.  
- Tìm kiếm gii pháp cho vic truy vn OWL Ontology tngôn nglp trình  
Java đồng thi viết nhng lut Prolog kim tra sự tương đương ca hai phiên  
bn ca mt biểu đồ lớp trước và sau khi áp dng mu thiết kế hp nht.  
- Thiết kế và cài đặt công chtrso sánh hai OWL Ontology hay hai phiên bn  
ca mt biểu đồ lớp trước và sau khi áp dng mu hp nht thông qua nhng  
lut Prolog.  
Mc lc  
DANH SÁCH CÁC BNG BIU  
DANH SÁCH CÁC HÌNH VẼ  
DANH SÁCH CÁC TVIT TT  
STT  
Tviết tt  
UML  
Din gii  
1
2
3
Unified Modeling Language  
Web Ontology Language  
Programing in Logic  
OWL  
Prolog  
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ế 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.  
1
 
CHƯƠNG 1: GIỚI THIỆU VỀ MẪU THIẾT KẾ  
Trong công nghphn mm, mt mu thiết kế là mt gii pháp tng thcho các  
vấn đề chung trong thiết kế phn mm. Mt mu thiết kế không phi là mt thiết kế  
hoàn thiện để có thchuyển đổi trc tiếp thành mã, nó chlà mt mô tả hay là sườn  
(template) mô tcách gii quyết mt vấn đề có thể được dùng trong nhiu tình hung  
khác nhau. Các mu thiết kế hướng đối tượng thưng cho thy mi quan hsự  
tương tác gia các lp hay các đối tượng, mà không cn chrõ các lớp hay đối tượng  
ca tng ng dng cth. (Wikipedia)  
Có hàng nghìn nhng mu thiết kế cung cp nhng gii pháp cho rt nhiu  
nhng vấn đề khác nhau trong vic thiết kế những hành vi như giao diện người máy,  
cu trúc ca hthng, hành vi ca hthng. Nhng mu thiết kế được biu din bi  
nhng ngôn ngvà ký hiu khác nhau chng hạn như văn bản, UML và nhng ngôn  
ngmô hình hóa  
Mt bn mô tca mu thiết kế cn có nhng vấn đề chính sau:  
1. Vấn đề đ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ò ca mu thiết kế  
Bên cnh nhng li ích trc tiếp ca mt gii pháp tt cho vic tinh chế thiết kế  
ca nhng hthng phn mm, chất lượng tt hơn, những mu thiết kế thm trí còn có  
thci thin tài liu và bo trì nhng hthống đã có và cho phép những người thiết kế  
trừu tượng hóa nhng chi tiết thiết kế đã quen thuc (Ví d: nhng quan h, nhng  
2
   
phương thức) và tp chung vào nhng nhim vquan trọng hơn. Những mu cũng làm  
cho vic sdng li nhng thiết kế và cu trúc trở nên đơn giản hơn.  
1.2. Mẫu thiết kế hợp nhất (Union Design Pattern)  
Mu thiết kế hp nht là mt mu mang tính cu trúc mô tquan hkế tha  
gia mt lp cha và nhng lp con ca nó. Lp cha là mt sbiu din mang tính tru  
tượng ca skết hp ca tt ccác lp con.  
Mu thiết kế hp nhất hướng đến hai mc tiêu ca thiết kế hướng đối tượng là:  
- Tp hp mã ngun chung tnhng lớp con và đưa nó vào một lp cha.  
- Định nghĩa một lp cha mang tính trừu tượng biu din mt mc trừu tượng  
cao hơn so với nhng lp con cth. Lp cha mang tính trừu tượng đó là một  
sbiu din ca nhng tính cht chung ca tt cnhng lp con. Nhng lp  
con cthlà khác nhau, chúng cha nhng thhin khác nhau.  
Mu hp nht (Union Pattern) sdng trên nn tng nhng nguyên lý ca 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 nhm  
hướng ti mc tiêu thiết kế nhng hthng mnh mẽ hơn, linh động hơn và năng suất  
hơn.  
Mt cách tng quát, Mt biểu đồ lp UML cho mu thiết kế hp nht có  
dạng như sau:  
Hinh 1: Biểu đồ lp cho mu thiết kế hp nht  
3
   
Các đặc điểm ca mu hp nht:  
Hai hay nhiu lp con: Mt lp con có thlà trừu tượng, trong trường hp này  
lớp con đó có thể biu din mt tng mang tính trừu tượng khác  
Mt lp cha biu din mt strừu tưng hóa ca tt ccc lp con. Lớp cha đó  
không bao giờ được khi to bi vì nó không biu din mt thc thcthnào.  
Những phương thức cùa lp cha có thlà trừu tượng (nhng hành vi thay đổi  
được định nghĩa trong những lp con) hoc cth(nhng hành vi bt biến đối  
vi mi lp con)  
Tóm li, kết quca vic áp dng mu hp nht là mt mô hình thiết kế bao  
gm mt lp cha mang tính trừu tượng và nhng lp con. Lp cha mang tính tru  
tượng có cả phương thức cthcái mà thc thi nhng hành vi bt biến ca hthng  
và phương thức trừu tượng cái mà biu din nhng hành vi không cố định ca hệ  
thng. Nhng lp con có những phương thức cththc thi nhng hành vi khác nhau  
ca hthng và biu diễn tính đa hình của hthng.  
4
CHƯƠNG 2: OWL ONTOLOGY VÀ PROLOG  
Trong Chương này chúng tôi xin giới thiu nhng khái nim ca mt OWL  
Ontology và ngôn ngProlog, nhng công cụ chính được sdng trong bài Khóa lun  
này. Tuy nhiên do tính cht ca bài Khóa lun chúng tôi chcó thgii thiu mt số  
nét chính về OWL Ontology cũng như ngôn ngữ Prolog.  
2.1. OWL Ontology  
OWL (Web Ontology Language) là mt trong nhng ngôn ngbiu din tri  
thc cho những ontology được đưa ra bởi W3C (World Wide Web Consortium Tổ  
chc nhng chun quc tế cho World Wide Web). Chúng được thhin bi nhng  
chui ký tda trên nn tng RDF (Resource Description Framework)/XML  
(Extensible Markup Language) cho web ngữ nghĩa (Semantic Web). Owl được chia  
làm 3 loi: OWL - Lite, OWL - DL, OWL - FULL  
Các thành phn ca OWL Ontology  
- Các cá th(Individuals) - Thhin  
Các cá thlà các thành phần cơ bản, nn tng ca mt Owl Ontology. Các cá thể  
trong mt Owl Ontology có thbao gồm các đối tưng cthể như con người, động  
vật, cái bàn…. Một Owl Ontology có thkhông cn bt kmt cá thể nào, nhưng  
mt trong nhng lý do chính ca một Owl Ontology là để cung cp mt ngữ nghĩa  
ca vic phân lp các cá th, mc dù các cá thnày không thc slà mt phn ca  
ontology.  
- Các lp (Classes) - Khái nim  
Các lp là mt thhin ca mt nhóm, tp hợp các đối tượng. Chúng có thcha  
các cá th, các lp khác, hay là sphi hp ca chai.  
Mt lp có thcha các lp con, có thlà mt lp tng quan (cha tt cmi th),  
có thlà lp chcha nhng cá thriêng l, Mt lp có thxếp gp vào hoc bị  
xếp gp vào bi các lp khác. Mi quan hxếp gộp này được sdụng để to ra  
5
   
mt cu trúc có thbc các lớp, thường là vi mt lp thông dng nht kiu Thing  
ở trên đỉnh và các lp rt rõ ràng kiu 2002, Ford ở phía dưới cùng.  
- Các thuc tính (Properties)  
Các đối tượng trong Owl Ontology có thể được mô tthông qua vic khai báo các  
thuc tính ca chúng. Mi mt thuộc tính đều có tên và giá trca thuộc tính đó.  
Các thuộc tính được sdụng để lưu trữ các thông tin mà đối tượng có thcó. Ví  
dụ, đối vi mt cá nhân có thcó các thuc tính: H_tên, ngày_sinh, quê_quán,  
số_cmnd… Giá trca mt thuc tính có thcó các kiu dliu phc tp.  
- Các mi quan h(Relation)  
Mt trong nhng ng dng quan trng ca vic sdng các thuộc tính là để mô  
tmi liên hgiữa các đối tượng trong ontology. Mt mi quan hlà mt thuc tính  
có giá trlà một đối tượng nào đó trong ontology.  
2.1. Prolog  
2.1.1. Giới thiệu ngôn ngữ Prolog  
2.1.1.1. Prolog là ngôn ngữ lập trình logic.  
Prolog là tên viết tt ca PROgramming in LOGic, là ngôn ngữ được sdng  
phbiến nht trong dòng các ngôn nglp trình logic. Ngôn ngữ Prolog do giáo sư  
người Pháp Alain Colmerauer và nhóm nghiên cu của ông đề xut lần đầu tiên ti  
trường Đại học Marseille vào đầu những năm 1970. Prolog được sdng chyếu  
trong lĩnh vực trí tunhân to.  
2.1.1.2. Cú pháp Prolog  
a. Các thuật ngữ  
Một chương trình Prolog là một cơ sở dliu gm các mệnh đề (Clause). Mi  
mệnh đề được xây dng tcác vt(predicate). Mt vtlà mt phát biểu nào đó về  
các đối tượng có giá trị chân đúng (true) hoặc sai (fail). Mt vtcó thể có các đối là  
các nguyên tlogic (logic atom).  
6
       
Mi nguyên tbiu din mt quan hgia các hạng (term). Như vậy, hng và  
quan hgia các hng to 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.  
Hng có thlà hạng sơ cấp (elementary term) gòm hng (constant), biến (variable) và  
các hng phc hp (compound term).  
Các hng phc hp biu diễn các đối tượng phc tp ca bài toán cn gii quyết  
thuộc lĩnh vực đang xét. Hạng phc hp là mt hàm t(functor) có chứa các đối  
(argument), có dng:  
Tên_hàm_tử (Đối_1, Đối_2,…, Đối_n)  
b. Các kiểu dữ liệu trong Prolog  
Các kiu dliệu trong Prolog được biu diễn trong hình sau đây:  
Hinh 2: Các kiu dliu 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í dvskin:  
parent(pam, bob).  
sister(mary, tom).  
7
     
brother(peter, tomy).  
Sau khi hthng nhận được nhng skin này, nếu người dùng đặt câu hi  
?-parent(pam, bob).  
Sau khi hthng tìm thy skiện này trong chương trình, Prolog trả li:  
Yes  
Nếu đặt câu hi  
?-parent(X, bob).  
Hthng strli:  
X = pam  
2.2.2.2. Xây dựng luật  
Mi lut bao gm hai phn khác nhau:  
Phn bên phi: chỉ điều kiện, còn được gi là thân (body) ca lut  
Phn bên trái: chkết luận, còn được gọi là đầu (head) ca lut  
VD:  
father(X, Y):-man(X), parent(X, Y). (father(X, Y) đúng nếu man(X) và parent(X, Y)  
đều đúng và sai nếu man(X) hoc parent(X, Y) sai)  
person(X):-man(X); woman(X). (person(X) đúng nếu man(X) đúng hoặc woman(X)  
đúng; person(X) sai nếu man(X) và woman(X) đều sai).  
8
 
CHƯƠNG 3. KIỂM TRA KẾT QUẢ ÁP DỤNG MẪU  
THIẾT KẾ  
Sau mt thi gian tìm hiu, cùng vi sự giúp đỡ nhit tình ca các thy, cô hướng dn  
chúng tôi đã tìm ra và xin đề xut mt gii pháp htrvic kim tra stinh chế hai mô hình  
có áp dng mu thiết kế. Gii pháp mà chúng tôi la chọn được thc hin thông qua nhng  
bước sau đây:  
Chuyn biểu đồ lp trong UML sang OWL Ontology  
Thc hin so sánh hai OWL Ontology  
Sau đây chúng tôi sẽ trình bày chi tiết từng bước thc hiện trên để làm rõ hơn  
vgii pháp trên.  
3.1. Chuyển biểu đồ lớp trong UML sang OWL Ontology  
Có lcâu hỏi đầu tiên chúng tôi nhận được khi trình by vvấn đề này là “tại  
sao li phi chuyn biểu đồ lớp trong UML sang OWL Ontology”. Như chúng ta đã  
biết, UML là mt ngôn ngmô hình hóa phi chun, mt biểu đồ UML được biu din  
bi nhng ký hiu hình ha chính vì thế nếu để biểu đồ lớp dưới dng UML chúng ta  
srất khó để có ththc hin vic so sánh này. Chính vì thế chúng ta có thể nghĩ đến  
vic chuyn biểu đồ lp UML sang mt ngôn ngmô hình hóa chuẩn nào đó như  
OWL Ontology, XMI, … Với nững ưu điểm: Cấu trúc đơn giản, linh động cho người  
dùng trong việc định nghĩa cấu trúc, ddàng chia squa Internet. OWL Ontology  
xứng đáng được la chọn để biu din biểu đồ lp UML trong hoàn cnh này.  
Chúng ta có thddàng chuyn mt biểu đồ lp trong UML sang OWL  
Ontology bng vic áp dng nhng ánh xchuyn nhng chi tiết đặc tmt biểu đồ  
lớp trong UML sang OWL Ontology đã được trình by cthtrong bài khóa lun ca  
sinh viên Giáp ThNgc Thúy và ở đây chúng tôi xin phép không trình bày lại na.  
9
   
3.2. Thực hiện so sánh hai OWL Ontology  
Ngày nay cũng đã xuất hin khá nhiu nhng công cụ cho phép người dùng so  
sánh hai phiên bn khác nhau ca mt owl ontology. Trước khi đưa ra giải pháp để  
thc hin việc so sánh hai OWL Ontology chúng tôi cũng xin trình bày vthc trng  
ca mt vài công cụ điển hình htrcho vic so sánh hai OWL Ontology hin nay.  
3.2.1. Protégé  
Protégé được phát trin bi Trung tâm nghiên cu thông tin Y sinh Stanford  
(Stanford Center for Biomedical Infomationn Research) của trường đại hc Y khoa  
Stanford (Stanford University School of Medicine)  
Protégé là mt công cda trên nn tng mã ngun mở và được sdng min  
phí. Đây là một công chtrviệc mô hình hóa tri thưc dưới dng Ontology vi  
nhiều định dạng như: owl, rdf, rdfs,… Bên cạnh đó, Protégé còn cho phép chúng ta  
qun lý nhiều ontology như việc trn hai ontology, so sánh hai phiên bn khác nhau  
ca một ontology,… Tuy nhiên trong bài viết này chúng ta chỉ quan tâm đến chc  
năng so sánh hai phiên bản khác nhau ca mt ontology.  
Hình nh sau biu din kết ququca quá trình kim tra hai phiên bn khác  
nhau ca mt Owl Ontology bng Protégé:  
Hinh 3: Kết quso sánh hai phiên bn ca mt OWL Ontology vi Protégé  
Trong bng kết qunhận được trên có cha các ct:  
10  
     
f1, f2: Là hai ct biu din nhng lp, thuc tính ca phiên bản trước đó và  
phiên bn hin tại( đang được mtrên Protégé )  
renamed: Mt ô trong ct này nhn giá trị “Yes” nếu hai lp, thuc tính hai ô  
tương ứng trong cột f1, f2 là tương đương nhau nhưng chỉ khác nhau vtên.  
Ngược li, nó nhn giá trị “No” khi hai thuộc tính tương ứng trong hai ô f1,  
và f2 không tương đương nhau.  
operation: Ct này biu din mi quan hgia hai thuc tính ở hai ô tương ứng  
trong f1 và f2. Operation nhn giá trị “Map” nếu hai thuc tính ở f1 và f2 đều  
tn ti, nhn giá trị “Add” nếu thuc tính chtn ti f1 hoc f2.  
map level: Chra mức độ phù hp gia hai thuộc tính tương ứng trong f1 và f2  
rename explanation: Đưa ra một gi ý ca Protégé cho việc đặt li tên gia hai  
thuộc tính tương ứng f1 và f2 nếu giá trị trương ứng trong ct renamed là  
“Yes”.  
Nhn xét: Vic so sánh hai phiên bn khác nhau ca mt Owl Ontology vi  
Protégé đã phân tích tương đối đầy đủ sging và khác nhau ca hai OWL Ontology  
và hin thmột cách rõ ràng giúp người dùng ddàng có thnhn biết được nhng sự  
giống hay khác nhau đó. Tuy nhiên trong điều kiện hai OWL Ontology được so sánh  
biu din hai biểu đồ lp trong UML thì bên cnh vic so sánh nhng chi tiết đơn  
thun ca hai OWL Ontology chúng ta cn có sso sánh và biu din một cách tường  
minh nhng mi quan hmang tính cu trúc mt biểu đồ lp ca hai OWL Ontology  
3.2.2. OwlDiff  
OwlDiff là mt công ccho phép so sánh hoc hòa trn hai Ontology. Hin nay  
OwlDiff có thchạy như một ng dụng độc và cũng có thể chạy như một plug-in ca  
công cProtégé. OwlDiff thc hin so sánh hai Ontology vào thông báo những điểm  
không tương đương cũng như tương đương gia hai Ontology.  
11  
 
Hinh sau đây biu din kết quca vic so sánh hai OWL Ontology  
metamodel1.owl và metamodel2.owl (được đính kèm bài khóa luận như một dliu  
kim tra):  
12  
Hinh 4: Kết ququá trinh so sánh hai OWL Ontology vi OWLDiff  
Nhn xét: Chúng ta có ththy rng vi OWLDiff vic so sánh hai OWL  
Ontology được chi tiết và rõ ràng hơn rất nhiu so vi vic sdng công cProtégé,  
vic thhin kết quả cũng được ci thin rt nhiu. Song mt vấn đề cc kquan  
trng là kim tra cu trúc ca hai OWL Ontology biu din biểu đồ lp UML hầu như  
không được thhin và vic thhin kết quả so sánh cũng không tạo nên mi quan hệ  
phân cp rõ ràng gia các thành phn ca mt biểu đồ lp.  
3.2.3. Giải pháp thực hiện so sánh hai OWL Ontology  
Để có ththc hin vic so sánh hai OWL Ontology nhim vụ đâu tiên là chúng  
ta phi thc hin vic truy vấn trên hai OWL Ontology đó và lấy ra nhng chi tiết  
được sdụng để biu din hai biểu đồ lớp trong UML tương ứng. Có rt nhiu ngôn  
ng, công chtrvic 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 vn OWL Ontology trong ngôn ngjava  
(ngôn ngchính thc hiện chương trình) chúng tôi sẽ sdng bộ thư viện ca  
Protégé-OWL API. Đây là một thư viện cung cp các lp và các phương thức cho  
13  
   
phép chúng ta có thto, truy vn các OWL Ontology (vic truy vn 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 sdụng để đặc thai OWL Ontology va truy vn sẽ được lưu lại  
như là một cơ sở dliệu Prolog đrồi sau đó chúng ta có thể sdng nhng ràng buc  
được viết dưới dng các mệnh đề Prolog đthc hin kiểm tra. Như đã trình bầy trên  
Prolog là mt ngôn nglp trình logic, nó htrrt tt cho vic suy lun vì vy vic  
sdng nhng Prolog để thc hin kim tra sgiúp chúng ta có thkiểm tra được đầy  
đủ và chính xác hơn. Sau đây là những ràng buc ca hai OWL Ontology hay hai biu  
đồ lp (mt biểu đồ là kết qusau khi áp dng mu hp nht ca biểu đồ còn li)  
tương đương:  
- Mi lp trong biểu đồ 1 (biểu đồ lớp trước khi áp dng mu hp nhất) đều là  
lp cth.  
- Tn ti mt lp duy nht trong biểu đồ 2 (biểu đồ lp là kết quca vic áp  
dng mu hp nht cho biểu đồ 1) là lp trừu tượng và tt ccác lp còn li  
trong biểu đồ 2 đề là lp cthvà là lp con ca lp trừu tượng đó.  
- Những phương thức có tt ccác lớp và được trin khai ging nhau trong  
biểu đồ 1 được chuyn thành một phương thức duy nht và ging vi nhng lp  
dó trong lp trừu tượng ca biểu đồ 2.  
- Những phương thức có tt ccác lớp, song được trin khai khác nhau trong  
biểu đồ 1 được chuyn thành một phương thức trừu tượng trong lp trừu tượng  
ca biểu đồ 2. Đồng thi trong mi lp con trong biểu đồ 2 phải có phương  
thc triển khai phương thức trừu tượng đó.  
- Các lp trong biểu đồ 1 cùng vi nhng hành vi ca nó phải được bo toàn  
trong biểu đồ 2  
14  
CHƯƠNG 4: XÂY DỰNG CÔNG CỤ  
Ở chương này chúng tôi xin trình bày về trình tnhững bước thc hin nhm  
xây dng công chtrcho vic kim tra stinh chế hai mô hình có áp dng mu  
thiết kế thông qua vic so sánh hai OWL Ontology. Mc tiêu của chương trình là phát  
huy những ưu điểm cũng như khắc phc nhng yếu điểm mà những chương trình  
trước đã có.  
4.1. Phân tích yêu cầu  
Vai trò ca UML trong thiết kế phn mm là không thhoài nghi, nhng mu  
thiết kế nói chung và mu thiết kế hp nhất nói riêng cũng là những gii pháp vô cùng  
hu ích và cn thiết trong vic thiết kế, tối ưu hóa những mô hình UML.  
Sau đây là một ví dvmt biểu đồ lớp trước khi áp dng và sau khi áp dng mu  
thiết kế hp nht.  
Hinh 5: Biểu đồ lớp trước khi áp dng mu hp nht  
Hinh 6: Biểu đồ lp sau khi áp dng mu hp nht  
15  
       
Tuy nhiên vic thc hin tối ưu hóa biểu đồ lp sdng mu thiết kế hp nht  
được thc hin tự động hay do con người thc hiện cũng không thể tránh được nhng  
sai sót không móng muốn. Đó là điều ti ktrong vic phát trin phn mm, trong  
phát trin phn mm, mt sai sót dù là nhỏ cũng có thể khiến cho chúng ta tn không ít  
kinh phí để có thloi bchúng.  
Chúng ta có thbt gp nhng li sau trong vic áp dng mu hp nht (không tha  
mãn nhng tính cht ca mu hp nht được đưa ra trong Chương 1):  
Không xác định được lp cha trừu tượng ca mt các lp con  
Hinh 7: Kết quca vic không tìm ra lp cha trừu tượng ca các lp con  
khi áp dng mu hp nht  
Sai sót kiu này slàm cho việc mã hóa vướng phi strùng lp không cn  
thiết và rt khó kim soát và chnh sa nhng sai sót khi xy ra.  
Không xác định đầy đủ những phương thức cthca lp cha trừu tượng  
Hinh 8: Kết quca việc không xác định đầy đủ các phương thức cthể  
ca lp cha trừu tượng  
Không xác định đầy đủ những phương thức trừu tượng ca lp cha trừu tượng  
16  
   
Hinh 9: Kết quca việc không xác định đầy đủ các phương thức  
trừu tượng ca lp cha trừu tượng  
Bên cnh nhng lỗi như trên còn có rt nhiu lỗi mà người thiết kế có thgp phi  
khi áp dng mu hp nhất như: Có một lp trừu tượng lớp cha không được trin  
khai trong mt slp con, hay các lớp con không đảm bảo đầy đủ các hành vi…  
Nhng li này sẽ được thhiện đầy đủ qua các ràng buộc được gii thiu phn  
sau.  
Tvic phân tích nhng lỗi mà ngưi thiết kế có thmc phi khi áp dng mu  
hp nht chúng ta có ththy rng vic kim tra vic áp dng mu thiết kế hp nht là  
mt vic làm cn thiết và cc kquan trng.  
4.1.1. Biểu đồ lớp trong UML  
Trong phương pháp hướng đối tượng, một nhóm đối tượng có chung mt số  
thuộc tính và phương thức to thành mt lp. Mối tương tác giữa các đối tượng trong  
hthng sẽ được biu din thông qua mi quan hgia các lp.  
Các lp( bao gm ccác thuộc tính và phương thức ) cùng vi các mi quan hệ  
sto thành biểu đồ lp. Biểu đồ lp là mt biểu đồ dạng mô hình tĩnh nhằm mô tả  
hướng nhìn tĩnh về mt hthng bng các khái nim lp, các thuộc tính, phương thức  
ca lp và mi quan hgia chúng vi nhau.  
Mt biểu đồ lớp trong UML được biu din bi mt tp các khái nim sau:  
17  
   
- Lp: Mt lớp trong UML được biu din bi các thuc tính: tên lp, phm vi  
truy nhp( visibility ), IsAbstract ( lp trừu tượng hay không ), các thuc tính  
và các phương thức. Lp có ththa kế tmt lp cha.  
- Thuc tính( Attribute ): Các thuc tính trong biểu đồ lớp được biu din theo  
cấu trúc chung như sau:  
phm_vi tên : kiu số_đối_tượng = mặc_đnh (giá_tr_gii_hn)  
Trong đó:  
phm_vi: cho biết phm vi truy nhp ca thuc tính. Có 3 kiểu xác định thuc  
tính phbiến là:  
+ : Thuc tính kiu public  
# : Thuc tính kiu protected  
- : Thuc tính kiu private  
~ : Thuộc tính được phép truy nhp ti tcác lp trong cùng package  
tên: là xâu ký tbiu din tên thuc tính  
kiu: là kiu dliu ca thuc tính  
số_đối_tượng: chra số đối tượng khai báo cho thuc tính  
mặc_đnh: là giá trkhởi đầu mặc định ( nếu có ) ca thuc tính  
giá_tr_gii_hn: là gii hn các giá trcho thuc tính ( thông tin này không bt  
buc).  
Ví dvmt khai báo thuộc tính đầy đ:  
purchaseDate: Date[1] = “01-01-2010” (Saturday)  
- Phƣơng thức ( method ): các phương thức trong UML được biu din theo cu  
trúc chung như sau:  
18  
phm_vi tên ( danh_sách_tham_s) : kiu_tr_li { kiểu_phương_thức }  
Trong đó:  
phm_vi biu din phạm vi cho phương thức. Giống như đối vi thuc tính, có  
ba dng kiểu xác định cơ bản cho phương thức là:  
+ : phương thức kiu public  
# : phương thức kiu protected  
- : phương thức kiu private  
~ : phương thức được phép truy nhp ti tcác lp trong cùng package  
tên : là xâu ký tự xác định tên của phương thức  
kiu_tr_li: chra kiu giá trtrvcủa phương thức  
danh_sách_tham_s: biu din danh sách các tham strong khai báo ca  
phương thức. Mi tham số được biu diễn dưới dng chung:  
tên_tham_sô : kiu_giá_tr= giá_tr_mặc_đnh  
kiểu_phương_thức: không bt buc, cho biết kiểu phương thức. Phương thức có  
thnhn mt trong các kiểu đặc bit sau:  
abstract: phương thức kiu trừu tượng  
query: phương thức kiu truy vn  
Ví dmột khai báo phương thức cho mt lp:  
generatePurchaseList(prodID: int): String  
Các mi quan htrong biểu đồ lp  
Gia các lp có các dng quan hệ cơ bản như sau:  
19  
- Quan hkết hp ( Association ): Mt kết hp ( assocition ) là mt sni kết  
gia các lp, cũng có nghĩa là sự ni kết giữa các đối tượng ca các lp này.  
Trong UML, mt quan hệ được ấn định nhm mô tmt tp hp các liên kết (  
links ), tc là mt sliên quan vngữ nghĩa ( semantic connection ) giữa mt  
nhóm các đối tượng được biu din bi các lớp tương ứng.  
Hinh 10: Quan hkết hp  
- Khái quát hóa ( Generalization ): Khái quát hóa là mối quan hệ giữa một lớp có  
các đặc trưng mang tính khái quát cao hơn và một lớp có tính chất đặc biệt hơn.  
Trong sơ đồ lớp, mối quan hệ khái quá hóa chính là sự kế thừa của một lớp từ  
lớp khác.  
Hinh 11: Quan hkhai quát hóa  
- Quan hkết tp ( Aggregation ): Là dng quan hmô tmt lp A là mt phn  
ca lp B và lp A có htn tại độc lp. Quan hcng hợp được biu din  
bng một mũi tên gắn hình thoi rng ở đầu hướng vlp bao hàm. Trong ví dụ  
sau, lớp Hóa đơn là một phn ca lớp Khách hàng nhưng đối tượng Hóa đơn  
vn có thtn tại độc lp với đối tượng khách hàng.  
Hinh 12: Quan hcng hp  
20  
     
- Quan hhp thành ( Composition ): Mt quan hhp thành biu din mt quan  
hkiu tng th- bphn. Lp A có quan hgp vi lp B nếu lp A là mt  
phn ca lp B và stn ti của đối tượng lớp B điểu khin stn ti của đối  
tượng lA.  
Hinh 13: Quan hhp thành  
- Quan hthc thi ( Realization ): Mt quan hthc hin chra mt lp thc thi  
hành vi đặc tbi mt lớp khác ( thường là mt giao din )  
Mt giao din có thể được thc thi bi nhiu lp  
Mt lp có ththc thi nhiu giao din  
Hinh 14: Quan hthc thi  
- Quan hphthuc ( Dependency ): Sphthuc chra mt quan hngữ nghĩa  
gia hai hoc nhiu lớp trong đó sự thay đổi ca lp này bt buc sự thay đổi  
ca lp khác mc dù gia chúng không có mt sliên kết rõ ràng  
Hinh 15: Quan hphthuc  
4.1.2. Biểu đồ lớp đặc tả dƣới dạng OWL Ontology  
Trong OWL Ontolog đặc tmt mô hình lớp trong UML định nghĩa các lớp OWL  
(OWL:Class): Class, Attribute, Operator, Parameter, Parameter_Direction_Kind… nhằm  
biu din các lp, toán t, tham svà kiu tham số tương ứng trong UML. Bảng sau đây  
smô tchi tiết nhng lớp được khai báo trong OWL Ontology để mô tmt biểu đồ lp.  
21  
         

Tải về để xem bản đầy đủ

pdf 58 trang yennguyen 13/04/2025 160
Bạn đang xem 30 trang mẫu của 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 gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_kiem_tra_su_tinh_che_hai_mo_hinh_co_ap_dung_mau_th.pdf