系统架构师学习笔记_第五章(上)

第五章  软件架构设计

Software Architecture 简称 SA


5.1.2  软件架构设计与生命周期


1、需求分析阶段

需求 和 SA设计 面临的是不同的对象:一个是问题空间;另一个是解空间。保持二者的可跟踪性和转换。


2、设计阶段

1.传统的设计概念只包括 构件,随着研究的深入,构件间的 互联机制 逐渐独立出来,成为与构件同等级别的实体,称为 连接子。

2.体系结构描述语言(Architecture Description Language ADL)对 连接子 的重视成为区分 ADL和其他建模语言的重要特征之一。

3.不同的视角 得到多个视图,组织起来以描述整体的SA模型;不同侧面的视图反映所关注的系统的特定方面,体现了关注点分离的思想。


3、实现阶段

团队的 结构 应该和体系结构模型有一定的对应关系,提高软件开发 效率和质量。

分析和记录 不同版本构件和连接子之间的演化。

填补高层 SA模型 和 底层实现 之间的鸿沟,典型的方法如下:

1.引入实现阶段的概念。
2.SA模型 逐步精化。
3.封装底层称为较大粒度构件。


4、构件组装阶段

可复用构件 组装 可以在较高层次上实现系统,研究内容包括:
1.如何互联。
2.如何检测并消除体系结构失配问题。

中间件跨平台交互。
产品化的中间件更好地保证最终系统的质量,中间件导向的体系结构风格。

失配是指复用过程中,待复用构件对最终系统的体系结构和环境的架设(Assumption)与实际状况下不同而导致的冲突。


5、部署阶段

软件构件的互联性、硬件的拓扑结构、硬件资源占用。


6、后开发阶段

实现中的软件往往具有动态性,一类是软件内部执行所导致的体系结构改变,另一类变化是软件系统外部的请求对软件进行的重配置。

升级或进行其他修改时 不能停机。

SA重建是指 从已实现的系统中 获取体系结构的过程。


5.2  基于架构的软件开发方法

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

基于体系结构的软件设计(Architecture-Based Software Design ABSD)方法。

体系结构驱动,指 构成体系结构的 商业、质量、功能 需求的组合驱动。

设计活动的开始 并不意味着 需求抽取和分析活动 就可以终止,而应该 并行,快速开始设计 至关重要。

ABSD 方法有三个基础,功能分解、选择体系结构风格、软件模板的使用。


5.2.2  概念与术语

1、设计元素

ABSD方法是一个 自顶向下,递归细化 的方法。

2、视角与视图

重要的是从不同的视角(perspective)来检查,考虑体系结构的不同属性。

3、用例和质量场景

在使用用例捕获功能需求时,通过定义特定场景来捕获质量需求,称为质量场景。捕获变更、性能、可靠性、交互性,质量场景必须包括 预期的 和 非预期的。


5.2.4  体系结构需求

可以从需求库中取出,加以利用和修改。

获取需求,体系结构需求一般来自三个方面:系统的质量目标、系统的商业目标、开发人员的商业目标。


5.2.6  体系结构文档化

体系结构规格说明 和 测试体系结构需求的质量设计说明书。

需求模型构件的 精确形式化描述,作为 用户和开发者 之间的一个协约。

从使用者的角度进行编写,必须保证开发者手上的文档是最新的。


5.2.7  体系结构复审

根据架构设计,搭建一个可运行的最小化系统 用于 评估 和 测试 体系架构是否满足需要。是否存在可识别的技术和协作风险。

复审的目的是 标识潜在风险,及早发现 缺陷和错误。


5.2.8  体系结构实现

分割成规定的构件,按规定方式互相交互。

你可能感兴趣的:(学习笔记)