Bài giảng Tương tác người máy: Chương 7 - Ký pháp đối thoại và thiết kế có nội dung trình bày tổng quan về độc thoại; Ký pháp đồ hoạ; Ký pháp văn bản; Ngữ nghĩa đối thoại;... Mời các bạn cùng tham khảo chi tiết bài giảng tại đây!
Trang 1Chương VII: Ký pháp đối thoại và
thiết kế
Tổng quan
Đối thoại là mức độ ngữ nghĩa của HCI Nó
khá giống với kịch bản của 1 vở diễn, trừ ND
và đôi khi cả MT, có khá nhiều lựa chọn.
• Ký pháp dùng để mô tả đối thoại có thể là:
i) Lưu đồ: dễ dàng lĩnh hội
ii) Văn bản: Dễ hơn cho phân tích hình thức
• Đối thoại liên kết với:
i) Ngữ nghĩa của HT, cái mà nó thực hiện
ii) Biểu diễn của HT: dáng vẻ như thế nào
Trang 37.1 Khái niệm về đối thoại
- Đối thoaị ngược với độc thoại, đó là sự trao
đổi giữa 2 thành phần
- Trong thiết kế tương tác người-máy, đối thoại
có nhiều nghĩa riêng biệt đó là cấu trúc của
trao đổi giữa ND và HT máy tính.
Y /c
T /L
Đối thoại
Trang 4Đối thoại là gì?
3 mức độ của cấu trúc:
1) Mức độ từ vựng: là mức độ thấp nhất Đó là hình
dạng, biểu tượng, phím nhấn
2) Mức độ cú pháp: Thứ tự và cấu trúc của đầu vào, đầu
ra (trong ngôn ngữ tự nhiên đó là ngữ pháp xây dựng
câu).
3) Mức độ ngữ nghĩa: ý nghĩa của trao đổi theo thuật ngữ hiệu quả trên cấu trúc dữ liệu bên trong của MT và hoặc với thế giới bên ngoài
Trong giao tiếp ND (User Interface), thuật ngữ
Trang 5Đối thoại con người có cấu trúc
- Ngược với đàm thoại ND, đối thoại với MT thường có cấu trúc và bị ràng buộc Tuy nhiên cũng có những đàm thoại có cấu trúc và thường diễn ra khi có nhiều bên (con người) tham gia.
- Các thành viên có thể trả lời những câu đã xác định trước Tuy nhiên cũng có thể phụ thuộc các tình huống khác nhau, không lường trước.
- Trong giao tiếp Người - máy, nhiều khi cũng không xác định hết các tình huống và nhiều khi máy đưa ra các thông báo khó lường=>cú pháp liên kết với ngữ ngiã ứng dụng?
Trang 6Ký pháp thiết kế đối thoại
- Một số các kỹ sư MT khá quen thuộc với một số
ký pháp vậy tại sao lại cần đến ký pháp đặc
biệt? Chúng ta đã có các NNLT thì tại sao không dùng chúng?
- NNLT với các cấu trúc không đủ dể mô tả Chúng
ta muốn tách riêng phân tích và tách các phần tử giao tiếp của chương trình khỏi ngữ cảnh tính
toán của nó
Trang 77.2 Ký pháp đồ hoạ
Nội dung
1 Mạng dịch chuyển trạng thái (STN)
2 Mạng dịch chuyên trạng thái phân cấp (HSTN)
3 Đối thoại tương tranh và bùng nổ tổ hợp
4 Lưu đồ luồng (Flow Chart)
5 Lưu đồ JSD (Jackson Structured Design)
Trang 8Mạng dịch chuyển trạng thái
• Mạng dịch chuyển trạng thái đã được sử dụng
từ rất sớm để mô tả đối thoại (1960)
• Dùng 2 đối tượng để mô tả:
- Circle: mô tả tả 1 trạng thái của HT
- Mũi tên: mô tả dịch chuyển trạng thái - hành động hay
sự kiện Trên mũi tên có thể có nhãn.
Trang 9Mạng dịch chuyển trạng thái (tiếp)
Thí dụ mạng STN biểu diễn công cụ vẽ menu
gồm vòng tròn và đường
Trang 10- Trạng thái “Start”, “Finish” là các trạng thái không thật
Nó giúp cho ta dễ theo dõi khi biểu diễn đối thoại phức
Trang 11Mạng dịch chuyển trạng thái phân cấp
• Được sử dụng khi đối thoại khá phức tạp
Người ta chia đối thoại thành các đối thoại nhỏ (sub-dialog)
• Thí dụ như main menu có 3 lựa chọn (3 sub
menu) được biểu diễn bởi 1 đồ thị menu và có text menu => Biểu diễn HT đầy dủ nhờ STN
phân cấp.
Trang 12Thí dụ - STN phân cấp
Trang 13Sử dụng STN phân cấp
- Sử dụng STN có thể là một xuất phát tốt để tạo
ra mẫu thử.
- Trong trường hợp đơn giản nhất có thể dùng
giấy: vẽ bằng tay hay in từ máy tính.
- Có thể duyệt toàn bộ kịch bản với ND hay khách hàng => giải thích nhờ STN
- Có thể dùng máy tính với Hypercard hay
Macromedia Director để vẽ mỗi trạng thái.
Trang 14Đối thoại tương tranh
- STN có thể rất tốt khi biểu diễn đối thoại tuần
tự, chọn hay lặp.
- Tuy nhiên nó sẽ dần kém đi tác dụng nếu phải
biểu diễn các phần tương tranh.
- Xét thí dụ một hội thoại đơn giản kiểu văn bản trong một hệ STVB
Trang 15Đối thoại tương tranh (tiếp)
Trang 16Đối thoại tương tranh (tiếp)
Đồ thị STN đơn
Tổ hợp đậm và nghiêng
Trang 17Đối thoại tương tranh (tiếp)
n toggles => 2n trạng thái
Trang 18Flow charts
- Quen thuộc với Người LT
- Hộp là quá trình hay là một quyết định
- Sự kiện không phải là trạng thái
- Sử dụng nhiều loại hộp khác nhau để biểu
diễn các hoạt động khác nhau và nó quan hệ
kiểu hướng NLT hơn là hướng ND.
Trang 19Flow charts (tiếp)
Trang 20Lưu đồ JSD
- Ra đời sau Flow Diagram
- Được dùng trong nhiều khía cạnh của TA
- Thích hợp với cấu trúc đối thoại hình cây
- Kém diễn tả song sáng sủa hơn Nó gần
giống như HTA Tuy nhiên nó chính xác hơn
Trang bên, JSD diễn tả một HT nhân sự HT cho phép cập nhật thông tin về nhân sự: bổ
sung, hiện, xoá,
Trang 21Lưu đồ JSD (tiếp)
JSD biểu diễn các chức năng của 1 HT nhân sự
Trang 237.3.1 Văn phạm
• Văn phạm hình thức cũng được dùng khá phổ
biến như một ký pháp văn phạm BNF là một
dạng hay dùng như trong mô tả NNLT và trong
mô tả giao tiếp
Trang 247.3.1 Văn phạm (tiếp)
• Đa dạng hơn biểu thức chính qui hay STN
• Không có biểu diễn tương tranh
• Có các công cụ để thực hiện như trên Unix có
công cụ “yacc” hay “lex” cho văn phạm chính
qui
Trang 257.3.2 Luật sản xuất
• Đã xuất hiện trong mô hình CCT hay trong mô tả thành
phần đối thoại của UIMS (chương 8)
• Dạng thể hiện:
If cond then action
Và có thể viết cond -> action hay cond: action
• Các luật được kích hoạt và HT sánh phần cond của luật với các sự kiện khởi tạo bởi ND Khi cond là thoả, luật gọi là “fire” và hành động được thực hiện.
• Hành động có thể là đáp ứng của ND hay sự thay đổi
trạng thái của HT.
Chú ý: Thứ tự xuất hiện của luật là không quan trọng.
Trang 26Thí dụ (tiếp)
Trang 27Thí dụ (tiếp)
• Hệ thống luật có thể là sự kiện hay trạng thái
hay pha trộn Trong thí dụ trên: điều kiện và
hành động chỉ đơn giản là sự kiện Có 3 loại sự kiện:
i) Sự kiện ND (bắt đầu bởi chũ hoa)
ii) Sự kiện trong (bắt đầu bởi chũ thường): dùng bởi
hội thoại để lưu lại vết
iii) Sự kiện đáp ứng của HT (nằm trong cặp <>)
Trang 28Thí dụ (tiếp)
• Thích hợp cho mô tả tương tranh Luật dựa
trên sự kiện
• Không thích hợp cho tuần tự hay trạng thái
• Hệ thống luật hướng trạng thái: Bộ nhớ HT
cũng là 1 tập giá trị tên, tuy nhiên nó không bị lấy khỏi bộ nhớ (ngầm định) khi mà luật sánh
được Nó chỉ bị lấy khỏi bộ nhớ 1 cách tường
minh bởi phần hành động của luật Hệ thống
luật này còn được gọi là Hệ thống luật mệnh đề
do Olsen đề xuất (PPS).
Trang 29Hệ thống luật PPS (tiếp)
• Trong HT này, trạng thái của HT được chia
thành 1 tập hữu hạn các thuộc tính Mỗi thuộc tính có thể nhận 1 tập giá trị Một vài thuộc
tính được thiết lập như là kết quả hành động
ND, 1 số khác có tác động lên sự hiển thị của
Trang 30highlight-Hệ thống luật PPS (tiếp)
ii)Line-state: {menu, start-line, rest-line}
iii)Rubber-band: {rubber band-off, rubber band-on}
iv)Menu: {highlight-off, highlight-line, highlight-circle } v)Draw: {draw-nothing, draw-line}
Thuộc tính thứ nhất được thiết lập tự động khi ND
thựchiện 1 hành động có liên quan Thuộc tính thứ hai được dùng bởi đối thoại để lưu lại vết của các trạng
thái Ba thuộc tính cuối dùng để điều khiển sự đáp ứng của HT.
Trang 31Hệ thống luật PPS (tiếp)
Hệ thống luật PPS cho thí dụ trên có thể viết:
select-line -> mouse-off start line highlight line click-point start line -> mouse-off rest line
rubber band on
click-point rest line -> mouse-off draw line
double-click rest line -> mouse-off menu draw line rubber band off
Trang 32Hệ thống luật PPS (tiếp)
Luật thứ hai của HT luật trên, hành động
“rest-line” thiết lập thuộc tính “line state” và sẽ loại
bỏ giá trị trước là “start line”
Trang 337.3.3 CPS và đại số sự kiện
• Ký pháp STN rất phù hợp với việc điều khiển
tương tranh; trong khi đó luật sản xuất lại ngược lại.
• Việc xử lý đồng thời (tương tranh, tuần tự) đặt
ra trong nhiều bài toán (truyền thông, đk tương tranh).
• Quá trình đại số (Process Algebras) là một lớp
ký pháp hình thức được phát triển cho các quá trình tương tự.
• CSP là một lớp con đựoc phát triển cho đặc tả
đối thoại
Trang 347.3.3 CPS và đại số sự kiện (tiếp)
circle -> Skip
Trang 357.3.3 CPS và đại số sự kiện (tiếp)
Start-line = click? -> first-point -> Skip
Rest-line = ( click? ->next-point -> Rest-line
[] double-click? ->last-point -> Skip
Trang 367.3.3 CPS và đại số sự kiện (tiếp)
• Do-circle là hoàn toàn tuần tự Khi HT thực hiện Do-circle, trước tiên cần ND nhấn phím chuột, tiếp sau là 1 sự kiện trong “set centre“ để xác định vị trí con trỏ Tiếp theo nhận 1 lần nhấn chuột rồi vẽ và kết thúc bởi Skip.
• Do-line cũng là tuần tự Dấu “;” để chỉ quá trình tuần tự, cái xảy ra giữa 2 qua trình Dấu
“->” chỉ dùng sau 1 sự kiện.
• []: chỉ ra sự lựa chọn như dòng 1: ND có thể
Trang 377.3.3 CPS và đại số sự kiện (tiếp)
• Quá trình tương tranh được dùng như 1 cách
thức để tổ chức cấu trúc trong của giao tiếp Thí dụ khi lựa chọn, ND có thể dùng chuột hay dùng phím nóng => mỗi lựa chọn một quá trình.
• Quá trình chuột đơn giản là đợi ND chọn 1
mục trên menu và tiếp sau là 1 sự kiện trong phụ thuộc vào sự lựa chọn.
• Quá trình bàn phím điều khiển bởi phím Alt và
tiếp sau cũng là 1 sự kiện trong
Trang 38=> Đối thoại được miêu tả:
Cộng = add-prompt -> (quit? -> skip
[] zero? -> show-sum -> Cộng
Trang 39Thí dụ: minh hoạ bảng tính cộng (tiếp)
Ngữ nghĩa của miêu tả như sau:
event add promt = prompt: true out: “next number”
ues: input, sum when is number (input)
set sum = sum + input event show-sum =
ues: sum out: sum
Trang 40Thí dụ: minh hoạ cơ sở dữ liệu (tiếp)
ND có thể sử dụng các hành động: “quit”, “set key
value”, hay “ Find key”
=> Đối thoại được miêu tả:
DB = db-prompt -> (quit? -> skip
[] set? -> get-key; get-val []get? -> get-key; print-val) get-key = set-key-prompt -> get-key?
get-val = set-val-prompt -> get-val?
Trang 41Thí dụ: minh hoạ cơ sở dữ liệu (tiếp)
Ngữ nghĩa đối thoại tưong tự như phần cộng ở
trên Ta chỉ minh hoạ cho những điều khác
như “get”:
event get-key? =
uses: input set:key = input
event get-val? =
uses: input, dbase, key
set: dbase = db-update(dbase, input, key)
event print-val? =
uses: dbase, key
out: db-lookup(dbase,key)
Trang 427.4 Ngữ nghĩa đối thoại
• Mục đích của miêu tả đối thoại chỉ là: giao tiếp
giữa các nhà thiết kế hay như là công cụ trong thiết kế.
• Miêu tả đối thoại dùng để đặc tả hình thức, có
thể là 1 phần của hợp đồng hay thực hiện một nguyên mẫu => cần có miêu tả một cách hình
thức ngữ nghĩa của đối thoại.
• Có 2 sắc thái của ngữ nghĩa đối thoại:
Phía trong của UD và phía ngoài của biểu diễn.
Trang 437.4 Ngữ nghĩa đối thoại (tiếp)
• Ba cách tiếp cận:
i) Ngữ nghĩa đặc tả ký hiệu
ii) Liên kết với ngôn ngữ lập trình
iii) Liên kết với ký pháp đặc tả
Trang 447.4.1 Ngữ nghĩa đặc tả ký pháp
- ATNs( Augmented Transition NetWorks) là 1 dạng của mạng dịch chuyển trạng thái HT giả định là 1 tập các thanh ghi lưu trữ vị trí mà
mạng dịch chuyển có thể thiết lập và kiểm thử.
- Mỗi cung trong mạng ngoài việc có thể có nhãn,
nó có thể có ràng buộc (như 1 sự kiện) và chỉ có cung nếu ràng buộc là thoả và sự kiện xảy ra.
- Luật sản xuất cũng có nhiều cách thức và ngữ
ngữ của nó cũng thay đổi tương tự.
Trang 457.4.2 Liên kết với NNLT
• Các ký pháp thường gắn với 1 NNLT nào đó
Thí dụ ký pháp về biểu thức chính qui thường dùng C để biểu diễn ngữ nghĩa đối thoại
• Thí dụ Công cụ để đọc 1 số, viết trong C:
Tool number
{ char buf [80];
int index, positive;
input {( digit * + sign; digit; digit*) return)
tool digit
Trang 467.4.2 Liên kết với NNLT
{ input {key:| key_c >=‘0’ && key_c <=‘9’ | }
if (index < 79) /* noi ky tu vao xau *
{ buf [index] = key_c; index = index + 1;
Trang 477.4.2 Liên kết với NNLT (tiếp)
Input tool cũng dùng ký pháp của biểu thức chính qui có
bổ sung các phép toán.
‘?’ : chỉ tuần tự, ‘+’: chỉ sự lựa chọn
‘key : | điều kiện| ‘: biểu thức chỉ sánh được nếu điều kiện
là thoả.
Đặc tả biểu thức ‘input tool’ như sau: Tool chỉ ra một
công cụ mới, tương tự như ký tự không kết thúc của BNF
và biểu thức là nằm trong “input”.
Các tool được bố trí kiểu phân cấp => digit, sign và return
tools là riêng của tool number.
Trang 487.4.3 Liên kết với đặc tả hình thức
• SPI (Specifying and Prototypeing Interaction)
bao gồm 2 phần: event CSP và event ISL.
• Event CSP: ký pháp tương tự như CSP
• Event ISL: mô tả ngữ nghĩa đối thoại
• Phần CSP được mô tả như trong CSP, tuy
nhiên, mỗi sự kiện của nó ứng với 1 sự kiện
trong ISL
• ISL: chuẩn cục bộ và phụ thuộc cục bộ vào
Trang 49Thí dụ
• CSP mô tả quá trình login:
Login = login-mess -> get-name ->Passwd
Passwd = passwd-mess -> (invalid ->Login
[] valid Session) Session = ( logout -> Login
[] command -> execute -> Session)
Một đang nhập bị lỗi có thể mô tả như sau:
login: toto
passwd: b9fkG
Sorry bad user-id/password
Trang 50Thí dụ (tiếp)
• Hai sự kiện login-mess và get-name điều khiển
dòng đầu của đối thoại:
Trang 517.5 Phân tích và thiết kế đối
thoại
• Các cách thức mà đối thoại có thể được
phân tích nhằm phát hiện tính tiện dụng tiềm năng bằng cách xem xét các nguyên tắc (chương 4).
• Trước tiên tập trung vào hành động của
ND, tiếp theo là trạng thái của đối thoại Cuối cùng là xem xét cách biểu diễn và từ vựng.
Trang 53Tính chất của hành động (tiếp)
Nhất quán
- Cùng hành động cùng hiệu quả
- Thể thức và tính quan sát được
Trang 54Tính chất của hành động (tiếp)
Trang 55- Có thể nhận được trạng thái trước?
- Nếu không Undo
Các trạng thái nguy hiểm
- Một sô trạng thái không muốn
Trang 56Tính chất của trạng thái (tiếp)
F1 :change mode F2 : exit and save) Esc: no mode
change
Trang 57Tính chất của trạng thái (tiếp)
Trang 58Mô thức từ vựng
Trang 59Tổng kết và thí dụ
Trang 60Tổng kết và thí dụ (tiếp)