系统架构核心概念梳理

115 阅读5分钟

【重点1】基于架构的软件开发

  1. 基于架构的软件设计ABSD

Architecture-Based Software Design

架构驱动,强调由业务、质量、功能需求的组合驱动架构设计。

描述软件架构:视角+视图

描述需求:用例(描述功能需求) + 质量属性场景(描述质量需求)

要点1:使用ABSD方法的3个基础

(1)功能的分解:使用已有的基于模块的内聚和耦合技术。

(2)选择架构风格:实现质量和业务需求。

(3)软件模板的使用:软件系统的结构,复用。

要点2:基于架构的软件开发 6个过程

(1)需求

需求获取 -> 生成类图 -> 对类进行分组 ->把类打包成构件 -> 需求评审

(2)设计

提出架构模型 -> 映射构件 -> 分析构件相互作用 -> 产生架构 -> 设计评审

(3)文档化

体系结构/架构规格说明

测试体系结构/架构需求的质量设计说明书

(4)复审:外部人员参加(用户代表)。

(5)实现

(6)演化:对架构进行改变,按需求增删构件,使架构可复用。

【重点2】软件架构复用

  1. DSSA 特定领域软件架构

domain-specific software architecture

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

标准的组合结构的软件构件的集合。

在整个领域中能有效使用。

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

水平域:横跨了很多个不同特定领域之间的相同的部分的小工具(购物和教育都有收费系统,收费系统即使水平域)。

要点1:DSSA的3个基本活动

(1)领域分析:分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型(问题域)。

(2)领域设计:获得DSSA特定领域的软件架构,DSSA描述在领域模型中表示的需求的解决方案,适应领域中多个系统的需求的一个高层次的设计(解空间)。

(3)领域实现:开发和组织可重用信息(从现有系统中提取 or 新的开发)。

要点2:建立DSSA的过程

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

(2)定义领域特定的元素:建立领域的字典,归纳领域中的术语,识别出领域中相同和不同的元素。

(3)定义领域特定的设计和实现需求的约束

(4)定义领域模型和架构

(5)产生、搜集可复用的产品单元:为DSSA增加复用构件。

要点3:三层次模型

(1)领域开发环境:核心通用架构、参考架构、领域模型。

(3)领域特定的应用开发环境:根据具体环境把核心架构实例化。

(3)应用执行环境:实现实例化的架构。

【重点3】系统架构评估(SAAM、ATAM、CBAM)

系统架构评估:架构分析、架构权衡分析、成本效益分析

  1. SAAM 体系结构/架构分析方法

Software Architecture Analysis Method

这一方法的基本特点是把任何形式的质量属性都具体化为场景,但可修改性是SAAM分析的主要质量属性。

SAAM的三个输入

(1)问题描述

(2)需求声明

(3)体系结构/架构描述

SAAM的5个步骤

(1)场景开发:场景描述列表。

(2)体系结构/架构描述

(3)单个场景评估

(4)场景交互评估:得出系统中所有场景对系统中的构件所产生的影响的列表。

(5)总体评估:对场景和场景间的交互作一个总体的权衡和评价。

  1. ATAM 架构权衡分析法 【重点】

Architecture Tradeoff Analysis Method

以属性作为架构评估的核心概念,针对性能、可用性、安全性、可修改性等质量属性进行评价和折中,分析多个质量属性间的关系,属性间可能存在冲突,需要权衡取舍。

4个活动阶段

(1)场景和需求收集

(2)体系结构/架构视图描述 + 场景实现

(3)属性模型构造和分析

(4)对质量属性进行评价和折中

评估的步骤

(1)评估小组负责人描述ATAM方法(宣读规则)

(2)项目决策者描述业务动机(明确业务需求)

(3)架构设计师描述架构

(4)架构设计师确定架构方法

(5)生成质量属性效用树:对质量属性进行刻画和排序

质量属性 -> 质量属性子特性 -> 子特性的具体描述

(6)评估小组分析架构方法:能否满足质量属性。

(7)项目干系人讨论场景和对场景分级

(8)架构设计师分析架构方法

(9)评估小组负责人描述评估结果(产出具体的报告)

  1. CBAM 成本效益分析法

Cost Benefit Analysis Method

对架构建立的成本进行设计和建模,根据投资收益率来选择合适的架构。作为ATAM的补充,在ATAM确定质量合理的基础上,再对效益进行分析。