ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN NGỌC KHẢI
NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM
VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP
LUẬN VĂN THẠC SĨ
NGHIÊN CỨU VỀ TÁC TỬ PHẦN MỀM
VÀ ỨNG DỤNG VÀO BÀI TOÁN ĐẶT LỊCH HỌP
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60.48.10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS. NGUYỄN VIỆT HÀ
Hà Nội - 2010
mọi điều kiện giúp đỡ tôi trong xuốt quá trình học tập cũng nhƣ quá trình làm
luận văn.
Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của mình,
song luận văn chắc chắn không tránh khỏi thiếu sót, tôi rất mong nhận đƣợc các
ý kiến đóng góp, ý kiến phê bình của các thầy cô giáo, của các bạn đồng nghiệp
để tôi tiếp tục nghiên cứu và hoàn thiện hơn luận văn của mình.
Xin chân thành cảm ơn !
Hà Nội, tháng 10 năm 2010
Học viên
Nguyễn Ngọc Khải
MỤC LỤC
MỞ ĐẦU 1
CHƢƠNG 1: TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ 3
1.1. Tác tử phần mềm 3
1.1.1 Khái niệm tác tử phần mềm 3
1.2.2 Tƣơng tác trong hệ đa tác tử 11
1.2.3 Các lợi thế của các hệ thống đa tác tử 12
1.2.4 Lĩnh vực áp dụng các hệ thống đa tác tử 13
CHƢƠNG 2: KỸ NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ 14
2.1 Cách tiếp cận phát triển hệ đa tác tử 14
2.1.1 Cách tiếp cận theo tác tử 14
2.1.2 Cách tiếp cận phát triển từ phƣơng pháp hƣớng đối tƣợng 15
đến các thành viên của cuộc họp đôi khi rất khó khăn. Thông thƣờng hiện nay
ngƣời tổ chức thƣờng phải đàm phán bằng điện thoại hay email với các thành
viên để thống nhất lịch họp. Giải pháp này chỉ có tác dụng khi số ngƣời tham gia
là ít, còn đối với các cuộc họp có đông ngƣời tham gia thì thƣờng phải cố định
một thời gian cụ thể và yêu cầu các thành viên phải tuân theo. Điều này không
những làm ảnh hƣởng đến công việc của các thành viên mà đôi khi còn làm ảnh
hƣởng đến hiệu quả công việc của cơ quan.
Để giải quyết vấn đề trên, chúng ta cần một hệ thống đặt lịch họp tự động
để tìm ra thời gian tổ chức cuộc họp cho phù hợp nhất dựa trên ràng buộc của
cuộc họp và lịch biểu cá nhân của các thành viên.
Vấn đề đặt ra là hệ thống phải đảm bảo đƣợc các yêu cầu về bảo mật các
thông tin cá nhân có trong lịch biểu của các thành viên, phải đảm bảo cho ngƣời
dùng sử dụng hệ thống thuận tiện mọi lúc mọi nơi. Để đảm bảo đƣợc các yêu
cầu trên chúng ta bắt buộc phải lƣu trữ dữ liệu của các thành viên phân tán trên
các máy tính cá nhân của họ và sử dụng các chƣơng trình mang các thuật toán
đến các máy tính đó để tính toán và mang kết quả về. Để thực hiện đƣợc ý tƣởng
này chúng tôi nhận thấy sử dụng công nghệ tác tử là một giải pháp hợp lý nhất.
Công nghệ tác tử là một công nghệ có nhiều ƣu điểm nổi bật so với các công
nghệ hiện thời, đặc biệt trong lĩnh vực xử lý phân tán. Công nghệ tác tử cũng là
một công nghệ mới hứa hẹn nhiều tiềm năng trong lĩnh vực công nghệ phần
mềm, tuy nhiên chúng cũng còn nhiều thách thức đang chờ đợi chúng ta giải
quyết. Đó cũng chính vì các lý do mà tôi lựa chọn đề tài này để thực hiện trong
luận văn của mình.
Nội dung chính của luận văn bao gồm các vấn đề sau: Tìm hiểu các khái
niệm cơ bản về công nghệ tác tử, các hệ thống đa tác tử. Tìm hiểu về quy trình
phát triển phần mềm hƣớng tác tử. Xây dựng các giải pháp cho bài toán đặt lịch
họp dựa trên công nghệ tác tử và các kết quả thực nghiệm của các giải pháp đó.
2
Với nội dung trên luận văn đƣợc bố cục bao gồm bốn chƣơng nhƣ sau:
công nghệ tác tử tỏ ra là công nghệ tiên tiến nhất hiện nay.
1.1.2 Các đặc tính của tác tử
Tác tử có các đặc tính chính nhƣ sau [9]:
– Tính tự trị: là khả năng tự kiểm soát bản thân của tác tử sau khi đƣợc
giao việc mà không cần sự can thiệp nào của ngƣời dùng hoặc của tác tử khác.
– Tính di động: là khả năng di chuyển từ môi trƣờng thi hành này sang
môi trƣờng thi hành khác của một tác tử. Khả năng di động của một tác tử đƣợc
phân thành hai loại: di động mạnh (strong mobility) và di động yếu (weak
mobility). Di động mạnh là khả năng mà hệ thống có thể di chuyển cả mã
chƣơng trình và trạng thái thi hành của tác tử đến một môi trƣờng khác. Di động
yếu là khả năng mà hệ thống chỉ có thể di chuyển mã chƣơng trình giữa các môi
trƣờng thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi
tạo nhƣng trạng thái thi hành thì không thể di chuyển.
– Tính thích ứng: là khả năng mà tác tử có thể thực thi trên những môi
trƣờng lạ, và cảm nhận đƣợc sự thay đổi của môi trƣờng.
4
– Khả năng cộng tác: là khả năng liên lạc, phối hợp hoạt động của các
tác tử với các tác tử khác của cùng môi trƣờng hay với các loại đối tƣợng khác
trong những môi trƣờng khác.
– Tính chủ động: các tác tử có khả năng thể hiện các ứng xử hƣớng
mục tiêu bằng việc hoàn thành các kế hoạch để thoả mãn các mục tiêu thiết kế.
1.1.3 Tiêu chí phân loại tác tử [14] [24]
Để phân loại tác tử chúng ta có thể căn cứ theo các tiêu chí sau:
+ Theo tính di động của tác tử
+ Theo khả năng suy luận hay phản xạ của tác tử
+ Theo tính chất đặc thù của tác tử
+ Theo vai trò của tác tử.
+ Theo tính lai tạp của tác tử.
– Phân loại tác tử theo tính di động
học tập. Quá trình học tập cũng có thể giúp nâng cao hiệu năng hoạt động của
tác tử.
– Theo vai trò của tác tử
Chúng ta cũng có thể phân loại các tác tử theo vai trò riêng của nó do
ngƣời dùng thiết kế. Ví dụ các tác tử tìm kiếm thông tin mạng, tác tử báo cáo,
tác tử biểu diễn, tác tử phân tích và thiết kế, tác tử kiểm tra, tác tử đóng gói và
tác tử trợ giúp vv.
– Theo tính lai tạp của tác tử
Trên thực tế, để nâng cao hiệu năng của tác tử ta thƣờng kết hợp hai hay
nhiều mô hình tác tử khác nhau trong cùng một tác tử để tạo ra các tác tử lai.
Việc phân biệt các tác tử theo các tiêu chí trên cũng chỉ mang tính chất
tƣơng đối, có những tác tử trong hoàn cảnh này thì coi chúng là tác tử di động,
trong hoàn cảnh khác thì lại coi chúng là tác tử tĩnh, … vì vậy, tùy từng trƣờng
hợp cụ thể mà chúng ta phân loại tác tử và sử dụng các tiêu chí phân loại cho
phù hợp.
Để hiểu rõ hơn về cách phân loại này, phần tiếp theo chúng ta sẽ xem xét
chi tiết các loại tác tử này.
1.1.4 Các loại tác tử [31]
Dựa vào các tiêu chí phân loại tác tử ở trên chúng ta có các loại tác tử sau:
– Tác tử di động
Tác tử di động là các phần mềm tính toán có khả năng di chuyển trong các
mạng diện rộng, ví dụ nhƣ mạng internet, tƣơng tác với các host khác, thay mặt
cho ngƣời dùng thu thập thông tin và thực hiện các tập công việc đƣợc giao sau
đó quay trở lại báo cáo các kết quả đã đạt đƣợc cho ngƣời chủ. Tập công việc
này có thể ở mức đơn giản nhƣ truy xuất thông tin hoặc phức tạp nhƣ việc điều
6
hành một mạng điện thoại. Tuy nhiên nếu chỉ có tính chất di động thì cũng chƣa
đủ cho thể hiện của một tác tử. Các tác tử di động là tác tử vì chúng còn có tính
tự động và tính hợp tác, mặc dù khác với các tác tử hợp tác. Ví dụ, chúng có thể
cộng tác với các tác tử khác để thực hiện nhiệm vụ. Việc hợp tác với ngƣời dùng
Hình 1.1: Chức năng của các tác tử di động
User
Application
User’s
Agent
Other
Agent
Communicate
Feedback
Asks
Interacts with
Interacts with
Observes
Imitates
7
không yêu cầu một ngôn ngữ trao đổi phức tạp nhƣ trong việc trao đổi thông tin
giữa các tác tử.
Chức năng của các tác tử di động đƣợc mô tả trong hình vẽ dƣới. Trong
đó điểm chủ yếu là các tác tử thuộc loại này cung cấp cơ chế hỗ trợ, thƣờng là
để trợ giúp ngƣời dùng học cách sử dụng một ứng dụng nào đó, nhƣ các bảng
tính hoặc hệ điều hành. Tác tử của ngƣời dùng quan sát và điều hành các hành
động của ngƣời dùng trên giao diện, học các phím nóng mới, và gợi ý các cách
làm tốt hơn để giải quyết công việc. Nhƣ vậy, tác tử của ngƣời dùng hoạt động
một cách tự động, nhƣ một trợ lý cùng hợp tác với ngƣời dùng hoàn thành công
việc trong ứng dụng. Để có thể trợ giúp ngày càng tốt hơn cho ngƣời dùng, các
tác tử giao diện học tập theo bốn cách:
+ Thông qua quan sát và bắt trƣớc ngƣời dùng (học từ ngƣời dùng)
+ Thông qua các thông tin hồi đáp tích cực hoặc tiêu cực từ ngƣời dùng
+ Nhiệm vụ đƣợc phân rã trƣớc khi đƣợc giao cho mỗi tác tử.
+ Các tác tử phản xạ có xu hƣớng hoạt động trực tuyến tƣơng
ứng với dữ liệu mà nó nhận đƣợc từ môi trƣờng.
– Tác tử lai
Trong các phần ở trên ta đã nhắc đến năm loại tác tử: tác tử di động, tác tử
hợp tác, tác tử giao diện, tác tử thông tin và tác tử phản xạ. Mỗi loại trong số
chúng đều có những điểm mạnh cũng nhƣ các khó khăn riêng, các nhà phát triển
luôn muốn tạo ra các thực thể có tối đa các lợi thế, đồng thời giảm thiểu các khó
khăn. Để thực hiện điều này ngƣời ta thƣờng phải áp dụng mô hình tiếp cận kiểu
kết hợp nhiều mô hình. Vì vậy các tác tử đƣợc tạo ra theo phƣơng pháp này là sự
kết hợp của hai (hoặc nhiều hơn) mô hình tác tử.
– Tác tử thông minh
Tác tử thông minh là các thực thể phần mềm thực hiện một tập hợp các
thao tác nhân danh ngƣời sử dụng hoặc một chƣơng trình khác với mức độ độc
lập hoặc tự chủ nhất định, sử dụng một số tri thức và hình dung về mục đích và
yêu cầu của ngƣời sử dụng.
Việc phân chia thành các loại tác tử này cũng chỉ mang tính chất tƣơng
đối và đƣợc mô tả nhƣ trong hình vẽ 1.2 Hình 1.2: Phân loại tác tử [31]
cooperate
đặc biệt một số game đối kháng nhƣ: bóng đá, cờ vua, cờ tƣớng, … trong đó mỗi
nhân vật đƣợc mô phỏng bởi một tác tử.
– Trong quân sự:
Trong quân sự tác tử thƣờng đƣợc sử dụng để mô phỏng quân số, trang bị,
hệ thống chỉ huy, đồng bộ các đối tƣợng này theo kế hoạch tác chiến chung.
1.1.6 So sánh tác tử và đối tƣợng
Mặc dù có những sự gống nhau nhất định song tác tử và đối tƣợng có
cách tiếp cận khác nhau khá quan trọng.
– Đối tƣợng thì bị động nhiều hơn: Để đối tƣợng thực thi một nhiệm vụ
thì trƣớc đó chúng ta cần phải gửi cho chúng một thông báo.
– Cho dù trong đối tƣợng ta có thể đóng các trạng thái và cách thức
thực hiện các hành vi, song không thể đóng gói sự kích hoạt của các hành vi. Do
đó, bất kỳ đối tƣợng nào đều có thể kéo theo bất kỳ các phƣơng pháp tiếp cận
chung (công khai) của bất kỳ đối tƣợng nào khác, kéo theo mỗi phƣơng thức thì
các hoạt động tƣơng ứng sẽ đƣợc thực thi.
10
– Sự định hƣớng đối tƣợng không cung cấp một tập hợp các khái niệm,
cơ chế thực hiện đầy đủ, phù hợp cho mô hình hệ thống phức tạp: nhƣ trong các
hệ thống chúng ta phải đi tìm kiếm và xây dựng các đối tƣợng, các lớp và modul
cung cấp những thuộc tính cần thiết song thiếu sự trừu tƣợng hoá.
– Tác tử có các khái niệm về tính chủ động bền vững hơn so với đối
tƣợng, và trong trƣờng hợp riêng, chúng tự quyết định có thực hiện hay không
một hành động nào đó từ một yêu cầu từ tác tử khác.
– Tác tử thông minh: thể hiện ở tính phản xạ, tính chủ động, hành động
hƣớng mục đích và linh hoạt.
– Tác tử chủ động: một hệ thống đa tác tử vốn là hệ thống đa luồng,
trong đó mỗi tác tử đƣợc giả thiết để điều khiển ít nhất một luồng.
1.1.7 Lợi ích của công nghệ tác tử
Ứng dụng công nghệ tác tử sẽ có một số lợi ích chính sau:
Việc xử lý tính toán trên mạng phần lớn là không đồng nhất vì sự đa dạng
về phần cứng và phần mềm đƣợc sử dụng. Do tác tử di động độc lập với phần
cứng, hệ điều hành và tầng vận chuyển, chỉ phụ thuộc vào tầng thi hành, nên
chúng cung cấp một điều kiện tối ƣu cho việc liên kết các hệ thống không đồng
nhất.
– Mạnh mẽ và chế ngự lỗi cao
Với khả năng phản ứng năng động, với những sự kiện và những thay đổi
bất lợi từ môi trƣờng, tác tử di động giúp cho việc xây dựng hệ thống mạnh mẽ
và chịu lỗi cao đƣợc dễ dàng hơn.
1.2. Hệ đa tác tử
1.2.1 Khái niệm về hệ đa tác tử
Các tác tử có thể hoạt động và tồn tại trong một số môi trƣờng. Mặc dù có
những trƣờng hợp một tác tử có thể hoạt động có hiệu quả một mình, nhƣng
trong hệ thống các mạng máy tính, các tình huống nhƣ vậy rất hiếm gặp.
Thƣờng gặp là trƣờng hợp các tác tử tƣơng tác với nhau. Hệ thống hay môi
trƣờng mà các tác tử tƣơng tác đƣợc với nhau gọi là hệ thống đa tác tử (multi-
agent). Đây là một môi trƣờng mạng gắn kết một cách tự do các tác tử để giải
quyết một vấn đề mà từng tác tử riêng biệt không giải quyết đƣợc. Việc sử dụng
hệ thống đa tác tử cho phép một vấn đề có thể đƣợc giải quyết một cách phân
tán trên nhiều hệ thống phần mềm và phần cứng khác nhau. Hiện nay, hệ thống
đa tác tử đƣợc coi là cách tốt nhất để mô tả và thiết kế các hệ thống tính toán
phân tán [29].
1.2.2 Tƣơng tác trong hệ đa tác tử
12
Trong một hệ thống đa tác tử, các tác tử phải có hai khả năng cơ bản là
tìm kiếm “đối tác”, tức là các tác tử khác, và hợp tác với chúng để thực hiện
công việc.
Việc hỗ trợ các tác tử trong việc tìm kiếm đối tác đƣợc thực hiện bởi các
tác tử trung gian (middle agent). Các tác tử thông thƣờng sử dụng tác tử trung
13
– Có tính điều chỉnh đƣợc và tính mềm dẻo cao: Hệ thống có thể bổ
sung thêm các tác tử khi phạm vi vấn đề đƣợc mở rộng và không ảnh hƣởng đến
sự hoạt động của các tác tử khác.
– Có chi phí hợp lý: Hệ thống đa tác tử có chi phí hợp lý hơn so với
các hệ thống tập trung do hệ thống đa tác tử có thể đƣợc ghép từ các hệ thống
con đơn giản có giá thành thấp.
– Có khả năng dùng lại: Một số tác tử cụ thể có thể đƣợc phát triển từ
đầu một cách riêng biệt bởi một số chuyên gia trong khi phần còn lại của hệ
thống vẫn đƣợc tiếp tục sử dụng.
1.2.4 Lĩnh vực áp dụng các hệ thống đa tác tử
Các hệ thống đa tác tử thích hợp cho các ứng dụng có những đặc trƣng
sau:
– Có tính phân tán cố hữu: các hệ thống có dữ liệu và thông tin đƣợc
xử lý ở các vị trí địa lý khác nhau, ở các thời gian khác nhau, đƣợc tổ chức thành
các nhóm mà việc truy cập chúng cần các ngữ nghĩa và ngôn ngữ khác nhau (sự
phân tán về ngữ nghĩa) hay đƣợc tổ chức thành các nhóm mà việc truy cập
chúng cần các khả năng về nhận biết, tri thức khác nhau (sự phân tán về chức
năng).
– Có tính phức hợp cố hữu: các hệ thống mà vấn đề chúng cần giải
quyết là quá lớn không thể xử lý đƣợc bằng một hệ thống riêng, tập trung do các
giới hạn về công nghệ phần cứng và phần mềm. Việc mở rộng các hệ thống tập
trung là rất khó khăn, tốn thời gian, tiền của. Hơn nữa việc mở rộng này rất
không bền vững và sẽ không còn tác dụng khi phạm vi vấn đề lại tiếp tục đƣợc
mở rộng. Trong trƣờng hợp này giải pháp tốt nhất là xử lý chúng ở các hệ thống
phân tán, khi này việc ứng dụng hệ thống đa tác tử là một trong những giải pháp
hữu hiệu nhất.
Kết luận
Tác tử và hệ đa tác tử là một lĩnh vực mới trong công nghệ phần mềm, các
các đặc trƣng của tác tử xuất phát từ các nhận định sau:
- Tác tử có những đặc trƣng riêng nhƣ tính tự chủ, tính chủ động và
khả năng phản ứng. Các đặc trƣng này là khác hoàn toàn so với đối tƣợng và tạo
cho tác tử khả năng tƣơng tác chủ động và khả năng suy luận mà các đối tƣợng
không có. Vì vậy, không thể mô hình hóa tác tử bằng cách sử dụng các phƣơng
pháp luận dành cho hƣớng đối tƣợng.
- Tác tử hoạt động nhƣ một xã hội với các luật chi phối riêng nên có
thể xem xét tác tử từ khía cạnh xã hội và sử dụng các khái niệm trừu tƣợng mức
xã hội để mô hình hóa các tác tử trong hệ thống.
Các khái niệm trừu tƣợng mức xã hội đƣợc sử dụng để mô hình hóa tác tử
theo cách tiếp cận này bao gồm tác tử, nhóm, tổ chức, … Mức trừu tƣợng xã hội
đƣợc xem nhƣ là một mức trừu tƣợng cao hơn so với mức đối tƣợng thông
15
thƣờng và phù hợp với việc biểu diễn các tác tử vì xã hội các tác tử bao gồm các
thành phần có tính phản ứng, linh hoạt và tƣơng tác chủ động.
Dựa trên các khái niệm trừu tƣợng mức xã hội mà phƣơng pháp luận này
định nghĩa các bƣớc, các pha của toàn bộ quá trình phát triển hệ thống. Thông
thƣờng, với cách tiếp cận này, quá trình phát triển hệ thống đƣợc phân thành hai
pha tách biệt: pha phân tích và pha thiết kế. Pha phân tích tƣơng ứng với mô
hình tổ chức, pha thiết kế ứng với mô hình tác tử. Tiêu biểu cho các phƣơng
pháp luận thuộc loại này là các phƣơng pháp: Gaia, SODA, AALAADIN,…
2.1.2 Cách tiếp cận phát triển từ phƣơng pháp hƣớng đối tƣợng
Khác với cách tiếp cận trên, cách tiếp cận phát triển từ phƣơng pháp
hƣớng đối tƣợng dựa trên quan điểm cho rằng các kỹ thuật đã đƣợc phát triển và
đƣợc áp dụng rộng rãi cho kỹ nghệ phần mềm hƣớng đối tƣợng có thể đƣợc mở
rộng cho các hệ phần mềm hƣớng tác tử.
Cách tiếp cận này xem mỗi tác tử cũng là một đối tƣợng nhƣng ở mức
trừu tƣợng cao hơn. Các công cụ sử dụng để biểu diễn đối tƣợng và phân tích
thiết kế hệ thống hƣớng đối tƣợng nhƣ UML hoàn toàn có thể mở rộng để biểu
pháp triển phần mềm hƣớng đối tƣợng. So với các phƣơng pháp luận khác,
phƣơng pháp này có ƣu điểm là dễ dàng hơn cho những ngƣời đã quen với phát
trển phần mềm hƣớng đối tƣợng và tích hợp đƣợc phát triển ontology trong quá
trình phát triển hệ đa tác tử [11].
2.2.1 Đặc điểm của phƣơng pháp luận MaSE [7] [11]
MaSE là phƣơng pháp luận để phân tích và thiết kế các hệ phần mềm
hƣớng tác tử đƣợc phát triển bởi nhóm nghiên cứu thuộc viên công nghệ Hàng
không Hoa Kỳ (Air Force Intistute of Technology - AFIT).
Trong cách tiếp cận xây dựng phƣơng pháp luận phát triển hệ đa tác tử đã
đƣợc trình bày ở phần trên, MaSE là một phƣơng pháp luận đƣợc phát triển dựa
trên cách tiếp cận hƣớng đối tƣợng. Quan điểm xây dựng của phƣơng pháp luận
này là xem tác tử nhƣ mức trừu tƣợng cao hơn của một đối tƣợng: mỗi tác tử
đƣợc xem là một đối tƣợng đặc biệt. Khác với một đối tƣợng truyền thống trong
đó các phƣơng thức có thể đƣợc gọi bởi các đối tƣợng khác, các tác tử tƣơng tác
với nhau thông qua hội thoại và hành động một cách tự chủ để hoàn thành mục
đích của riêng mình cũng nhƣ mục đích chung của hệ thống. Ngoài ra, các tác tử
đƣợc xem nhƣ là một sự khái quát hóa đối tƣợng phù hợp với bài toán cụ thể, nó
có thể có hoặc không có khả năng thông minh. Do đó, các tác tử và các thành
phần không thông minh trong hệ thống đƣợc xử lý tƣơng tự nhƣ nhau. Việc
quan niệm các tác tử nhƣ một mức trừu tƣợng cao hơn của đối tƣợng khiến cho
việc phân tích thiết kế hƣớng tác tử có thể kế thừa từ các phƣơng pháp luận phát
triển phần mềm hƣớng đối tƣợng.
Quá trình phát triển hệ đa tác tử theo MaSE bao gồm hai pha: pha phân
tích và pha thiết kế:
17
– Pha phân tích bao gồm các bƣớc: Xác định Goal, Xác định các Use
Case, Xây dựng Ontology và hoàn thiện Role.
– Pha thiết kế bao gồm các bƣớc: Xác định tác tử, Xây dựng hội thoại,
Hoàn thiện tác tử và Triển khai hệ thống. Sau đây chúng ta sẽ xem xét chi tiết từng bƣớc trong các pha của phƣơng
pháp MaSE
a. Pha phân tích
– Bƣớc 1: Xác định các đích
Đích là một khái niệm để chỉ mục đích mà hệ thống cần đạt đƣợc. Mục
đích của hệ thống ở đây đƣợc nhìn nhận từ quan điểm của hệ thống nghĩa là các
dịch vụ mà hệ thống có thể cung cấp. Đích sẽ đƣợc phân rã thành các đích con,
các đích con này lại đƣợc tiếp tục phân rã.
Triển khai hệ
thống
Yêu cầu
hệ thống
Xác định
các đích
Xây dựng
use case
Xây dựng
ontology
Xây dựng
sơ đồ role
Xác định các
lớp agent
Xây dựng các
phiên hội thoại
Hoàn thiện các
agent
tiếp từ yêu cầu thì phải kết hợp các đích ở mức cao nhất lại thành một đích tổng
thể cho hệ thống. Các đích còn lại có thể phân cấp thành các quan hệ cha con
hoặc ngang hàng bằng cách lặp lại các thủ thục sau:
Bước 1: Các đích đƣợc phân rã từ các đích khác trong bƣớc con trƣớc
phải là đích con với đích cha tƣơng ứng.
Bước 2: Nếu các đích không đƣợc phân rã từ bất kỳ một đích nào (các
đích đƣợc xác định ngay từ ban đầu), để xác định quan hệ cha - con, thì trả lời
câu hỏi “chúng có thực hiện một phần nhiệm vụ cho một đích nào đó không?”.
Nếu có, nó sẽ trở thành đích con của đích mà nó hỗ trợ. Nếu không, phải xem
20
xét lại rằng đích đó có cần thiết cho hệ thống hay không. Nếu không cần thiết thì
nó sẽ bị loại bỏ và ngƣợc lại, nếu cần thiết thì nó sẽ tạo thành một nhánh mới
ngay từ nút gốc của cây đích.
Trong cây đích có thể có bốn loại đích sau:
Đích chung: là một đích đƣợc tạo ra từ các đích ngang hàng (thƣờng là
đích tổng thể của hệ thống)
Đích phi chức năng: là các đích không thực hiện trực tiếp một chức năng
nào của hệ thống, nhƣng là nhân tố kiểm tra tính đúng đắn của hệ thống. Các
đích này thƣờng xuất hiện từ các yêu cầu phi chức năng chẳng hạn nhƣ độ tin
cậy hay yêu cầu thời gian thực cho hệ thống.
Đích đƣợc kết hợp: là các đích đƣợc tạo thành khi kết hợp hai hay nhiều
đích có chức năng giống nhau hoặc tƣơng tự nhau.
Đích bị phân hoạch: là đích đƣợc phân hoạch hoàn toàn. Theo đó, nếu tất
cả các đích con của nó đƣợc hoàn thành thì bản thân nó cũng đƣợc hoàn thành
mà không cần thực hiện thêm nhiệm vụ nào nữa.
– Bƣớc 2: Xây dựng use case
Use case có thể hiểu là các mô tả về hành vi mà hệ thống cần thực hiện
trong một trƣờng hợp cụ thể. Các hành vi này đƣợc xuất phát từ mong muốn của
ngƣời dùng.