Tải bản đầy đủ (.pdf) (66 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (730.94 KB, 66 trang )


ĐẠ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Ĩ





















Hà Nội - 2010


ĐẠ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



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








LỜI CAM ĐOAN

Tôi xin cam đoan kết quả đạt đƣợc trong luận văn là sản phẩm của riêng
cá nhân tôi, không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận
văn, những điều trình bày là của cá nhân tôi hoặc là đƣợc tôi tổng hợp từ nhiều
nguồn tài liệu tham khảo có xuất xứ rõ ràng và trích dẫn hợp pháp.
Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan của tôi.
Hà Nội, tháng 10 năm 2010


Nguyễn Ngọc Khải

LỜI CÁM ƠN

Tôi xin chân thành cám ơn các thầy cô giáo trong khoa Công nghệ thông
tin, trƣờng Đại học Công nghệ đã hƣớng dẫn, giúp đỡ và truyền đạt kiến thức
cho tôi trong xuốt quá trình học tập để hôm nay tôi có thể hoàn thành đƣợc luận
văn của mình.
Đặc biệt tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo PGS. TS. Nguyễn
Việt Hà - là ngƣời đã trực tiếp hƣớng dẫn giúp đỡ tôi về mọi mặt để hoàn thành
luận văn này.
Tôi xin chân thành cám ơn các bạn đồng nghiệp, gia đình và bạn bè đã tạo

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

2.1.3 Cách tiếp cận dựa trên công nghệ tri thức 15
2.2 Phƣơng pháp MaSE 16
2.2.1 Đặc điểm của phƣơng pháp luận MaSE 16
2.2.2 Quy trình phát triển phần mềm hƣớng tác tử 18
CHƢƠNG 3: ỨNG DỤNG TÁC TỬ CHO BÀI TOÁN ĐẶT LỊCH HỌP 33
3.1 Mô tả bài toán đặt lịch họp 33
3.2.1 Giải pháp dữ liệu tập trung xử lý tập trung 34
3.2.2 Giải pháp dữ liệu phân tán xử lý tập trung 35
3.2 Giải pháp ứng dụng công nghệ tác tử 37
3.3.1 Giải pháp thứ nhất 37
3.3.2 Giải pháp thứ hai 40
3.3.3 Một số kỹ thuật liên quan đến hoạt động của tác tử 42
CHƢƠNG 4: THỰC NGHIỆM 46
4.1 Công cụ phát triển thực nghiệm 46
4.1.1 Giới thiệu về JADE 46
4.1.2 Xây dựng hệ thống đa tác tử với JADE 47
4.2 Thực nghiệm 49
4.2.1 Hệ thống thực nghiệm 49
4.2.2 Kết quả thực nghiệm 50
KẾT LUẬN 53
1

MỞ ĐẦU
Trong thời đại công nghiệp hiện nay, tại các công ty, xí nghiệp, trƣờng
học thƣờng xuyên cần tổ chức các cuộc họp, các cuộc hội thảo. Mỗi khi cần tổ
chức một cuộc họp ngƣời tổ chức phải căn cứ trên các điều kiện ràng buộc của
cuộc họp và thời gian biểu của các thành viên để chọn ra một thời gian tổ chức
cuộc họp sao cho phù hợp nhất.
Tuy nhiên lịch làm việc của mỗi thành viên lại rất khác nhau, vì vậy việc
tìm ra những khoảng thời gian để tổ chức cuộc họp sao cho ít ảnh hƣởng nhất

đế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:

Chƣơng 1 trình bày các khái niệm về tác tử phần mềm, hệ đa tác tử, các
đặc điểm của tác tử, cách thức phân loại tác tử, cách thức giao tiếp của các tác tử
trong hệ đa tác tử, các lợi ích và các lĩnh vực có thể áp dụng hệ đa tác tử.
Chƣơng 2 trình bày về các phƣơng pháp tiếp cận hệ đa tác tử và quy trình
phát triển phần mềm hƣớng tác tử MaSE.
Chƣơng 3 trình bày chi tiết về bài toán đặt lịch họp, phân tích và đề xuất
các giải pháp ứng dụng công nghệ tác tử để giải quyết bài toán.
Chƣơng 4 trình bày về thực nghiệm và các kết quả đạt đƣợc khi tiến hành
thực nghiệm các giải pháp đã đề ra trong chƣơng 3. Ngoài ra chƣơng này còn
dành một phần để trình bày về công cụ JADE (Java Agent Development), một
trong các công cụ dùng để triển khai các giải pháp ứng dụng công nghệ tác tử rất
hiệu quả.
3

CHƢƠNG 1
TÁC TỬ PHẦN MỀM VÀ HỆ ĐA TÁC TỬ
Chƣơng này luận văn sẽ trình bày các kiến thức cơ sở về tác tử, hệ đa tác
tử, cách thức phân loại tác tử, các ƣu điểm của công nghệ tác tử, các lĩnh vực có
thể áp dụng công nghệ tác tử. Đây là nền tảng để chúng ta tiếp cận với các vấn
đề liên quan đến tác tử và hệ đa tác tử.
1.1. Tác tử phần mềm
1.1.1 Khái niệm tác tử phần mềm
Cho đến nay vẫn chƣa có một định nghĩa thống nhất về tác tử phần mềm,
tuy nhiên qua tìm hiểu một số khái niệm do các nhà khoa học nghiên cứu về tác
tử phần mềm đề xuất, chúng ta có thể mô tả tác tử phần mềm nhƣ là một đối
tƣợng phần mềm hoạt động một cách tƣơng đối độc lập, tự chủ và có khả năng
cộng tác với nhau trong một môi trƣờng để hoàn thành một nhiệm vụ định trƣớc.
Đặc điểm cơ bản của tác tử là có khả năng đóng gói mã lệnh, dữ liệu và cả trạng
thái thi hành, nhờ vậy có thể chuyển công việc đang thực hiện tại một máy đến
một máy khác [26]. Nhƣ vậy, so với các công nghệ tính toán phân tán trƣớc đây,

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

Theo tiêu chí về khả năng di chuyển giữa môi trƣờng này sang môi trƣờng
khác, giữa các nút mạng này sang nút mạng khác chúng ta có thể phân chia tác
tử làm hai loại: tác tử tĩnh và tác tử động.
– Theo khả năng suy luận hay phản xạ
Tác tử có thể đƣợc phân lớp theo tính suy luận hoặc tính phản xạ của
chúng. Theo tiêu chí này, tác tử đƣợc phân làm hai loại: tác tử suy luận và tác tử
phản xạ.
Các tác tử suy luận bắt nguồn từ mô hình tƣ duy suy luận: các tác tử có
một tập trạng thái trong, mô hình tƣ duy và chúng hoạt động một cách có kế
hoạch và có sự hợp tác với các tác tử khác.
Các tác tử phản xạ thì không có tập trạng thái trong, chúng hoạt động theo
hình thức đáp ứng lại trạng thái hiện thời của môi trƣờng.
– Theo tính chất đặc thù của tác tử
Theo tính chất đặc thù của tác tử thì tác tử có thể đƣợc phân thành bốn
loại: tác tử hợp tác, tác tử hợp tác học tập, tác tử giao diện và tác tử thông minh.
Tác tử có khả năng tự động là các tác tử có khả năng tự thi hành các hành
động mà không cần có sự can thiệp của con ngƣời, thậm chí đôi khi điều này là
không thể đánh giá đƣợc. Các tác tử này có tập trạng thái trong cũng nhƣ tập
mục đích riêng, và chúng hoạt động thay mặt cho ngƣời dùng theo một phƣơng
5

thức nào đó nhằm đạt đƣợc mục đích. Điểm chốt yếu của tính tự động là khả
năng chủ động, nhƣ chúng có khả năng tự khởi tạo công việc chứ không chỉ đơn
thuần đáp ứng lại trƣớc các trạng thái hiện thời của môi trƣờng.
Khả năng hợp tác của tác tử là đặc điểm hết sức quan trọng, để có thể hợp
tác đƣợc các tác tử cần sở hữu các khả năng xã hội, ví dụ khả răng tƣơng tác với
các tác tử khác và có thể là cả con ngƣời thông qua một số ngôn ngữ nào đó.
Cuối cùng, để tác tử thực sự thông minh thì ngoài khả năng phản xạ hay
tƣơng tác với môi trƣờng thì chúng phải có khả năng học tập. Ở đây chúng ta
quan niệm rằng bất cứ một thực thể thông minh nào cũng cần phải có khả nă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ể

hợp tác hoặc trao đổi thông tin thông qua một tác tử khác, chúng có các phƣơng
pháp biết đƣợc các tác tử khác. Bằng cách này một tác tử có thể trao đổi thông
tin với các tác tử khác mà không phải truyền đi tất cả các thông tin về mình.
Điều này hết sức quan trọng vì việc nhận biết công cộng về các tác tử cũng đồng
nghĩa với các tác tử di động. Các chức năng của tác tử di động đƣợc mô tả nhƣ
trong hình vẽ 1.1








– Tác tử hợp tác
Các tác tử hợp tác nhấn mạnh vào tính tự động và cộng tác với các tác tử
khác để thực hiện nhiệm vụ đƣợc giao. Tác tử loại này cũng có thể học, nhƣng
khía cạnh này không là đặc điểm nổi bật trong hoạt động của chúng. Để đảm
bảo đƣợc tính hợp tác, các tác tử này phải thƣơng lƣợng và có đƣợc sự chấp
nhận của các tác tử khác về một số khía cạnh nào đó trƣớc khi thực hiện công
việc của mình.
Một số tính chất chủ yếu của tác tử hợp tác: tính tự động, khả năng xã hội,
khả năng hồi đáp và chủ động. Do đó, tác tử loại này có thể hoạt động tự động
và nối tiếp trong môi trƣờng đa tác tử. Ngoài ra các tác tử hợp tác thƣờng không
thực hiện những quá trình học tập phức tạp.
– Tác tử giao diện
Tác tử giao diện nhấn mạnh vào tính tự động và khả năng học tập để thực
hiện nhiệm vụ. Đặc điểm mấu chốt của tác tử loại này là chúng đóng vai chò
nhƣ các trợ lý của ngƣời dùng, cùng hợp tác với ngƣời dùng trong cùng một môi
trƣờng làm việc. Đây là điểm khác biệt với tác tử hợp tác, các tác tử hợp tác phải

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

(học từ ngƣời dùng)
+ Thông qua việc nhận các lệnh thực hiện của ngƣời dùng (học từ
ngƣời dùng)
+ Thông qua việc tham khảo lời khuyên từ các tác tử khác (học ngang
cấp)
Việc hợp tác giữa các tác tử loại này, nếu có, chỉ giới hạn ở mức hỏi các
lời khuyên, chứ không ở mức thƣơng lƣợng nhƣ trong trƣờng hợp của các tác tử
hợp tác. Các phƣơng thức học cũng chỉ thƣờng là học “vẹt” (học dựa trên trí
nhớ) học thông qua các phƣơng trình tham số.
– Tác tử thông tin
Sự xuất hiện của các tác tử loại này là do nhu cầu về các công cụ trợ giúp
trong việc khai thác lƣợng thông tin ngày càng lớn nhƣ hiện nay. Các tác tử
thông tin thực hiện các công việc nhƣ quản trị, xử lý hoặc sƣu tập thông tin từ
rất nhiều nguồn phân tán.
Tuy nhiên phải lƣu ý rằng rất có thể các tác tử loại này có các tính chất
trùng lặp với những loại đã nêu trên, nhƣ tác tử giao diện hoặc tác tử hợp tác.
Điều này là không thể chánh khỏi vì khi đƣa ra các định nghĩa trƣớc về tác tử ta
dựa trên câu hỏi “chúng là gì”, trong khi đó tác tử thông tin đƣợc định nghĩa với
câu hỏi “chúng làm gì”. Mặc dù tác tử thông tin và tác tử hợp tác có xuất phát
điểm rất khác nhau, tuy nhiên với sự xuất hiện của world wide web và các dịch
vụ gia tăng trên mạng diện rộng mà bây giờ chúng có khá nhiều điểm trùng lặp
với nhau.
8

– Tác tử phản xạ
Đây là loại tác tử đặc biệt, chúng không có các trạng thái trong, hay các
mô hình tƣợng trƣng của môi trƣờng, thay vào đó chúng hoạt động theo kiểu hồi
đáp lại trƣớc trạng thái hiện thời của môi trƣờng. Theo Maes, tác tử phản xạ có
ba đặc điểm nổi bật là:
+ Các chức năng đƣợc thực hiện độc lập.

+ 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


learn



autonomous
collaborative
Learning agent
intelligent agent
collaborative agent
interface agent
9

1.1.5 Một số ứng dụng của tác tử
Công nghệ tác tử có thể đƣợc ứng dụng trong một số lĩnh vực sau [21]:
– Điều khiển quá trình công nghiệp
Tác tử có thể đƣợc ứng dụng để điều khiển các quá trình công nghiệp nhứ:
quá trình truyền tải điện, các hệ quản lý tự động, điều khiển tự động hoá, các hệ
thống quản lý quá trình sản xuất và công nghệ. Trong đó từng công việc hoặc
từng giai đoạn công nghệ đƣợc quản lý bởi một tác tử, các tác tử này có khả
năng liên lạc với nhau để phối hợp, đồng bộ các khâu.
– Điều khiển giao thông, không lƣu
Các nút giao thông đƣợc quản lý bởi các tác tử có khả năng trao đổi thông
tin và tự đƣa ra quyết định để tối ƣu hoá lƣu lƣợng. Trong hàng không, mỗi máy
bay đƣợc biểu diễn bằng một tác tử, các tác tử này có nhiệm vụ liên lạc với đài
điều khiển và các máy bay khác để đƣa máy bay hạ cánh an toàn.
– Trong Y tế:
Trong y tế có thể ứng dụng tác tử để theo dõi tình hình ngƣời bệnh, phối
hợp các bộ phận, các bác sỹ và nhân viên trong một chƣơng trình điều trị chung.
– Trong công nghiệp giải trí:
Tác tử đƣợc ứng dụng rất nhiều trong ngành công nghiệp trò chơi điện tử,

đặ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:

– Làm giảm tải mạng
Tác tử di động cho phép ngƣời dùng gởi nó đến đích và thực hiện xử lý,
trao đổi dữ liệu cục bộ tại đó. Nhƣ thế sẽ góp phần làm giảm những dòng dữ liệu
thô trên mạng. Phƣơng châm thực hiện của tác tử di động là mang xử lý đến nơi
chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý.
– Khắc phục tình trạng trễ
Với các hệ thống với quy mô lớn thông qua mạng sẽ phải chấp nhận một
sự trễ hạn nhất định. Nhƣng tác tử di động có thể khắc phục đƣợc điều này nhờ
vào việc các tác tử có thể đƣợc gửi đi từ một trung tâm điều khiển và hành động
cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của ngƣời điều khiển.
– Gói gọn các giao thức
Khi dữ liệu đƣợc trao đổi trong hệ thống phân tán, việc truyền và nhận dữ
liệu phải đƣợc tuân theo các giao thức nhất định. Các giao thức này đƣợc sở hữu
bởi mỗi máy trong hệ thống. Tuy nhiên, một khi các giao thức phải tiến hóa cho
phù hợp với những yêu cầu phức tạp của ngƣời sử dụng thì chúng bắt đầu trở
nên cồng kềnh, nặng nề và trở thành vấn đề nan giải. Với giải pháp tác tử di
động, các tác tử có thể mang trên mình các giao thức thích hợp và di chuyển tới
các máy ở xa để thiết lập các kênh truyền nhận thông tin tƣơng ứng.
– Có thể thi hành tự trị và không đồng bộ
11

Khi sử dụng tác tử di động, ta sẽ đƣa các tác vụ cần thực hiện vào tác tử,
rồi gửi lên mạng. Sau khi đƣợc gửi đi, tác tử trở nên độc lập thi hành không
đồng bộ và có khả năng tự trị. Sau đó các thiết bị có thể kết nối trở lại để nhận
tác tử về. Nhƣ vậy sẽ khắc phục đƣợc các trƣờng hợp các nút mạng bị gián đoạn
tạm thời, và các lỗi do không đồng bộ.
– Có khả năng thích ứng nhanh
Các tác tử có khả năng cảm nhận nhanh những thay đổi của môi trƣờng
thi hành và tác động trở lại những thay đổi ấy một cách tự động.
– Khắc phục tình trạng không đồng nhất

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

gian để khai báo khả năng của mình hay tìm các tác tử khác cung cấp dịch vụ
mà chúng cần. Một lợi thế của tác tử trung gian là chúng cho phép các hệ thống
đa tác tử có thể hoạt động một cách ổn định khi đối mặt với những vấn đề nhƣ
sự xuất hiện, biến mất hay chuyển động của các tác tử. Dạng tác tử trung gian
phổ biến có dạng “trang vàng” (yellow page). Dạng tác tử này hỗ trợ các tác tử
thông thƣờng trong việc tìm kiếm dịch vụ của các tác tử khác dựa trên những
khả năng đã đƣợc đăng nhập.
Tƣơng tác là một trong những đặc trƣng quan trọng nhất của một tác tử.
Các tác tử thƣờng xuyên tƣơng tác với nhau để chia sẻ thông tin và thực hiện
nhiệm vụ chung. Để tƣơng tác, các tác tử phải sử dụng chung các ngôn ngữ và
giao thức trao đổi, các cấu trúc chung về nội dung thông tin và cùng chia sẻ ngữ
nghĩa.
Ngôn ngữ trao đổi giữa các tác tử ACL (Agent Communication
Language) chủ yếu là ngôn ngữ khai báo đƣợc phát triển dựa trên lý thuyết hành
vi ngôn ngữ (illocutionary acts) nhƣ yêu cầu, mệnh lệnh. Ngôn ngữ khai báo
đƣợc sử dụng phổ biến nhất hiện nay là KQML [15].
Cấu trúc ngữ nghĩa của thông điệp giữa các tác tử đƣợc định nghĩa bởi
bản thể (ontology). Bản thể là các cấu trúc để mô tả khái niệm và quan hệ giữa
chúng trong phạm vi vấn đề. Bản thể mà các tác tử sử dụng để mô tả phạm vi
vấn đề phải có cấu trúc giống nhau. Một khi các tác tử trao đổi các bản thể
chung, chúng sẽ sử dụng các bản thể này để hiểu nhau và thực hiện các hành vi
xác định.
1.2.3 Các lợi thế của các hệ thống đa tác tử
Hệ thống đa tác tử là các hệ thống tính toán phân tán, chúng có các đặc
trƣng nổi bật sau:
– Có tốc độ và hiệu quả xử lý cao: Các tác tử có thể hoạt động theo
kiểu không đồng bộ và song song có thể làm tăng tốc toàn bộ quá trình xử lý.
– Chắc chắn và tin cậy: Sự hƣ hỏng của một vài tác tử sẽ không nhất
thiết làm cho toàn bộ hệ thống không còn hoạt động nữa vì các tác tử còn lại có
thể tiếp quản các phần việc của chúng.

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

khái niệm, định nghĩa về chúng vẫn còn chƣa thật đầy đủ. Tuy nhiên trong
chƣơng này luận văn đã tìm hiểu và sƣu tầm các khái niệm, định nghĩa về chúng
mà đƣợc cộng đồng nghiên cứu về tác tử đánh giá cao. Phân tích các ƣu điểm,
nhƣợc điểm, các lĩnh vực có thể áp dụng. Đây là các kiến thức cơ sở, nền tảng
rất quan trọng không thể thiếu đƣợc để chúng ta tiếp cận, tìm hiểu các vấn đề
liên quan đến tác tử và hệ đa tác tử.
14

CHƢƠNG 2
KỸ NGHỆ PHẦN MỀM HƢỚNG TÁC TỬ
Trong chƣơng này, chúng ta sẽ tìm hiểu về các phƣơng pháp tiếp cận phát
triển hệ đa tác tử để từ đó tìm ra các phƣơng pháp phù hợp với các điều kiện,
hoàn cảnh trong thực tế. Ngoài ra trong chƣơng này luận văn sẽ trình bày chi tiết
phƣơng pháp phát triển hệ đa tác tử MaSE (Multi Agent System Engineering),
đây là một phƣơng pháp phát triển các hệ đa tác tử dựa trên phƣơng pháp phát
triển các hệ thống hƣớng đối tƣợng, đƣợc sử dụng rất phổ biến và có nhiều ƣu
điểm.
2.1 Cách tiếp cận phát triển hệ đa tác tử
Nhu cầu phát triển các ứng dụng phần mềm dựa trên công nghệ tác tử
trong những năm gần đây đã dẫn đến sự ra đời của nhiều phƣơng pháp luận, các
phƣơng pháp luận này chủ yếu dựa vào ba cách tiếp cận [26]: Cách tiếp cận dựa
trên tác tử, cách tiếp cận phát triển từ hướng đối tượng và cách tiếp cận dựa
trên công nghệ tri thức.
Quá trình phát triển một hệ thống phần mềm thông thƣờng bao gồm các
pha chính: Xác định yêu cầu, phân tích, thiết kế, cài đặt và tích hợp. Trong các
pha này thì phân tích và thiết kế hệ thống đƣợc xem là các pha chính thể hiện
quan điểm của ngƣời phát triển hệ thống. Sau đây chúng ta sẽ xem xét đặc điểm
của ba cách tiếp cận này:
2.1.1 Cách tiếp cận theo tác tử
Các nghiên cứu xây dựng phƣơng pháp luận phát triển hệ đa tác tử theo

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

diễn các đặc trƣơng riêng của tác tử. Các nghiên cứu xây dựng phƣơng pháp
luận phát triển từ phƣơng pháp luận hƣớng đối tƣợng tập trung vào các công
việc sau:
- Phát triển các công cụ dựa trên nền tảng sẵn có của hƣớng đối tƣợng
để áp dụng cho hệ đa tác tử, ví dụ nhƣ mở rộng UML thành AUML (Agent
UML).
- Bổ sung các bƣớc, các pha mang tính đặc trƣng của tác tử và công
nghệ tác tử nhƣ đích, vai trò và ontology.
Tiêu biểu cho các phƣơng pháp luận này là các phƣơng pháp luận MaSE,
MASSIVE, KGR, …
2.1.3 Cách tiếp cận dựa trên công nghệ tri thức
Dựa trên quan điểm cho rằng quá trình mô hình tri thức riêng của mỗi tác
tử và sự trao đổi tri thức giữa các tác tử trong hệ thống chính là cơ sở của mọi
hoạt động của hệ thống. Các nghiên cứu theo cách tiếp cận này sử dụng các khái
niệm và quá trình trong công nghệ tri thức để xây dựng nên phƣơng pháp luận
cho hệ đa tác tử.
Các phƣơng pháp luận này tập trung vào các quá trình thu thập tri thức,
mô hình tri thức và lập luận đƣợc sử dụng bởi các thành phần tác tử trong hệ
16

thống phần mềm. Tiêu biểu cho cách tiếp cận này là các phƣơng pháp
CoMMAS, MAS-ComonKADS.
Nhƣ vậy có ba cách tiếp cận trong phân tích và thiết kế hệ đa tác tử. Mỗi
cách tiếp cận lại có những ƣu điểm, nhƣợc điểm riêng. Phần kế tiếp luận văn sẽ
trình bày về phƣơng pháp luận MaSE là một phƣơng pháp sử dụng cách tiếp cận
phát triển từ phƣơng pháp hƣớng đối tƣợng. Đây là một phƣơng pháp có nhiều
ƣu điểm nổi bật.
2.2 Phƣơng pháp MaSE
MaSE (Multi Agent System Engineering) là một trong những phƣơng
pháp luận phát triển phần mềm hƣớng tác tử đƣợc xây dựng dựa trên phƣơng

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.

Tuy nhiên, trong quá trình tiến hành, ngƣời thiết kế có thể chuyển đổi qua
lại giữa các bƣớc một cách tự do để có thể bổ sung các thiếu sót hay điều chỉnh
lại các bƣớc để đảm bảo tính nhất quán và toàn vẹn của hệ thống đang thiết kế.
Toàn bộ quá trình phân tích thiết kế hệ thống theo phƣơng pháp MaSE đƣợc hỗ
trợ bởi bộ công cụ Agent Tool. Mỗi bƣớc đều đƣợc biểu diễn bởi các sơ đồ
tƣơng ứng trong Agent Tool. Bên cạnh đó, bộ công cụ này còn hỗ trợ ngƣời thiết
kế kiểm thử tƣơng tác giữa các tác tử và sinh mã tự động cho hệ thống.
Phần tiếp theo luận văn sẽ trình bày quy trình phát triển hệ phần mềm
hƣớng tác tử theo phƣơng pháp MaSE.

18

2.2.2 Quy trình phát triển phần mềm hƣớng tác tử [8][9][11]
Quá trình phát triển phần mềm hƣớng tác tử theo phƣơng pháp MaSE bao
gồm hai pha: Pha phân tích và pha thiết kế. Mỗi pha gồm có các bƣớc đƣợc mô
tả nhƣ trong hình vẽ 2.1.



















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

Pha phân tích
Pha thiết kế
Hình 2.1: Các bƣớc phát triển hệ thống đa tác tử
19

+ Tập hợp đích:
Bƣớc này thực hiện trích các yêu cầu chức năng có trong tài liệu đặc tả hệ
thống, mỗi yêu cầu chức năng đƣợc mô tả bằng một đích. Các yêu cầu chức
năng đƣợc xác định bằng cách trả lời các câu hỏi: “Hệ thống phải làm gì” mà
chƣa cần quan tâm đến cách thức thực hiện nhiệm vụ đó nhƣ thế nào.
Các đích đầu tiên đƣợc xác định một cách trực quan thông qua việc xác
định mục tiêu cần đạt đƣợc của hệ thống. Các đích tiếp theo đƣợc xác định
thông qua đích trƣớc bằng cách trả lời câu hỏi “muốn đạt đƣợc đích X thì cần
phải có cái gì?”. Quá trình này đƣợc gọi là quá trình phân rã, các đích đƣợc phân
rã từ các đích ban đầu sẽ trở thành các đích con. Sự phân rã sẽ diễn ra với tất cả
các đích đã đƣợc phát hiện nhƣng chƣa đƣợc phân rã.
Quá trình phân rã sẽ dừng lại khi các chức năng con sinh ra không phải là
nhiệm vụ mức hệ thống, nghĩa là không thể đóng vai trò đích của hệ thống. Các
đích không cần phân rã thêm có đặc điểm là khi cố gắng phân rã đích này ta sẽ
phải trả lời câu hỏi “muốn hoàn thành việc này thì cần làm cái gì?”, tức là tìm ra
một cách thức thực hiện đích đó chứ không phải là một đích con.
+ Tổ chức cây đích
Bƣớc con này có nhiệm vụ tổ chức các đích đã xác định trong bƣớc con
trƣớc vào một sơ đồ phân cấp đích. Một sơ đồ phân cấp đích là một đồ thị có
hƣớng và không có chu trình. Trong đó:
Các đỉnh biểu diễn các đích, có tên trùng với tên của đích mà nó biểu
diễn.
Các mũi tên chỉ ra quan hệ đích cha con và quan hệ với các đích khác.
Có hai trƣờng hợp xảy ra: Nếu đã xác định đƣợc đích tổng thể của hệ
thống thì đặt nó ở gốc của cây đích; Nếu đích tổng thể không xác định đƣợc trực

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.

Mục đích của bƣớc này là tạo ra một tập các use case và các sơ đồ dãy
tƣơng ứng nhằm hỗ trợ cho ngƣời phân tích hệ thống phát hiện đƣợc tập các role
ban đầu và các đƣờng truyền thông có thể có trong hệ thống.
Việc sử dụng use case trong MaSE đƣợc kế thừa từ phƣơng pháp phân
tích hƣớng đối tƣợng. Có hai loại use case khác nhau dựa vào hoàn cảnh mà
chúng mô tả:
Use case chủ động: mô tả hành vi của hệ thống trong trƣờng hợp lý
tƣởng, nghĩa là các điều kiện đều thỏa mãn.
Use case bị động: mô tả hành vi mà hệ thống cần thực hiện trong trƣờng
hợp có lỗi, có ngoại lệ hoặc có sự cố nghiêm trọng.
Bƣớc này cũng bao gồm hai bƣớc con là tạo các use case và xây dựng
biểu đồ tƣơng tác tuần tự.
+ Tạo các use case

×