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.

19 626 3
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.

Đ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

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 Sdeloach@computer.org 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... 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.. . 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... 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ả... đâ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... 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.. . 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... 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. .. 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... 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ế . 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. đư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. 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

Ngày đăng: 12/04/2015, 14:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan