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

Phân tích và thiết kế phần mềm hướng agent sử dụng phương pháp luận MaSE và công cụ agentTool.

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 (839.22 KB, 19 trang )

Phân tích và thiết kế phần mềm hướng agent sử dụng phương pháp luận
MaSE và công cụ agentTool.
Scott A.DeLoach
Học viện công nghệ Không quân
Khoa kỹ thuật máy tính và điện tử
Căn cứ Không quân Wright – Patterson, OH 45433-7765

Tóm tắt
Bài báo này cung cấp cái nhìn tổng quan về công việc đang được thực hiện tại
Học viện công nghệ Không quân về phương pháp luận kỹ thuật các hệ đa agent và
công cụ xây dựng kèm theo là agent Tool. Nghiên cứu tập trung vào tìm hiểu các
phương pháp và kỹ thuật để xây dựng các hệ đa agent cụ thể. Nghiên cứu sử dụng
sự trừu tượng được đưa ra bởi các hệ đa agent để xây dựng các hệ thống phần mềm
phân tán và thông minh.
Giới thiệu: Các hệ đa agent đưa ra nhiều nguyên tắc để nỗ lực xây dựng các ứng
dụng mạnh mẽ, thông minh và phân tán. Tuy vậy, các cách nghĩ và thiết kế phần
mềm truyền thống không phù hợp với mô hình đa agent. Trong vài năm qua, đã có
một vài nỗ lực để xây dựng những hệ thống phần mềm như trên ((Iglesias, Garijo
& Gonzalez 1998). Tuy nhiên, hầu hết các công cụ và các phương pháp luận đều
tập trung vào các kiến trúc agent cụ thể hoặc là không đủ chi tiết để hỗ trợ việc
thiết kế các hệ thống phức tạp. Trong nghiên cứu của chúng tôi, chúng tôi đã phát
triển cả phương pháp luận về một chu trình hoàn chỉnh và đưa ra một môi trường
hỗ trợ việc phân tích, thiết kế và phát triển các hệ thống đa agent hỗn tạp. Phương
pháp luận mà chúng tôi xây dựng được gọi là phương pháp luận MaSE (DeLoach,
Wood, & Sparkman 2000) và công cụ chúng tôi xây dựng để hỗ trợ cho phương
pháp luận đó là công cụ agentTool (Wood & DeLoach 2001).
Trong nghiên cứu của mình, chúng tôi không đưa ra cách nhìn nhận về trí tuệ nhân
tạo của agent theo đó một agent phải có tính tự trị, tính chủ động, tính phản xạ và
tính xã hội. Đối với chúng tôi, agent chỉ là những tiến trình phần mềm đơn giản
giao tiếp với nhau để đáp ứng được đích chung của hệ thống. Thường xảy ra
trường hợp mà các nhiều agent không phức tạp có thể tương tác với nhau như kiểu


nó là hệ thống có hành vi thông minh. Chúng tôi xem các agent như là khái niệm
trừu tượng mà có thể thông minh hoặc không thông minh. Theo cách xem xét này,
chúng tôi xử lý những thành phần thông minh và không thông minh của hệ thống
là ngang bằng nhau trong cùng một framework. Công việc của chúng tôi hướng
đến vấn đề lớn hơn đó là xây dựng các hệ thống có khả năng linh động, phân tán và
phức tạp mà sẽ trở nên phổ biến trong ngành tính toán tương lai. Để xây dựng được
những hệ thống phức tạp này, các agent phân tán phải làm việc một cách hợp tác
với các agent khác trong một môi trường không đồng nhất.
Sycara (Sycara 1998) mô tả 6 vấn đề trong các hệ đa agent đó là:
1. Vấn đề phân rã và giao nhiệm vụ cho các agent riêng rẽ.
2. Phối hợp hoạt động điều khiển và giao tiếp của agent.
3. Làm cho các hệ đa agent hoạt động một cách chặt chẽ.
4. Lập luận về các agent khác và trạng thái phối hợp.
5. Hòa giải xung đột về đích giữa các agent.
6. Xây dựng các hệ thống agent trong thực tiễn.
Nghiên cứu của chúng tôi nỗ lực trả lời cho 6 vấn đề nêu trên, tìm cách để xây
dựng các hệ đa agent thực tế và tạo nên một framework 5 vấn đề đầu tiên. Chúng
tôi sử dụng các khái niệm trừu tượng được đưa ra bởi các hệ đa agent để xây dựng
các hệ thống phần mềm phân tán và thông minh. Để đạt được đích này, phương
pháp luận MaSE đã sử dụng một số mô hình dựa trên đồ thị để mô tả các loại agent
trong hệ thống và giao diện của chúng với các agent khác, cũng như những định
nghĩa độc lập với kiến trúc trong thiết kế bên trong agent.
Kỹ thuật xây dựng hệ đa agent
Nói chung, nghiên cứu của chúng tôi tại Học viện Không quân tập trung vào việc
phát triển các phương pháp luận, các kỹ thuật và các công cụ để xây dựng các hệ
đa agent cụ thể. Cuối cùng, chúng tôi đã xây dựng nên phương pháp luận MaSE về
việc xây dựng các hệ thống đa agent. Phương pháp luận MaSE định nghĩa các hệ
đa agent dưới dạng các lớp agent và cách thức tổ chức của chúng. Chúng tôi định
nghĩa cách tổ chức của chúng về mặt mà những agent nào có khả năng giao tiếp sử
dụng hội thoại. Có hai pha trong phương pháp luận MaSE: pha phân tích và pha

thiết kế. Ở pha phân tích bao gồm 3 bước: Xác định các Goal, xác định các use
case và hoàn thiện các Role.
Bước đầu tiên, xác định Goal tiếp nhận các yêu cầu người dùng rồi chuyển những
yêu cầu đó thành các Goal ở mức cao nhất của hệ thống. Sau khi đã định nghĩa
được các Goal mức hệ thống, chúng ta trích xuất ra những use case mức hệ thống
và định nghĩa ra các sơ đồ tuần tự trong bước xác định use case này. Bước này
cũng định nghĩa tập khởi tạo các Role của hệ thống và các đường giao tiếp. Sử
dụng các Goal hệ thống và các Role được xác định trong các use case, chúng ta
hoàn chỉnh và mở rộng tập Role khởi tạo và định nghĩa ra những tác vụ để đạt
được mỗi Goal trong bước hoàn thiện Role.

Hình 1. Các bước trong phương pháp luận MaSE
Trong pha thiết kế, chúng ta chuyển đổi các mô hình phân tích sang những kiến
trúc hữu ích cho việc thực hiện cài đặt thực tế hệ đa agent. Pha thiết kế gồm có 4
bước: tạo lớp agent, xây dựng các phiên hội thoại, hoàn thiện các agent và thiết kế
hệ thống. Ở bước đầu tiên trong pha này, tạo lớp agent, chúng ta định nghĩa các lớp
agent cụ thể từ những Role đã được xác định ở bước 3 trong pha phân tích. Sau khi
xác định được số lượng và các loại lớp agent, chúng ta có thể xây dựng hội thoại
giữa những lớp agent này hoặc là định nghĩa những thành phần bên trong mà bao
gồm các lớp agent. Sau khi đã hoàn thành định nghĩa cấu trúc hệ thống, chúng ta
định nghĩa việc hệ thống được triển khai như thế nào. Trong bước này, người thiết
kế định nghĩa ra số lượng các agent, vị trí của chúng, và những đối tượng cụ thể
của hệ thống.
Xác định các Goal
Bước đầu tiên trong phương pháp luận MaSE là xác định các Goal. Bước này tiếp
nhận những yêu cầu ban đầu của hệ thống và chuyển nó thành một tập có cấu trúc
bao gồm các Goal hệ thống. Cấu trúc này được thể hiện trong một mô hình phân
cấp Goal (hình 2). Trong phương pháp luận MaSE, một Goal luôn được định nghĩa
là một mục tiêu mức hệ thống. Các mức thấp hơn có thể kế thừa hoặc chịu trách
nhiệm về các Goal, nhưng các Goal luôn có ngữ cảnh mức hệ thống.


Hình 2. Sơ đồ phân cấp Goal
Có 2 bước trong bước xác định Goal là: xác định các Goal và phân cấp Goal. Một
nhà thiết kế có thể xác định các Goal bằng cách rút ra những điều cần thiết trong
tập các yêu cầu. Những yêu cầu này có thể bao gồm các tài liệu kỹ thuật chi tiết,
các yêu cầu người dùng hoặc những đặc tả đã được hình thức hóa. Khi đã xác định
và phát biểu được một cách tường minh thì các các Goal có khả năng ít thay đổi
hơn ở những bước chi tiết và các hoạt động để đạt được chúng ((Kendall, lanivelan
& Klikivayi 1998). Tiếp đó, người phân tích phân tích và tạo cấu trúc phân cấp
Goal vào sơ đồ phân cấp Goal dựa trên những Goal đã được xác định. Trong sơ đồ
phân cấp Goal, người phân tích thực hiện sắp xếp chúng dựa trên độ quan trọng
của Goal. Ở mỗi mức bao gồm những Goal tương đương với nhau về phạm vi.
Người phân tích cũng xác định các Goal con cần có để đạt được Goal cha. Thậm
chí, người phân tích sẽ phải kết hợp mỗi Goal với một Role và một tập các lớp
agent chịu trách nhiệm hoàn thành Goal đó.
Xác định các use case
Bước xác định use case là một bước quan trọng trong việc chuyển đổi các Goal
thành các Role và các tác vụ liên quan. Ở bước này, người phân tích thực hiện vẽ
ra những use case từ những yêu cầu hệ thống và người sử dụng. Use case là những
mô tả về chuỗi các sự kiện mà định nghĩa ra hành vi mong muốn có của hệ thống.
Chúng là các ví dụ về việc hệ thống sẽ hoạt động như thế nào trong một trường
hợp cụ thể. Để giúp cho việc xác định các giao tiếp thực tế cần phải có trong một
hệ đa agent, người phân tích tổ chức lại các use case vào biểu đồ tuần tự (hình 3).
Một biểu đồ tuần tự mô tả chuỗi các sự kiện giữa các Role và định nghĩa ra số
lượng tối thiểu giao tiếp diễn ra giữa các Role. Các Role được định nghĩa ở bước
này tạo nên một tập các Role ban đầu và sẽ được sử dụng để định nghĩa hoàn chỉnh
các Role hệ thống ở các bước sau. Bước tiếp theo, người phân tích sẽ sử dụng
các sự kiện được xác định tại đây để định nghĩa ra các tác vụ và thậm chí là các hội
thoại.
Hoàn chính các Role

Bước 3 trong phương pháp luận MaSE được đưa ra để đảm bảo chúng ta đã xác
định được tất cả các Role và để xây dựng những tác vụ định nghĩa những mẫu giao
tiếp và hành vi. Các Role đã được định nghĩa trong biểu đổ tuần tự là những Role
được xây dựng trong suốt bước xác định use case cũng như bước xác định các
Goal. Chúng ta đảm bảo tất cả các Goal hệ thống đều được tính đến bằng cách kết
hợp mỗi Goal với một Role cụ thể mà được thực hiện bởi ít nhất một agent trong
thiết kế cuối cùng. Một Role là một mô tả trừu tượng của một hàm kỳ vọng của
thực thể, nó tương tự như khái niệm một diễn viên trong vở kịch hoặc một cơ quan
trong một tổ chức (Kendall 1998). Mỗi Goal được ánh xạ sang một Role đơn lẻ.
Tuy nhiên, có những trường hợp chúng ta cần kết hợp nhiều Goal trong một Role
đơn để cho thuận tiện và hiệu quả. Chúng tôi đựa trên các ý tưởng xây dựng phần
mềm tiêu chuẩn như hàm, giao tiếp, thủ tục hoặc sự gắn kết về thời gian. Các yếu
tố khác bao gồm sự phân bổ tự nhiên nguồn lực cho các vấn đề đặc biệt.
Các Role được xác định trong mô hình Role như hình 4:

Hình 4: Mô hình Role
Khi Role đã được định nghĩa, thì tác vụ được tạo. Phần thú vị nhất và cũng là khó
nhất trong việc áp dụng phương pháp luận MaSE là việc chuyển đổi các role thành
các lớp agent và việc định nghĩa các hội thoại và các hành vi nội tại của agent. Để
hoàn thành được công việc này, chúng ta cần có khả năng định nghĩa ra những tác
vụ ở cấp cao mà có thể chuyển đổi được thành những chức năng cụ thể của agent.
Chức năng này giúp chúng ta định nghĩa được các thành phần bên trong của agent
cũng như chi tiết của các hội thoại mà các agent tham gia. Hình 5 chỉ ra phiên bản
chi tiết của mô hình Role theo phương pháp luận MaSE. Các hình bầu dục bên
dưới mỗi Role biểu thị các tác vụ mà Role đó cần phải thực thi để có thể đạt được
goal của nó. Đường nối giữa các node là giao thức giữa các tác vụ. Các giao thức
này định nghĩa một loại các thông điệp giữa các tác vụ cho phép chúng hoạt động
hợp tác với nhau. Mũi tên ở mỗi giao thức chỉ từ tác vụ khởi tạo sang tác vụ đáp
ứng.


Hình 5: Mô hình Role trong MaSE
Chúng ta định nghĩa những tác vụ đồng thời (DeLoach 2001) như là một máy trạng
thái hữu hạn mà chỉ ra những thông điệp được gởi giữa các Role và các tác vụ. Các
tác vụ đồng thời cũng cho phép chúng ta chỉ ra việc xử lý bên trong thông qua
những hoạt động ở các trạng thái. Sử dụng những tác vụ đồng thời, chúng ta có thể
định nghĩa các giao thức tương tác phức tạp và ở mức cao hơn mà cần có sự phối
hợp giữa các agent. Chúng ta cũng chỉ ra rằng chúng ta thực sự có thể kiểm tra
những hành động đúng của những giao thức tương tác trên dựa vào các tác vụ đồng
thời (Lacey & DeLoach 2000a). Một ví dụ về sơ đồ tác vụ đồng thời trong MaSE
mà định nghĩa ra tác vụ Notify User của role AdminNotifier được thể hiện ở hình
6.

Hình 6. Sơ đồ tác vụ đồng thời
Cấu trúc của sự biến đổi được thể hiện dưới đây.
trigger(args1)[guard]/transmission(args2)
Sự biến đổi trên được hiểu là nếu sự kiện trigger được nhận với tham số args1 với
điều kiện biến đổi guar, thì việc chuyển thông điệp sẽ được gởi với tập các tham số
args2. Tất cả các tham số đều là tùy chọn. Lấy ví dụ, một chuyển đổi với chỉ một
điều kiện [guard] là hợp lệ cũng như một chuyển đổi chỉ có 2 tham số
trigger/tranmission. Ta có thể sử dụng nhiều biến đổi được viết phân tách bởi dấu
„;‟. Các hành động sẽ được thực hiện theo trạng thái và được viết như là những
hàm.
Tạo lớp agent
Trong bước tạo lớp agent, các lớp agent được xác định từ các Role và được trình
bày trong sơ đồ lớp agent được chỉ ra ở hình 7. Sơ đồ lớp agent mô tả các lớp agent
như những hộp chứa và các hội thoại giữa chúng là những đường nối giữa các lớp
agent. Tương tự với các Goal và Role, chúng ta định nghĩa một cách tổng quan ánh
xạ 1-1 giữa các Role mà được liệt kê dưới tên của lớp agent. Tuy nhiên, người thiết
kế có thể kết hợp nhiều role trong một lớp agent đơn hoặc ánh xạ một role đơn tới
nhiều lớp agent. Do các agent kế thừa đường giao tiếp giữa các role nên bất kỳ

đường giao tiếp nào giữa 2 role trở thành hội thoại giữa các lớp tương ứng. Do đó,
tổ chức tổng quát của hệ thống được định nghĩa khi người thiết kế gán các role cho
các lớp agent. Để làm cho tổ chức hiệu quả hơn, ta thường kết hợp 2 role mà chia
sẻ một lượng lớn lưu lượng thông điệp. Khi xác định kết hợp các role thì sự gắn kết
và khối lượng lưu lượng thông điệp là những khái niệm quan trọng cần phải cân
nhắc.

Hình 7: Sơ đồ lớp agent
Xây dựng hội thoại
Người thiết kể có thể thực hiện 2 bước tiếp theo là xây dựng hội thoại và hoàn
thiện agent một cách song song với nhau. Hai bước này có mối liên kết gần gũi,
bởi vì kiến trúc agent được định nghĩa trong bước hoàn thiện agent phải thực hiện
các hội thoại và các phương thức được định nghĩa trong bước xây dựng hội thoại.
Một hội thoại trong phương pháp luận MaSE định nghĩa một giao thức phối hợp
giữa hai agent. Cụ thể là, một agent bao gồm 2 sơ đồ lớp giao tiếp, một cho lớp
khởi tạo và một cho lớp trả lời. Một sơ đồ lớp giao tiếp là một cặp các máy trạng
thái hữu hạn mà định nghĩa một hội thoại giữa 2 lớp agent tham gia. Một bên của
cuộc hội thoại được chỉ ra ở hình 8. Bên khởi tạo luôn bắt đầu cuộc hội thoại bằng
cách gởi thông điệp đầu tiên. Cú pháp dùng trong sơ đồ lớp giao tiếp là tương tự
như cú pháp của sơ đồ tác vụ đồng thời. Sự khác nhau chính giữa các hội thoại và
các tác vụ đồng thời là ở chỗ các tác vụ đồng thời có thể bao gồm nhiều hội thoại
giữa nhiều role khác nhau và các tác vụ mà hội thoại là các trao đổi nhị phân giữa
các agent.
Hoàn thiện agent
Ở bước này, những thành phần bên trong agent được tạo ra. Robinson (Robinson
2000) mô tả các chi tiết của bước hoàn thiện agent từ một tập tiêu chuẩn hoặc từ
các kiến trúc người dùng được định nghĩa. Quá trình này được đơn giản hóa bằng
cách sử dụng một ngôn ngữ mô hình kiến trúc mà kết hợp sự trừu tượng của ngôn
ngữ mô tả kiến trúc truyền thống với ngôn ngữ ràng buộc đối tượng cho phép
người thiết kế chỉ ra các chi tiết ở mức thấp.


Hình 8. Sơ đồ lớp giao tiếp
Triển khai hệ thống
Bước cuối cùng trong phương pháp luận MaSE định nghĩa ra cấu hình của hệ
thống cụ thể sẽ được thực thi. Hiện tại, chúng ta chỉ xem xét các hệ thống tĩnh,
không di động mặc dù chúng ta đang nghiên cứu đặc tả và thiết kế các hệ thống
agent di động và linh động. Trong phương pháp luận MaSE, chúng ta định nghĩa
kiến trúc hệ thống một cách tổng quát sử dụng sơ đồ triển khai để chỉ ra số lượng,
các loại, và vị trí của agent trong hệ thống.
Bước triển khai hệ thống cũng là bước mà tất cả những quyết định cài đặt chưa
được định nghĩa trước đó như ngôn ngữ lập trình sử dụng hoặc framework để giao
tiếp phải được thực hiện. Trong đó, theo ý nghĩa về kỹ thuật phần mềm đơn thuần,
chúng ta thực hiện những quyết định trên ở bước này nhưng cũng có lúc quyết định
trên được thực hiện sớm ở bước yêu cầu hệ thống.
agentTool
công cụ agentTool là nỗ lực của chúng tôi để đưa ra một công cụ hỗ trợ và củng cố
phương pháp luận MaSE. Hiện tại công cụ agentTool thực hiện 7 bước trong
phương pháp luận MaSE cũng như việc hỗ trợ chuyển đổi các mô hình phân tích
thành các mô hình thiết kế một cách tự động. Giao diện người dùng của công cụ
agentTool được chỉ ra ở hình 9. Các menu ở bên trên cho phép ta truy cập đến một
vài chức năng của hệ thống gồm có cơ sở tri thức (persistent knowlege base)
(Raphael DeLoach 2000) xác minh hội thoại (Lacey & DeLoach 2000a) và chức
năng sinh mã. Các nút ở phía bên trái dùng để thêm item cụ thể vào sơ đồ và cửa
sổ chữ bên dưới những nút này hiển thị các thông điệp hệ thống. Các sơ đồ khác
nhau trong MaSE được truy cập thông qua các tab ở phần bên trên của cửa sổ
chính. Khi lựa chọn một sơ đồ, người thiết kế có thể thực hiện thông qua việc chọn
các đối tượng đồ họa trong cửa sổ. Mỗi tab có các kiểu đối tượng khác nhau và có
thể viết mô tả cho chúng. Thông qua việc lựa chọn một đối tượng trong cửa sổ ta
có thể truy cập đến những biểu đồ có liên quan khác. Lấy ví dụ, ở hình 10, có 3
role được định nghĩa với các tập tác vụ đồng thời. Khi người dùng lựa chọn tác vụ

Register Researcher (bằng cách nhấn vào hình bầu dục), tab Task sẽ hiện lên.
Người dùng có thể truy cập biểu đồ đó (hình 11) bằng cách lựa chọn tab phù hợp.

Hình 9. Sơ đồ phân cấp Goal trong agentTool

Hình 10. Mô hình Role trong agentTool

Hình 11. Sơ đồ tác vụ đồng thời trong agentTool.
Phần hấp dẫn nhất trong agentTool là khả năng làm việc với những thành phần
khác nhau của hệ thống v à ở nhiều mức trừu tượng khác nhau, nó mô phỏng khả
năng bổ sung chi tiết của MaSE. Các thao tác trên tab của agentTool thực hiện khả
năng này của MaSE vì ở bước mà bạn đang thực hiện luôn được thể hiện bằng sơ
đồ hiện tại và các tab chỉ cho ta biết bạn có thể di chuyển qua các bước trong
phương pháp luận MaSE như thế nào.
Trong mỗi bước phát triển hệ thống, nhiều sơ đồ phân tích và thiết kế có thể truy
xuất thông qua các tab tại cửa sổ chính. Thứ tự các tab dựa trên thứ tự các bước
trong phương pháp luận MaSE, do vậy việc lựa chọn tab ở phía bên trái của tab
hiện tại sẽ trở lại bước trước đó trong phương pháp luận, lựa chọn các tab bên phải
để chuyển sang các bước sau. Đối tượng hiện tại được lựa chọn điểu khiển việc
hiển thị các sơ đồ có thể truy xuất (thông qua các tab) mà bao gồm những biểu đồ
mà có thể thực hiện theo các bước hợp lệ của MaSE. Lấy ví dụ, việc lựa chọn lựa
chọn một tác vụ làm hiện tab của sơ đồ tác vụ đồng thời. Lựa chọn tab sơ đồ tác vụ
đồng thời để truy xuất sơ đồ tác vụ đồng thời.
Thiết kế hệ thống sử dụng agentTool
Việc thiết kế hệ thống đa agent sử dụng agentTool bắt đầu ở sơ đồ lớp agent được
chỉ ra ở hình 12. Do một hội thoại chỉ xảy ra với các lớp agent, chúng ta cần phải
định nghĩa các lớp agent trước khi chúng ta định nghĩa các hội thoại. Do chúng ta
có thể thêm tất cả các lớp agent vào sơ đồ lớp agent trước khi thêm các cuộc hội
thoại nên chúng ta cũng có thể thêm các “sections” của hệ thống vào lúc này, kết
nối những lớp agent thích hợp với các hội thoại và sau đó chuyển sang phần sau.

Hình 12. Sơ đồ lớp trong agentTool
Khi đã định nghĩa được các lớp agent và các hội thoại, chúng ta có thể định nghĩa
chi tiết cho các hội thoại sử dụng sơ đồ lớp giao tiếp (hình 13). Nút “Add State”
cho phép thêm một trạng thái và nút “Add Trans” cho phép tạo ra hội thoại giữa 2
trạng thái. Người thiết kế có thể kiểm tra các hội thoại ở bất kỳ điểm nào trong khi
tạo hội thoại bằng cách dùng lệnh Verify Conversations từ thanh menu Verify
(Lacey & DeLoach 2000b). Quá trình kiểm tra hội thoại của công cụ agentTool
nhằm đảm bảo các đặc tả giao tiếp không gặp tình trạng deadlock. Nếu có bất kỳ
lỗi gì xảy ra, sẽ được thể hiện qua phần được tô đậm, như được chỉ ra ở hình 13 tại
biến đổi Ack (được bôi màu vàng trên ứng dụng). Mỗi phần đánh dấu đậm chỉ ra
một lỗi tiềm tàng được phát hiện trong quá trình kiểm tra.

Hình 13. Lỗi hội thoại trong agentTool
Các lớp agent có những thành phần bên trong mà có thể được thêm vào loại bỏ,
thực hiện theo cách tương tự như những tab khác trong agentTool (hình 14). Tuy
nhiên, các lớp agent có thêm một lớp phức tạp do các thành phần có thể có những
sơ đồ trạng thái thành phần bên trong và những thành phần con bên dưới chúng.

Hình 14. Các thành phần lớp agent trong agentTool
Người thiết kế có thể thêm các thông tin thiết kế chi tiết ở các mức độ trừu tượng
thấp hơn. Trong hình 14, sơ đồ trạng thái thành phần và tab kiến trúc giao diện
thông điệp (MessageInterface Architechture) dẫn đến sơ đồ trạng thái thành phần
và sơ đồ kiến trúc con (Sub-Architecture Diagram) tương ứng. Sơ đồ trạng thái
thành phần định nghĩa hành vi động của thành phần trong khi sơ đồ kiến trúc con
chứa các thành phần bổ sung và các đầu kết nối định nghĩa rõ hơn về thành phần.
Hỗ trợ thiết kế bán tự động
Công việc gần đây với công cụ agentTool bao gồm việc phát triển sự hỗ trợ cho
việc chuyển đổi bán tự động cho phép chuyển đổi một tập các mô hình phân tích
thành các mô hình thiết kế phù hợp (Sparkman 2001). Để thực hiện được quá trình
này, người thiết kế trước tiên phải gán các role cho các lớp agent cụ thể. Sau khi

gán, người thiết kế phải áp dụng việc chuyển đổi bán tự động đối với các mô hình
phân tích. Có 3 giai đoạn cơ bản trong chuyển đổi. Giai đoạn 1, việc chuyển đổi cố
gắng xác định các sự kiện giao thức nào trong các tác vụ đồng thời mà nó thuộc về.
Trong hầu hết các trường hợp, điều này được thực hiện một cách tự động. Tuy
nhiên, một vài trường hợp, hệ thống không thể xác định một cách chính xác giao
thức phù hợp cho mỗi sự kiện gửi/nhận. Khi điều này xảy ra, hệ thống hỏi người
thiết kế để đưa ra sự lựa chọn như hình 15.

Hình 15.Chuyển đổi bán tự động – Yêu cầu người dùng lựa chọn
Sau khi xác định được giao thức cho mỗi sự kiện, việc chuyển đổi được tiếp tục
bằng cách tạo ra những thành phần bên trong agent cho mỗi tác vụ đồng thời đi
kèm với các role được thực hiện bởi agent. Sau đó, hệ thống sao chép định nghĩa
tác vụ đồng thời vào máy trạng thái bên trong của thành phần này. Điều này đảm
bảo hành vi được định nghĩa cho mỗi role được chuyển đến agent đảm nhiệm role
đó. Ở giai đoạn 2, máy trạng thái bên trong của mỗi thành phần được chú giải để
chuẩn bị cho việc trích xuất các hội thoại thực tế. Pha chuẩn bị này tìm vị trí bắt
đầu và kết thúc của mỗi hội thoại và đảm bảo rằng các hội thoại giữa các agent là
khớp nhau. Ở giai đoạn cuối, các hội thoại được trích xuất từ các thành phần bên
trong và được đặt tại các sơ đồ hội thoại riêng rẽ. Các hội thoại này được thay thế
bởi các lời gọi phương thức sao cho máy trạng thái thành phần bên trong vẫn giữ
xử lý bên trong và cho phép phối hợp hội thoại.
Tính di động
Các công việc khác gần đây đối với phương pháp luận MaSE và công cụ agentTool
bao gồm việc nghiên cứu để đưa ra khả mô hình các agent di động. Bước khởi đầu
trong việc mô hình agent di động là đưa ra hoạt động di chuyển vào trạng thái tác
vụ đồng thời. Hoạt động di chuyển yêu cầu một cách cơ bản rằng agent có thể di
chuyển đên một vị trí mới. Việc cài đặt thực tế của hoạt động di chuyển được giả
định là thành phần của môi trường mà trong đó agent thực thi. Hoạt động này trả
về giá trị đúng sai khi hoạt động di chuyển thực sự xuất hiện. Việc bổ sung đơn
giản này vào pha phân tích cho phép các nhà phân tích chỉ ra khi nào hoạt động di

chuyển xuất hiện, vị trí được yêu cầu và khả năng quyết định liệu hành động di
chuyển là thành công hay không. Vì tính di động là đơn giản ở pha phân tích nên
nó phức tạp hơn ở pha thiết kế. Ở pha thiết kế, MaSE phải cung cấp khả năng
thông báo mỗi thành phần khi một hành động di chuyển được yêu cầu và cung cấp
khả năng cho mỗi thành phần lưu trữ trạng thái của nó, tắt và khởi động lại sau khi
di chuyển. Để giúp người thiết kế thực hiện những hoạt động thiết kế phức tạp thì
các chuyển đổi bán tự động như đã mô tả ở phần trước đã được phát triển và cài
đặt trong agentTool (Self 2001).
Tóm tắt
Bài viết này đã trình bày tổng quan về phương pháp luận kỹ thuật xây dựng các hệ
đa agent và công cụ môi trường agentTool. MaSE và agentTool được xây dựng
song song để cung cấp sự hướng dẫn và hỗ trợ thực tế cho việc xây dựng các hệ
thống động, phân tán và phức tạp. Nghiên cứu này được hỗ trợ bởi văn phòng
không quân viện nghiên cứu khoa học và viên nghiên cứu Dayton Area. Các quan
điểm trong bài viết này của các tác giả không phản ánh chính sách chính thức hay
vị trí của Không quân Mỹ, bộ quốc phòng hay chính phủ Mỹ.

×