使用规划技术辅助以质量驱动的架构设计探索
在软件架构设计领域,如何高效地实现满足质量属性的架构是一个关键问题。本文将介绍一种利用规划技术辅助架构设计的方法,特别是基于 HTN 规划的 DesignBots 框架,并通过一个战场控制系统(BCS)的案例进行详细说明。
架构设计作为规划问题
自动化设计系统领域的研究人员长期以来认为,设计活动的计算视角是一个搜索和规划的过程。然而,这种观点在软件开发领域的探索相对较少。尽管在通用制品设计空间存在一些局限性,但将规划应用于架构设计的推理过程建模,似乎是一种值得研究的方法。
软件架构的一个前提是,质量属性的实现来自于在架构上应用特定的模式。架构模式由一般的设计原则(如抽象、信息隐藏、模块化、关注点分离、耦合和分治法等)所支配,这些原则最近被归纳为架构策略的概念。简而言之,模式和策略捕捉了架构师在设计满足利益相关者关注点的架构时常用的机制。
利益相关者的关注点通常用场景来表达。从操作的角度来看,我们可以将质量属性场景视为驱动架构师进行架构转换搜索的目标。有趣的是,人工智能社区已经开发了几种针对此类问题的规划技术。此外,任何架构转换都可以追溯到在预定策略和模式背景下的设计操作网络。因此,这种转换过程自然适合于分层规划(HTN 规划)。
经典规划专注于如何为给定状态构建一系列动作,当这些动作正确执行时,将使系统满足一组目标。特别是,分层规划(也称为 HTN 规划)试图生成一系列动作,以执行由目标网络描述的活动。本质上,HTN 规划根据任务层次结构组织计划,称为分层任务网络。这些网络可以逐步细化为子计划,这些子计划通常彼此几乎独立。子计划提供了关于如何实现抽象任务的更多细节。在 HTN 中,任务的细化可以通过
超级会员免费看
订阅专栏 解锁全文

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



