• 软件架构复用

软件产品线是 一组产业密集型系统,规定用公用的 核心资产集成 开发而来。

机会复用 和 系统复用。

机会复用:临时发现有可服用资产立马复用。

系统复用:开发之前进行规划好哪些需要复用。

复用的三个阶段:

获取到复用的资产、管理这些资产、针对需求从资产中选择复用部分,开发出满足需求的系统。

  • 特定领域软件架构

DSSA(Domain specific Software Architectrue)

专门用于一类特定类型的任务(领域)的、在整个领域中能有效的使用,构成标准软件集合

就是一个 特定的问题领域中支持一组应用的 参考模型、参考需求参考架构等开发基础,器目标 支持在一个特定领域中多个应用生成。

垂直域:在一特定领域通用的完整架构。

水平域:在不同多个领域之间相同部分的小工具。(比如教育和购物都要有的收付系统)

DSSA有三个基本的活动

  1. 领域分析

获取领域模型(需求)。建立领域模型。

  1. 领域设计

目的获取DSSA(特定领域软件架构),在领域模型中表示需要解决的方案,他不是单个系统表示,而是能够适应领域中多个系统需求的高层次设计。

  1. 领域实现

阶段主要目标依据领域DSSA 开发和组织可重用信息。这些可重用是可能在现系统中提取的,也可以是新发现。

参与DSSA有四种角色人员 领域专家、领域分析人员、领域设计和领域实现。

领域专家:系统有经验的用户,从事该系统中系统需求分析、设计和实现以及项目管理有经验的工程师。

领域分析人员:知识背景的有经验的系统分析师来担任。

领域设计人员:设计人员。

领域实现人员:程序员。

建立DSSA的过程:

定义领域范围:领域中的应用要满足用户一系列需求。

定义领域特定元素:领域字典等。

定义领域特定的设计和实现需求的约束。

定义领域模型和架构。

产生、搜集可复用的产品单元。

以上过程是 并发的、递归的、反复的、螺旋型的。

三层次模型:

领域开发环境:领域架构师决定核心架构,产出参考结构、参考需求、架构、领域模型、开发工具。

领域特定应用开发环境:工程师根据具体环境将核心架构实例化。

(前面开发环境就是领域里通用架构,后面在应用开发环境里则根据实际环境特殊处理)

应用执行环境:操作员直接操作实例化后的架构。

  • 基于架构的软件开发

ABSD(Architectrue base Software Design):业务、质量和功能需求(重点)

方法是 架构驱动,强调由业务、质量和功能需求 的组合驱动架构设计。它强调采用 视角和视图来描述软件架构,采用用例场景来描述需求。

用例是功能需求,更抽象化,场景是实例化场景。

使用ABSD方法,设计活动可以从项目总体功能框架确定就开始。(意味着需求获取和分析还没完成,就开始软件设计)

使用ABSD方法有三个基础:

  1. 功能的分解,使用已有的基于模块内聚耦合技术。
  2. 通过选择架构风格实现质量和业务需求。
  3. 软件模板的使用。

ABSD方法是递归的,不是一次性操作。

Architecture(体系结构、架构)

基于架构的软件开发过程,六个过程。

体系结构需求、体系结构设计、体系结构文档化、体系结构复审、体系结构实现、体系结构的演化

复审的时候如果yes正常走,no的话则重新设计。

每次架构的重新演化,都需要重新走整个流程。

  1. 体系结构需求

获取到需求后,三步 生层类图、对类进行分组、把类打包成构件。(这三步属于标识构件)

  1. 架构设计

将上面的标识构件 映射成 构件。设计出 领域架构。

  1. 架构文档化

产出两种文档 架构规格说明,和测试架构需求的质量设计说明

  1. 架构复审

由 外部人员(独立于开发组织之外的人,如用户代表和领域专家)参加复审。

通过则正常实行,不通过则重新设计,回到2。

  1. 架构实现

实体来显示架构。实现构件,构件组装成系统。

  1. 架构演化

对架构进行改变,按需求增删构件,使架构可复用。(一般提出新需求,这时候则需要演化,是否新增构件,删除构件)