13. PHA THIẾT KẾ DUYỆ T
13.1. Lớp duyệt (Navigation class)
Lớp duyệt (navigation class, tức là node) được ký hiệu bằng ký hiệu lớp với một ô vuông ở góc trên bên phải. Thuộc tính đa trị trong mô hình quan niệm được ánh xạ thành các thuộc tính khác nhau của lớp duyệt.
OOHDM cho phép node được định nghĩa bằng cách kết hợp các thuộc tính của các lớp riêng biệt có liên quan nhau trong mô hình quan niệm. Node sở hữu các thuộc tính đơn, link anchor, và có thể là
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 27
atomic hoặc composite. Anchor là thể hiện của lớp Anchor (hoặc một trong những lớp con của nó) và được tham số hoá bằng loại link nó sở hữu. Hành vi duyệt chuẩn khi một node nhận được thông điệp
“anchorSelected()” là giao phó thông điệp này cho anchor tương ứng, để nó hoạt hoá link tương ứng. Có thể định nghĩa lại hành vi chuẩn của anchor hay node để thực hiện kiểm tra trước khi quá trình duyệt diễn ra.
Đây là một trong những cải tiến chính của OOHDM, nhận ra các đối tượng mà người dùng duyệt không phải là đối tượng mức quan niệm. Do đó, thuộc tính node được định nghĩa như là những khung nhìn hướng đối tượng của các lớp mức quan niệm, bằng ngôn ngữ truy vấn. Điều này cho phép node được định nghĩa bằng cách cung cấp truy cập đến thuộc tính của các lớp riêng biệt có liên quan nhau trong lược đồ quan niệm.
Link phản ánh những mối quan hệ mức quan niệm dự kiến sẽ được duyệt bởi người dùng cuối. Các ứng dụng khác nhau (trên cùng một lĩnh vực) có thể chứa không gian duyệt khác nhau tuỳ theo người dùng. Ví dụ, website về kiến trúc có thể chứa thông tin phân loại công trình cho các chuyên gia, và không chứa thông tin này đối với người dùng thông thường.
Link kết nối các đối tượng duyệt và có thể là quan hệ 1-1 hay 1-n. Cấu trúc truy cập (index hay guided tour) được định nghĩa như lớp, mô tả các cách duyệt thay thế trong ứng dụng hypermedia. Quan hệ giữa node và các đối tượng mức quan niệm, giữa link và các quan hệ trong lược đồ được diễn tả bằng Observer Design Pattern. Cú pháp chung định nghĩa thuộc tính node như sau (tương tự đối với link):
NODE name [FROM className: varName] [INHERITS FROM
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 28
attri: type1 [SELECT name1] [FROM class1:varName1, classj: varNamej
WHERE logical expression] attr2: type2 [SELECT name2]... ...
attrn: typen [idem]
END
Trong đó:
- name: tên lớp của node đang tạo.
- className: tên lớp mức quan niệm (từ đó node được ánh xạ). - nodeClass: tên super-class
- attri: tên thuộc tính của lớp, typei là loại thuộc tính.
- namei: chủ thể cho biểu thức truy vấn, vari là các biến diễn tả điều kiện logic.
- logical expression: cho phép định nghĩa lớp có thể hiện là kết hợp của các đối tượng được định nghĩa trong lược đồ quan niệm, khi những điều kiện trên các thuộc tính và/hay quan hệ của chúng có hiệu lực.
Ví dụ, một lớp node Story, chứa như là thuộc tính của nó name và
bio của Person viết nó, và một anchor của một link đến Person đó. Trong mô hình quan niệm, name và bio của Person là thuộc tính của lớp này.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 29
NODE Story [FROM Story:St] [INHERITS FROM Person]
author: String [SELECT Name] [FROM Person:Pr WHERE Pr Is Author of St]
auhtor_bio: String [SELECT Bio] [FROM Person:Pr WHERE Pr Is Author of St]
.... (các thuộc tính khác được giữ lại từ lớp Story mức quan niệm)
toAuthor: Anchor (Is Author of)
END
Giá trị thuộc tính toAuthor là một anchor được tham số hoá với lớp Link Is Author of. Khi định nghĩa thể hiện giao diện của lớp node
Story ta có thể để anchor xuất hiện như một button ẩn phía trên tên tác giả (thuộc tính author). Mặc dù có vẻ như hai thuộc tính có cùng hành vi, nhưng chỉ anchor là hồi đáp lại sự kiện giao diện.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 30 Hình 2. 2 – Mô hình duyệt cho tạp chí trực tuyến.
Lớp Person không xuất hiện, và thuộc tính của Author bây giờ là bộ phận của lớp Story. Tương tự với lớp Interview.