面向代理的软件工程:概念、历史与实践
1. 引言
在当今时代,软件需要在复杂且动态的环境中成功运行,具备适应性、灵活性和鲁棒性。将软件设计成由多个代理组成的集合可以实现这一目标。代理是在其环境中自主运行的软件实体,能够主动实现目标,同时对环境变化做出响应。例如,在运输物流应用中,自主代理相互协商以安排交付计划,并在出现延误时重新协商。
代理技术已经有许多实际应用,包括生产调度、多领域模拟、能源生产与分配、运输物流、危机管理、柔性制造、空中交通管制和业务流程管理等。有证据表明,代理技术能显著加快和模块化开发较为复杂的应用,特别是在动态领域中运行的应用。执行引擎管理计划选择(基于上下文评估)和故障恢复(基于程序结构),这减轻了程序员对这些细节进行显式编码的负担,就像从汇编语言转向现代编程语言时效率大幅提升一样。
面向代理的软件工程(AOSE)关注开发基于代理的系统的工程方面,以及如何支持其开发。其工作旨在为从业者提供设计代理系统的方法和支持工具。AOSE的工作更侧重于(面向人类的)模型、过程和工具,而非算法、理论、形式模型或定理。
方法学包含以下要素:
- 过程:定义整体的开发流程。
- 模型:使用设计工件(“模型”)来捕获过程的关键结果。
- 符号:模型通过一种或多种符号(可能或多或少正式定义)来表达。
- 技术:提供执行关键步骤的详细指南。
此外,方法学建立在概念基础之上。虽然代理和对象有一些相似之处,但也存在关键差异,如自主性和主动性,这使得开发和使用特定于代理的设计方法学是必要的。软件开发生命周期的阶段不会因为使用代理而改变,仍然包括需求分析、设计、详细设计、实现、测试和调试等阶段,并且通常以迭代
超级会员免费看
订阅专栏 解锁全文
6045

被折叠的 条评论
为什么被折叠?



