系统架构设计师教程 第5章 7.2 基于架构的软件开发方法 笔记

7.2 基于架构的软件开发方法 ★★★★★

7.2.1 体系结构的设计方法概述

基于体系结构的软件设计 (Architecture-Based Software Design,ABSD) 方法。ABSD方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。使用 ABSD 方法,设计活动可以从项目总体功能框架明确就开始了软件设计。
ABSD方法有3个基础:
功能的分解。在功能分解中, ABSD 方法使用已有的基于模块的内聚和耦合技术;
通过选择体系结构风格来实现质量和商业需求;
软件模板的使用,软件模板利用了一些软件系统的结构。
ABSD方法是递归的,每一个步骤都是清楚定义的。

7.2.2 概念与术语

1.设计元素
ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。
2.视角与视图
考虑体系结构时,要从不同的视角 (Perspective) 来观察对架构的描述,这需要软件设计师考虑体系结构的不同属性。
3.用例和质量场景
用例用来捕获功能需求。
人们通过定义特定场景来捕获质量需求,并称这些场景为质量场景。使用质量场景捕获变更、性能、可靠性和交互性,分别称之为变更场景、性能场景、可靠性场景和交互性场景。质量场景必须包括预期的和非预期的场景。

7.2.3 基于体系结构的开发模型 ★★★★★

ABSD模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现和演化6个子过程

7.2.4 体系结构需求 ★★★★★

主要过程:需求获取、标识构件、需求评审
1.需求获取
体系结构需求一般来自3个方面,分别是系统的质量目标、系统的商业目标和系统开发人员的商业目标。

2.标识构件
标识构件过程为系统生成初始逻辑结构,包含大致的构件。分为3步来实现。
第1步:生成类图。生成类图的 CASE 工具有很多,例如Rational Rose 2000 能自动生成类图。
第2步:对类进行分组。在生成的类图基础上,使用一些标准对类进行分组可以大大简化 类图结构,使之更清晰。 一般地,与其他类隔离的类形成一个组,由概括关联的类组成一个附加组,由聚合或合成关联的类也形成一个附加组。
第3步:把类打包成构件。把在第2步得到的类簇打包成构件,这些构件可以分组合并成 更大的构件。

3.架构需求评审
组织一个由不同代表(如分析人员、客户、设计人员和测试 人员)组成的小组,对体系结构需求及相关构件进行仔细地审查。 审查的主要内容包括所获取的需求是否真实地反映了用户的要求;类的分组是否合理,构件合并是否合理等。必要时,可以在“需求获取一标识构件一需求评审”之间进行迭代。

7.2.5 体系结构设计 ★★★★★

体系结构设计是一个迭代过程,主要流程:提出体系结构模型、映射构件、分析构件相互作用、产生体系结构、设计评审
1.提出软件体系结构模型
选择一个合适的体系结构风格,在这个风格的基础上,开发人员通过体系结构模型,可以获得关于体系结构属性的理解。
2.把已标识的构件映射到软件体系结构中
把在体系结构需求阶段已标识的构件映射到体系结构中,将产生一个中间结构,这个中间结构只包含那些能明确适合体系结构模型的构件。
3.分析构件之间的相互作用
认真分析构件的相互作用和关系。
4.产生软件体系结构
在第2阶段得到的中间结构的基础上进行精化。
5.设计评审
邀请外部人员对体系结构进行评审。

7.2.6 体系结构文档化 ★★★★★

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

7.2.7 体系结构复审 ★★★★★

复审的目的是标识潜在的风险,及早发现体系结构设计中的缺陷和错误,包括体系结构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表达是否明确、构件的设计是否满足功能与性能的要求等。

7.2.8 体系结构实现 ★★★★★

用实体来显示出软件体系结构,实现过程包括:分析与设计、构件实现、构件组装、系统测试。
整个实现过程是以复审后的文档化的体系结构说明书为基础的,每个构件必须满足软件体系结构中说明的对其他构件的责任。

7.2.9 体系结构的演化 ★★★★★

体系结构演化是使用系统演化步骤去修改应用,以满足新的需求。主要包括
1.需求变化归类
对用户需求的变化进行归类,使变化的需求与已有构件对应。对找不到对应构件的变动,要做好标记,在后续工作中,创建新的构件,以对应这部分变化的需求。

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

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

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

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

6.技术评审
对以上步骤进行确认,进行技术评审。评审组装后的体系结构是否反映需求变动、符合用户需求。如果不符合,则需要在第2到第6步之间进行迭代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值