Chúng giải quyết một số vấn đề mà các giao diện người dùng hiện nay chưa thể thực hiện được, bao gồm [6]: • Tạo ra các hệ thống được cá nhân hóa phù hợp với từng người sử dụng: Trên thực
Trang 1-
LUẬN VĂN THẠC SĨ KHOA HỌC
XÂY DỰNG GIAO DIỆN THÔNG MINH DỰA TÁC TỬ GIAO
DIỆN
LÊ HẢI QUÂN
LuËn V¨n Th¹c SÜ Khoa Häc CHUYÊN NGÀNH: CÔNG NGH Ệ THÔNG TIN
Hµ Néi - 2005
Trang 2NGƯỜI HƯỚNG DẪN
PGS – TS
Hµ Néi - 2005
Trang 3Mục lục
Mục lục 1
Danh mục các hình vẽ trong luận văn 4
Danh mục các bảng trong luận văn 5
Danh mục các từ viết tắt và thuật ngữ 6
Lời nói đầu 9
Chương I: Cơ sở lý thuyết về giao diện người dùng thông minh 12
1.1 Giao diện người dùng thông minh 12
1.1.1 Tại sao cần sử dụng giao diện người dùng thông minh ? 12
1.1.2 Giao diện người dùng thông minh là gì ? 14
1.1.2.1 Định nghĩa 14
1.1.2.2 Các thuộc tính của giao diện người dùng thông minh 16
1.1.3 Giao diện người dùng thông minh khác với một hệ thống thông minh 17
1.2 Các thành phần của giao diện thông minh 18
1.2.1 Mô hình người dùng 18
1.2.2 Đa mô hình giao tiếp 19
1.2.3 Khả năng nhận biết kế hoạch 19
1.2.4 Khả năng trình diễn động 20
1.2.5 Ngôn ngữ tự nhiên 20
1.2.6 Khả năng trợ giúp thông minh 20
1.2.7 Khả năng thích nghi của giao diện 21
1.3 Thiết kế giao diện người dùng 21
1.3.1 Quy trình thiết kế chung 21
1.3.2 Phân tích 23
1.3.3 Phát triển và triển khai 24
1.3.4 Đánh giá 25
1.3.5 Sự điều chỉnh và tích hợp với công cụ 25
1.3.6 Một số phương pháp thiết kế khác 25
1.3.6.1 Thiết kế sử dụng các bài tập tình huống 26
1.3.6.2 Một số nguyên tắc định hướng trong thiết kế 27
1.3.6.3 Kiến trúc chung 28
1.4 Các ngôn ngữ mô tả giao diện 29
1.4.1 UIML 30
1.4.2 XIML 33
1.4.3 AUIML 33
1.4.4 USIXML 34
1.4.5 AUIT 34
1.4.6 AAIML 35
1.4.7 XUL 36
1.4.8 GITK / GIML 36
1.4.9 XAML 37
1.4.10 Một số loại ngôn ngữ mô tả giao diện khác 37
1.4.11 So sánh các ngôn ngữ mô tả giao diện người dùng 38
1.5 Kết chương 39
Chương II: Tác tử giao diện thông minh và ứng dụng trong xây dựng giao diện thông minh 41
2.1 Tác tử giao diện thông minh 41
Trang 42.1.1 Giới thiệu tác tử 41
2.1.2 Tác tử giao diện thông minh là gì 42
2.1.3 Sự cần thiết của tác tử giao diện 43
2.2 Đặc điểm của tác tử giao diện thông minh 45
2.2.1 Tính chủ động 46
2.2.2 Tác tử với tư cách là trợ lý và tư vấn cho người dùng 47
2.2.2.1 Làm trợ lý 47
2.2.2.2 Làm tư vấn 47
2.2.3 Thay đổi cho phù hợp với từng người dùng (cá nhân hóa) 48
2.2.4 Mô hình miền (lĩnh vực) 49
2.2.5 Mô hình người dùng 49
2.2.6 Được tin cậy 52
2.2.7 Có khả năng phản hồi thông tin 52
2.2.8 Có khả năng hướng dẫn 53
2.2.9 Được nhân hóa 53
2.2.10 Một số quan điểm phản đối sử dụng tác tử 55
2.2.11 Làm hài lòng người sử dụng 56
2.3 Tích hợp tác tử giao diện thông minh trong xây dựng giao diện 56
2.4 Mô hình kiến trúc xây dựng giao diện dựa trên tác tử giao diện thông minh 58
2.4.1 Đặc tả miền 58
2.4.2 Khả năng thích nghi 58
2.4.3 Tác tử điều phối 60
2.4.4 Tác tử quan sát 61
2.4.5 Tác tử dự đoán 61
2.4.6 Tác tử hướng dẫn 61
2.4.7 Tác tử quản lý mô hình người dùng 61
2.4.7.1 Cập nhật lịch sử tương tác 63
2.4.7.2 Cập nhật mô hình tương tác 63
2.4.7.3 Sử dụng tiểu sử người dùng 63
2.4.8 Tác tử quản lý mô hình miền 63
2.4.9 Tác tử đáp ứng 63
2.5 Kết chương 64
Chương III: Xây dựng mô hình nhiệm vụ trong giao diện thông minh dựa tác tử 66
3.1 Các nhiệm vụ và hành động 66
3.1.1 Hành động 66
3.1.2 Nhiệm vụ 66
3.2 Mô hình nhiệm vụ dựa trên tác tử giao diện 68
3.3 Các thành phần cơ bản của mô hình nhiệm vụ 69
3.3.1 Nhiệm vụ 69
3.3.2 Hành động 69
3.3.3 Mục tiêu 69
3.3.4 Người dùng 69
3.3.5 Tác tử 70
3.3.6 Nhiệm vụ con 70
3.3.7 Nhiệm vụ điều kiện trước 70
3.3.8 Nhiệm vụ điều kiện sau 70
3.4 Phân tích nhiệm vụ 70
3.4.1 Phân tích nhiệm vụ là gì 70
Trang 53.4.2 Các phương pháp phân tích nhiệm vụ 73
3.4.2.1 Phân tích nhiệm vụ sử dụng HTA (Hierarchical Task Analysis) 73
3.4.2.2 Phân tích nhiệm vụ sử dụng GOMS (Goals, Operators, Methods, Selectors) 73
3.4.2.3 Phân tích nhiệm vụ sử dụng GTA (Groupware Task Analysis) 74
3.4.2.4 Phương pháp phân tích dựa trên HTA 75
3.5 Xây dựng mô hình nhiệm vụ 76
3.6 Kết chương 80
Chương IV: Xây dựng mô hình tương tác 82
4.1 Mô hình tương tác 82
4.2 Các giải thuật xây dựng mô hình tương tác 85
4.2.1 Thuật toán phân đoạn hành động 85
4.2.2 Thuật toán lựa chọn cặp hành động 87
4.2.3 Thuật toán lựa chọn cặp hành động cuối 91
4.2.4 Thuật toán xây dựng đồ thị tương tác 93
4.2.5 Thuật toán tính toán xác xuất 98
4.3 Đánh giá và hoàn thiện các giải thuật xây dựng mô hình tương tác 101
4.3.1 Thuật toán phân đoạn hành động 101
4.3.2 Thuật toán lựa chọn cặp hành động 102
4.3.3 Thuật toán lựa chọn cặp hành động cuối 104
4.3.4 Thuật toán xây dựng đồ thị tương tác 106
4.3.5 Thuật toán tính toán xác suất 110
4.3.6 Tổng kết 110
4.4 Bài toán thử nghiệm 112
4.4.1 Hệ thống chuyển khoản cá nhân 112
4.4.2 Xây dựng giao diện người dùng 112
4.4.2.1 Đăng nhập 112
4.4.2.2 Chuyển khoản 113
4.4.3 Xây dựng mô hình nhiệm vụ 114
4.4.4 Xác định các hành động nguyên tố 118
4.4.4.1 Các hành động nguyên tố 118
4.4.4.2 Ánh xạ chúng với các nhiệm vụ 120
4.4.5 Mô tả giao diện và nhiệm vụ bằng XML 121
4.4.5.1 Ngôn ngữ đặc tả XML 121
4.4.5.2 Mô tả nhiệm vụ sử dụng XML 122
4.4.5.3 Mô tả giao diện bằng XML 123
4.4.5.4 Ánh xạ giữa giao diện và nhiệm vụ bằng XML 123
4.4.6 Tác tử trợ giúp 124
4.4.6.1 Kiến trúc của tác tử 124
4.4.6.2 Lịch sử tương tác 124
4.4.6.3 Sinh trợ giúp người dùng 124
4.5 Thử nghiệm và đánh giá 125
4.6 Kết chương 126
Đánh giá kết quả nghiên cứu và hướng phát triển tiếp theo 128
Tài liệu tham khảo 130
Phụ lục 1
Trang 6Danh mục các hình vẽ trong luận văn
Hình 1.1: Lĩnh vực nghiên cứu giao diện người dùng thông minh và một số chủ đề
liên quan 16
Hình 1.2: Một hệ thống thông minh khác với một giao diện thông minh 18
Hình 1.3: Kiến trúc chung của giao diện người dùng thông minh 28
Hình 1.4: Bộ công cụ xây dựng giao diện người dùng trên nhiều nền tảng sử dụng UIML 32
Hình 2.1: Sự tăng trưởng của số lượng các công cụ trong một ứng dụng 44
Hình 2.2: Mô hình kiến trúc dựa trên tác tử giao diện thông minh 59
Hình 3.1: Phương pháp xây dựng mô hình nhiệm vụ 69
Hình 3.2: Đồ thị AND/OR của một mô hình nhiệm vụ 79
Hình 4.1: Phương pháp xây dựng mô hình tương tác 85
Hình 4.2: Một ví dụ về mô hình nhiệm vụ 87
Hình 4.3: Quy trình thực hiện giải thuật cho chuỗi hành động 1 90
Hình 4.4: Đếm số lần xuất hiện các cặp hành động trong chuỗi hành động 1 90
Hình 4.5: Mô hình tương tác cho ví dụ trên 93
Hình 4.6: Bước 1 trong giải thuật ứng với ví dụ 96
Hình 4.7: Bước 2 trong giải thuật ứng với ví dụ 96
Hình 4.8: Bước 3 trong giải thuật ứng với ví dụ 97
Hình 4.9: Bước 4 trong giải thuật ứng với ví dụ 97
Hình 4.10: Bước 5 trong giải thuật ứng với ví dụ 97
Hình 4.11: Ví dụ một mô hình đồ thị tương tác 100
Hình 4.12: Thuật toán loại bỏ thứ nhất 107
Hình 4.13: Thuật toán loại bỏ thứ hai 108
Hình 4.14: Giao diện Đăng nhập 113
Hình 4.15: Giao diện Chuyển khoản 113
Hình 4.16: Mô hình cây công việc của chương trình 117
Hình 4.17: Kiến trúc của tác tử trợ giúp 124
Hình 4.18: Giao diện Đăng nhập với sự trợ giúp của tác tử 126
Trang 7Danh mục các bảng trong luận văn
Bảng 1.1: So sánh các ngôn ngữ mô tả giao diện 39
Bảng 3.1: Định nghĩa các nhiệm vụ trong hình 3.2 79
Bảng 4.1: Giải thuật phân đoạn hành động 86
Bảng 4.2: Thuật toán lựa chọn cặp hành động 89
Bảng 4.3: Giải thuật lựa chọn cặp hành động cuối 92
Bảng 4.4: Giải thuật xây dựng mô hình đồ thị tương tác 94
Bảng 4.5: Giải thuật loại bỏ thứ nhất 95
Bảng 4.6: Thuật toán loại bỏ thứ hai 96
Bảng 4.7: Thuật toán tính toán xác suất 99
Bảng 4.8: Tính toán xác suất ứng với α = 0.5 100
Bảng 4.9: Thuật toán lựa chọn cặp hành động sau chỉnh sửa 103
Bảng 4.10: Giải thuật lựa chọn cặp hành động cuối đã chỉnh sửa 106
Bảng 4.11: Bổ sung thuật toán cập nhật cho đồ thị tương tác 109
Bảng 4.12: Bảng mô tả mô hình nhiệm vụ 116
Bảng 4.13: Bảng mô tả các hành động nguyên tố 119
Bảng 4.14: Bảng ánh xạ nhiệm vụ với các hành động nguyên tố 121
Trang 8Danh mục các từ viết tắt và thuật ngữ
AAIML Alternate Abstract Interface Markup Language Ngôn ngữ đánh dấu cho giao diện khái quát thay đổi ASP Active Server Page Công nghệ tạo web động của Microsoft AUIML Abstract User Interface Markup Language Ngôn ngữ đánh dấu cho giao diện người dùng khái quát AUIT Adaptive User Interface
CLIPS C Language Integrated Production System
Bộ công cụ phát triển để xây dựng các tập luật cho các hệ chuyên gia
CSCW Computer Supported Cooperative
Work
Công cụ hỗ trợ làm việc nhóm trên máy tính
CSS Cascading Style Sheets Chuẩn định dạng giao diện cho HTML CTT Concurrent Task Tree Cây công việc
CXML Commerce XML Định dạng XML cho trao đổi dữ liệu trong thương mại điện tử
Trang 9HCI Human Computer Interaction Tương tác người máy
HDML Handheld Device Markup
IH Interaction History Lịch sử tương tác
IM2L Interaction Multimodal Markup
Microsoft look-and-feel Một kiểu giao diện trên Java, nhìn và cảm nhận
MI2A Model based intelligent interface agent Mô hình dựa trên tác tử giao diện thông minh MML Mobile Markup Language Ngôn ngữ đánh dấu cho di động
PDA Personal Device Assitant Thiết bị trợ giúp cá nhân
Trang 10USIML USer Interface Markup Language Ngôn ngữ đánh dấu cho giao
diện người dùng USIXML USer Interface eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng cho giao diện người dùng VRIXML
User Interface Description Language for Virtual Environments
Ngôn ngữ mô tả giao diện người dùng cho môi trường ảo dựa trên XML
W3C World Wide Web Consortium Tổ chức mạng toàn cầu
WebML Web Markup Language Ngôn ngữ đánh dấu cho Web
Wizard of Oz Phương pháp tạo nhanh các mẫu cho những hệ thống cần
chi phí cao, hay công nghệ mới WML Wireless Markup Language Ngôn ngữ đánh dấu cho mạng không dây XAML Extensible Application Markup Language Ngôn ngữ đánh dấu ứng dụng mở rộng
XBL Extensible Binding Language Ngôn ngữ đánh dấu để mô tả việc gắn kết với phần tử của tài
liệu khác
XICL eXtensible User Interface
Trang 11Lời nói đầu
Ngày nay, trên thế giới ngày càng có nhiều người sử dụng máy tính, đặc biệt là ở các quốc gia có nền kinh tế phát triển Trong 60 năm qua, số lượng người sử dụng máy tính trên toàn thế giới đã tăng lên nhanh chóng và sẽ còn tiếp tục tăng trưởng nhanh hơn nữa trong tương lai Nếu nghiên cứu một cách kỹ càng giai đoạn phát triển vừa qua, chúng ta có thể thấy rõ hai xu hướng Xu hướng thứ nhất là sự gia tăng trong việc sử dụng máy tính và chíp máy tính nhằm thúc đẩy sự phát triển trên nhiều lĩnh vực Kể từ khi chiếc máy tính điện tử đầu tiên ra đời vào những năm 40 của thế kỷ trước, số lượng người dùng máy tính và các ứng dụng trên nó đã có bước tăng trưởng nhảy vọt Trước năm 1970, máy tính chủ yếu chỉ được sử dụng trong các viện nghiên cứu như một món hàng
xa xỉ đắt tiền, phục vụ cho mục đích nghiên cứu khoa học và chỉ những lập trình viên có chuyên môn cao mới có khả năng để thực hiện các tính toán trên máy tính Tuy nhiên, mọi thứ đã bắt đầu thay đổi một cách mạnh mẽ với sự ra đời của chiếc máy tính cá nhân đầu tiên vào những năm 80 của thế kỷ 20 Giá thành của máy tính đã hạ xuống, ngày càng có nhiều người hơn đủ khả năng để tậu cho riêng mình một chiếc máy tính Cùng với sự phát triển của máy tính cá nhân, giao diện của các trình ứng dụng trên máy tính, từ loại giao diện dòng lệnh đến các giao diện đồ họa cũng được phát triển thêm mới và ngày càng hỗ trợ cho việc học sử dụng máy tính được dễ dàng và thuận lợi hơn Cùng với nó là rất nhiều các ứng dụng mới của máy tính cũng được phát triển như: xử lý văn bản, bảng tính điện tử, màn hình làm việc và trò chơi máy tính
Nhưng mọi việc vẫn chưa dừng lại ở đó, trong những năm 1990, chúng ta
đã chứng kiến sự phát triển vượt bậc của ngành công nghiệp công nghệ thông tin
và truyền thông, đặc biệt là sự bùng nổ của Internet đã kích thích việc sử dụng máy tính Những người dùng có cùng sở thích trên toàn thế giới có thể “gặp gỡ” nhau trong một cộng đồng ảo trên Internet, với sự xuất hiện của máy tính xách tay, con người không còn bị giới hạn về mặt không gian khi mà họ có thể sử
Trang 12dụng máy tính ở bất kỳ nơi đâu mà họ muốn, chứ không chỉ là tại văn phòng hay nhà riêng Ngày nay, hàng triệu con người trên toàn thế giới đang sử dụng máy tính ở những địa điểm khác nhau và trong những hoàn cảnh cũng rất khác nhau Con người, cùng với một thiết bị trợ giúp cá nhân (PDA) hay một chiếc điện thoại di động có khả năng kết nối Internet là có thể liên lạc với bất kỳ ai, ở bất cứ nơi đâu và trong bất kỳ thời gian nào Điều mong muốn, máy tính ở khắp mọi nơi đã trở thành hiện thực
Xu hướng thứ hai phát triển song song với xu hướng thứ nhất đó là sự gia tăng về độ phức tạp của các chương trình máy tính và giao diện của chúng Với
sự gia tăng gấp đôi của năng lực máy tính sau mỗi 18 tháng theo dự đoán của định luật Moore, các nhà phát triển phần mềm có thể đưa thêm nhiều chức năng mới vào chương trình máy tính, tự do phát huy ý tưởng sáng tạo của mình Tuy nhiên, nhiều chương trình hơn cũng có nghĩa là sẽ có nhiều giao diện hơn, và người dùng sẽ liên tục phải học cách sử dụng một giao diện mới Nếu chúng ta xem xét đến những phiên bản gần đây nhất của phần mềm soạn thảo Microsoft Word, một phần mềm rất phổ biến với nhiều người dùng, thì có thể thấy rõ ràng một sự thật là không ai có thể sử dụng hết tất cả các chức năng của nó, không chỉ đơn thuần vì nó có quá nhiều các tùy biến và lựa chọn cần cài đặt mà còn bởi vì mọi người không biết làm cách nào để sử dụng chúng, hay thậm chí tệ hơn nữa, không biết các chức năng đó dùng vào việc gì
Hai xu hướng được mô tả ở trên làm sáng tỏ cho chúng ta thấy một điều rằng, cần phải có các giao diện “thật tốt” giữa con người và máy tính Chúng ta muốn giao diện máy tính có thể hiểu được những khó khăn của người dùng, giúp
đỡ và giải thích cho họ, làm cách nào để có thể sử dụng được các chức năng trong chương trình Rất nhiều người sử dụng máy tính đã có kinh nghiệm với các vấn đề rắc rối khi sử dụng máy tính, mà trong đó hầu hết các rắc rối này lại đều
có liên quan đến giao diện, ví dụ như: menu lựa chọn rắc rối, các thông báo lỗi khó hiểu, sự tương tác cứng nhắc và thiếu tự nhiên, v.v Đặc biệt với những người mới sử dụng máy tính, người cao tuổi, hoặc những người tàn tật thì càng gặp nhiều khó khăn hơn khi sử dụng Tuy nhiên, ngay cả với những người đã có
Trang 13kinh nghiệm khi sử dụng máy tính, thì họ cũng vẫn thường xuyên gặp phải những vấn đề tương tự Trong khi đó, một mục tiêu mà chúng ta lâu nay vẫn theo đuổi, đó là phải phổ cập máy tính cho tất cả mọi người
Luận văn này với mục tiêu nghiên cứu các lý thuyết về giao diện thông minh và tác tử giao diện Sau đó sẽ trình bày một phương pháp mô hình hóa các tương tác với giao diện của người dùng, trên cơ sở đó đưa ra các dự đoán về hành vi của người dùng và xây dựng tác tử trợ giúp cho người dùng khi họ sử dụng giao diện Luận văn sẽ bao gồm 4 chương trình bày những nội dung sau:
Chương 1 sẽ trình bày những cơ sở lý thuyết liên quan đến giao diện
người dùng thông minh Bắt đầu từ định nghĩa, các thuộc tính và sự cần thiết của giao diện người dùng thông minh cho các hệ thống hiện nay Tiếp theo, chương này sẽ trình bày các thành phần của một giao diện thông minh, quy trình thiết kế giao diện, và cuối cùng là các ngôn ngữ mô tả giao diện phổ biến hiện nay
Chương 2 trình bày những vấn đề liên quan đến tác tử giao diện thông
minh và ứng dụng tác tử vào xây dựng giao diện người dùng thông minh Các vấn đề của tác tử giao diện thông minh bao gồm khái niệm, các đặc điểm cơ bản của nó, và thậm chí trình bày cả những quan điểm phản đối tác tử giao diện thông minh Sau đó là phần trình bày về mô hình kiến trúc xây dựng giao diện dựa trên tác tử giao diện thông minh, cách tích hợp tác tử với giao diện
Chương 3 thảo luận về mô hình nhiệm vụ, một thành phần quan trọng
trong tác tử giao diện thông minh Mô hình nhiệm vụ bao gồm nhiều thành phần như nhiệm vụ, hành động, mục tiêu v.v… Các phương pháp phân tích nhiệm vụ
từ trước đến nay và phương pháp xây dựng mô hình nhiệm vụ sử dụng đồ thị AND/OR
Chương 4 sẽ trình bày về mô hình tương tác và năm giải thuật để xây
dựng mô hình tương tác, sau đó sẽ là phần phân tích và đánh giá các giải thuật này Cuối cùng là xây dựng một ứng dụng thử nghiệm mô hình tích hợp tác tử trợ giúp với giao diện người dùng
Trang 14Chương I: Cơ sở lý thuyết về giao diện người dùng
thông minh
1.1 Giao diện người dùng thông minh
1.1.1 Tại sao cần sử dụng giao diện người dùng thông minh ?
Nếu chúng ta nhìn lại cách mà chúng ta tương tác với máy tính hiện nay,
có thể thấy rất nhiều điều đã thay đổi so với 20 năm trước đây Trước đây, chương trình phải sử dụng nhiều các ràng buộc ở đầu vào, người dùng phải tuân thủ nhiều quy tắc khi nhập liệu, thì hiện nay giao diện đã trở nên mềm dẻo và linh hoạt hơn Các giao diện hiện đại ngày nay đang cố gắng để trở nên thân thiện hơn bằng cách sử dụng các màn hình làm việc, bao gồm nhiều “cửa sổ” trình bày các thư mục và các tệp tài liệu Tuy nhiên, hầu hết các giao diện hiện đại ngày nay đều gặp phải giới hạn khi muốn nắm bắt các nhu cầu khác nhau của nhiều người dùng và thiếu sự cá nhân hóa Giao diện người dùng thông minh là một bộ phận nằm trong lĩnh vực nghiên cứu Tương tác người máy Mục tiêu của Giao diện người dùng thông minh là để cải thiện sự tương tác giữa người và máy bằng cách sử dụng các công nghệ mới và thông minh Sự tương tác này không chỉ giới hạn cho máy tính, mà nó còn có thể áp dụng cho việc cải thiện các giao diện của các thiết bị máy móc được máy tính hóa (gắn chíp) như tivi, tủ lạnh hay điện thoại di động Sử dụng các kỹ thuật trong lĩnh vực nghiên cứu trí tuệ nhân tạo, giao diện người dùng thông minh giải quyết sự đa dạng của các loại đầu vào
và đầu ra, đồng thời trợ giúp cho người sử dụng một cách thông minh nhất Chúng giải quyết một số vấn đề mà các giao diện người dùng hiện nay chưa thể thực hiện được, bao gồm [6]:
• Tạo ra các hệ thống được cá nhân hóa (phù hợp với từng người sử dụng): Trên thực tế, không có hai người nào giống nhau hoàn toàn và mỗi người đều có những thói quen khác nhau, sở thích khác nhau cùng với phương pháp và môi trường làm việc khác nhau Một giao diện thông minh có thể nắm bắt được những sự khác nhau này, sau đó đưa ra các phương pháp tương tác phù hợp với
Trang 15từng người sử dụng Giao diện “hiểu” người dùng và sử dụng “kiến thức” của nó
để giao tiếp với người dùng
• Quá nhiều thông tin hay vấn đề phải lựa chọn thông tin:
Tìm kiếm được chính xác thông tin trên máy tính của mình hay trên Internet có thể hiểu tương tự như việc đi tìm một cây kim trong đống cỏ khô Giao diện người dùng thông minh có thể giảm bớt sự quá tải về thông tin, khi người dùng phải đi tìm thông tin trong những cơ sở dữ liệu lớn hay các hệ thống phức tạp Bằng cách lọc bớt các thông tin không liên quan, giao diện thông minh
có thể giảm bớt gánh nặng cho người sử dụng trong việc sàng lọc, nhận biết thông tin Hơn nữa, một giao diện người dùng thông minh còn có thể cung cấp những nguồn thông tin mới, có giá trị mà người dùng chưa biết
• Cung cấp hướng dẫn sử dụng cho các chương trình mới và phức tạp:
Các hệ thống máy tính có thể trở nên cực kỳ rối rắm và phức tạp khi người dùng lần đầu tiên làm việc với chúng Khi người dùng còn đang loay hoay
để tìm cách sử dụng một chương trình mới, thì các phiên bản mới hay bản cập nhật của phần mềm lại tiếp tục xuất hiện với các chức năng mới hơn, do đó, rất nhiều người sử dụng đã không thể theo kịp với sự phát triển này Các hệ thống trợ giúp thông minh có thể phát hiện và chỉnh sửa những sai lầm của người dùng, giải thích các thuật ngữ, chức năng mới, cung cấp các thông tin giúp công việc trở nên đơn giản và dễ dàng hơn
• Hỗ trợ một phần công việc từ người dùng:
Một giao diện thông minh có thể nhận biết người dùng đang làm gì, tìm hiểu và đoán nhận mục đích của người dùng, sau đó đảm nhận hoàn toàn hoặc một vài phần việc của người dùng, cho phép họ có thể tập trung vào thực hiện công việc khác Ví dụ, sau khi người dùng thực hiện một thao tác và chờ đợi kết quả, thì nó có thể chờ đợi kết quả thay cho người dùng, khi máy tính đã hoàn thành công việc đó, nó sẽ thông báo cho người dùng biết để họ có thể quay lại làm việc tiếp
• Tạo ra các kiểu tương tác khác:
Ngày nay, những thiết bị tương tác phổ biến nhất là chuột và bàn phím
Trang 16Những nghiên cứu về giao diện người dùng thông minh đang tìm kiếm các phương pháp khác cho việc tương tác giữa người và máy (có thể là giọng nói hoặc cử chỉ) Với việc tạo ra nhiều kiểu tương tác, những người tàn tật cũng sẽ
có khả năng để sử dụng máy tính một cách dễ dàng hơn, tạo cơ hội cho họ tiếp cận nhiều hơn với máy tính
Nói tóm lại, thay vì người dùng phải tập thích nghi với các loại giao diện, thì ngược lại, một giao diện thông minh phải tìm cách thích nghi với người dùng
và môi trường của nó Giao diện người dùng thông minh sẽ cố gắng xác định các nhu cầu của từng cá nhân người sử dụng và nỗ lực để đạt được hiệu quả cao nhất trong giao tiếp
1.1.2 Giao diện người dùng thông minh là gì ?
1.1.2.1 Định nghĩa
Như đã đề cập trong phần trước, giao diện thông minh là một bộ phận trong lĩnh vực nghiên cứu tương tác Người - Máy tính (HCI) Đi sâu tìm hiểu chi tiết vấn đề, có thể thấy thuật ngữ “giao diện người dùng thông minh” được sử dụng để mô tả một kiểu giao diện đặc biệt nhưng đồng thời nó cũng là một lĩnh vực để nghiên cứu Một số cụm từ có ý nghĩa tương tự cũng đã được đưa ra như giao diện thích nghi, giao diện đa phương thức, hay công nghệ giao diện thông minh Hai cụm từ đầu tiên thực chất là hai trong số những thành phần cần nghiên cứu của giao diện thông minh, nhưng trong thời gian gần đây lại được sử dụng như một khái niệm tương đồng với lĩnh vực nghiên cứu giao diện người dùng thông minh
Vấn đề khiến nhiều người đau đầu nhất khi định nghĩa thuật ngữ “giao diện người dùng thông minh” nằm chính ở cụm từ “thông minh” Nhiều thập kỷ qua, nhiều nhà nghiên cứu đã cố gắng để định nghĩa cụm từ “thông minh” này Quay lại những năm 1950, khi mà Alan Turing đã tiếp cận đến một ý tưởng để
có thể định nghĩa “sự thông minh” bằng những công cụ mà ngày nay chúng ta vẫn gọi là Turing Test, tuy nhiên các cuộc tranh luận không vì thế mà dừng lại Trải qua nhiều năm, nhiều định nghĩa về sự thông minh cũng đã được đưa ra Hầu hết các định nghĩa này đều đề cập đến khả năng thích nghi (khả năng học và
Trang 17giải quyết các tình huống mới), khả năng giao tiếp, và khả năng giải quyết các vấn đề
Một giao diện người dùng “thông thường” được định nghĩa như là cách giao tiếp giữa một người dùng với một máy tính [6] Nếu chúng ta mở rộng định nghĩa này, chúng ta có thể nói rằng, một giao diện người dùng “thông minh” sử dụng một số công nghệ thông minh để đạt được sự giao tiếp Người - Máy này Nói một cách khác, giao diện người dùng thông minh là giao diện có khả năng thích nghi với người sử dụng, giao tiếp với họ, và giải quyết các vấn đề cho họ
“Giao diện người dùng thông minh có mục tiêu rõ ràng là nhằm tăng cường
tính linh hoạt, tính tiện dụng, và khả năng tương tác người - máy cho tất cả những người sử dụng Để thực hiện mục tiêu này, chúng khai thác sự hiểu biết của người dùng, các nhiệm vụ, các công cụ và nội dung, cũng như các thiết bị để
hỗ trợ cho việc tương tác trong các hoàn cảnh khác nhau khi sử dụng.” [6]
Sự thích nghi và khả năng giải quyết vấn đề là các chủ đề quan trọng và nhận được nhiều sự quan tâm trong lĩnh vực nghiên cứu trí tuệ nhân tạo, nhờ nó
mà nhiều giao diện người dùng thông minh đã rút ra được rất nhiều những kỹ thuật quan trọng đã được phát triển trong khi nghiên cứu trí tuệ nhân tạo Tuy nhiên, không phải tất cả các giao diện người dùng thông minh đều có khả năng học hay giải quyết vấn đề Nhiều giao diện mà chúng ta coi là thông minh chủ yếu tập trung vào các kênh giao tiếp giữa người sử dụng và máy tính Những giao diện này thường ứng dụng các kỹ thuật tương tác mới như xử lý tiếng nói, nhận biết hướng nhìn của mắt hay nhận biết cử chỉ, nét mặt Ngoài ra, các lĩnh vực nghiên cứu khác cũng có những ảnh hưởng nhất định đến giao diện người dùng thông minh Ví dụ như: tâm lý học, khoa học nghiên cứu về lao động, nhân
tố con người, khoa học dựa trên kinh nghiệm và khoa học xã hội Trong hình 1.1 [6], chúng ta mô tả rất nhiều các chủ đề nghiên cứu và mối quan hệ của chúng đối với các lĩnh vực nghiên cứu khác
Trang 18Hình 1.1: Lĩnh vực nghiên cứu giao diện người dùng thông minh và một số
chủ đề liên quan
1.1.2.2 Các thuộc tính của giao diện người dùng thông minh
Thuộc tính quan trọng nhất của giao diện người dùng thông minh là chúng được thiết kế để cải thiện khả năng giao tiếp giữa người dùng và máy tính Người ta thường không để ý nhiều đến những kỹ thuật nào sẽ được sử dụng cho quá trình cải thiện này, mà quan tâm tới “sự thông minh” của giao diện Sau đây
sẽ là danh sách của rất nhiều các kỹ thuật hiện nay đang được sử dụng trong giao diện người dùng thông minh [6]:
• Kỹ thuật đầu vào thông minh sử dụng các kỹ thuật mới để nhận những
thông tin đầu vào dưới nhiều hình thức từ người dùng Những kỹ thuật này bao gồm ngôn ngữ tự nhiên, theo dõi và nhận biết cử chỉ, nhận biết các biểu hiện trên khuôn mặt và hướng nhìn của người dùng;
Các lĩnh vực liên quan khác
Tâm lý học
Tương tác người máy
Phục hồi thông tin
Biểu diễn thông tin
Các công cụ thiết kế
Phương pháp thiết kế
Các hệ thống đa phương tiện
Giả lập
Đa dạng đầu vào/đầu ra Quản lý hội thoại Máy học
Tác tử thông minh Lọc thông tin Nhận biết kế hoạch
Mô hình người dùng Nhận biết cử chỉ
Nhận biết nét mặt
Các hệ thống hướng dẫn Tiện ích
Xử lý dựa trên kinh nghiệm
Giao diện người dùng thông minh
Trang 19• Mô hình người dùng bao gồm các kỹ thuật cho phép một hệ thống lưu trữ
hay suy luận ra các tri thức về một người dùng dựa trên những đầu vào nhận được;
• Khả năng thích ứng với người dùng bao gồm tất cả các kỹ thuật cho
phép cải thiện khả năng giao tiếp Người - Máy, máy tính có thể thích ứng được với nhiều người sử dụng khác nhau và trong các tình huống khác nhau Ví dụ như, máy học hay nhận biết hoàn cảnh;
• Sinh giải thích bao gồm tất cả các kỹ thuật cho phép một hệ thống giải
thích các kết quả của nó cho người dùng, ví dụ sử dụng đầu ra bằng giọng nói, các tác tử giao diện, nhận thông tin phản hồi từ môi trường
Bên cạnh việc cải thiện khả năng giao tiếp, những thuộc tính quan trọng khác của giao diện người dùng thông minh là tăng tính cá nhân hóa và mức độ linh hoạt khi sử dụng Để đạt được sự cá nhân hóa, giao diện người dùng thông minh thường lưu trữ thêm các thông tin về người sử dụng Nó sử dụng các mô hình người dùng để ghi lại nhật ký dữ liệu về các hành vi của người sử dụng, sự hiểu biết và các khả năng của họ Các tri thức mới về người dùng có thể được suy luận dựa trên thông tin đầu vào và lịch sử tương tác của người dùng với hệ thống Để tăng thêm tính linh hoạt thì nhiều giao diện người dùng thông minh đã
sử dụng tính thích nghi hay khả năng học Sự thích nghi có thể được tạo ra dựa trên các tri thức được lưu trữ trong mô hình người dùng hoặc bằng cách đưa ra các suy luận sử dụng thông tin đầu vào hiện tại Quá trình học xảy ra khi các tri thức được lưu trữ đã trở nên lỗi thời và cũng nhằm tương thích với các dữ liệu mới Do còn nhiều khó khăn trong quá trình tạo giao diện người dùng thông minh, cho nên hầu hết các giao diện người dùng thông minh hiện nay chỉ tập trung vào một phương pháp tương tác nhất định (giọng nói) hoặc chỉ trên một phạm vi ứng dụng đã được xác định rõ ràng
1.1.3 Giao diện người dùng thông minh khác với một hệ thống thông minh
Một sai lầm thường mắc phải đó là sự nhầm lẫn giữa một giao diện người dùng thông minh với một hệ thống thông minh Một hệ thống có những đặc điểm
Trang 20được coi là “thông minh” thì cũng không nhất thiết phải có một giao diện thông minh Nhiều hệ thống thông minh vẫn đi cùng với các giao diện đơn giản không thông minh, và ngược lại, cũng có những hệ thống với một giao diện thông minh nhưng hệ thống bên dưới thì lại không hề có sự thông minh Hình 1.2 cho thấy
sự khác nhau giữa hệ thống thông minh và giao diện thông minh [6]:
Hình 1.2: Một hệ thống thông minh khác với một giao diện thông minh
Vấn đề là ở chỗ, ranh giới giữa hệ thống bên dưới và giao diện của nó trong một hệ thống thường không phân biệt được rõ ràng Thông thường, các công nghệ được sử dụng trong giao diện người dùng thông minh cũng là một phần công nghệ sử dụng cho hệ thống bên dưới, hoặc thậm chí, giao diện người dùng thông minh có thể được xây dựng theo công nghệ của toàn bộ hệ thống Ví
dụ, một hệ thống nhận dạng tiếng nói bản thân nó đã có thể là một hệ thống, nhưng đồng thời nó cũng có thể chỉ là một thành phần trong giao diện thông minh của một hệ thống khác Nếu một giao diện người dùng thông minh bản thân nó đã được coi như là một hệ thống, thì nó có thể được định nghĩa như một
đầu vào (kích chuột, ngôn ngữ tự nhiên)
đầu ra khác (bằng giọng nói)
đầu ra thích nghi trên màn hình (chọn lọc)
Trang 21giao diện thông minh Không có mô hình người dùng, chương trình sẽ không có bất kỳ thông tin nào làm cơ sở để thiết kế nên những nét đặc trưng riêng của giao diện Mô hình người dùng là một sự diễn giải những thông tin về người dùng nhằm mục đích xác định kiểu trợ giúp đối với người dùng
1.2.2 Đa mô hình giao tiếp
Các giao diện thông minh sử dụng nhiều cách giao tiếp khác nhau cho ta một đa mô hình giao tiếp Ví dụ, giao tiếp thông qua ngôn ngữ tự nhiên hoặc sử dụng cách nhấn chuột vào các biểu tượng trên màn hình để ra lệnh, sau đó máy tính sẽ trả lời bằng giọng nói Trong hệ thống sử dụng đa mô hình giao tiếp, người dùng có thể điều khiển và nhận kết quả từ hệ thống một cách trực quan đạt hiệu quả cao bằng cách ra hiệu bằng tay hay dùng xúc giác Sự kết hợp này làm cho hệ thống hoạt động một cách rất có hiệu quả Đa mô hình giao tiếp giúp hệ thống đạt được ít nhất hai mục đích:
• Nó cho phép người dùng sử dụng các thao tác một cách trực tiếp gần gũi với thao tác tự nhiên
• Người dùng không nhất thiết phải ngồi trước máy tính khi làm việc với hệ thống máy tính (ra lệnh bằng giọng nói)
Đa mô hình giao tiếp rất quan trọng trong trường hợp người dùng không thể tập trung vào làm một việc duy nhất, mà cần thực hiện nhiều công việc một lúc Ví dụ, một người dùng đang hướng sự chú ý của mình sang theo dõi một công việc khác trong khi chờ đợi máy tính đưa ra kết quả, nếu hệ thống máy tính chỉ đơn thuần đưa kết quả ra màn hình thì sẽ rất khó theo dõi, vì người dùng không thể biết được lúc nào kết quả sẽ được đưa ra Trong trường hợp này, nếu kết quả được hệ thống máy tính đưa ra dưới dạng lời nói thì sẽ rất có hiệu quả Khi đó, người dùng không cần phải chăm chú nhìn vào màn hình để chờ đợi kết quả mà họ có thể tập trung vào một công việc khác trong khi chờ kết quả mà hệ thống sẽ đưa ra
1.2.3 Khả năng nhận biết kế hoạch
Nhận biết kế hoạch được sử dụng trong giao diện thông minh để suy diễn
ra mục tiêu mà người dùng muốn đạt tới Nó cần phải có một hệ thống tri thức
Trang 22và mô hình người dùng Khả năng nhận biết kế hoạch sẽ giúp cho người dùng phải thao tác ít nhất nhưng vẫn làm cho hệ thống hiểu được họ đang muốn gì Nhận biết kế hoạch cũng có thể được sử dụng trong hệ thống trợ giúp Ví dụ, hệ thống có thể trợ giúp người dùng tự khắc phục sự cố bằng cách đưa ra các hướng dẫn dựa trên cơ sở phân tích quá trình tương tác của người dùng
1.2.4 Khả năng trình diễn động
Người dùng có thể quan tâm đến dữ liệu với nhiều ý nghĩa khác nhau Hệ thống cần phải đưa ra thông tin mà người dùng quan tâm Nó không nên quá nhiều và cũng không thể quá nghèo nàn Thông tin đưa ra phải dễ hiểu và có hiệu quả cao nhất
Ví dụ: Với hệ thống dữ liệu thông minh thăm dò rừng nhiệt đới Một người dùng không thể bao quát được toàn bộ số liệu quan sát bởi nó quá nhiều
Dữ liệu thăm dò được sẽ được gửi tới hệ thống máy tính và được chia thành các chuyên ngành Nhà côn trùng học sẽ nhận dữ về sâu bọ rừng nhiệt đới, nhà thực vật học sẽ nhận dữ liệu về cây cối Thậm chí có thể chia thành các lĩnh vực nhỏ hơn như: chuyên ngành nghiên cứu về hành vi cộng đồng của loài kiến hay vòng đời của loài bướm Mỗi nhà khoa học nghiên cứu riêng một lĩnh vực riêng nhưng lại có sự liên quan với nhau Ví dụ việc thụ phấn do côn trùng lại liên quan đến
sự phát triển của một loại cây nào đó Trong hệ thống này, nhà côn trùng học lại
có thể tham khảo số liệu về thực vật học của rừng nhiệt đới Sự giao nhau giữa các lĩnh vực khoa học đòi hỏi thông tin đưa ra phải thông minh, bao hàm được nhiều dữ liệu cần thiết nhất cho người dùng Khả năng trình diễn động sẽ đưa ra những dữ liệu cần thiết nhất đối với từng người dùng
1.2.5 Ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên là một trong những kỹ thuật tốt nhất để làm cho một
hệ thống trở nên trực quan hơn Thay cho việc phải nhớ các lệnh người dùng chỉ cần thể hiện những gì mình muốn bằng lời nói
1.2.6 Khả năng trợ giúp thông minh
Trợ giúp thông minh mang lại nhiều thông tin cần thiết hơn cho người dùng Ví dụ, người làm vườn muốn biết tại sao dưa năm nay trồng năng suất rất
Trang 23kém Hệ thống lưu trữ cho thấy lượng mưa đầu năm nay rất ít và đưa ra gợi ý cho người làm vườn biết đó là nguyên nhân gây ra năng suất dưa kém Trợ giúp thông minh có thể được sử dụng khi người dùng gọi chức năng “Trợ giúp” của
hệ thống Hệ thống có thể đoán nhận rằng người dùng đang gặp rắc rối với công việc nào đó, ví như việc in tài liệu Hệ thống trợ giúp có thể gợi ý bằng cách hỏi xem người dùng đã thiết lập máy in chưa, máy in đã được cắm điện chưa, v.v…
1.2.7 Khả năng thích nghi của giao diện
Người dùng có thể mong muốn có một sự ưu tiên nào đó trong giao diện của mình Đồng thời, hệ thống có thể làm cho bản thân nó thích nghi tốt hơn với người dùng thông qua những mong muốn của người dùng Ví dụ, khi người dùng
di chuột đến gần một nút nhấn nào đó thì hệ thống có thể làm cho nút nhấn đó to
ra Khả năng đáp ứng của giao diện cũng thể hiện ở chỗ tuỳ thuộc vào sự phân tích mô hình người dùng mà đưa ra giao diện khác nhau Ví dụ, có người cảm thấy rất tiện lợi với giao diện kiểu menu trong khi người khác lại thích tính linh hoạt của giao diện kiểu dòng lệnh Tùy thuộc vào mô hình người dùng, hệ thống
sẽ đưa ra giao diện thích ứng nhất với người dùng
1.3 Thiết kế giao diện người dùng
1.3.1 Quy trình thiết kế chung
Một giao diện được thiết kế kém thì điều duy nhất mà nó có thể làm được chỉ là gây ra sự khó chịu cho người sử dụng nó, thậm chí còn có khả năng xảy ra rủi ro khi mà giao diện rối rắm khiến người dùng hiểu nhầm Ví dụ, một người điều hành lò phản ứng hạt nhân sẽ bị lúng túng khi mà máy tính của anh ta lại đưa ra những thông báo lỗi khác lạ về việc nhiệt độ của lò phản ứng lên cao Những giao diện người dùng thông minh cũng cần phải được thiết kế một cách cẩn thận như bất kỳ một sản phẩm nào khác Tuy nhiên, đối với các lĩnh vực nghiên cứu mới, một sai lầm thường gặp là mọi người hay bỏ qua các phương pháp thiết kế cũ, mặc dù chúng đã được chứng minh là đúng đắn, và trong trường hợp thiết kế giao diện người dùng thông minh thì điều này cũng không phải là ngoại lệ Ví dụ, một nguyên tắc trong thiết kế đó là, các giao diện thông minh phải được tích hợp với quá trình thiết kế ngay từ khi bắt đầu, tuy nhiên
Trang 24trong thực tế thì nhiều khi nguyên tắc này lại không được tuân thủ một cách đúng mức Khi thiết kế một giao diện người dùng thông minh, người ta thường
có xu hướng chỉ quan tâm đến “sự thân thiện” của giao diện mà quên đi các yếu
tố khác Sự mong muốn một giao diện người dùng phải thông minh như thế nào cần được bày tỏ rõ ràng ngay từ khi phân tích các vấn đề Trước hết, cần xem xét một hệ thống có cần một giao diện người dùng thông minh hay không Nhìn chung, các giao diện người dùng thông minh thường mang tính tương đối nhiều hơn so với các giao diện có dạng tương tác trực tiếp theo kiểu truyền thống, các giao diện người dùng nếu muốn được coi là thông minh, phải cung cấp được một
số điểm giá trị gia tăng Một khi người dùng đã thỏa mãn với những yêu cầu của
họ từ một giao diện tương tác trực tiếp, thì tại sao chúng ta lại phải mất công và
bỏ thêm chi phí để tạo ra một giao diện người dùng thông minh ? Quyết định cuối cùng nằm ở chỗ, liệu chúng ta có thể tạo ra một cơ chế thích nghi trong giao diện, mà trong đó cân bằng được giữa chi phí triển khai với mức độ cải thiện khả năng tương tác của người dùng Nếu các chức năng thích nghi được triển khai, (nếu tất cả đều tốt) nó sẽ giúp người dùng giảm bớt quá trình phải học thêm các chức năng mới trên giao diện của máy tính mà họ đang giao tiếp Nhưng mặt khác, một giao diện người dùng thông minh cũng sẽ yêu cầu thêm thời gian và tài nguyên của máy tính để triển khai và duy trì Một phương pháp thiết kế có thể
áp dụng chung cho các giao diện người dùng thông minh (và trong hầu hết các lĩnh vực nghiên cứu khác) là việc lặp đi lặp lại quá trình chỉnh sửa Nó bao gồm các bước sau [6]:
1 Phân tích người sử dụng, ứng dụng và môi trường
2 Phát triển và khai thác các kỹ thuật trên giao diện hay là các metaphor
3 Đánh giá các hệ thống đã được phát triển
4 Thực hiện các chỉnh sửa dựa trên cơ sở các kết quả định giá và quay trở lại bước 2
Mỗi lần quá trình này được lặp lại sẽ cho ta một kỹ thuật giao diện hay một metaphor mới thích hợp hơn, sau đó chuyển sang bước thứ năm trong quá trình thiết kế, đó là:
Trang 255 Cập nhật các công cụ xây dựng giao diện để tích hợp các kỹ thuật hay metaphor mới
Trong phần tiếp theo đây, chúng ta sẽ phân tích một cách kỹ hơn các bước trong quy trình thiết kế
1.3.2 Phân tích
Bước phân tích là bước quan trọng nhất trong bất kỳ quy trình thiết kế nào, và nó càng quan trọng hơn trong thiết kế giao diện người dùng thông minh Trong quá trình thiết kế một giao diện bình thường không có tính thông minh, chúng ta cần phải phân tích ai là “người sử dụng trung bình” (mức độ yêu cầu của đa số người dùng đối với giao diện); những nhiệm vụ nào mà giao diện cần phải thực hiện, và chúng sẽ được thực hiện trên hệ thống nào Đối với một giao diện người dùng thông minh thì thường không có “người sử dụng trung bình” Trong trường hợp lý tưởng thì một giao diện người dùng thông minh phải có khả năng thích nghi với bất kỳ người sử dụng nào, ở trong bất cứ môi trường nào Vì vậy, các kỹ thuật thích nghi khi sử dụng cần phải được thiết kế một cách khái quát nhất, sao cho chúng có thể hỗ trợ tất cả các kiểu người sử dụng Trong thực
tế, rất khó để có thể đạt được điều này, do đó chúng ta có thể thực hiện đơn giản hơn bằng cách chỉ tập trung vào một số kiểu người dùng nhất định David Benyon [6] đã xác định 5 hoạt động phân tích có liên quan đến nhau khi thiết kế các hệ thống thích nghi:
1 Phân tích chức năng: Các chức năng chính của hệ thống là gì ?
2 Phân tích dữ liệu: Cấu trúc và ý nghĩa của dữ liệu trong ứng dụng là gì ?
3 Phân tích nhiệm vụ: Người sử dụng cần phải có những khả năng nhận
biết gì, ví dụ như, giả định mô hình tri thức, các chiến lược tìm kiếm, mức
độ nhận biết cần phải đáp ứng v.v… ? Phân tích này yêu cầu một vài thiết
kế phải được hoàn thành trước khi có thể thực hiện nó
4 Phân tích người sử dụng: Người sử dụng thuộc kiểu người nào và họ có
khả năng gì, về mặt tri thức và kinh nghiệm ?
5 Phân tích môi trường: Hệ thống sẽ hoạt động trong môi trường nào ?
Kết quả của quá trình phân tích sẽ là một bản đặc tả các mục tiêu của
Trang 26người dùng và những thông tin cần thiết, cũng như các chức năng và thông tin
mà hệ thống yêu cầu Một vấn đề thường gặp phải trong quá trình thiết kế giao diện người dùng thông minh đó là, “sự thay đổi trong cách tương tác của người dùng với giao diện” Trên thực tế, rất khó để có thể phân tích người dùng sẽ tương tác với giao diện như thế nào Các nghiên cứu về Wizard of Oz được thực hiện để khắc phục vấn đề này Trong hướng nghiên cứu này, dữ liệu sẽ được thu thập từ một người dùng, người mà chúng ta sẽ làm cho anh ta cảm thấy rằng, anh
ta đang làm việc trên một hệ thống có đầy đủ các chức năng và được tự động hóa trong khi trên thực tế, hệ thống này lại đang được kiểm soát bởi một người khác
1.3.3 Phát triển và triển khai
Quá trình phát triển các kỹ thuật tương tác và metaphor mới chiếm phần lớn trong quá trình xây dựng thiết kế Cách tốt nhất mà nhiều người vẫn làm là tìm kiếm và thử nghiệm những khái niệm và ý tưởng mới Tất nhiên, có nhiều nguyên tắc chung để định hướng cho việc thiết kế giao diện mà chúng ta luôn phải ghi nhớ Nhưng vấn đề lại nằm ở chỗ, hầu hết các nguyên tắc mang tính định hướng này được phát triển cho các giao diện tương tác trực tiếp và rất khó
để có thể ứng dụng cho giao diện người dùng thông minh Thậm chí, một số nguyên tắc định hướng cho giao diện tương tác trực tiếp, như sự nhất quán và kiểm soát người dùng còn bị giao diện người dùng thông minh vi phạm Đây cũng là lý do tại sao, mà nhiều nhà thiết kế giao diện tương tác trực tiếp đã kịch liệt phản đối một số khái niệm của giao diện người dùng thông minh Nhưng mặt khác, một số nguyên tắc định hướng khi áp dụng cho giao diện người dùng thông minh lại tốt hơn là cho giao diện tương tác trực tiếp Ví dụ như, việc sử dụng ngôn ngữ tự nhiên, giao diện người dùng thông minh có thể “nói ngôn ngữ của người dùng” tốt hơn là các hệ thống giao diện tương tác trực tiếp Cũng như vậy, nhiều giao diện người dùng thông minh đã cố gắng hạn chế bớt lượng thông tin
mà người dùng cần phải ghi nhớ khi sử dụng chương trình, bằng cách tự nó sẽ thực hiện nhiều nhiệm vụ hơn Kết quả của quá trình phát triển và triển khai sẽ là một giao diện người dùng có khả năng “look-and-feel” (chỉ cần nhìn và cảm nhận), đây mới chỉ là thiết kế ở mức ban đầu, là thiết kế mà nhà thiết kế cho rằng
Trang 27nó sẽ phù hợp với người sử dụng và đáp ứng được các yêu cầu của giai đoạn phân tích
1.3.4 Đánh giá
Trong giai đoạn đánh giá của quá trình thiết kế, chúng ta quay trở lại với những câu hỏi đặt ra trong bước phân tích Những yêu cầu được rút ra từ bước phân tích phải phù hợp với yêu cầu của người dùng và các tác động đến hệ thống phải được nghiên cứu lại một cách tỉ mỉ Để có thể xác định được các ảnh hưởng này, cần phải xây dựng đươc các phép đo lường thích hợp Các phép đo lường này có thể bao gồm để đo lường các lỗi, thời gian hoàn thành nhiệm vụ, quan điểm của người dùng về giao diện, v.v… Một điều rất quan trọng nhưng lại là một tiêu chuẩn mang tính chủ quan đó là mức độ hài lòng của người dùng đối với giao diện Bởi vì, khi người dùngphải làm việc với giao diện, anh ta sẽ có những nhận xét nhất định về giao diện đó, nhận xét nó có được thiết kế tốt không
và anh ta có hài lòng không khi làm việc với nó
1.3.5 Sự điều chỉnh và tích hợp với công cụ
Dựa trên những vấn đề được nêu ra trong bước đánh giá, một số cải tiến trong thiết kế sẽ được thực hiện đối với mẫu thiết kế hiện tại Sau đó, một chu kỳ mới của quá trình thiết kế, thực thi (phát triển), và đánh giá lại được bắt đầu Quá trình này sẽ tiếp tục lặp cho đến khi mà kết quả của nó làm mọi người hài lòng Nếu thiết kế được chứng minh thành công, kỹ thuật giao diện cuối cùng này của metaphor có thể được tích hợp với các công cụ thiết kế giao diện sẵn có
1.3.6 Một số phương pháp thiết kế khác
Quy trình thiết kế chung được mô tả trong phần trước thường được sử dụng trong thiết kế các phần mềm thương mại Tuy nhiên, nhiều giao diện người dùng thông minh vẫn còn trong giai đoạn nghiên cứu và có thể không đi theo các bước thiết kế này Đôi khi, các nhà nghiên cứu/nhà thiết kế tạo ra một giao diện mới chỉ là để thử nghiệm một công nghệ mới, và thường bỏ qua (người sử dụng) khâu phân tích và đánh giá Một lý do nữa để các nhà nghiên cứu không đi theo một quy trình thiết kế lặp đi lặp lại, đó là thiếu các kỹ thuật cần thiết khi muốn
đo lường sự tiện dụng, công cụ thiết kế và một số phương pháp thiết kế chuyên
Trang 28biệt khác có khả năng áp dụng cho giao diện người dùng thông minh
1.3.6.1 Thiết kế sử dụng các bài tập tình huống
Một phương pháp bổ trợ có thể được sử dụng trong giai đoạn đầu của quá trình thiết kế đó là sử dụng các bài tập tính huống Các bài tập tình huống thường
là “không chính quy, các mô tả mang tính tường thuật lại các hoạt động của người dùng khi họ đang thực hiện một công việc nhất định” [6] Chúng được mô
tả theo quan điểm của người dùng về một công nghệ mới hay công cụ mới, nói một cách khác, đó là sự hình dung về cách mà họ sẽ sử dụng giao diện đó trong tương lai Những người dùng tiềm năng có thể thực hiện kiểm tra hoặc sẽ đóng vai trò là những người dùng trong các tình huống và sau đó cung cấp các thông tin phản hồi về nó Các bài tập tình huống là một phương thức tương đối dễ dàng giúp phát hiện sớm các sai lầm trong quá trình thiết kế Bản thân người dùng tự mình cũng có thể đưa ra các ý tưởng hay những sự cải tiến mới đối với thiết kế Các tình huống ở mức cao được sử dụng để kiểm tra một công nghệ mới, còn các tình huống ở mức thấp tập trung vào một bộ phận nhất định nào đó của thiết
kế mà sau đó nó có thể được sử dụng trong quá trình thiết kế Sử dụng các bài tập tình huống trong quá trình thiết kế yêu cầu 4 bước sau đây [6]:
1 Xây dựng từ những yêu cầu ban đầu một mô hình khái niệm của công nghệ mới
2 Tạo ra một hay nhiều tình huống với các nhân vật và các trạng thái xác định
3 Chấp nhận sự kiểm tra của những người dùng tiềm năng hay những người
có tính quyết định với các tình huống và phân tích các phản ứng của họ Nghiên cứu tỉ mỉ cách thức mà họ suy nghĩ và thực hiện phân tích các yêu cầu
4 Phản hồi các kết quả tới mô hình khái niệm
Xét đoán cách suy nghĩ của người dùng là một trong những phần khó khăn nhất trong lược đồ này Nó yêu cầu người dùng phải giải thích công nghệ mới này bằng ngôn ngữ của chính họ, theo cách hiểu của họ Tuy nhiên, những giải thích này sẽ được biên dịch lại (giải thích lại) bởi rất nhiều người để tránh những hiểu
Trang 29lầm
1.3.6.2 Một số nguyên tắc định hướng trong thiết kế
Nhiều nguyên tắc nhằm định hướng thiết kế cho giao diện người dùng đã được phát triển, nhưng chỉ rất ít trong số đó tập trung vào giao diện thông minh Nhiều nhà nghiên cứu đã bắt đầu rút ra một số nguyên tắc định hướng thiết kế nhất định cho các giao diện người dùng thông minh Chúng tôi xin liệt kê một số
đề xuất về định hướng thiết kế cho giao diện người dùng thông minh được giới thiệu trong các tác phẩm của Benyon năm 1993, của Lieberman năm 1997, và của Birnbaum năm 1997 [6]:
• Một giao diện người dùng thích nghi phải được phát triển một cách song song với ứng dụng Đây là điều cần thiết bởi vì các nhà thiết kế cần phải luôn tập trung vào các thành phần của hệ thống mà ở chúng cần có sự thích nghi
• Đừng gây thêm những nhiễu loạn đến quá trình tương tác của người dùng Người dùng thường sẽ không để ý đến các thao tác đã được thực hiện trước đó của giao diện người dùng thông minh Đối với một giao diện thông minh, trong một số trường hợp, nên đưa ra các đề xuất hay khuyến nghị thay vì tự hành động
• Hoạt động trong thời gian thực Một số tính năng có ích của một giao diện người dùng thông minh xuất phát từ việc tự thực hiện một số công việc trong khi người sử dụng đang bận rộn làm việc với hệ thống
• Tận dụng tối đa tài nguyên khi người dùng đang suy nghĩ Khi mà người dùng đang suy nghĩ xem nên tiếp tục nhập dữ liệu gì vào hệ thống, giao diện người dùng thông minh có thể tận dụng thời gian nhàn rỗi này để xử
lý một số việc, nó sẽ không làm chậm đi quá trình tương tác của người dùng với hệ thống
• Theo dõi xem người dùng đang làm gì Tận dụng các thông tin “miễn phí”
có được từ chính những hành động của người dùng
• Cho phép người dùng được chọn kiểu tương tác mà anh ta muốn Những người dùng khác nhau sẽ thích các kiểu giao diện khác nhau và đôi khi,
Trang 30một số kỹ thuật trong giao diện thông minh lại có thể làm rối trí hay gây
ra sự khó hiểu cho người dùng
1.3.6.3 Kiến trúc chung
Một sự trợ giúp đắc lực cho quá trình thiết kế chính là việc sử dụng một kiến trúc chung Đã có nhiều nỗ lực để tìm ra một kiến trúc tốt cho thiết kế giao diện người dùng thông minh Ví dụ, Benyon [6] đã mô tả một kiến trúc tổng thể tập trung vào mô hình người dùng còn Mark Maybury và Wolgang Wahlster [6]
đã đưa ra một kiến trúc giải quyết được sự đa dạng của đầu vào Hình ảnh sau đây sẽ đưa ra suy nghĩ của chúng tôi về một kiến trúc chung của giao diện người dùng thông minh:
Hình 1.3: Kiến trúc chung của giao diện người dùng thông minh
Đầu vào cho một giao diện thông minh có thể là bàn phím, chuột, micro, máy quay, hay bất kỳ một thiết bị đầu vào nào có thể ghi lại và sau đó được xử
lý Việc xử lý đầu vào bao gồm gán nhãn cho các sự kiện và các đầu vào đặc trưng được quan tâm Sau khi mỗi kiểu đầu vào đã được phân tích, một số kiểu
Biểu diễn tri thức
Quản lý tương tác Sinh đầu ra
Thích nghi Đánh giá
đồ họa trên màn hình
thông tin yêu cầu / trao đổi dữ liệu
Trang 31đầu vào nhất định sẽ được ghép lại với nhau và được đánh giá Trong một số trường hợp, nhiều người mong muốn có thể hòa trộn các loại đầu vào làm một trước khi đưa vào xử lý, tuy nhiên, điều đó lại phụ thuộc vào ứng dụng và các đặc trưng riêng của đầu vào Mỗi khi chúng ta xác định được một loại đầu vào nào đó chuẩn bị được nhập vào hệ thống, chúng ta có thể bắt đầu chuẩn bị một loạt các hành động cần thiết Trước tiên, chúng ta phải xác định xem cần làm gì đối với tình huống hiện thời Nếu có thông tin sai hoặc nếu người dùng yêu cầu một thông tin nào đó, (ví dụ: đoạn diễn văn được ghi âm có chứa một câu hỏi từ người dùng) thông tin này có thể yêu cầu ứng dụng cung cấp hoặc được lấy từ những nguồn khác ở bên ngoài Thông thường, sẽ có một cơ chế suy diễn để rút
ra các kết luận và cập nhật một số thông tin vào hệ thống như: mô hình người dùng, lịch sử tương tác của họ, và thông tin về phạm vi ứng dụng Khi tất cả các thông tin cần thiết đã sẵn sàng và được cập nhật đầy đủ, hệ thống sẽ phải quyết định lựa chọn một hành động phù hợp nhất với tình huống hiện tại để thực hiện Trong hình vẽ phía trên, chúng ta gọi đó là sự thích nghi, và cũng từ đó, một số dạng thích nghi của giao diện sẽ được lựa chọn Thông thường, quá trình đánh giá và thích nghi xảy ra đồng thời sử dụng cùng một môtơ suy diễn cho cả hai, nhưng sự tách biệt giữa hai quá trình đánh giá và thích nghi lại thường không rõ ràng Tuy nhiên, hành động để lựa chọn vẫn cần phải được sinh ra, quá trình này
sẽ được thực hiện trong thành phần tạo đầu ra Hầu hết các giao diện người dùng thông minh khi tạo ra đều phải bao hàm sự thích nghi, mặc dù vậy, trong giao diện người dùng thông minh, không phải tất cả các thành phần đều phải được mô hình hóa một cách rõ ràng
1.4 Các ngôn ngữ mô tả giao diện
Nhiều biến thể của HTML (Hyper Text Markup Language) đã được giới thiệu để tăng khả năng sử dụng các dịch vụ của Internet trên các thiết bị di động
bị giới hạn về năng lực xử lý như: C-HTML (Compact HTML), WML (Wireless Markup Language), và MML (Mobile Markup Language) C-HTML là một bộ phận của HTML nhưng loại trừ tất cả các thành phần không phù hợp với yêu cầu của thiết bị di động như màn hình nhỏ, bộ nhớ thấp và tốc độ CPU kém Quá
Trang 32trình chuyển mã từ HTML sang C-HTML không đơn giản chỉ là thay thế hay xóa những thành phần không được hỗ trợ, mà còn phải cấu trúc lại tài liệu để không có thông tin nào bị mất WML dựa trên sự kết hợp một phần của HTML 4.0, HDML (Handheld Device Markup Language) và một số loại mở rộng khác Ngoài cấu trúc HTML, WML còn bao gồm một tập các thẻ, tương ứng với các trạng thái trong hội thoại tương tác người dùng MML là một họ các ngôn ngữ được định nghĩa bởi nhà cung cấp J-Phone của Nhật Bản S-MML (Small MML), M-MML (Medium MML), F-MML (Full MML), các ngôn ngữ này được định nghĩa cho các thiết bị nhỏ, chỉ với 4 dòng x 12 ký tự, màn hình có độ phân giải 160 x 100 điểm ảnh, còn các màn hình với độ phân giải lớn được tách riêng HTML và các biến thể của nó cung cấp rất ít các khả năng cho việc định nghĩa giao diện người dùng đồ họa Các ngôn ngữ đã định nghĩa được xây dựng theo kiểu chuyên môn hóa theo đặc điểm của từng thiết bị xác định Hầu hết các ngôn ngữ này chỉ có các thành phần cơ bản và gắn chặt với nền tảng thiết bị Các
mô tả giao diện là một phần hữu ích của giao diện người dùng thích nghi, bởi vì nhiều ngôn ngữ mô tả giao diện phổ biến chẳng hạn như UIML có thể được dịch sang các ngôn ngữ mô tả theo các nền tảng nhất định ví dụ như HTML, WML,
và Java Trong phần này, chúng ta cùng xem xét một số loại ngôn ngữ mô tả giao diện người dùng dựa trên XML, ngôn ngữ đã hỗ trợ cho việc tạo ra các giao diện người dùng thích nghi
1.4.1 UIML
User Interface Markup Language (UIML), ngôn ngữ đánh dấu giao diện người dùng, là một dạng ngôn ngữ dựa trên XML để định nghĩa các giao diện người dùng trong các loại thiết bị độc lập UIML được sử dụng để định nghĩa các thành phần của giao diện như nút bấm (button), trình đơn (menu), danh sách (list) và các loại thành phần giao diện khác Nó cũng định nghĩa cách hiển thị và thiết kế của các thành phần này, cùng các hành động sẽ được thực hiện khi có một sự kiện nhất định xảy ra Các sự kiện có thể xẩy ra khi người dùng tương tác với giao diện Phát triển giao diện người dùng sử dụng UIML bao gồm viết mã UIML, thành phần nằm ở mức thấp trong đặc tả giao diện người dùng Lợi ích
Trang 33khi sử dụng UIML chính là ở việc sử dụng nó để mô tả cách hoạt động của giao diện người dùng trong một loại thiết bị độc lập, có khả năng trao nhiều công cụ mạnh cho giao diện người dùng dưới dạng một bộ công cụ cơ sở, có khả năng
mô tả nội dung, cấu trúc, cách hoạt động và kiểu của các giao diện người dùng riêng biệt
Ngôn ngữ cHTML cung cấp một phiên bản rút gọn của HTML, và các đặc điểm của nó chỉ hỗ trợ một số ít các đặc điểm chung của nhiều loại nền tảng khác nhau Không giống với các ngôn ngữ như cHTML, UIML hỗ trợ tất cả các đặc trưng gắn liền với một nền tảng Sự hỗ trợ này chỉ khả thi thông qua việc định nghĩa các từ vựng Một từ vựng là một tập bao gồm các tên, các thuộc tính
và các hoạt động gắn liền với các thành phần của giao diện người dùng, nó tương
tự như việc một lập trình viên sử dụng các thư viện đã được xây dựng sẵn Các nhà thiết kế giao diện người dùng có thể sử dụng các từ vựng đã được xây dựng sẵn để tạo ra giao diện người dùng thông qua UIML UIML là một ngôn ngữ dùng để mô tả giao diện người dùng cho nhiều loại thiết bị Tuy nhiên, UIML không cung cấp bất kỳ công cụ nào để viết một mô tả giao diện dùng sử dụng cho nhiều nền tảng Một nhà thiết kế giao diện người dùng phải tạo ra các giao diện người dùng riêng biệt cho từng nền tảng khác nhau sử dụng tập từ vựng của riêng nó
UIML khi được kết hợp với mô hình nhiệm vụ sẽ cung cấp một bộ công
cụ cho việc phát triển giao diện người dùng trên nhiều nền tảng Mô hình nhiệm
vụ cho phép nhà thiết kế giao diện người dùng có khả năng đặc tả giao diện người dùng ở một mức khái quát cao hơn những gì được hỗ trợ bởi UIML Mô hình nhiệm vụ dựa trên các ký hiệu của Concurrent Task Tree (CTT), cây công việc Mô hình nhiệm vụ được các nhà phát triển ánh xạ sang UIML ở mức khái quát Một đặc tả UIML mức khái quát có thể được viết theo cách để có thể ánh
xạ được sang nhiều nền tảng, mà các nền tảng này chỉ phụ thuộc vào một họ mô hình đơn nhất Hai điều kiện để định nghĩa một họ mô hình là cách hiển thị của các thành phần trong giao diện người dùng, và khả năng chuyển hướng giữa các thành phần được cung cấp bởi các nền tảng Một bộ từ vựng chung sẽ được sử
Trang 34dụng trong họ mô hình này Bộ từ vựng chung là một bộ từ vựng được định nghĩa cho tất cả các nền tảng trong một họ mô hình Một bộ từ vựng chung của các thành phần giao diện người dùng kết hợp với UIML, có thể dùng để mô tả bất kỳ giao diện người dùng nào trên bất kỳ nền tảng nào trong họ của nó Hình 1.4 [14] mô tả bộ công cụ cho việc xây dựng giao diện người dùng trên nhiều nền tảng sử dụng UIML và mô hình nhiệm vụ
Hình 1.4: Bộ công cụ xây dựng giao diện người dùng trên nhiều nền tảng sử
dụng UIML
Transformation-based Interaction Development Environment (TIDE), sử dụng 3 mức khái quát: đặc tả UIML sử dụng bộ từ vựng chung, một nền tảng trên đó xây dựng đặc tả UIML, và cuối cùng là giao diện người dùng Nó cho phép nhà thiết kế kiểm soát được các ánh xạ giữa các mức khái quát này Mô hình nhiệm vụ là một mức khái quát khác đang được tích hợp vào TIDE Trong khi đó UIML lại bắt đầu từ con số 0 khi đặc tả giao diện người dùng và ngày nay
nó đã được mở rộng sang hỗ trợ mô hình nhiệm vụ Mục tiêu đằng sau việc sử dụng mô hình nhiệm vụ là để tạo ra các giao diện người dùng trên nhiều nền tảng
Nền tảng 1 - đặc tả giao diện người dùng
Nền tảng 2 - đặc tả giao diện người dùng
Nền tảng (n - 1) - đặc tả giao diện người dùng
Nền tảng n - đặc tả giao diện người dùng
Họ mô hình 1
Họ mô hình n
tả giao diện được tạo ra bằng cách sử dụng các thành phần giao diện người dùng khái quát và sắp xếp chúng theo kiểu phân cấp
Bước 3: Phần này là đặc tả giao diện cho 1 nền tảng xác định sử dụng các thành phần
và bố cục gắn liền với nền tảng, được biên dịch sử dụng các bộ dịch ngôn ngữ xác định
.
Trang 351.4.2 XIML
eXtensible Interface Markup Language (XIML), Ngôn ngữ đánh dấu giao diện mở rộng, được duy trì bởi diễn đàn XIML - một tập đoàn độc lập, là một ngôn ngữ dựa trên XML dành cho phát triển đa giao diện người dùng bằng cách chuyển đổi và chỉnh sửa nhiệm vụ người dùng cùng mô hình giao diện người dùng Nó cung cấp một bộ công cụ để mô tả cho lĩnh vực công nghiệp và các chức năng hỗ trợ chung cho chu kỳ của một giao diện bao gồm các bước “thiết
kế, phát triển, hoạt động, quản lý, tổ chức và đánh giá”
XIML là một ngôn ngữ định nghĩa giao diện rất khái quát, nó chia định nghĩa của giao diện thành “các thành phần” Ví dụ về một số thành phần của nó như nhiệm vụ (quy trình kinh doanh), phạm vi (định nghĩa sự phân cấp của các thành phần), người dùng (định nghĩa sự phân cấp của người sử dụng), trình diễn,
và hội thoại (định nghĩa các hành động trong giao diện) XIML cũng hỗ trợ mô hình nhiệm vụ, có nghĩa là nó có khả năng thể hiện một cách khái quát các khái niệm như nhiệm vụ người dùng, phạm vi đối tượng, và tiểu sử người dùng Các thành phần này được ánh xạ sang “các phần tử”, là những đặc tả rất cụ thể Bộ công cụ đặc tả của XIML cung cấp các hỗ trợ cho mô hình quan hệ giữa các thành phần
XIML cũng có khả năng đặc tả bất kỳ kiểu nào của mô hình, bất kỳ kiểu nào của các phần tử của mô hình, và mối quan hệ giữa chúng Mặc dù một số các
mô hình và quan hệ đã được xây dựng sẵn, nhưng chúng có thể mở rộng tập hợp này cho phù hợp với những hoàn cảnh xác định khi sử dụng XIML đã được sử dụng trong MANNA cho phần nền tảng thích nghi, và trong Envir3D để chuyển đổi giao diện người dùng đồ họa thành giao diện ảo
1.4.3 AUIML
Abstract User Interface Markup Language (AUIML), trước đây còn gọi là Druid, là một ngôn ngữ định nghĩa giao diện dựa trên các ý tưởng, chủ yếu được phát triển ở IBM Nó cho phép các nhà thiết kế giao diện người dùng có thể thiết
kế ý tưởng của giao diện mà không cần ràng buộc với các nhiệm vụ cụ thể hay một thiết bị xác định nào AUIML bao gồm hai tập các thành phần chính - một
Trang 36định nghĩa mô hình dữ liệu, và một định nghĩa mô hình hiển thị
Mỗi khi ứng dụng được thực thi, bộ công cụ AUIML có thể được triển khai như một ứng dụng Java Swing, hay như một HTML servlet mà không cần thay đổi mã nguồn của ứng dụng Phiên bản mới nhất của bộ công cụ AUIML bao gồm cả hai, có thể dùng cho Java Swing và cho HTML Phần dành cho Java Swing cung cấp nhiều chức năng cho khách hàng trên thanh công cụ
1.4.4 USIXML
USer Interface eXtensible Markup Language (USIXML), ngôn ngữ đánh dấu mở rộng giao diện người dùng, với mục tiêu là mô tả giao diện người dùng với nhiều mức độ chi tiết và khái quát khác nhau, phụ thuộc vào hoàn cảnh sử dụng chúng USIXML hỗ trợ một họ các giao diện, không bị giới hạn và hoàn toàn độc lập với thiết bị, độc lập với nền tảng, độc lập với mô hình và độc lập với hoàn cảnh Giao diện người dùng trong các hoàn cảnh nhậy cảm có thể được đặc tả và sinh ra từ các đặc tả của USIML USIML hỗ trợ nhiều mô hình cho thiết kế giao diện người dùng như nhiệm vụ, phạm vi ứng dụng, hiển thị, hội thoại, và hoàn cảnh sử dụng Hoàn cảnh sử dụng cũng được tách khỏi người dùng, nền tảng và môi trường Các mô hình này được cấu trúc theo 4 tầng của bộ khung CAMELEON: nhiệm vụ và các khái niệm, khái quát giao diện người dùng, giao diện người dùng cụ thể và giao diện người dùng cuối cùng
1.4.5 AUIT
Adaptive User Interface Technology (AUIT), công nghệ giao diện người dùng thích nghi, là kết quả từ những nỗ lực để xây dựng một hướng tiếp cận mới cho việc phát triển khả năng thích nghi, và các hệ thống thông tin giao diện người dùng dựa trên web Nó cung cấp cho các nhà phát triển một bộ các thẻ, hoàn toàn độc lập với thiết bị được sử dụng để đặc tả các phần tử trên màn hình của máy khách, các nhóm phần tử, người sử dụng và các ký hiệu về nhiệm vụ người dùng Nó là phương thức để ngôn ngữ đánh dấu giao diện người dùng có thể giao diện với các ngôn ngữ lập trình đương thời AUIT góp phần bổ sung vào các công nghệ đặc tả hiện nay dành cho máy chủ như JSP hay ASP chứ không phải là thay thế chúng Vì thế, các script của AUIT có thể nhúng một cách bình
Trang 37thường vào các trang JSP để cung cấp các giao diện thích nghi duy nhất cho hệ thống web
Vào lúc thực thi, AUIT sử dụng một đặc tả giao diện duy nhất để tự động cung cấp một giao diện cho nhiều thiết bị web như màn hình của HTML và hệ thống dựa trên WML cho di động, trong khi đó, nó lại che giấu các phần tử giao diện phụ thuộc vào hoàn cảnh hiện thời Chúng đã được phát triển theo hướng tiếp cận với sự động hóa khi phân chia các màn hình lớn thành các phần riêng biệt cho nhiều thiết bị hiển thị khác nhau
AUIT cho phép các nhà phát triển đặc tả các màn hình riêng biệt của người dùng, nhiệm vụ và thiết bị hiển thị Để hỗ trợ việc thực thi AUIT, một tập hợp các thẻ phần tử màn hình của từng thiết bị độc lập đã được phát triển để có thể sử dụng trong JSP Các mô tả màn hình của AUIT thường là ở mức thấp hơn các ngôn ngữ đặc tả web ví dụ như WebML
AUIT còn có một lợi thế là khả năng sẵn sàng cung cấp cao do có thể triển khai ngay cho các máy chủ hiện nay Nó cung cấp sự thích nghi cho người dùng, nhiệm vụ của người dùng và thiết bị Nó không cung cấp sự thích nghi cho các phần tử phụ thuộc hoàn cảnh khác như điều kiện môi trường và những thay đổi bất ngờ trong nhiệm vụ người dùng Tuy nhiên, AUIT cũng có mức giá khá cao, bởi vì sử dụng AUIT cho phát triển giao diện người dùng có nghĩa là cũng dùng đến các công nghệ phát triển trên máy chủ như JSP hay ASP
1.4.6 AAIML
Alternate Abstract Interface Markup Language (AAIML), là một ngôn ngữ dựa trên XML dùng cho việc truyền đạt các định nghĩa của giao diện ở mức khái quát của người dùng (cho dịch vụ hay thiết bị) đến một thiết bị cá nhân của người dùng, cho phép nó hoạt động như một thiết bị điều khiển từ xa thông thường Mục tiêu của AAIML là để tăng cường khả năng truy cập qua các thiết
bị và dịch vụ theo một cách tương tự như một chiếc điều khiển từ xa thông thường Thiết bị điều khiển này sẽ cho phép người dùng tương tác với dịch vụ hay thiết bị mà mình mong muốn bằng một loại công cụ mà họ đã quen dùng Điều này đặc biệt hữu ích khi làm các thiết bị truy cập cho những người tàn tật
Trang 38Ngôn ngữ định nghĩa một tập “những người tương tác ảo” cho quá trình tương tác Chúng có ngữ nghĩa và chức năng riêng nhưng không được nhận thức một cách cụ thể Chúng được ánh xạ tới những người tương tác cụ thể giống như UIML Ngôn ngữ được xây dựng trên mô hình sự kiện, xây dựng trên khả năng
sự kiện như trong Upnp và Jini/Java
1.4.7 XUL
XUL được duy trì bởi một tập đoàn, chúng bắt đầu được xây dựng từ dự
án Mozilla, với mục đích ban đầu là để sử dụng trong trình duyệt Mozilla Mục tiêu của nó là để hỗ trợ cho nhiều thiết bị khác nhau trên nhiều nền tảng máy tính Nó đã nhận được nhiều sự quan tâm của thế giới khi giải quyết vấn đề hỗ trợ cho nhiều nền tảng
Tuy nhiên, XUL cũng gặp phải những trở ngại Nếu so với UIML và XIML thì XUL bị giới hạn trong phạm vi ứng dụng Nó chỉ có thể sử dụng với trình duyệt Mozilla và Netscape 6, và chỉ sử dụng để định nghĩa các thành phần giao diện người dùng trong trang web Một nhà phát triển muốn sử dụng XUL phải kết hợp XUL với JavaScript, XBL, CSS, và DTD Nó yêu cầu người phát triển phải biết và hiểu tất cả các công nghệ này XUL không phân biệt được các metaphor từ đặc tả của XUL Ví dụ, XUL có các phần tử như <hbox> (horizontally oriented box), <button>, và <menupopup>, là những phần tử gắn liền với metaphor giao diện người dùng đồ họa truyền thống Ánh xạ những thành phần kiểu như widgets sang một dạng khác để thay thế thiết bị không truyền thống như trình duyệt bằng giọng nói, không chỉ rất khó thực hiện mà nó còn yêu cầu phải viết lại giao diện cho các thiết bị thay thế
1.4.8 GITK / GIML
Generalized Interface Toolkit (GITK), là một bộ công cụ dạng mã nguồn
mở GITK sử dụng Generalized Interface Markup Language (GIML) để đặc tả giao diện dưới dạng các mẫu như “action”, “data-entry/value-choice/single/limited” thay thế cho các phần tử cụ thể như “button”, “scrollbar” Đặc trưng này phân biệt GIML với nhiều ngôn ngữ đặc tả giao diện người dùng dựa trên XML Lợi thế của nó là giao diện có thể được hiển thị trên bất kỳ thiết
Trang 39bị nào mà không cần đưa ra giả định liệu các thành phần giao diện đó có trong
nó hay không Nó là cơ sở cho đa mô hình tương tác
1.4.9 XAML
XAML là phương pháp chính khi xây dựng mô hình lập trình ‘longhorn’ của Microsoft XAML là một ngôn ngữ có tính truyền thống cho phép các nhà phát triển đặc tả một cây phân cấp các đối tượng với tập các thuộc tính và logic
Nó được dùng cho các giao diện trực quan để định nghĩa cách trình bày văn bản, hình ảnh và các khuôn hình Một sự kiện có thể xảy ra khi người sử dụng tương tác và các thành phần logic cũng được nhúng vào trong tệp XAML
1.4.10 Một số loại ngôn ngữ mô tả giao diện khác
XForms bắt nguồn từ W3C được sử dụng để tạo ra các giao diện người dùng trên các nền tảng giao nhau Nó là một bộ công cụ giao diện người dùng đồ họa cho hệ thống XWindows Nó dựa trên Xlib và các đối tượng đặc trưng như nút bấm, thanh cuộn, trình đơn, v.v… XForms tách biệt với mục tiêu ngay từ khi biểu diễn khuôn dạng Vì thế, các khuôn dạng được tạo ra sử dụng XForms là phong phú hơn và linh động hơn các khuôn dạng của HTML Chúng cung cấp khả năng truy cập từ mọi nơi và cho phép các khuôn dạng có thể được đưa đến nhiều người sử dụng ở nhiều nơi
XICL: eXtensible User Interface Component Language, là một công cụ phát triển giao diện người dùng dựa trên các trình duyệt Nó cho phép sử dụng các thành phần trên trình duyệt để làm cơ sở phát triển phần mềm giao diện người dùng Giao diện người dùng có thể được phát triển sử dụng các thành phần của HTML và XICL, các phần tử HTML có thể được mở rộng và/hoặc được nhóm lại để sinh ra thành phần mới và các thành phần có tính khái quát cao có thể được sử dụng lại Tài liệu XICL được dịch ra nhờ sử dụng bộ dịch XICL trước khi dịch sang giao diện người dùng Đầu ra của bộ dịch XICL là một tài liệu DHTML (HTML và JavaScript)
useML, VRIXML, IM2L, CXML cũng là một trong số các ngôn ngữ mô
tả giao diện người dùng dựa trên XML
CXML, USIXML được phát triển bởi Quentin Limbourg, Jean
Trang 40Vanderdonckt, và một số người khác nhằm mục đích cung cấp ngôn ngữ đặc tả giao diện người dùng cho các giao diện người dùng sử dụng trong các hoàn cảnh nhậy cảm Chúng đều sử dụng bộ công cụ CAMELEON và các ký hiệu nhiệm
vụ của CTT để hỗ trợ nhiều mức khái quát Ngôn ngữ đặc tả giao diện người dùng này đặt mục tiêu là dành cho các nhà thiết kế giao diện người dùng Nó giữ lại thành phần cốt lõi của giao diện người dùng, độc lập với các đặc điểm vật lý của giao diện người dùng
1.4.11 So sánh các ngôn ngữ mô tả giao diện người dùng
Để giải quyết tình trạng có quá nhiều các ngôn ngữ mô tả giao diện người dùng, đôi khi gây khó khăn cho chúng ta khi phải lựa chọn một ngôn ngữ Trong phần so sánh sẽ được trình bày sau đây, có thể thấy không phải tất cả các ngôn ngữ đặc tả giao diện đều là tiêu chuẩn và ngay cả trong số những ngôn ngữ được coi là chuẩn cũng vậy, mục tiêu của mỗi ngôn ngữ đặc tả đều khác nhau Ví dụ, XICL, một chuẩn W3C, được dành cho trình duyệt phát triển thành phần của giao diện người dùng dựa trên phần mềm Mục tiêu của XForms, một ngôn ngữ khác cũng bắt nguồn từ W3C, lại được dùng để biểu diễn các thành phần giao diện người dùng dựa trên khuôn dạng ở một mức độ khái quát hơn HTML XIML là một trong những ngôn ngữ đặc tả có nhiều triển vọng cho khả năng hoạt động giữa các thành phần Tuy nhiên, nó lại được bảo vệ bản quyền bởi tập đoàn các nhà phát triển XIML và bị hạn chế trong giấy phép XIML Hầu hết các ngôn ngữ đặc tả giao diện người dùng khác đều miễn phí UIML, được phát triển đơn giản chỉ bắt đầu từ một vài mảnh giấy, nhưng nay đã trở thành đặc tả giao diện người dùng cho nhiều nền tảng Nó đã bắt đầu hỗ trợ mô hình nhiệm vụ sử dụng công cụ TIDE UIML không có sự hỗ trợ cho mô hình phụ thuộc hoàn cảnh USIXML, cũng thúc đẩy cho sự phát triển với việc hỗ trợ biểu diễn nhiều
mô hình khác nhau Bảng tổng kết dưới đây [14] sẽ đưa ra những so sánh khi phải lựa chọn các ngôn ngữ đặc tả giao diện người dùng Nó trình bày các mô hình được hỗ trợ bởi mỗi ngôn ngữ đặc tả giao diện người dùng, liệu nó có chuẩn hay không, công cụ hỗ trợ nó cung cấp và khả năng của nó