- 软件架构复用
软件产品线是 一组产业密集型系统,规定用公用的 核心资产集成 开发而来。
机会复用 和 系统复用。
机会复用:临时发现有可服用资产立马复用。
系统复用:开发之前进行规划好哪些需要复用。
复用的三个阶段:
获取到复用的资产、管理这些资产、针对需求从资产中选择复用部分,开发出满足需求的系统。
- 特定领域软件架构
DSSA(Domain specific Software Architectrue)
专门用于一类特定类型的任务(领域)的、在整个领域中能有效的使用,构成标准软件集合。
就是一个 特定的问题领域 中支持一组应用的 参考模型、参考需求、参考架构等开发基础,器目标 支持在一个特定领域中多个应用生成。
垂直域:在一特定领域通用的完整架构。
水平域:在不同多个领域之间相同部分的小工具。(比如教育和购物都要有的收付系统)
DSSA有三个基本的活动
- 领域分析
获取领域模型(需求)。建立领域模型。
- 领域设计
目的获取DSSA(特定领域软件架构),在领域模型中表示需要解决的方案,他不是单个系统表示,而是能够适应领域中多个系统需求的高层次设计。
- 领域实现
阶段主要目标依据领域DSSA 开发和组织可重用信息。这些可重用是可能在现系统中提取的,也可以是新发现。
参与DSSA有四种角色人员 领域专家、领域分析人员、领域设计和领域实现。
领域专家:系统有经验的用户,从事该系统中系统需求分析、设计和实现以及项目管理有经验的工程师。
领域分析人员:知识背景的有经验的系统分析师来担任。
领域设计人员:设计人员。
领域实现人员:程序员。
建立DSSA的过程:
定义领域范围:领域中的应用要满足用户一系列需求。
定义领域特定元素:领域字典等。
定义领域特定的设计和实现需求的约束。
定义领域模型和架构。
产生、搜集可复用的产品单元。
以上过程是 并发的、递归的、反复的、螺旋型的。
三层次模型:
领域开发环境:领域架构师决定核心架构,产出参考结构、参考需求、架构、领域模型、开发工具。
领域特定应用开发环境:工程师根据具体环境将核心架构实例化。
(前面开发环境就是领域里通用架构,后面在应用开发环境里则根据实际环境特殊处理)
应用执行环境:操作员直接操作实例化后的架构。
- 基于架构的软件开发
ABSD(Architectrue base Software Design):业务、质量和功能需求(重点)
方法是 架构驱动,强调由 业务、质量和功能需求 的组合驱动架构设计。它强调采用 视角和视图来描述软件架构,采用 用例 和 场景 来描述需求。
用例是功能需求,更抽象化,场景是实例化场景。
使用ABSD方法,设计活动可以从项目总体功能框架确定就开始。(意味着需求获取和分析还没完成,就开始软件设计)
使用ABSD方法有三个基础:
- 功能的分解,使用已有的基于模块内聚耦合技术。
- 通过选择架构风格实现质量和业务需求。
- 软件模板的使用。
ABSD方法是递归的,不是一次性操作。
Architecture(体系结构、架构)
基于架构的软件开发过程,六个过程。
体系结构需求、体系结构设计、体系结构文档化、体系结构复审、体系结构实现、体系结构的演化。
复审的时候如果yes正常走,no的话则重新设计。
每次架构的重新演化,都需要重新走整个流程。
- 体系结构需求
获取到需求后,三步 生层类图、对类进行分组、把类打包成构件。(这三步属于标识构件)
- 架构设计
将上面的标识构件 映射成 构件。设计出 领域架构。
- 架构文档化
产出两种文档 架构规格说明,和测试架构需求的质量设计说明。
- 架构复审
由 外部人员(独立于开发组织之外的人,如用户代表和领域专家)参加复审。
通过则正常实行,不通过则重新设计,回到2。
- 架构实现
实体来显示架构。实现构件,构件组装成系统。
- 架构演化
对架构进行改变,按需求增删构件,使架构可复用。(一般提出新需求,这时候则需要演化,是否新增构件,删除构件)