概念性架构设计的输入是关键的功能需求、关键的质量属性需求和关键的商业需求。
温昱在《软件架构设计》中给出了三个基本步骤:
第一步,鲁棒性分析。通过分析表示关键功能需求的用例规约中的事件流,识别出实现用例规定的功能的主要对象及其职责,形成以职责模型为主的初步设计。
鲁棒性分析是从用例到面向对象设计进行过度的一种技术。鲁棒性分析用鲁棒图作为描述工具。鲁棒图用边界对象、控制对象和实体对象三种元素。
边界对象对模拟外部环境与系统之间的交互建模。它负责接收外部输入,展现或传递处理的结果。人或外部系统都是通过边界对象与系统进行交互。
控制对象对行为进行封装,描述用例中事件流的控制行为。
实体对象对需要存储的信息进行描述,与领域模型中的对象有良好的对应。
鲁棒图的三种对象很好地概括了实际系统中对象的三种职责:交互、控制、信息。这三种职责与组成架构的抽象元素有完美的对应关系:连接元素、处理元素、数据元素。与MVC的对应关系是:边界对象对应视图,控制对象对应控制器,实体对象对应模型。
第二步,引入架构模式。架构模式的核心是架构机制,即以“组件+连接件”的形式表示的关键设计元素和关键交互方式。
在现行软件架构设计中,已经出现了很多有效的架构模式。根据系统的规模和更抽象的设计决策,选择一个合适的架构模式,确定交互机制,并将鲁棒图中的各个对象分配到架构模式中各个部分中,形成系统初始的概念性架构。
第三步,质量属性分析。利用“属性-场景-决策”方法,对关键的“质量属性”在特定的“场景”下如何得到满足为目标,制定出满足非功能需求的高层设计决策,并根据设计决策对前面两部的工作成果进行增强、调整,以保证概念性架构体现这些与非功能需求相关的设计决策。
上述三步需要循环式地反复进行,直到满意为止。
联系客服