第五章 软件架构设计
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 体系结构实现
分割成规定的构件,按规定方式互相交互。