属性驱动的设计(ADD):一种定义软件构架的方法,该方法将分解过程建立在软件必须满足的质量属性纸上,是一个递归的过程,每个阶段选择战术和构架模式来满足一组质量属性场景,然后对功能进行分配。
ADD步骤:
(1)选择要分解的模块:要分解的模块通常是整个系统。该模块要求输入的所有输入都应该是可获得的(限制条件、功能需求和质量需求)
(2)根据这些步骤对模块进行求精:
a.从具体的质量场景和功能需求集合中选择构架驱动因素
b.选择满足构架驱动因素的构架模式
c.实例化模块并根据用例分配功能,使用多个视图进行表示
d.定义子模块的接口
e.验证用例和质量场景并对其进行求精,使他们成为子模块的限制
(3)对需求进一步分解的每个模块重复上述步骤
创建骨架系统:(1)实现处理构架组件的执行和交互的软件部分
(2)选择把提供功能的哪些元素添加到该系统中
(3)选择了提供下一个功能增量的元素后,就可以采用使用结构,以获知应该在系统中采用什么软件来支持功能
利:有助于在早期理解系统性能需求,包括性能交互瓶颈。
弊:第一个完成该系统时的某个部分的开发小组会对接口做出定义,随后开发出的所有子系统都得符合这个接口的要求,实际上将对系统比较复杂的部分不利,需要进行更多的分析。
改善办法:对骨架子系统中的接口进行协商,再运用骨架系统提高效率。