面向代理的软件工程:现状、挑战与未来方向
1. 质量保证与软件维护
质量保证在复杂系统中至关重要,代理范式通常能在这类系统中发挥最大优势。一系列有助于质量保证的技术,如自动化测试、形式验证以及安全案例等方法,都可能具有重要价值。
软件维护包括纠正性维护(修复漏洞)、适应性维护(适应应用环境变化)和完善性维护(适应用户需求变化)。对于非基于代理的软件,软件维护是一个活跃的研究领域。而面向代理的设计和实现方法因其模块化特性,在维护方面具有内在优势,尤其是适应性或完善性维护。例如,Bartish和Thevathayan比较了将游戏实现为有限状态机和代理系统时进行扩展和修改所需的工作量和代码量,发现代理系统效率更高;Jayatilleke等人扩展了基于温度和风力预测的飞机天气警报系统,以包含火山灰警报,该扩展高效且对现有代码修改较少。
然而,针对基于代理的软件维护工作相对较少。目前已知的关于代理系统软件维护的工作仅有Dam等人的研究。他们关注设计模型中的变更传播问题。变更传播涉及到对软件系统进行变更时,初始变更往往会产生后续影响,需要进行额外的二次变更。Dam等人的方法是聚焦设计模型而非代码,定义用OCL表达的一致性约束,以捕捉设计的一致性要求。例如,当定义某种消息类型由特定代理类型接收时,该代理类型必须有处理该消息类型的计划。变更传播通过修复由主要变更导致的这些约束违规来实现。他们提出的框架和技术具有通用性,已应用于面向代理的设计(Prometheus)和面向对象的设计(UML)。评估表明,该方法能有效完成约三分之二的二次变更,但在效率和可扩展性方面,对于中小型设计模型可行,约束检查是瓶颈,有改进空间。
2. 方法比较
早期面向代理的软件工程
超级会员免费看
订阅专栏 解锁全文
1352

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



