1.ABSD概念

基于架构的软件设计(Architecture-Based Software Design,ABSD)方法强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD是一个自顶向下,递归细化的软件开发方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需求,并强调在架构设计过程中使用软件架构模板。

以架构为核心的软件系统开发方法中,架构用来激发和调整设计策略,不同的视图用来表达与质量目标有关的信息。架构设计是一个迭代过程,在建立软件架构的初期,选择一个合适的架构风格是首要的,在此基础上,开发人员通过架构模型,可以获得关于软件架构属性的理解,为将来的架构实现与演化过程建立了目标。

ABSD方法是一个自顶向下,递归细化的过程,软件系统的架构通过该方法得到细化,直到能产生软件构件的类。

ABSD强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。

ABSD方法有三个基础:

第一个基础是功能分解,在功能分解中使用已有的基于模块的内聚和耦合技术。

第二个基础是通过选择体系结构风格来实现质量和商业需求。

第三个基础是软件模板的使用。软件模板是一个特殊类型的软件元素,包括描述所有这种类型的元素在共享服务和底层构造的基础上如何进行交互。软件模板还包括属于这种类型的所有元素的功能,这些功能的例子有:每个元素必须记录某些重大事件,每个元素必须为运行期间的外部诊断提供测试点等。

使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,并且设计活动的开始并不意味着需求抽取和分析活动可以终止,而是应该与设计活动并行。

2.软件过程子过程

ABSDM模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现、演化等六个子过程。
体系结构需求:需求过程主要是获取用户需求,标识系统中所要用到的构件。
体系结构设计:体系结构设计是一个迭代过程,如果要开发的系统能够从已有的系统中导出大部分,则可以使用已有系统的设计过程。
体系结构文档化:绝大多数的体系结构都是抽象的,由一些概念上的构件组成,因此要去实现体系结构,还必须得把体系结构文档化。体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这2个文档。本题第三空选择C选项。
体系结构复审:体系结构设计、文档化和复审是一个迭代过程。复审的目的是表示潜在的风险,及早发现体系结构设计中的缺陷和错误,包括体系结构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件划分是否合理、文档表达是否明确、构件设计是否满足功能与性能的要求等。
体系结构实现:所谓“实现”就是要用实体显示出一个软件体系结构,即要符合体系结构描述的结构性设计决策,分割成规定的构件,按规定的方式互相交互。整个实现过程是以复审后的文档化的体系结构说明书为基础的,每个构件必须满足软件体系结构中说明的对其他构件的责任。最后一步是测试,包括单个构件的功能性测试和被组装应用的整体功能和性能测试。
体系结构演化:在构件开发过程中,用户的需求可能还有变动。在软件开发完毕,正常运行后,由一个单位移植到另一个单位,需求也会发生变化。在这两种情况下,就必须相应地修改软件体系结构,以适应新的变化了的软件需求。体系结构演化是使用系统演化步骤去修改应用,以满足新的需求。
 

3.体系结构需求(即软件架构需求)

软件架构需求是指用户对目标软件系统在功能、行为、性能和设计约束等方面的期望。

需求过程主要是获取用户需求,标识系统中所要用到的构件,并进行架构需求评审。

其中标识构件又详细分为生成类图、对类图进行分组和将类打包成构件三步。软件架构需求并不应该包括设计构件的过程。

4.架构复审

架构复审是基于架构开发中一个重要的环节。架构设计、文档化和复审是一个迭代的过程。从这个方面来说,在一个主版本的软件架构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。架构复审过程中,通常会对一个可运行的最小化系统进行架构评估和测试。架构复审的目标是标识潜在的风险,及早发现架构设计的缺陷和错误。

5.体系结构演化

体系结构演化是使用系统演化步骤去修改应用,以满足新的需求。主要包括以下6个步骤。

1. 需求变化归类 首先必须对用户需求的变化进行归类,使变化的需求与已有构件对应。对找不到对应构件的变动,也要做好标记,在后续工作中,将创建新的构件,以对应这部分变化的需求。

2.制订体系结构演化计划 在改变原有结构之前,开发组织必须制订一个周密的体系结构演化计划,作为后续演化开发工作的指南。

3.修改、增加或删除构件 在演化计划的基础上,开发人员可根据在第1步得到的需求变动的归类情况,决定是否修改或删除存在的构件、增加新构件。最后,对修改和增加的构件进行功能性测试。

4.更新构件的相互作用 随着构件的增加、删除和修改,构件之间的控制流必须得到更新。

5.构件组装与测试 通过组装支持工具把这些构件的实现体组装起来,完成整个软件系统的连接与合成,形成新的体系结构。然后对组装后的系统整体功能和性能进行测试。

6.技术评审 对以上步骤进行确认,进行技术评审。评审组装后的体系结构是否反映需求变动、符合用户需求。如果不符合,则需要在第2到第6步之间进行迭代。在原来系统上所做的所有修改必须集成到原来的体系结构中,完成一次演化过程。

6.体系结构文档化过程

体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这两个文档。软件体系结构的文档要求与软件开发项目中的其他文档是类似的。文档的完整性和质量是软件体系结构成功的关键因素。文档要从使用者的角度进行编写,必须分发给所有与系统有关的开发人员,且必须保证开发者手上的文档是最新的。