1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án công nghệ thông tin nghiên cứu khả năng áp dụng mô hình agent vào công việc xây dựng giao diện và hỗ trợ cho người dùng hoàn thành công việc thông qua các mô hình đặc tả giao diện và đặc tả công việc

134 1,2K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 134
Dung lượng 4,12 MB

Nội dung

Ý tưởng việc xây dựng các hệ thống giao diện người dùng với sự tham gia trợgiúp của các agent được hình thành như một sự kết hợp giữa công nghệ lập trìnhhướng agent và các nghiên cứu tro

Trang 1

Mục lục

Lời giới thiệu 5

Danh mục hình vẽ 7

Danh mục các từ viết tắt 8

ARCHITECTURE VÀ INTERFACE AGENT 10

1.1 Tổng quan về Open Agent Architecture 10

1.1.1 Khái niệm Open Agent Architecture 10

1.1.2 Các mục đích của thiết kế OAA 11

1.1.3 Agent trong OAA 13

1.1.4 Kiến trúc tổng quan của OAA 14

1.1.5 Các lợi ích của việc sử dụng OAA 18

1.1.6 So sánh OAA với các công nghệ tính toán phân tán 20

1.1.7 Ví dụ về ứng dụng của kiến trúc OAA 22

1.1.8 Phát triển giao diện người dùng theo kiến trúc OAA 24

1.2 Cơ sở lý thuyết về Interface Agent 25

1.2.1 Đại cương về giao diện thông minh 25

1.2.2 Interface agent trong xây dựng giao diện thông minh 29

1.2.3 Interface agent trong các hệ thống trợ giúp 31

1.2.4 Interface agent trong hệ thống sinh giao diện tự động 33

1.3 Kết luận chương 35

Trang 2

CHƯƠNG 2: MÔ HÌNH XÂY DỰNG GIAO DIỆN TƯƠNG TÁC VỚI

INTERFACE AGENT 36

2.1 Qui trình xây dựng giao diện truyền thống 36

2.1.1 Giới thiệu về qui trình xây dựng giao diện truyền thống 36

2.1.2 Một số đánh giá về qui trình 38

2.2 Xây dựng và điều khiển giao diện với sự tham gia của Interface agent 40

2.2.1 Giới thiệu về qui trình 40

2.2.2 Đánh giá chung về qui trình này 42

2.3 Các thành phần trong thiết kế giao diện 43

2.3.1 Mô hình công việc 43

2.3.2 Đặc tả giao diện và ánh xạ chức năng với giao diện 46

2.4 Lý thuyết hội thoại cộng tác 48

2.4.1 Khái niệm và mục đích nghiên cứu 48

2.4.2 SharedPlans 49

2.4.3 Đoạn hội thoại và Focus stack 50

2.4.4 Biểu diễn trạng thái của hội thoại 52

2.4.5 Quá trình biên dịch hội thoại và sinh hội thoại 55

2.5 Học mô hình công việc 57

2.5.1 Khái niệm và mục đích nghiên cứu 57

2.5.2 Mô hình công việc và ngôn ngữ định nghĩa 58

2.6 Kết luận chương 63

TRƯỜNG ỨNG DỤNG ĐỘC LẬP 64

Trang 3

3.1.1 Ngôn ngữ định dạng mở rộng XML 64

3.1.2 Mô hình xây dựng các đặc tả 66

3.2 Xây dựng đặc tả công việc 68

3.2.1 Mô hình đặc tả công việc 68

3.2.2 Xây dựng đặc tả mô hình công việc theo XML 74

3.3 Xây dựng đặc tả giao diện 77

3.3.1 Mô hình đặc tả giao diện 77

3.3.2 Xây dựng đặc tả giao diện 79

3.4 Tổ chức, bắt và xử lý lỗi xảy ra 80

3.5 Xây dựng giao diện với thành phần Java - Swing 82

3.5.1 Thư viện giao diện Swing 82

3.5.2 Tổ chức giao diện, bắt và xử lý sự kiện với Swing 83

3.6 Interface agent và quá trình tìm kiếm 86

3.6.1 Kiểm soát tương tác và hỗ trợ người dùng 86

3.6.2 Sinh giao diện từ các đặc tả 88

3.7 Chương trình mô phỏng 89

3.8 Kết luận chương 91

TRƯỜNG ỨNG DỤNG PHÂN TÁN ÁP DỤNG CHO HỆ THỐNG BỆNH

4.1 Kiến trúc hệ thống bệnh án số 93

4.1.1 Đại cương về hệ thống bệnh án số 93

4.1.2 Mô hình xây dựng hệ thống bệnh án số 96

Trang 4

4.2 Xây dựng các đặc tả với Ontology 99

4.2.1 Giới thiệu chung ontology 99

4.2.2 Cấu trúc Ontology theo mô hình dữ liệu RDF 101

4.2.3 Mô hình dữ liệu OWL 104

4.2.4 Xây dựng đặc tả giao diện 106

4.3 Mô tả hoạt động của hệ thống và Interface agent 114

4.3.1 Mô hình xây dựng 114

4.3.2 Hoạt động của Interface agent 115

4.4 Kết quả thu được 116

4.5 Kết luận chương 117

Đánh giá kết quả nghiên cứu và hướng phát triển 118

Đánh giá kết quả đạt được 118

Phụ lục 1: Các nghiên cứu liên quan về công nghệ xây dựng giao diện tương tác

và agent giao diện 122

Công cụ COLLAGEN 122

Công nghệ Microsoft agent và Office assistant 124

Phụ lục 2: Danh mục màn hình của ứng dụng mô phỏng trên Swing 125

Trang 5

Phụ lục 3: Danh mục thuật ngữ Tiếng Anh 130

Trang 6

Lời giới thiệu

Sự phát triển của công nghệ phần mềm đã làm thay đổi diện mạo của hầu hếtcác lĩnh vực của cuộc sống Hầu hết các vấn đề của các lĩnh vực như quản lý hay cácvấn đề có đặc thù công việc riêng đều có sự tham gia và trợ giúp của máy tính

Trên cơ sở đó, các hệ thống phần mềm ngày càng có những yêu cầu cao hơn vềkhả năng giải quyết các vấn đề phức tạp, đặc thù, phải xử lý một lượng thông tin lớn,

đa dạng và được thu nhận theo các định dạng khác nhau Đáp ứng các yêu cầu này là

sự ra đời của các phần mềm máy tính tinh vi hơn, thông minh hơn nhưng cũng phứctạp và khó vận hành, đòi hỏi những hỗ trợ trong quá trình sử dụng

Sự ra đời của công nghệ lập trình hướng agent là sự kết hợp giữa các lĩnh vựcnghiên cứu của trí tuệ nhân tạo và công nghệ lập trình hướng đối tượng tạo ra mộthướng phát triển mới cho việc giải quyết các yêu cầu về các hệ thống phần mềm phứctạp Công nghệ lập trình hướng agent cho phép tạo ra các hệ thống với một mức độthông minh, linh hoạt và có khả năng hoạt động một cách tự chủ trong các môi trườngphân tán

Ý tưởng việc xây dựng các hệ thống giao diện người dùng với sự tham gia trợgiúp của các agent được hình thành như một sự kết hợp giữa công nghệ lập trìnhhướng agent và các nghiên cứu trong lĩnh vực tương tác người máy Sự kết hợp nàytận dụng được khả năng hoạt động tự chủ của các agent trong việc xử lý các yêu cầucủa người dùng nhằm nâng cao khả năng cộng tác của hệ thống với người dùng trongquá trình thực hiện một chương trình

Mục đích của đồ án này là nghiên cứu khả năng kết hợp xây dựng các agenttrong việc tổ chức và quản lý giao diện của người dùng thông qua các tri thức được thunhận trước, nhằm tạo ra một hệ thống giao diện phần mềm có tính hỗ trợ tốt hơn, cộngtác nhiều hơn nữa trong quá trình thao tác của người dùng

Đây là một lĩnh vực nghiên cứu rộng, kết hợp của nhiều vấn đề thuộc về lý

Trang 7

Trong khoảng thời gian thực hiện giới hạn nên phạm vi nghiên cứu của đồ án nàynhằm tập trung chủ yếu vào khía cạnh chính là nghiên cứu khả năng áp dụng mô hìnhagent vào công việc xây dựng giao diện và hỗ trợ cho người dùng hoàn thành côngviệc thông qua các mô hình đặc tả giao diện và đặc tả công việc.

Với mục đích đó, nội dung và phạm vi của đồ án này tập trung nghiên cứu cácvấn đề sau:

 Nghiên cứu kiến trúc xây dựng hệ thống đa agent trong đó có sự tham giacủa agent giao diện (hay Interface agent) trên giao diện người dùng Mụcđích là cung cấp một kiến trúc chung cộng tác giữa agent giao diện và cácagent khác trong hệ thống Nội dung này sẽ được đề cập trong chương 1

 Nghiên cứu mô hình xây dựng giao diện người dùng có sự tham gia củaagent giao diện và các đặc tả Nội dung này được đề cập trong chương 1 vàchương 2

 Nghiên cứu mô hình xây dựng agent giao diện trên môi trường ứng dụngđộc Trong mô hình này, các đặc tả được xây dựng theo cấu trúc XML Nộidung này được đề cập trong chương 3

 Nghiên cứu mô hình xây dựng agent giao diện trên môi trường ứng dụngphân tán và khả năng xây dựng mô hình dữ liệu cho các đặc tả theo cấu trúcontology Nội dung này được đề cập trong chương 4

Trang 8

Danh mục hình vẽ

Hình 1: Kiến trúc cơ bản của Open Agent Architecture 14

Hình 2: Kiến trúc hệ trợ giúp công tác văn phòng khai triển kiến trúc OAA 17

Hình 3: Hệ thống văn phòng tự động 22

Hình 4: Vị trí của Interface agent trong hệ thống xây dựng giao diện 30

Hình 5: Qui trình tạo giao diện với sự tham gia của agent 34

Hình 6: Qui trình xây dựng giao diện hướng tác vụ truyền thống 36

Hình 7: Qui trình xây dựng và điều khiển giao diện với Interface agent 41

Hình 8: Cộng tác giữa Interface agent và người dùng 48

Hình 9: Các Segment trong một hội thoại hướng chức năng của con người 50

Hình 10: Vòng thay đổi trạng thái hội thoại và sinh đáp ứng 52

Hình 11: Biểu diễn trạng thái hội thoại 54

Hình 12: Mô hình xây dựng giao diện với sự tham gia của Interface agent và các thành phần đặc tả 66

Hình 13: Cây thành phần được cung cấp bởi Swing 82

Hình 14: Mô tả hoạt động của Interface agent 86

Hình 15: Cây công việc của chương trình mô phỏng 90

Hình 16: Mô hình thu nhận một tri thức công việc 91

Hình 17: Cây khái niệm cấu thành khái niệm bệnh án 94

Hình 18: Các pha tương ứng trong hệ thống bệnh án số 95

Hình 19: Kiến trúc hệ agent trong hệ thống bệnh án số 97

Hình 20: Ví dụ về mô hình cấu trúc dữ liệu của RDF 102

Hình 21: Mô hình quan hệ OWL với lược đồ RDF và lược đồ XML 104

Hình 22: Mô hình kế thừa của các kiểu thành phần 107

Hình 23: Mô hình xây dựng giao diện người dùng trong hệ thống bệnh án số 114

Hình 24: Mô hình tiếp nhận yêu cầu của người dùng trong hệ thống bệnh án số 115

Trang 9

Danh mục các từ viết tắt

ACL Agent Communication

Language Ngôn ngữ truyền thông agentAPI Application Programming

Interface Giao diện lập trình ứng dụngAWT Abstract Windows Toolkit Bộ thư viện lập trình trên môi trường

Windows của JavaBATS Bridging Agents, Tasks,

and Software Chương trình sử lý theo lô công việctạo giao diện cho Interface agentCOLLAGEN Collaborative Agent Thư viện cho xây dựng và phát triển

hệ agent tương tácCSS Cascading Style Sheet Bảng định kiểu

FTP File Transfer Protocol Giao thức truyền file

GUI Graphic User Interface Giao diện người dùng đồ họa

HCI Human Computer

Interaction

Tương tác người máy

HTML Hyper Text Markup

Language

Ngôn ngữ định dạng siêu văn bản

HTTP HyperText Transfer

Protocol

Giao thức truyền siêu văn bản

IA Interface Agent Agent giao diện

ICL Inter-agent Communication

Language Ngôn ngữ truyền thông liên agentJade Java Agent Development

Framework Thư viện hỗ trợ xây dựng agent.JRE Java Runtime Enviroment Môi trường thực thi Java

OAA Open Agent Architecture Kiến trúc hệ agent mở

OWL Ontology Web Language Ngôn ngữ ontology cho ứng dụng

WebRDF Resource Description

Framework Chuẩn mô tả tài nguyên ontologyTask UI

Mapping Task and User Interface specification mapping Ánh xạ công việc và đặc tả giao diệnngười dùng.URI Uniform Resource

Identifier Đường dẫn xác định nguồn tài nguyên.URL Uniform Resource Locator Đường dẫn chỉ định tài nguyên

mạngVAMPIRE Visual Model-based Pick-

and-place Interface Editor Trình soạn thảo các đặc tả giao diện và đặc tả công việc hướng chức

năng

W3C World Wide Web Tổ chức quốc tế qui định các chuẩn

Trang 10

Consortium cho Internet và WebXML Extensible Markup

Language Ngôn ngữ định dạng mở rộngXSL Extension Style Language Ngôn ngữ mô tả định kiểu mở rộngDOM Document Object Model Mô hình tài liệu XML hướng đối

tượng SAX Simple API for XML Mô hình API đơn giản cho XML

Trang 11

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ OPEN AGENT ARCHITECTURE VÀ INTERFACE AGENT

1.1 Tổng quan về Open Agent Architecture

1.1.1 Khái niệm Open Agent Architecture

Open Agent Architecture (kiến trúc hệ agent mở, viết tắt là OAA) là một khunglàm việc chung (hay framework) cho hệ liên (hay đa) agent mà trên đó một cộng đồngcác agent phần mềm được phát triển trên nhiều ngôn ngữ, nhiều công cụ khác nhau,chạy trên các máy phân tán có thể cộng tác với nhau theo các nhiệm vụ đã được xácđịnh cụ thể cho từng agent

Ý tưởng cơ bản và bao trùm của OAA là sự uỷ quyền Sự uỷ quyền được thểhiện ở điểm là thay vì các agent trong hệ thống phải khai báo và mã hoá một cáchcứng nhắc (hard-code) các khả năng của mình cũng như các tương tác với các agentkhác trong hệ thống, các agent có thể mô tả các khả năng của mình, các tương tác củamình và khai báo nó với một agent đặc biệt trong hệ thống là Facilitator agent (agentđiều phối) Facilitator agent sẽ phối hợp cộng đồng agent để thực hiện các công việc,cung cấp các dịch vụ như cơ chế song song, xử lý lỗi và phát hiện xung đột để mỗiagent ứng dụng không phải tự lo về những vấn đề đó

Mục tiêu của OAA dựa trên ý tưởng về một cộng đồng chung các agent hoạtđộng cùng với nhau để giải quyết các vấn đề của người sử dụng Mặc dù về nguyêntắc, có thể tạo ra các agent đơn lẻ đóng vai trò tự thực hiện tất cả các nhiệm vụ đượcgiao, nhưng điểm mạnh của công nghệ agent tốt nhất khi công việc được thực hiệnthông qua rất nhiều agent “chuyên gia” Trong framework OAA, phần lớn việc giảiquyết yêu cầu từ phía người dùng được thực hiện bằng cách liên lạc hay kết nối nhiềuagent lại với nhau Tiếp theo là quá trình thu nhận các kết quả do các agent “chuyêngia” đó trả việc và điều khiển các giao tiếp trung gian giữa các agent tham gia trong hệthống nếu cần

Trang 12

1.1.2 Các mục đích của thiết kế OAA

Thuật ngữ “lập trình hướng agent” (agent-based programming) đã xuất hiệntrong rất nhiều lĩnh vực kỹ thuật những năm gần đây Trong framework OAA, các bộphận (hay thường gọi là các module) phần mềm được lập trình theo công nghệ hướngagent Các agent này được xem như những tiến trình độc lập có khả năng truyền thông

và cộng tác với mỗi tiến trình khác trong một môi trường mạng mạng phân tán Tanhìn nhận các agent như các đối tượng phân tán vì ngôn ngữ truyền thông bậc cao củachúng và về khả năng hoạt động phân tác và cộng tác để hoàn thành một tính toán tráingược lại với các đối tượng tính toán thụ động

Mặc dù khái niệm và mục đích của OAA đã được phát triển một cách chi tiết ởmột số lĩnh vực khác nhau (như OAA Specification Report, OAA Definition Report),nhưng việc trình bày một cách tóm tắt một số mục đích thiết kế của kiến trúc này vẫn

có ích cho những nghiên cứu sau này

Khả năng phân tán (Distributedness):

Cộng đồng các agent có thể gồm nhiều loại Tính đa dạng về loại hình cho phépcác agent chạy trên bất kì hệ nền nào mà chúng chọn, và bất kì ngôn ngữ lập trình nào

để viết ra chúng OAA cung cấp một tập các tiêu chuẩn cho phép các agent làm việccùng với nhau trong các điều kiện đó Ngoài ra, tính toán phân tán trên hệ thống mạng

có tính chất mở hơn so với tính toán song song - tại đó có nhiều agent cùng làm việc,cùng cộng tác một phần hoặc hoàn toàn đến mọi khía cạnh của nhiệm vụ

Khả năng thích ứng (Adaptability):

Khi một số thành viên mới tham gia vào cộng đồng, hiệu quả chung của cáctương tác giữa cộng đồng có thể thay đổi Nếu một số agent tham gia các tiến trìnhcộng tác như những agent đến sau, các tương tác giữa các agent trong cộng đồng phải

đủ linh hoạt để cho phép các agent mới hoạt động được trong môi trường tính toán.Một kiến trúc “Plug & Play” cho phép các hệ thống được xây dựng trên các agent đãtồn tại trêncộng đồng từ trước có thể dễ dàng chấp nhận và tận dụng các ưu điểm, cácchức năng mới được bổ sung vào kiến trúc của một hay nhiều agent mới

Trang 13

Nâng cao khả năng truyền thông (Communication):

Từ khi người dùng mong muốn tham gia thử nghiệm sự cộng tác giữa cácagent, ngôn ngữ tích hợp truyền thông ICL (sẽ được đề cập trong các phần tiếp theocủa báo cáo) ra đời Ngôn ngữ này phải đủ mạnh để biểu diễn ngôn ngữ tự nhiên nhưcác tham số đầu vào của hệ thống Nếu ICL có thể biểu diễn đầy đủ các biểu thức ngônngữ tự nhiên, các thủ tục cấu thành các hình thức tương tác của các agent sẽ có khảnăng thực hiện được một cách dễ dàng hơn

Tính toán chủ động và tương tác (Active and Reactive Computation ):

Các agent có khả năng mạnh hơn hơn so với các đối tượng thao tác dữ liệu thụđộng (là những phần tử thực hiện các hành động hoặc trả về thông tin chỉ khi nào đượcyêu cầu) Các agent có khả năng điều phối các hoạt động trong thế giới xung quanhchúng và quyết định khi nào thực hiện hành động đó, báo hiệu cho một người dùnghoặc một nhóm agent của các agent khác về một số tình huống thích hợp

Ngoài ra, các agent có khả năng theo dõi những tương tác của các agent khác vàđưa ra các đề xuất, xem xét thực hiện công việc nào thích hợp với các yêu cầu côngviệc và điều kiện hiện tại của môi trường

Cộng tác nhỏ (Fine-grained Cooperation)

OAA dựa trên ý tưởng về một cộng đồng các agent làm việc cùng nhau giảiquyết một số chức năng của người dùng Mặc dù về nguyên tắc có thể tạo ra một agentđơn mà vai trò của nó là hoàn thành tất cả các công việc đó một cách tự trị, nhưng lợiích của cách tiếp cận hướng agent là tốt nhất khi tính toán này được trải trên nhiều hệagent chuyên gia đặc biệt Trong framework OAA hầu hết các yêu cầu của người dùngđều được xử lý bởi các nỗ lực chung của các agent (Ví dụ như các agent tham gia cóthể có khả năng khác nhau về hiểu ngôn ngữ tự nhiên đầu vào, kế hoạch hành động,truy cập vào cơ sở dữ liệu, hiện thị kết quả,…) Điều này chỉ thực hiện được nếu việctruyền thông giữa các agent được thực hiện một cách hiệu quả

Trang 14

1.1.3 Agent trong OAA

Các agent trong OAA được định nghĩa đơn giản là những chương trình đượcphân tán trên nhiều máy mà tất cả chia sẻ một số chức năng chung Các agent này hoạtđộng tuân theo các chuẩn truyền thông và chức năng đưa ra bởi OAA Tại sao lại làagent chứ không là đối tượng thao tác được lập trình theo hướng khác? Đối với OAA,agent có thể thể hiện tính chất linh hoạt, tự chủ và có khả năng hành động như conngười thay cho các module phần mềm có thể được thiết kế không mềm dẻo bằng Điềunày thể hiện thông qua các lý do sau:

 Các ứng dụng được tạo thành từ một cộng đồng động các agent xử lý mà cóthể di chuyển trong thời gian thực hiện (runtime) và có thể truyền thông,phối hợp và cạnh tranh với nhau một cách song song, tương tự như cácnhóm người đang làm việc cùng nhau

 Các agent truyền thông với nhau bằng một ngôn ngữ dựa trên logic mức cao

mà có thể hỗ trợ biểu diễn ngôn ngữ tự nhiên Ngôn ngữ này làm cho cáchthức mà các agent truyền thông với nhau và với người dùng gần gũi nhưcách thức mà con người nói chuyện với nhau

 Các agent có những khả năng tự kích hoạt (trigger) bên trong, cho phépchúng giám sát các sự kiện trong thế giới và khởi xướng các hành động theocác sự kiện đó

 Để nhiều agent có thể cùng hoạt động, các agent trong OAA có thể uỷquyền và nhận công việc yêu cầu qua một agent Facilitator Các yêu cầu này

sẽ được diễn giải và mô hình hoá trong một ngôn ngữ chung cho mọi agent.Ngôn ngữ đó là ICL (Inter-agent Communication Language: ngôn ngữtruyền thông liên agent) Bên cạnh đó các agent còn sử dụng một tập cáchàm chung được định nghĩa trước như các khả năng cài đặt cục bộ hay khảnăng khởi động agent từ xa bởi một agent khác khi có yêu cầu

Ngôn ngữ truyền thông liên agent sẽ còn được đề cập chi tiết hơn trong cácphần sau của báo cáo

Trang 15

1.1.4 Kiến trúc tổng quan của OAA

Hình 1 chỉ ra kiến trúc điển hình của một hệ thống OAA thu nhỏ, hệ thống baogồm có một agent giao diện người dùng (user interface agent) đảm nhận việc tổ chức,xây dựng và điều khiển giao diện người dùng, một số agent ứng dụng (applicationagent) và các siêu agent (meta-agent) Các agent này được tổ chức như một cộng đồngthông qua một mối quan hệ chung với một Facilitator agent (agent điều phối)

Facilitator

Agent ứng dụng (Application agent)

Ứng dụng API

Siêu agent (Meta agent)

Agent giao diện người

dùng (User interface agent)

Các agent chức năng

Ngôn ngữ

truyền thông

liên agent

Hình 1: Kiến trúc cơ bản của Open Agent Architecture.

Các thành phần của kiến trúc này có thể được tóm tắt như sau:

Agent ứng dụng (Application Agent): cung cấp một tập các dịch vụ

(service) cơ bản phục vụ cho một nhu cầu nào đó Trên thực tế chúng có thể

là các ứng dụng cụ thể Điều đáng quan tâm là các ứng dụng đó có thể ápdụng các công nghệ độc lập (Ví dụ như các ứng dụng xử lý tiếng nói emailhay các ứng dụng cụ thể nào đó như các ứng dụng về bài toán lập kế hoạch

du lịch)

Siêu agent (Meta-agent) : là agent đóng vai trò trợ giúp cho Facilitator trong

việc phối hợp hoạt động của các agent khác Meta-agent có thể giúp choFacilitator agent trong việc hỗ trợ giao tiếp giữa các agent ở các miền nhiệm

vụ độc lập cũng như được xây dựng trên các công nghệ khác nhau Số lượng

Trang 16

Meta-agent có thể tăng nên khi số lượng miền nhiệm vụ tăng lên cũng nhưcác tri thức về các miền nhiệm vụ như các luật (rule), các thuật toán tăng.

Agent giao diện người dùng (User Interface Agent): hay gọi tắt là

Interface agent đóng vai trò khá quan trọng và thú vị trong nhiều hệ OAA.Trong một số hệ, Interface Agent được thực hiện bởi một tập các agent khácđược gọi là các “micro-agent”, trong đó mỗi “micro-agent“ đóng vai trògiám sát một kiểu đầu vào khác nhau của hệ thống (ví dụ như click chuột,các tín hiệu từ bút, giọng nói,…) và cộng tác để có thể đưa ra các diễn giảitốt nhất trợ giúp cho hệ thống giao diện người dùng (user interface)

Facilitator: được đặc tả như một agent phục vụ chính (agent server) có khả

năng hồi đáp để truyền thông giữa các agent có thể thực hiện được nhằmgiải quyết các vấn đề chung Trong nhiều hệ thống, facilitator cũng được sửdụng để cung cấp một kho dữ liệu chung cho tất cả các agent khác, cho phépchúng ghi nhận theo kiểu bảng đen của tương tác

Một facilitator duy trì một cơ sở tri thức là các bản ghi khả năng về tậphợp các agent Nó sử dụng tri thức này để thực hiện các yêu cầu và cung cấpcác dịch vụ trong quá trình thực thi các nhiệm vụ Chức năng trọng tâm củafacilitator là sự uỷ quyền trong suốt (transparent delegation) Điều này cónghĩa là khi một yêu cầu phát sinh, facilitator có thể quản lí việc phục vụ đểthoả mãn yêu cầu đó Như vậy là các yêu cầu được gửi đến facilitator khôngcần phải có bất kì một tri thức nào về định danh hay vị trí của các agent cóthể giải quyết các yêu cầu đó Sự uỷ quyền trong suốt ở đây là có thể bởi vìkhả năng của agent được xem như một mô tả trừu tượng của một dịch vụ.Mỗi agent trong hệ thống OAA hoặc là một facilitator agent hoặc là mộtagent khách (client agent) Sở dĩ có tên gọi như vậy là vì chúng hoạt độngnhư các khách của các facilitator – là agent cung cấp các dịch vụ truyềnthông và một số dịch vụ cần thiết khác cho agent khách Khi được gọi, mỗiagent khách thực hiện một kết nối tới facilitator, được biết đến như mộtfacilitator cha Trong kết nối, mỗi agent sẽ gửi thông điệp tới facilitator chacủa nó về những dịch vụ mà nó có thể được cung cấp Khi cần đến một

Trang 17

agent ứng dụng giải quyết một, facilitator sẽ gửi tới nó một yêu cầu sử dụngICL Agent ứng dụng sẽ phân tích yêu cầu này, xử lí nó và trả về các trả lờithông báo về trạng thái hay kết quả tới facilitator Trong khi xử lí một yêucầu, agent có thể yêu cầu các dịch vụ của những agent khác, thiết lập các bộkích hoạt (trigger) và đọc hoặc ghi dữ liệu chia sẻ trên facilitator (hoặc cácagent khách khác quản lí dữ liệu chia sẻ)

Ngôn ngữ truyền thông liên agent (Inter-agent Communication Language viết tắt là ICL): Ngôn ngữ truyền thông giữa các agent của OAA

là giao tiếp, là ngôn ngữ truyền thông được dùng cho mọi agent ICL đượcthiết kế như một hình thức mở rộng của ngôn ngữ lập trình Prolog Nhờ đóICL tận dụng được những điểm mạnh về tính nhất quán và một số ưu điểmkhác của ngôn ngữ Prolog Một số khai báo khoá và các phần tử chươngtrình khác được đặc tả sử dụng các biểu thức ICL Chúng gồm có các khaibáo về khả năng, các sự kiện (truyền thông giữa các agent), các yêu cầu dịch

vụ, các hồi đáp cho yêu cầu, đặc tả trigger và các phần tử dữ liệu chia sẻ

Đế có một cái nhìn khái quát chung về OAA, ta nghiên cứu một ví dụ được xâydựng dựa trên mô hình OAA ứng dụng trong hệ trợ giúp công tác văn phòng được mô

tả như hình 2 Kiến trúc hình 2 được xây dựng trên nền kiến trúc cơ sở của OAA trongđó:

 Facilitator agent đóng vai trò agent server có nhiệm vụ trả lời truyền thông

và điều khiển hoạt động của hệ thống agent Trong nhiều hệ thống,facilitator cũng được sử dụng để cung cấp một kho dữ liệu chung cho cácagent khách Lưu ý rằng một cấu hình hệ thống không bị giới hạn với mộtfacilitator đơn lẻ

 Interface agent quản lý các giao diện người dùng đa hình thức bao gồm cácloại giao diện người dùng được nhập liệu theo kiểu khác nhau như: ngônngữ tự nhiên (natural language), giọng nói (speech), bút (pen) Nhiệm vụcủa Interface agent là quản lý các hình thức nhập liệu khác nhau của ngườidùng để tạo một giao tiếp trung gian với hệ thống xử lý Nhờ đó, hệ thống

Trang 18

xử lý chỉ quan tâm đến dữ liệu nhận được mà không cần biết hình thức nhậpliệu của người dùng là gì.

 Các agent ứng dụng bao gồm:

- Agent quản lý thư tín (Mail agent): quản lý công việc thư tín

- Agent cơ sở dữ liệu (Database agent)

- Agent lịch biểu (Calendar agent): quản lý lịch làm việc

- Agent thông báo (Notification agent)Các agent này sử dụng các chức năng được cài đặt phục vụ cho các côngviệc cụ thể Ví dụ agent thư tín làm việc với bộ thư tín (Mailer) như trìnhnhận mail hay làm việc trực tiếp với mail server để nhận mail về và sắp xếpcác mail đó theo yêu cầu

 Truyền thông giữa các agent: các agent có thể truyền thông trực tiếp vớinhau hay truyền thông gián tiếp thông qua Facilitator

Facilitator Agent

Các tri thức cơ sở

- Dữ liệu agent toàn cục (Global agent data)

- Siêu dữ liệu (Meta data)

Các tri thức cơ sở

- Dẫn đường và lập kế hoạch (Routing àn planning)

Ngôn ngữ truyền thông liên agent

(Inter-agent communication Language)

Agent giao diện

người dùng đa

hình thức (Multimodal UI)

Ngôn ngữ tự

nhiên Phát biểu

Bút viêt

Agent thông báo (Notification agent)

Trigger

Lập kế hoạch chuyển đổi thông tin

Agent thư tìn (Mail agent)

Trigger

Từ vựng

Tính năng agent

Agent cơ sở dữ liệu (Database agent)

Trigger

Từ vựng

Tính năng agent

Agent lịch biểu (Calendar agent)

Trigger

Từ vựng

Tính năng agent

Lịch Database

Bộ thư tín (Mailer)

Trang 19

1.1.5 Các lợi ích của việc sử dụng OAA

OAA rất hữu ích trong việc xây dựng các hệ thống phức tạp trong đó có nhiềuthành phần không đồng nhất (có thể là được xây dựng trên các ngôn ngữ lập trình, cácthư viện hỗ trợ khác nhau) và đặc biệt là các yêu cầu về tính mềm dẻo và co dãn đượccoi trọng Ta hoàn toàn có thể xây dựng một hệ thống có khả năng tương tự sử dụngmột số thư viện không cần sử dụng kiến trúc agent, tuy nhiên nếu hệ thống đòi hỏi mộ

hệ thống có tính thích nghi tốt, có thể dễ dàng mở rộng thì kiến trúc OAA có thể làmột trong những hướng giải quyết thích hợp để xây dựng kiến trúc cho hệ thống Sauđây ta sẽ thảo luận một số lợi ích của OAA:

 Cung cấp các kỹ thuật đa năng trong liên tác (inter-operation) và phối hợphoạt động

- Liên tác thể hiện thông qua khả năng truyền thông của các agent

- Phối hợp hoạt động thể hiện kỹ thuật cho phép các agent trong cộngđồng có thể cùng phối hợp với nhau để thực hiện công việc chung

Để thực hiện được khả năng phối hợp, OAA hướng đến các mục tiêu:

- Cung cấp một cách mềm dẻo trong việc lắp ghép cộng đồng các nhàcung cấp dịch vụ một cách tự động Phối hợp các agent cùng mộtmục đích chung

- Cung cấp một cách mềm dẻo trong việc cấu trúc các tương tác phốihợp giữa các agent với nhau trong cộng đồng: cung cấp khả năngtương tác giữa các agent với nhau mà không phụ thuộc vào cơ sở hạtầng hay mức đồ phức tạp của bản thân các agent

- Thoả mãn được nhiều yêu cầu về kiến trúc trên cùng hệ agent

 Tạo giao diện thân thiện với người dùng và giao diện giữa các bộ phận khácnhau của hệ thống Giao diện ở đây không chỉ bó hẹp theo nghĩa là các giaodiện đồ hoạ tương tác người dùng mà nó có thể là các giao diện tương tácgiữa các hệ thống với nhau cũng như là các cách thức giao tiếp của ngườidùng và hệ thống Nó thể hiện ở các đặc điểm:

Trang 20

- Cung cấp các tương tác tự nhiên: có thể bằng các chức năng nhậndạng tiếng nói, nhận dạng chữ viết,… làm cho giao diện của hệ thốngtrở nên dễ sử dụng hơn.

- Phân quyền giữa các người dùng: với sự tồn tại của một agent giaodiện phục vụ cho người dùng trên hệ thống hình thành một sự chuyênbiệt hoá công việc quản lý tương tác của người dùng Thông qua hìnhthức chuyên biệt hoá này, việc phân quyền người dùng có thể đượcthực hiện thông qua sự hỗ trợ của agent giao diện và các tri thức màagent giao diện thu nhận được từ trước

- Hỗ trợ cộng tác giữa agent và người dùng: theo nghĩa là các agent cóthể thực hiện theo dõi các hành vi của người dùng với hệ thống từ đóđưa ra các hướng dẫn hay chuyển tới các giao diện một cách linh hoạtthông minh Như vậy là giữa người dùng và hệ thống hình thànhquan hệ cộng tác để cùng thực hiện một chức năng do hệ thống cungcấp Điều này đặc biệt có giá trị khi người dùng lần đầu sử dụng hệthống và cần có sự trợ giúp từ phía hệ thống hoặc khi hệ thống quáphức tạp đối với người dùng

 Hiện thực hóa các yêu cầu về phần mềm như khả năng tái sử dụng, tính linhhoạt trong việc hỗ trợ trên hệ nền (flatform) khác nhau:

- Hạn chế xây dựng các agent mới mà khuyến khích tái sử dụng lại cácagent đã có, các ứng dụng đã tồn tại Nếu hệ thống đã tập hợp đượcmột số lượng đủ lớn các ứng dụng thì khi có một công việc mới,nhiệm vụ mới thay vì đi xây dựng một agent mới thực hiện các côngviệc hay nhiệm vụ này ta có thể kiểm tra liệu các ứng dụng hay cácagent đã tồn tại trong hệ thống có thể thực hiện nhiệm vụ đó haykhông (có thể thực hiện một cách riêng lẻ hay cộng tác với nhau đểhoàn thành)

- Hỗ trợ cho các platform một cách linh hoạt, giảm phức tạp: cácplatform cài đặt không cần đầy đủ các bộ phận của nó Điều này chophép xây dựng các agent độc lập nhỏ hơn và mức độ vừa phải

Trang 21

1.1.6 So sánh OAA với các công nghệ tính toán phân tán

Một đặc điểm rất quan trọng phân biệt OAA với các mô hình tính toán phân tánkhác là mô hình tính toán ủy quyền Mô hình này cho phép người dùng và các agentphần mềm mô tả những yêu cầu bằng những công việc cần được làm mà không cầnnhững đặc tả thêm các thông về ai, hệ thống nào sẽ thực hiện công việc đó và cáchthức mà công việc đó được thực hiện Chẳng hạn một yêu cầu: “Khi một thông điệp vềvấn đề an ninh gửi tới cho tôi, hãy báo cho tôi ngay lập tức” Bộ tiếp nhận yêu cầu(Requester) sẽ giao quyền điều khiển để đáp ứng một mục tiêu cho facilitator agent –một server agent được chuyên môn hóa trong OAA Facilitator agent phối hợp hoạtđộng của cộng đồng agent nhằm thực hiện những mục tiêu giải quyết các vấn đề phứctạp ở mức cao

Trong OAA, sự điều khiển cách thức mà tương tác và truyền thông xảy ra giữacác agent là kết quả sự phối hợp của 4 nguồn tri thức khác nhau:

1 Bộ tiếp nhận yêu cầu chỉ ra một mục tiêu cho facilitator và cung cấp lờichỉ dẫn về việc mục tiêu đó nên được đáp ứng như thế nào

2 Các agent cung cấp chức năng đăng ký các khả năng của chúng vớifacilitator, biết những dịch vụ nào mà chúng có thể cung cấp và giới hạn củanhững khả năng của chúng

3 Facilitator duy trì một danh sách các agent cung cấp chức năng đang sẵnsàng và một tập các chiến lược chung để đáp ứng các mục tiêu

4 Các siêu agent (meta-agent) lưu giữ những tri thức và chiến lược cụ thểđối với một phạm vi hay mục tiêu, được sử dụng như là một sự trợ giúp chofacilitator

Những tri thức này được sử dụng để tạo sự thuận lợi hơn trong việc phối hợpgiữa giữa một tập các OAA agent Facilitator sẽ khớp (match) một yêu cầu với mộthoặc nhiều agent cung cấp dịch vụ để đáp ứng yêu cầu đó, giao nhiệm vụ cho chúng,kết hợp các kết quả của chúng, và gửi kết quả lại cho bộ tiếp nhận yêu cầu Cách phốihợp giữa các agent theo hình thức này có thể được áp dụng để thực hiện cả hai loạicông việc đơn giản và phức tạp, nhiều bước Để bổ sung cho sự ủy quyền, OAA cũng

Trang 22

cung cấp khả năng tạo ra những cuộc gọi trực tiếp đến một agent cụ thể, và quảng bá(broadcast) các yêu cầu.

Những lợi ích của tính toán ủy quyền

Mô hình tính toán ủy quyền của OAA làm nhẹ bớt cho con người và các agentphần mềm khỏi trách nhiệm giao tiếp, lập kế hoạch công việc, và giám sát việc thựchiện Trên thực tế, tính toán uỷ quyền là một khía cạnh của việc phân chia công việcđược thực hiện trong hệ thống Một hệ thống được phân chia công việc thích hợp sẽtạo ra nhiều lợi ích trong việc kiểm soát các kết quả trung gian thực hiện được ở các bộphận khác nhau của hệ thống Nhờ đó việc kiểm soát kết quả chung của hệ thống cũngđược nâng cao

Ở một góc độ khác, việc phân chia tính toán uỷ quyền giúp hệ thống tránh khỏikhả năng tập trung một lượng lớn các tính toán phức tạp về một bộ phận nào đó của hệthống Trong khi đó một số bộ phận khác chỉ đảm nhiệm một lượng nhỏ các công việcgây ra sự mất cân đối trong toàn bộ chức năng của hệ thống

Các lợi ích của tính toán uỷ quyền có thể được tóm tắt thông qua một số đánhgiá về hiệu quả của hệ thống như sau:

 Giảm bớt sự phức tạp cho người dùng và agent Bộ tiếp nhận yêu cầu chỉcần chỉ ra công việc để được làm và chỉ dẫn về sự thực hiện Các agent sau

đó tập trung vào các công việc được chuyên môn hóa của chúng, có thể cầnphối hợp sự thực hiện cũng như các kết quả

 Thúc đẩy kiểu tính toán có tính mở hơn, có tính co giãn động trong đó cácagent được viết bằng nhiều ngôn ngữ lập trình và nhiều kiểu có thể làm việcvới nhau Các agent mới hay khác nhau có thể được thêm vào hoặc thay thế

mà không yêu cầu lập trình lại để có thể sử dụng được những khả năng củachúng

 Khuyến khích tái sử dụng các ứng dụng bởi vì những tương tác giữa cácagent không được định nghĩa trước và các giao diện chung của chúng, tránh

Trang 23

1.1.7 Ví dụ về ứng dụng của kiến trúc OAA

Ta sẽ tìm hiểu về kiến trúc OAA qua một ví dụ về hệ thống văn phòng tự động(Automated Office)

Facilitator

Agent giao diện

Agent nhận diện giọng nói

Agent ngôn ngữ tự nhiên

Agent thông báo

Agent cơ

sở dữ liệu

Agent điện thoại

Agent thư tín

Agent lịch biểu

Agent chuyển đổi văn bản - lời nói

 Một Interface agent chạy trên một máy tính xách tay của người dùng, kiểmsoát các thông tin của người dùng nhập vào và gửi các yêu cầu này tớiFacilitator để đến được một agent sẽ thực hiện các công việc Người dùng

có thể tương tác một cách trực tiếp với các ứng dụng từ xa bằng cách clickvào các khu vực trên giao diện hoặc triệu gọi một màn hình của ứng dụng vàtạo ra các câu hội thoại chuẩn Ngược lại một người dùng khác cũng có thểdiễn tả một công việc được xử lý bằng cách đánh máy hoặc viết tay hoặcbằng Tiếng Anh hoặc trên một ngôn ngữ nào đó hay qua điện thoại màkhông cần chỉ rõ agent nào thực hiện công việc đó Ví dụ như câu hỏi “Lịchlàm việc của tôi như thế nào nhỉ?” được viết trên giao diện thì yêu cầu này

sẽ được gửi đến Facilitator và sau đó Facilitator sẽ chuyển cho agent xử lý

Trang 24

ngôn ngữ tự nhiên (natural language agent) để tiến hành biên dịch câu nóinày ra ngôn ngữ truyền thông liên agent Để hoàn thành công việc này agentngôn ngữ tự nhiên có thể cần tạo ra một yêu cầu giải đáp các từ mà nókhông biết tới cộng đồng các agent Ví dụ như từ “lịch làm việc” thì agentlịch biểu (calendar agent) có định nghĩa từ này.

 Facilitator: như mô tả trên Facilitator agent đóng vai trò điều phối hoạt độngcủa hệ thống Ví dụ khi câu hỏi phức tạp hơn “Khi thư điện tử đến hãy báongay cho tôi” sẽ là một chuỗi các hành động phức tạp bao gồm truyền thônggiữa các agent trong hệ thống Sau khi dịch câu nói trên ra ngôn ngữ truyềnthông liên agent, Facilitator sẽ cài đặt một bộ tự kích hoạt (trigger) trênagent thư tín Khi các thông điệp đến hòm thư, bộ tự kích hoạt sẽ tự độngđược kích hoạt và Facilitator sẽ đưa ra các thông báo bởi agent thông báo(notification agent) Agent thông báo là một ví dụ điển hình của siêu agent(meta-agent) Nó tạo ra cách sử dụng các luật liên quan đến việc tối ưu sửdụng các kiểu đầu ra khác nhau (email, fax, sinh tiếng nói qua điện thoại…)đưa thêm vào các thông tin cá nhân của người gửi xác định cách tốt nhất đểsắp đặt các bản tin qua các agent ứng dụng đa phương tiện có sẵn Sau mộtvài bước song song để định vị người dùng (agent lịch biểu hay agent cơ sở

dữ liệu có thể có các phỏng đoán khác nhau về một vị trí nào đó để tìm user)

và các bước cùng thực hiện để đưa ra các thông tin cần thiết, một agent điệnthoại có thể gọi người dùng, thẩm tra xác thực qua bấm số

Trong ví dụ trên chứa đựng các ý tưởng quan trọng :

- Khi agent mới kết nối vào Facilitator đăng ký các khả năng và từ vựng củangôn ngữ tự nhiên người dùng có thể nói và tạo ra các thay đổi động

- Sự thông dịch và thực hiện một công việc là một tiến trình phân tán vàkhông có một agent nào xác định một tập các đầu vào có thể cho hệ thống

- Một yêu cầu có thể cần sự cộng tác và truyền thông của các agent Các agent

có thể được xây dựng trên các ngôn ngữ lập trình khác nhau, hoạt động trên

hệ thống máy tính khác nhau

Trang 25

1.1.8 Phát triển giao diện người dùng theo kiến trúc OAA

Nghiên cứu lý thuyết OAA cho ta một kiến trúc tổng quan về một hệ thốngphần mềm có sự tham gia của các agent Trong đó ta đặc biệt quan tâm việc xây dựng

hệ thống giao diện người dùng với sự tham gia của agent

Theo hướng tiến cận của OAA, hệ thống giao diện sẽ có một hay một số agenttham gia, hình thành mối quan hệ cộng tác giữa các agent trên hệ thống giao diện vớingười sử dụng hệ thống Sự cộng tác này thể hiện ở các khía cạnh:

 Giao tiếp của người sử dụng với hệ thống sẽ thông qua một agent làm nhiệm

vụ thu thập thông tin và chuyển giao các thông tin đó cho các xử lý bêntrong của hệ thống các agent Như vậy agent này (hay còn gọi là agent giaodiện – Interface agent) sẽ đóng vai trò trung gian, làm cầu nối giữa ngườidùng và hệ thống các agent hoạt động khác trong hệ thống

 Ở một mức độ nhất định các agent giao diện có thể tham gia nhiều hơn vàoquá trình thao tác của người dùng với toàn bộ hệ thống Agent giao diện cóthể có các hoạt động hỗ trợ tốt hơn cho người dùng nhằm tạo ra một hệthống giao diện tương tác thân thiện và đầy đủ

 Giao tiếp của người dùng với hệ thống agent hoạt động trở thành giao tiếpcủa người dùng với agent giao diện Như vậy sẽ hình thành một hình thứcchuyên biệt hoá các lĩnh vực xử lý giao tiếp giữa người dùng và hệ thốngphần mềm Agent giao diện có thể thực hiện giao dịch với người dùng theocác hình thức giao tiếp khác nhau như: bàn phím, bút, giọng nói,…Cácagent hoạt động khác trong hệ thống không cần thiết phải quan tâm đến dữliệu được đưa đến cho nó đã được nhập liệu như thế nào mà chỉ quan tâmđến logic xử lý dữ liệu đó và các kết quả trả ra theo một định dạng xác địnhtrước

 Agent giao diện thừa kế các thuộc tính cơ bản của agent và nếu được cài đặttốt với các mô hình hoạt động hợp lý nó có thể trở thành một agent giao diệnthông minh Đây là một hướng phát triển cho mô hình xây dựng giao diệnvới sự tham gia trợ giúp hiệu quả của agent giao diện đối với người dùng

Trang 26

1.2 Cơ sở lý thuyết về Interface Agent

1.2.1 Đại cương về giao diện thông minh

1.2.1.1 Giới thiệu chung

Lĩnh vực nghiên cứu về giao diện người dùng thông minh (intelligent userinterface) bao trùm một lớp các đề tài nghiên cứu khả năng ứng dụng trí tuệ nhân tạo(Artificial Intelligence) và các kỹ thuật dựa trên tri thức (knownledge based) giải quyếtcác vấn đề thuộc phạm vi nghiên cứu của tương tác người máy (human - computerinteraction)

Các ứng dụng máy tính phát triển ngày càng nhanh, tính phức tạp của chúngcũng tăng theo Việc sử dụng các hệ thống phần mềm trí tuệ nhân tạo đã bắt đầu đạtđược khả năng suy luận và tự đưa ra các quyết định Các ứng dụng cao cấp thường cómột số lượng lớn các thông tin cần được hiểu và diễn đạt Bên cạnh đó chúng còn cócác cấu trúc công việc phức tạp, các đặc tính đòi hỏi hiệu suất thời gian thực, kết hợpkhả năng tự trị và bán tự trị vốn là các đặc tính cơ bản của agent Các đòi hỏi này đặt

ra nhiều yêu cầu đối với hệ thống tương tác người máy Các yêu cầu này ngày càngvượt quá khả năng phục vụ của các giao diện truyền thống vốn không thành côngtrong việc phản ánh ngữ nghĩa của các chức năng phục vụ người dùng và các vấn đềcông việc Điều đó có nghĩa là với một công việc, người dùng không phải lúc nào cũng

có thể sử dụng một cách dễ dàng mà không cần những trợ giúp từ hệ thống và các tàiliệu hướng dẫn

Giao diện người dùng thông minh được phát triển nhằm giải quyết những khókhăn trên và đặc biệt là với các vấn đề về mặt ngữ nghĩa của các từ vựng được dùngtrong các giao diện Giao diện thông minh có thể giúp cho người dùng truy cập tới cácthông tin hoặc giải quyết các vấn đề, các công việc phức tạp bằng cách hiểu các trithức, các nhận thức sai, mục đích và các kế hoạch của người dùng

1.2.1.2 Phạm vi nghiên cứu

Thông thường, ứng dụng yêu cầu một giao diện thông minh, linh hoạt có thể

Trang 27

khá đa dạng và biến đổi nhanh chóng Danh sách sau là tập hợp một số kỹ thuậtthường được áp dụng trong giao diện thông minh:

Thích nghi với người dùng (User adaptivity): kỹ thuật này cho phép

tương tác giữa người dùng và hệ thống có khả năng thích nghi với các điềukiện môi trường người dùng khác nhau và các tình huống sử dụng khácnhau

Mô hình hoá người dùng (User modelling): kỹ thuật này cho phép một hệ

thống theo dõi, ghi nhận các hành động, thói quen của người dùng và duy trìđược các tri thức này phục vụ một số tiện ích nhằm nâng cao tương tác, tínhthân thiện của hệ thống giao diện

Công nghệ ngôn ngữ tự nhiên (Natural language technology): kỹ thuật

cho phép một hệ thống biên dịch và sinh các phát biểu, ngôn từ trên ngônngữ tự nhiên ở dạng văn bản hay lời nói

Mô hình hoá hội thoại (Dialogue modelling): Kỹ thuật này cho phép một

hệ thống duy trì một hội thoại ngôn ngữ tự nhiên với người dùng, có thểtrong sự kết hợp với các phương tiện tương tác khác (hội thoại đa hình thức

- multimodal dialogue)

Sinh các lời giải thích (Explanation generation): Kỹ thuật cho phép một

hệ thống giải thích kết quả hành động của nó hay các vấn đề có liên quan tớitri thức cho người dùng

Từ các lĩnh vực này, ta có thể tham khảo định nghĩa chung về phạm vi của cácnghiên cứu về giao diện thông minh như sau:

Các lĩnh vực nghiên cứu giao diện thông minh kết hợp các nguyên tắc thiết kế

và các công nghệ nhằm nâng cao hiệu quả tương tác người máy và các nguyên cứu trên giao diện thông minh trợ giúp cho việc mở rộng biên nghiên cứu của cả hai lĩnh vực này (Russel and Wefald's - 1998).

Nếu sử dụng định nghĩa về các lĩnh vực nghiên cứu của giao diện thông minhnày, một số thuộc tính đặc trưng của các đề tài nghiên cứu trên lĩnh vực này có thể baogồm:

Trang 28

 Vấn đề thứ nhất là: một giao diện tốt về hình thức có thể không được coi làmột giao diện thông minh nếu nó không bao hàm các kỹ thuật mà có thểcung cấp khả năng nâng cao chất lượng tương tác người máy.

 Vấn đề thứ hai là lĩnh vực nghiên cứu của giao diện thông minh có liên quantới sự phát triển của hệ thống mà nó thực sự hoạt động Ví dụ như, một môhình trừu tượng của tương tác con người có thể hữu ích cho các nghiên về

xã hội học nhưng không thể đưa nó vào sử dụng trong thiết kế giao diện hayphát triển của một bộ quản lý hội thoại thì nó không thực sự có ý nghĩatrong các lĩnh vực của giao diện thông minh

 Cuối cùng là lĩnh vực nghiên cứu của giao diện thông minh không chỉhướng ứng dụng (application-driven) hay hướng kỹ thuật (technology-driven) mà là sự kết hợp của cả hai Một phương pháp thiết kế giao diện mới

có thể được phát triển một cách tương ứng với sự phát triển của kỹ thuậtmới nhưng một nghiên cứu về công nghệ giao diện cũng có thể được thúcđẩy bởi một phương pháp thiết kế giao diện mới

Hướng dẫn thông minh (Intelligent tutoring) “Một “gia sư” máy tính là

một chương trình mà giúp đỡ đưa ra hình thức “giáo dục” cá nhân cho người dùng trong một lĩnh vực riêng của tri thức” [Theo Shute và Psotka

1994] Chương trình “gia sư” có thể cần để suy luận ra các hiểu biết củangười dùng trong các lĩnh vực thông qua việc phân tích hiệu quả làm việccủa người dùng trong các bài kiểm tra Sự trợ giúp có thể được thực hiệnxen vào một cách chủ động và gợi ý các bước hành động có thể được thực

Trang 29

dùng Trong mọi trường hợp, các câu trả lời có thể được chuẩn bị phù hợpvới những gì mà hệ thống thu nhận được về các yêu cầu của người dùng vàcác thao tác thực hiện thiếu sót Hướng dẫn bị động thường được thực hiệntheo các cách thức khác đi, trong đó người dùng trước tiên sẽ gợi ý tất cảgiải pháp và hệ thống sẽ theo dõi, xem xét những điểm sai hay thay đổi sovới các gợi ý.

Hệ trợ giúp thông minh (Intelligent help) Một hệ trợ giúp cung cấp các

hướng dẫn cho người dùng thực hiện một chức năng nào đó Trợ giúp (help)rất giống với hướng dẫn (tutoring), nhưng mục đích chính của một hệ trợgiúp là chủ yếu tập chung vào những gì hệ thống có và đưa ra các hành độngcần thực hiện chứ không hình thành việc học một vấn đề đó Một điểm khácbiệt nữa trong hầu hết các hệ hướng dẫn (tutoring systems), sẽ bố trí cácchức năng mà người dùng cần làm ra để chẩn đoán những nhận thức sai của

họ Hệ trợ giúp (help system) phải hành động trên trên bất cứ những thôngtin gì mà nó có thể thu nhận được từ các lựa chọn của người dùng tương tácvới hệ thống

Lọc thông tin (Information filtering) Trong nguồn thông tin mở như

Internet, việc phân phối thông tin là tương đối rẻ với người dùng Điều đó

có nghĩa là họ có thể bị ngập trong một lượng lớn các thông tin và do đóviệc trích rút các thông tin cần quan tâm sẽ rất khó khăn Người dùng cầntrợ giúp trong việc lựa chọn các thông tin có liên quan Kỹ thuật lọc và thuthập thông tin cung cấp khả năng trợ giúp cho việc tìm kiếm các thông tinthích hợp, cũng như hỗ trợ cho người dùng trong việc định hướng các khốithông tin và lựa chọn các thông tin thích hợp với họ Công cụ lọc thông tin

có thể dựa trên kỹ thuật xử lý văn bản hay hình ảnh nhưng cũng có thể đượcthiết lập vào quá trình đọc mẫu của các nhóm người dùng để xác định loạingười dùng quan tâm đến từng nhóm thông tin cần thiết đối với họ

Việc phân chia các hệ thống thành các lĩnh vực mà Interface agent có thể hỗ trợchỉ mang ý nghĩa tương đối Một hệ thống thực sự có thể yêu cầu cả 3 hình thức trợgiúp hay có thể là hình thức biến thể của một trong ba hình thức trên

Trang 30

1.2.2 Interface agent trong xây dựng giao diện thông minh

1.2.2.1 Khái niệm Interface agent

Các tương tác người dùng hiện tại vẫn bị chi phối bởi các ràng buộc về các thaotác cần thiết khi sử dụng Chúng có thể bao gồm các thao tác trực tiếp đòi hỏi ngườidùng cần thực hiện, sau đó là ghi nhớ tất cả các công việc cần làm, các thao tác cầnthực hiện để đáp lại các sự kiện xảy ra Việc sử dụng các kỹ thuật từ lĩnh vực nghiêncứu về agent tự trị cung cấp một cách thức bổ sung cho tương tác người máy ở đó máytính trở thành một cộng tác viên thông minh, chủ động

Theo nhóm nghiên cứu ICSTM của dự án MAPPA về tương tác người máy thì:

“Interface agents là những chương trình máy tính mà tận dụng phương pháp trí tuệ nhân tạo để cung cấp các trợ giúp chủ động về việc sử dụng giao diện cho một người dùng của một ứng dụng máy tính đặc biệt nào đó” (trích trong tài liệu “Agent-to- Human interaction – principles” dòng 19).

Phần mềm agent tạo thành một khía cạnh quan trọng khác của quá trình pháttriển giao diện mang tính con người Ý tưởng chủ đạo của kỹ thuật này là hệ thống sẽ

tự động nhân cách hóa nó ví dụ như bằng các thuộc tính sinh động Động cơ thúc đẩycủa hệ thống này là các Interface agent có thể củng cố các kỹ năng giao tiếp của hệthống Ví dụ như các hệ thống giao diện của các trò chơi luôn yêu cầu tính sinh động,linh hoạt cao Nói chung là trong các ứng dụng này, giao diện thường được tạo ra nhưmột hành vi có tính định hướng của hệ thống tương tự một hành vi của con ngườitrước từng tình huống cụ thể mà họ phải đối mặt và xử lý Interface agent có thể thựchiện các hành vi có tính chủ động này bởi bản thân các nó kế thừa khả năng giải quyếtcông việc một cách tự trị và chủ động

1.2.2.2 Vai trò và vị trí của Interface agent

Vai trò của Interface agent là đóng vai trò như một phần tử trung gian(mediator) trong tương tác giữa người dùng và hệ thống và có khả năng nhân cách hoámột giao diện bằng cách hướng dẫn người dùng sử dụng chương trình hay có thể ghinhận các khả năng, sở thích và ý định của người dùng

Trang 31

Một Interface agent cũng có thể là một agent dịch vụ với một nhiệm vụ đặcbiệt Nó cần phải giao tiếp và thương lượng với các agent khác trong hệ thống để cóthể xác định các dịch vụ mà nó cần cung cấp Interface agent có thể giữ các vai tròchức năng khác nhau như agent bán hàng hay quảng cáo Vì các agent phần mềm khácnhau bởi các dịch vụ mà nó cung cấp, interface agent cũng được mô tả theo các nhiệm

vụ mà nó có thể phục vụ con người

 Làm đơn giản và rõ ràng các giao diện người dùng, các thông tin được hiệnthị và các dịch vụ cung cấp

 Cung cấp phương pháp cho cho việc nâng cao hiệu quả tương tác

 Cung cấp trợ giúp cho việc hiểu ứng dụng theo các khía cạnh: nó hoạt độngnhư thế nào (how it functions)

- Cung cấp các hỗ trợ về công việc, kế hoạch cho người dùng

- Biểu thị các thông tin hiệu quả hơn bằng cách nhân cách hoá các giaodiện người dùng

Như đã trình bày, vai trò của Interface agent là làm phần tử trung gian giữa hệthống và người dùng do đó vị trí của Interface agent cũng được xác định thông qua vaitrò này Hình 4 thể hiện vị trí của Interface agent trong hệ thống ứng dụng

Tầng giao diện(User interface layer)

(Ngôn ngữ tự nhiên, GUI, )

Interface agent Interface agent

Tầng thao tác (Bussiness layer)

(Hành động, thao tác, )

Agent chức năng 1 Trao đổi kết quả Agent chức năng 2

Tầng dữ liệu (Datbase layer)

Agent cơ sở dữ liệu

Hình 4: Vị trí của Interface agent trong hệ thống xây dựng giao diện

Trang 32

1.2.3 Interface Agent trong các hệ thống trợ giúp

Vấn đề then chốt trong tương tác, các hệ thống thông minh cần có một giaodiện mà cho phép các tri thức có thể đưa vào trong hệ thống Một giao diện thôngminh là giao diện có các thành phần giao diện cho phép người dùng có thể nhận đượccác hướng dẫn từ hệ thống một cách tự động Intelligent agent có thể đảm nhiệm rất tốtnhiệm vụ này Các agent có thể nhận các chỉ dẫn về công việc mà họ cần thực hiện vềmột lĩnh vực nào đó Các chỉ dẫn này như các tri thức có tính chất lĩnh vực đặc thù Ví

dụ khi tạo ứng dụng truyền file FTP người phát triển có thể mô phỏng các công việc

mà người dùng cần thực hiện như: login, chọn file,…Sau đó các agent có thể sử dụngcác tri thức này để hướng dẫn các người dùng thực hiện thao tác trên ứng dụng trongkhi sử dụng

Các hệ thống như vậy gọi là những hệ thống agent có thể tính chất hướng dẫn

(teachable agent) Một hệ thống agent có thể được học thông qua nhiều hình thức.

Chúng có thể học được thông qua các tri thức được cung cấp dưới dạng các dữ liệudùng để xây dựng hệ thống Một cách khác là chúng học thông qua việc xử lý cáctương tác với con người

Khái niệm agent giao diện tương tác (Collaborative interface agent)

Một khái niệm về mô hình agent phần mềm được gọi với tên agent giao diệntương tác (Collaborative interface agent) được mô tả bằng hình vẽ sau

Ứng dụng

Giao tiếp Theo dõi

Interface agent Người dùng

Hình vẽ này mô hình hoá mối quan hệ của 2 người cộng tác đề thực hiện mộtcông việc có liên quan tới một công cụ chung hay một đối tượng chung Ví dụ như haingười công nhân sửa xe ô tô cùng làm việc với một động cơ ôtô hay hai người dùng

Trang 33

Một agent giao diện tương tác là một chương trình phần mềm mà trợ giúp chongười dùng giải quyết các vấn đề đặc biệt là đối với các lĩnh vực phức tạp và khôngthân thiện với con người Agent giao diện tương tác có thể thực hiện khả năng nàybằng cách sửa lỗi, gợi ý các bước tiếp theo cần thực hiện và quản lý cho các chi tiếtthực hiện ở các mức thấp hơn Một agent giao diện tương tác có thể được thêm vàomột hệ thống giao diện đồ hoạ người dùng hiện tại như một phần mềm phụ hay tíchhợp vào trong thiết kế các thiết bị phần cứng như các dụng cụ gia đình.

Chú ý rằng agent phần mềm có khả năng giao tiếp và theo dõi các hành độngcủa các người dùng và ngược lại Yếu tố chủ yếu dẫn tới sự thành công của cộng tác làbiết khi nào một hành động được thực hiện Trong mô hình agent giao diện thôngminh nó có thể được xảy ra theo cả 2 cách: cả bằng cách thông truyền thông thông báo(“Tôi đã thực hiện việc X”) hay bằng các theo dõi trực tiếp Việc theo dõi có thể đượchiểu là hình thức agent phần mềm lắng nghe các hành động của người dùng, theo dõicác hành động của người dùng tương tác với ứng dụng và đến lượt mình người dùng sẽchú ý các thông báo mà agent phần mềm đưa ra

Một khía cạnh đối xứng trong mô hình giao diện tương tác là cả người sử dụng

và agent giao diện đều có thể tương tác với ứng dụng Có một số các thiết kế biến thể

về cách thức tương tác của agent với chương trình ứng dụng được thực hiện như thếnào Thường thì agent khảo sát trạng thái của ứng dụng thông qua việc sử dụng cácgiao diện lập trình của ứng dụng (API: Application Programming Interface) Các agent

có thể sửa đổi các trạng thái của ứng dụng thông qua các API hoặc thông qua giao diện

đồ hoạ

Tuy rằng phải một thời gian dài nữa thì tương tác giữa người dùng và Interfaceagent mới có khả năng được thực hiện trên ngôn ngữ tự nhiên nhưng chúng ta hoàntoàn có đủ các căn cứ để bao hàm các khả năng hiểu ngôn ngữ tự nhiên trong hệ thốnghiện tại Những vấn đề thực tiễn đã chứng minh rằng việc hiểu ngôn ngữ tự nhiên dù làchỉ trong các giới hạn nhất định cũng là rất khó khăn Đứng trên khía cạnh phươngpháp luận thì lý thuyết về tiếng nói luôn định ra các vấn đề truyền thông tương tác ởcác mức cơ bản bất chấp ngôn ngữ được dùng là ngôn ngữ gì

Trang 34

1.2.4 Interface Agent trong hệ thống sinh giao diện tự động

Giao diện chương trình thường được xây dựng bằng các thiết kế các màn hìnhmẫu và tiến hành cài đặt các chức năng bằng cách sử dụng một thư viện hỗ trợ xâydựng giao diện đồ hoạ như Swing của Java để lập trình và sau đó cài đặt các tiến trìnhchạy nền trên màn hình đó

Hạn chế của phương này được thể hiện rõ ràng là việc tạo giao diện mang tínhchất tĩnh Các giao diện thường không thể đáp ứng được các thay đổi của người dùngtrong một số ứng dụng, đặc biệt là các ứng dụng games khi mà các tình huống tươngtác của người với máy là rất lớn và không thể thiết kế được đủ hết các giao diện cầnthiết

Ta có thể minh hoạ thông qua ví dụ về trò chơi trên máy tính như FIFA2003:đây là một trò chơi bóng đá mang tính chất tương tác giữa người và máy tính Các tìnhhuống xảy ra trên màn hình là rất lớn Ta không thể tạo ra tất cả các giao diện ví dụnhư khi cầu thủ xoạc bóng từ phía sau thì cần tạo hình ảnh ngã của đối phương như thếnào và trường hợp nào thì cần các hình ảnh trọng tài đưa thẻ đỏ, thẻ vàng cho tìnhhuống phạm lỗi đó

Có thể có nhiều giải pháp để xây dựng hệ thống giao diện cho trò chơi này Mộtgiải pháp đưa ra là sử dụng các Interface agent để quản lý các giao diện Các Interfaceagent có thể sử dụng các hình ảnh do các thư viện đồ hoạ hỗ trợ để sinh ra các hìnhảnh như xoạc bóng Điều quan trọng là agent cần phải có các tri thức đầy đủ về các “sựkiện” xảy ra trên ứng dụng Khái niệm “sự kiện” được sử dụng ở đây không đơn thuần

là mang tính chất các sự kiện được sinh ra khi người dùng tương tác với máy tính mà

nó là các sự kiện được sinh ra trên giao diện, được sinh ra như kết quả của một loạt cáchành động của các bên tham gia trò chơi như: khi đối phương xoạc bóng cần tạo sựkiện cho trọng tài phân tích lỗi đó và đưa ra các quyết định, khi đối phương sút bóng

về phía cầu môn cần tạo sự kiện cho thủ môn định hướng và đón nhận, khi đối phươngdẫn bóng về cầu môn cần tạo sự kiện để kéo các hậu vệ ra cản bóng,…

Trang 35

Hình 5 mô tả một cách tiếp cận cho quá trình tạo giao diện của hệ thống phứctạp tương tự với sự trợ giúp của Interface agent tham gia vào một số giai đoạn củacông việc tạo và điều khiển giao diện.

Thư viện sự kiện mẫu

Thư viện hình ảnh đồ hoạ

Sự kiện người dùng

Giao diện

cụ thể Agent

Hình 5: Qui trình tạo giao diện với sự tham gia của agent

Các tham số đầu vào Interface Agent trong hình 5 có thể bao gồm :

 Thư viện hình ảnh đồ hoạ: cung cấp tập hợp các hình ảnh đồ hoạ cho việctạo ra các hình ảnh trên giao diện người dùng

 Thư viện các sự kiện mẫu: Cung cấp các định nghĩa về sự kiện, ví dụ như sựkiện click chuột được kích hoạt khi nào, khả năng bắt sự kiện đó khi nó xảy

ra và khả năng thao tác trên các đối tượng sinh ra các sự kiện đó Như đãtrình bày trên, sự kiện được định nghĩa một cách khá đã dạng và là kết quảcủa các tương tác xảy ra giữa các bên tham gia ứng dụng hay cũng có thể làkết quả của các hành động được thực hiện bởi con người hay máy tính

 Các sự kiện xảy ra trên giao diện người dùng

Nhờ việc sử dụng các thư viện sự kiện, Interface agent sẽ có khả năng bắt đượccác sự kiện xảy ra trên giao diện người dùng Bởi vậy khi nhận được các thông tin về

sự kiện xảy ra trên giao diện, Interface agent sẽ tiến hành phân tích và quyết định đưa

ra các giao diện cụ thể Việc quyết định này được thực hiện dựa trên các tri thức màagent đã được cung cấp sẵn và cách khả năng xử lý, tìm kiếm và phân loại hình ảnhđược thực hiện trên thư viện hình ảnh

Trang 36

 Sự có mặt của Interface agent sẽ tạo ra một giao tiếp trung gian giữa ngườidùng và hệ thống phần mềm Tương tác của người dùng và hệ thống sẽ đượcthay thế bằng tương tác người dùng và Interface agent Sự có mặt củaInterface agent trong hệ thống giao diện người dùng mở ra khả năng xâydựng phương pháp giải quyết một số những vấn đề liên quan đến tương tácngười máy như giao tiếp người dùng đa hình thức hay hệ thống hỗ trợ ngườidùng

Nhiều ứng dụng được mở ra tận dụng công nghệ lập trình hướng agent trongviệc xây dựng giao diện Trong các phần tiếp theo của báo cáo này sẽ trình bày mộttrong số các ứng dụng của Interface agent thông qua các khả năng:

 Sinh giao diện người dùng theo các đặc tả giao diện

 Tham gia hỗ trợ người dùng trong tương tác của người dùng với hệ thốnggiao diện ứng dụng

Trang 37

CHƯƠNG 2: MÔ HÌNH XÂY DỰNG GIAO DIỆN TƯƠNG TÁC VỚI INTERFACE AGENT

2.1 Qui trình xây dựng giao diện truyền thống

2.1.1 Giới thiệu về qui trình xây dựng giao diện truyền thống

Qui trình xây dựng giao diện truyền thống được đề cập bao gồm

 Quá trình thực hiện của người thiết kế, xuất phát từ yêu cầu về một hệ thốngphần mềm, họ sẽ tiến hành phân tích, thiết kế và đặc tả giao diện tương tácngười dùng

 Trên cơ sở các thiết kế đó, các lập trình viên sẽ tiến hành tạo ra các giaodiện tương ứng

Trong phạm vi nghiên cứu của chương này chủ yếu đề cập đến công đoạn thiết

kế màn hình giao diện tương tác với giả thiết về quá trình phân tích về hệ thống côngviệc đã được thực hiện xong Như vậy đầu vào của hệ thống xây dựng giao diện được

đề cập tới trong chương này là mô hình đặc tả các công việc cần thực hiện của hệthống phần mềm

Mô hình công việc giao diện mẫu Công cụ tạo Đặc tả giao diện Thư viện tạo giao diện

Cài đặt giao diện Ứng dụng

Các công việc chạy nền

Hình 6: Qui trình xây dựng giao diện hướng tác vụ truyền thống

Trang 38

Hình 6 cho ta một qui trình thiết kế giao diện truyền thống có thể được mô tảmột cách ngắn gọn như sau:

 Xuất phát là một yêu cầu về một nhiệm cụ, một công việc cần được thựchiện nhờ máy tính, các nhà thiết kế sẽ tiến hành phân tích các công việc đóthành một cấu trúc công việc Ví dụ: công việc đăng nhập bao gồm nhập tàikhoản và nhấn nút “Đăng nhập” Công việc nhập tài khoản lại bao gồmnhập tên đăng nhập và mật khẩu…

 Với mỗi công việc cụ thể yêu cầu một giao diện, người thiết kế phân tích và

sử dụng một hay một số công cụ để tạo ra các mẫu đặc tả màn hình Các đặc

tả này sẽ là các mẫu giao diện để người lập trình xây dựng theo

 Sau khi tạo ra các màn hình mẫu, nhà thiết kế màn hình sẽ viết các đặc tảmàn hình Các đặc tả này có thể bao gồm:

- Các hành động được thực hiện khi một thao tác được thực hiện

- Sơ đồ chuyển đổi màn hình: mô tả mối quan hệ giữa các màn hình

- Các ràng buộc trên các thành phần cấu thành màn hình: như các ràngbuộc về định dạng dữ liệu được nhập trên các thành phần

- Các thông báo cần thiết khi có các lỗi xảy ra

 Sau quá trình đặc tả giao diện, các lập trình viên có thể dựa trên các đặc tả

đó và sử dụng một hay một số thư viện nào đó để xây dựng và vẽ ra giaodiện này (Ví dụ một giao diện có thể sử dụng các thư viện Swing hay AWTcủa Java để tạo ra giao diện với sự hỗ trợ của một công cụ hỗ trợ xây dựnggiao diện)

 Giao diện nhận được có thể được kết hợp với các tiến trình chạy nền để tạo

ra một màn hình ứng dụng Các tiến trình nền cần có một cơ chế giao tiếp vàtrao đổi dữ liệu thống nhất xác định trước

Ví dụ: các tiến trình cập nhật hoặc kiểm tra dữ liệu trong cơ sở dữliệu khi một nút được nhấn, các công việc kiểm tra sự toàn vẹn dữ liệu,…giao tiếp với các màn hình giao diện thông qua các dữ liệu được chứa trongcác JavaBean

Trang 39

2.1.2 Một số đánh giá về qui trình

Qua các mô tả về qui trình xây dựng giao diện truyền thống trên, ta có thể cómột số đánh giá chung về qui trình này như sau:

Ưu điểm:

- Đây là qui trình xây dựng đơn giản và thông dụng

- Qui trình xây dựng này cho phép tách biệt quá trình cài đặt các tiến trìnhchạy nền với quá trình tạo giao diện người dùng

- Các tài liệu đặc tả và các thiết kế được tạo ra có thể được đọc, hiểu và sửdụng một cách dễ dàng khi phát triển thêm sau đó bởi các nhóm pháttriển khác với điều kiện là các thiết kế đã được chuẩn hoá

Nhược điểm:

- Theo hướng xây dựng này, công việc cần thực hiện cần phải được cácnhà thiết kế phân tích tỉ mỉ, đầy đủ trước khi đặc tả các phân tích đó vàxây dựng giao diện Nếu quá trình xây dựng giao diện hoàn tất mà xuấthiện các nhu cầu mới thêm một hay một số công việc mới xuất hiện thìlúc này các nhà phân tích cần phần tích lại trên cơ sở bổ sung vào cácphân tích đã có sau đó các lập trình viên cần phải trực tiếp sửa vào mãchương trình nguồn để có được các tính năng bổ sung theo đúng yêu cầu

- Với một giao diện thường có rất nhiều các yêu cầu, các ràng buộc và cácthao tác phụ trợ nếu cần Ví dụ các thông báo lỗi, các hướng dẫn sử dụngchương trình theo từng bước thực hiện để đặt được kết quả Với hướngtiếp cận này, người thiết kế cần phải tiên liệu trước mọi thao tác cần để

xử lý các tính huống xảy ra trên theo tác của người dùng từ đó đặc tả lại

để cho lập trình viên có thể thực hiện cài đặt đầy đủ Điều này đòi cácnhà thiết kế cần có những hiểu biết tường tận và đầy đủ về tất cả các tínhhuống xảy ra Một khó khăn nữa là không phải lúc nào các ràng buộc,các thao tác hỗ trợ này cũng cần thiết Có thể lúc này nó cần thiết nhưngsau một thời gian nó lại trở nên không cần thiết nữa Như vậy mỗi khi có

Trang 40

các thay đổi về các thao tác hỗ trợ thì lại yêu cầu lập trình viên sửa lại

mã chương trình nguồn của mình cho phù hợp với nhu cầu Việc thayđổi này có thể gây ra những khó khăn nhất định đối với các lập trìnhviên

Ví dụ: chương trình quản lý đăng ký xe máy trước đây chỉ hỗ trợcho việc nhập liệu các biển sổ xe với 3 chữ số Nếu nhập đến 4 chữ số sẽ

có các báo lỗi Sau một thời gian, số lượng xe đăng ký ngày càng tăng vàdẫn tới kết quả là biển số xe có 4 số Như vậy, muốn hệ thống này tiếptục hoạt động được cần thay đổi theo tuỳ theo khả năng xây dựng có linhhoạt hay không của chương trình Nếu chương trình được xây dựng tốt,tham số này có thể được đặc tả như các đầu vào có thể thay đổi được.Ngược lại nếu tham số này được mã hoá cứng nhắc trong khi lập trình,lập trình viên có thể phải thay đổi lại mã chương trình nguồn

- Trong các hệ thống, các ứng dụng phức tạp với một giao diện khôngthực sự thân thiện với hầu hết các người dùng thường xuất hiện các nhucầu xây dựng hệ thống trợ giúp sử dụng cho người dùng Với phươngpháp xây dựng này, cần có một hệ thống riêng để hỗ trợ cho quá trìnhnày Nhưng hệ thống đó cần được xây dựng một cách linh hoạt để nó cóthể sử dụng mọi màn hình ứng dụng

Qui trình xây dựng giao diện công việc truyền thống hiện nay được sử dụngrộng rãi Đây là một trong những bước thực hiện trong qui trình xây dựng phần mềm.Tuy vậy qui trình xây dựng này có một số hạn chế nhất định và tỏ ra không hiệu quảtrong việc giải quyết các nhược điểm trên Nếu không nó cũng làm cho việc thực hiệncác công việc này trở nên cồng kềnh, khó cài đặt

Để khắc phục các nhược điểm này, qui trình thiết kế giao diện hướng công việctheo mô hình đặc tả công việc (hay đặc tả tác vụ) với sự tham gia điều khiển củaInterface agent là một trong những giải pháp khắc phục Phần tiếp theo của đồ án sẽnghiên cứu mô hình áp dụng Interface agent và các đặc tả vào quá trình xây dựng giao

Ngày đăng: 24/04/2015, 22:05

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w