13. PHA THIẾT KẾ DUYỆ T
13.2.3. Ngữ cảnh link đơn lẻ (Simple link derived context)
Chứa tất cả đối tượng liên quan đến đối tượng cho trước; ví dụ
“buildings designed by Oscar Niemeyer”. Ký hiệu đồ hoạ như 4.2.1.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 32 13.2.4. Nhóm ngữ cảnh link (Link derived context group)
Tập hợp các ngữ cảnh link đơn lẻ, mỗi ngữ cảnh có được bằng cách thay đổi yếu tố nguồn của link; ví dụ “buildings designed by architect” (architect thay đổi). Ký hiệu đồ hoạ như 4.2.2.
13.2.5. Ngữ cảnh tuỳ ý (Arbitrary context)
Là một tập hợp liệt kê (enumerated set); ví dụ, một guided tour. Ký hiệu đồ hoạ như 4.2.1.
13.2.6. Ngữ cảnh động (Dynamic context)
Ngoài năm loại ngữ cảnh trên, loại ngữ cảnh động xuất hiện trong một số tài liệu, là tập hợp trong đó các yếu tố của một ngữ cảnh có thể thay đổi như là kết quả của quá trình duyệt bởi người dùng; ví dụ history, shopping basket (được người đọc xây dựng trong khi duyệt qua các đối tượng (ví dụ là sách) trong các ngữ cảnh khác). Nếu ứng dụng cho phép tạo hay chỉnh sửa đối tượng (class instance), tất cả ngữ cảnh nhận được từ những đối tượng này sẽ là động, điều này cũng đúng trong trường hợp link.
Ký hiệu đồ hoạ:
Hình 2. 5 - Ký hiệu đồ hoạ cho ngữ cảnh động
Với tất cả các ngữ cảnh trên, nếu có một cấu trúc truy cập được định nghĩa cho nó, thì ký hiệu đồ hoạ tương ứng chứa một ô đen nhỏ ở góc trên bên trái. Kết hợp với ngữ cảnh có các cấu trúc truy cập (index) ký hiệu đồ hoạ bởi:
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 33 Hình 2. 6 – Ký hiệu đồ hoạ cho các cấu trúc truy cập
Ngữ cảnh duyệt tổ chức không gian duyệt thành các tập hợp phù hợp (consistent) có thể được duyệt theo một thứ tự nhất định.
Cấu trúc duyệt của một ứng dụng được định nghĩa trong lược đồ ngữ cảnh (context diagram), trình bày tất cả cấu trúc truy cập và ngữ cảnh được định nghĩa cho ứng dụng này, và quá trình duyệt có thể có giữa chúng.
Hình 2.7 là lược đồ ngữ cảnh duyệt cho tạp chí trực tuyến, trong đó Magazine hình thành bởi Story được nhóm theo một số tiêu chuẩn khác nhau.
Hình 2. 7 - Lược đồ ngữ cảnh duyệt cho tạp chí trực tuyến
Index được chỉ ra bởi các ô với đường đậm, nét đứt, như là "Main Menu". Loại ngữ cảnh đơn giản nhất (tập các node) được ký hiệu bởi:
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 34 Hình 2. 8 – Ký hiệu đồ hoạ cho tập các node
Trong ví dụ này, tập các Story được mô tả như là “Highlights” của 1 Magazine nhất định.
Một nhóm các ngữ cảnh bao gồm các node của cùng một lớp, theo tiêu chuẩn khác nhau, ký hiệu nhóm ngữ cảnh như sau:
Hình 2. 9 – Ký hiệu đồ hoạ cho nhóm ngữ cảnh
Ô đen ở góc trên bên trái chỉ ra rằng nhóm có một index đến các thành phần của nó. Định nghĩa của ngữ cảnh tự nó sẽ chỉ ra loại của quá trình duyệt được cho phép trong ngữ cảnh, giá trị điển hình là “sequential”, “circular sequential”, “index” (chỉ có thể duyệt từ một index đến một yếu tố và trở lại), hoặc “index sequential”.
Việc thiếu một đường đứt giữa các nhóm cho biết có thể tự động chuyển từ một ngữ cảnh của một nhóm sang một ngữ cảnh của nhóm kia. Còn các nhóm ngữ cảnh “by reference”, “by query” và “hightlights” đều được ngăn cách bởi đường nét đứt. Có nghĩa là, ví dụ như, nếu người đọc đang xem một Story trong một section cho trước, anh ta sẽ được phép duyệt qua, hoặc là Story kế tiếp của section này, hoặc là Story kế tiếp của cùng tác giả. Tuy nhiên, anh ta sẽ không được phép duyệt qua Highlights kế tiếp.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 35
Mũi tên đi từ "Story" trở lại chính nó cho biết Storycó thể tham khảo đến các Storykhác liên quan. Nếu người đọc đang xem một Story, và lần theo link đến một Storyliên quan, anh ta sẽ ở trong ngữ cảnh tất cả các Story liên quan được nhóm lại. Lúc này, anh ta phải quay trở lại, hoặc là Story ban đầu, được chỉ ra bởi mũi tên hai đầu, hoặc là "summary index", được chỉ ra bởi mũi tên từ “Story” đến “Index of sections”.
Một khi ngữ cảnh được định nghĩa, có thể mở rộng định nghĩa của các lớp duyệt bằng cách chỉ ra “decorator”, là các thuộc tính chỉ hiển thị khi một đối tượng được truy cập trong một ngữ cảnh cho trước. Những thuộc tính như vậy được định nghĩa trong các lớp InContext. Node được làm phong phú hơn bởi tập các lớp InContext, cho phép một node trông khác biệt và trình bày các thuộc tính khác nhau (bao gồm anchor), cũng như các phương thức khác nhau khi được duyệt trong một ngữ cảnh nhất định (hình 2.10). Ví dụ, khi duyệt “Stories by Bob Woodward”, tiểu sử tác giả có thể không được chứa như là thuộc tính của Story, trong khi nó có thể được chứa khi duyệt
“Highlights” (hình 2.11). Việc làm phong phú node này tuân theo cấu trúc của Decorator Design Pattern.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 36 Hình 2. 11 - Đặc tả của lớp InContext cho Story trong ngữ cảnh Highlights. Trong trường hợp này, tiểu sử tác giả chỉđược thấy khi một Story được truy cập
bên trong ngữ cảnh Highlights.
14. PHA THIẾT KẾ GIAO DIỆN TRỪU TƯỢNG
Giai đoạn này:
- Định nghĩa cách thức các đối tượng duyệt khác nhau sẽ xuất hiện; đối tượng giao diện nào sẽ hoạt hoá quá trình duyệt và các chức năng ứng dụng; đối tượng giao diện nào mà người dùng sẽ nhìn thấy; cũng như những diễn tiến giao diện nào sẽ xảy ra và xảy ra khi nào.
- Cho phép xây dựng các giao diện khác nhau cho cùng một mô hình duyệt, dẫn đến sự độc lập mức cao về kỹ thuật giao diện người dùng. - Chỉ ra một cách rõ ràng diễn tiến nào thuộc về giao diện cũng đồng thời
là diễn tiến của quá trình duyệt. Có sự phân biệt giữa các thao tác duyệt và thao tác giao diện, không phải tất cả những gì xảy ra ở giao diện đều liên quan đến quá trình duyệt.
- Chỉ ra diễn tiến giao diện nào là cục bộ đơn giản không ảnh hưởng đến tình trạng của quá trình duyệt, do đó không cần truy cập đến web server.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 37
Khi thực thi, giao diện của ứng dụng Web thường được tạo bởi các trình soạn thảo HTML chuyên biệt, nhiều khía cạnh quan trọng của giao diện có thể bị loại trừ.
OOHDM dùng hướng tiếp cận Khung nhìn dữ liệu trừu tượng (Abstract Data View design) để mô tả giao diện người dùng của một ứng dụng hypermedia.
Khung nhìn dữ liệu trừu tượng (ADV - Abstract Data View) là các mô hình chính thức của đối tượng giao diện và được chỉ ra bằng cách cho biết:
- Các khía cạnh tĩnh, có cấu trúc của những đối tượng giao diện.
- Cách thức chúng liên hệ tĩnh với Đối tượng dữ liệu trừu tượng (ADO - Abstract Data Object), ở đây là các đối tượng duyệt. Ta sử dụng Lược đồ cấu hình (configuration diagram) để diễn tả những mối quan hệ này. Một ADV liên hệ với một đối tượng ứng dụng tương ứng, đối tượng này hành động như một server đối với các thao tác không đặc trưng cho giao diện. Đối tượng này được gọi là ADV owner.
- Cách thức chúng cư xử để phản ứng lại các sự kiện bên ngoài; cụ thể, chúng kích hoạt quá trình duyệt thế nào, và diễn tiến giao diện nào xảy ra khi người dùng tương tác với ứng dụng. OOHDM sử dụng ADV- chart, và một hệ thống ký hiệu tương tự Petri-Net để diễn đạt các vấn đề đồng bộ hoá thường được gặp khi làm việc với dữ liệu multimedia.
ADV là các đối tượng có trạng thái và giao diện, trong đó giao diện có thể được thi hành thông qua thông điệp (cụ thể là các sự kiện bên ngoài phát sinh bởi người dùng). ADV trừu tượng ở chỗ chúng chỉ mô tả giao diện và trạng thái chứ không thực thi. ADV được sử dụng để mô tả giao diện giữa hai phương tiện khác nhau như là người dùng, mạng hay một thiết bị (ví dụ Timer), hoặc giao diện giữa hai hay nhiều ADO. ADO là các đối tượng không hỗ trợ sự kiện bên ngoài do người dùng phát sinh. Từ quan điểm kiến trúc, ADV là nhà quan sát (observer) cho ADO, vì vậy giao thức liên lạc
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 38
giữa giao diện và đối tượng ứng dụng sẽ tuân theo quy tắc mô tả trong Observer Design Pattern.
Một ADV được sử dụng trong thiết kế ứng dụng web có thể được xem như một đối tượng giao diện. Nó gồm một tập các thuộc tính định nghĩa những đặc tính perception của nó, và một tập các sự kiện nó có thể xử lý, ví dụ như những sự kiện do người dùng phát sinh.
Giá trị thuộc tính có thể được định nghĩa như hằng số, để xác định các kiểu trình bày cụ thể như vị trí, màu sắc, âm thanh. Nói chung, ADV chỉ ra tổ
chức và hành vi của giao diện, nhưng trình bày vật lý thật sự hay trình bày ADV trên màn hình được làm ở giai đoạn thực thi.
Một biến được lưu trữ, “perceptionContext”, dùng để chỉ ra sự chỉnh sửa của
không gian perception (tập hợp các đối tượng có thể thấy tại một thời điểm). Khi ta muốn để đối tượng nào đó có thể được thấy, ta bổ sung nó vào perceptionContext, và các yếu tố được loại khỏi perceptionContext sẽ không được thấy nữa.
Trong ngữ cảnh của OOHDM, các đối tượng duyệt như là node, index sẽ đóng vai trò ADO, và ADV liên kết với chúng sẽ được dùng để xác định thể hiện của chúng đến người dùng. Chúng ta sẽ dùng từ ADV để chỉ các đối tượng và các lớp giao diện.
ADV có thể được bao gồm bởi aggregation hay composition của các ADV mức thấp hơn, do đó cho phép việc xây dựng giao diện người dùng với các đối tượng có thể thấy được lại bị ẩn đi. Giả sử, ví dụ, ta có ứng dụng vẽ. Hình 2.12 cho thấy một ADV mô tả một bức vẽ có thể tạo bởi 3 ADV, chứa một image, text và một button. Ngoài ra, ADV có thể được tổ chức trong những cấu trúc tổng quát hoá / đặc biệt hoá cung cấp một framework mức quan niệm để định nghĩa thứ bậc của các đối tượng giao diện.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 39 Hình 2. 12 – ADV có thể là aggregation
Hình 2. 13 – ADV sử dụng khái niệm kế thừa
Trong Hình 2.13, AnchoredText là một đối tượng giao diện, nó thêm một tập anchor (được thực thi trong ví dụ như là các hotword) vào TextField tổng quát hơn. Trong khi Description là một button được chuyên biệt hoá bằng cách thêm vào một hành vi được tuỳ biến hơn (không cho thấy trong hình).
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 40 Hình 2. 14 – ADV Painting trong trang Web Portinari
ADV Painting chứa một số thuộc tính mô tả các khía cạnh nhất định của một bức vẽ và nhiều ADV ẩn như Picture, References và People. Trong ký hiệu ở Hình 2.14 References và People không được cho thấy cùng một lúc, do đó ADV của chúng chồng lên nhau. Các ADV ShowPeople, ShowReferences là control cho phép hiển thị một trong các ADV đề cập trước đó. ADV
InContext Theme thi hành giao diện của lớp InContext Theme và cung cấp những công cụ duyệt bên trong ngữ cảnh duyệt Paintings of a Theme.
Trong khi lược đồ trên cho thấy bản chất tĩnh của giao diện Painting, tính chất động được mô tả bằng ADV-chart. Khi ShowPeople được click, nó gửi thông điệp trình bày danh sách People liên quan đến bức vẽ, và tương tự với
ShowReference. Đây là hiệu ứng hoàn toàn về giao diện, không tính đến việc duyệt qua node khác. Trong khi đó, khi đối tượng giao diện Previous được click, nó gửi thông điệp "anchorSelected (previous)" đến ADO tương ứng, trong trường hợp này một đối tượng InContext liên lạc với anchor tương ứng và nhờ đó ta duyệt đến bức vẽ khác.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 41
15. PHA THỰC THI
Giai đoạn thực thi sẽ được cụ thể bằng chương trình ứng dụng, được mô tả ở chương 3.
16. SỬ DỤNG OOHDM
Những mô hình sử dụng trong bốn giai đoạn được đề cập ở phần trên đủ để cho phép thiết kế hầu hết các hệ thông thông tin tựa Web.
OOHDM hỗ trợ thiết kế cho các ứng dụng từ đơn giản như website đến ứng dụng phức tạp hơn.
Việc sử dụng OOHDM làm giảm thời gian phát triển, và cho phép chúng ta thảo luận thiết kế trước khi thực thi. Một điểm lợi khác của mô hình OOHDM là phát triển việc truyền đạt với cả khách hàng lẫn các chuyên gia không thuộc lĩnh vực tin học, như là nhà thiết kế đồ hoạ, chuyên viên marketing, là những người nằm trong đội ngũ thiết kế.
Một hướng tiếp cận được sử dụng gần đây để thu nhận kiến thức thiết kế, đặc biệt trong lĩnh vực hướng đối tượng, là việc sử dụng Design Pattern, đặt tên, giải thích và đánh giá một cách hệ thống các mẫu thiết kế quan trọng thường gặp trong hệ thống phần mềm. Chúng mô tả vấn đề xuất hiện lặp lại, và mô tả trọng tâm giải pháp cho vấn đề đó, theo cách mà chúng ta có thể sử dụng giải pháp này nhiều lần ở nhiều ngữ cảnh và ứng dụng khác nhau.
Mục tiêu của những người đề ra OOHDM là phát triển một hệ thống pattern đủ chặt để có thể diễn tả các thiết kế một cách đầy đủ, xem như là áp dụng thành công các pattern trong hệ thống này. Họ đã cấu trúc những pattern này thành ba nhóm con, đặt tên là pattern kiến trúc, duyệt và giao diện.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 42
Ví dụ thú vị về một pattern duyệt là pattern “Active Reference”, mục tiêu là cung cấp một tham khảo cố định và có thể thấy được về tình trạng của quá trình duyệt, hiện tại chưa được cung cấp bởi các trình duyệt WWW. Ví dụ, ta đặt lên trang một thanh hiển thị đường dẫn logic từ root đến node hiện tại. Người đọc có một cách đơn giản để biết họ ở đâu, có thể đi đâu tiếp trong khi truy cập dữ liệu.
Pattern “Information/Interaction decoupling” giải quyết vấn đề làm thế nào để cho tương tác giữa ứng dụng và người dùng rõ hơn tại giao diện đồ hoạ của một node. Pattern này đặc biệt hữu ích trong các website được phát sinh động.
Mặc dù các tác giả cho rằng giai đoạn Thiết kế duyệt nên đảm nhận trách nhiệm về người dùng và tác vụ, OOHDM cho đến nay chưa cung cấp bất kỳ chỉ dẫn nào về cách tiến hành điều này.
OOHDM được mở rộng để tạo ra một mô hình an toàn cho phép truy cập có điều khiển đến các đối tượng. Mô hình này đảm nhiệm các lớp người dùng và ngữ cảnh, định nghĩa cơ chế xác định một số ngữ cảnh động là kết quả từ
hành động cụ thể của người dùng.
Hiện tại các tác giả của OOHDM vẫn đang theo đuổi một vài nghiên cứu, là sản phẩm hoặc sự tiếp nối của nghiên cứu đã nêu:
- Mở rộng OOHDM để tích hợp mô hình người dùng và tác vụ, mô hình bảo mật và định nghĩa các ngữ cảnh động.
- Mở rộng OOHDM để hỗ trợ nhóm soạn thảo phân tán sử dụng OOHDM.
KHOA CNTT –
ĐH KHTN
Sinh viên thực hiện: Cao Thị Thuỳ Liên - Nguyễn Thế Vũ Trang 43
- Thiết kế và thực thi một tập công cụ thiết lập một môi trường phát triển dựa trên OOHDM, cho các ứng dụng tựa Web, để nhà thiết kế có thể giải quyết toàn bộ các site ở một mức độ trừu tượng thích hợp hơn.