Bootstrap

【软考速通笔记】系统架构设计师⑦——系统架构设计基础知识

一、前言

笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——导读

二、软件架构基础

2.1 定义

软件架构(Software Architecture)或称为软件体系结构

架构==体系结构

是指系统的一个或者多个结构,这些结构包括软件的构件构件的外部可见属性及其之间的相互关系

架构设计包括数据库设计软件结构设计

2.2 视图

软件结构设计关注软件构件的结构属性交互作用,并通过多种视图全面描述

  • 逻辑视图:系统的功能性和业务逻辑。
  • 开发视图:系统的模块化和代码结构。
  • 物理视图:系统的部署和硬件分布。
  • 进程视图:系统的并发和进程结构。
  • 场景视图:系统的运行时行为和交互。

三、软件架构生命周期

阶段作用和意义
需求分析阶段有利于各个阶段参与者的交流,也易于维护各阶段的可追踪性
设计阶段软件架构模型描述、软件架构模式的设计和分析方法等
实现阶段有效实现从软件架构设计向实现的转换
构件组装阶段可复用构建组装的设计能够提高系统实现的效率
部署阶段组织和展示部署阶段的软硬件架构、评估分析部署方案
后开发阶段主要围绕维护、演化、复用进行

四、软件架构重要性

  • 指导系统开发
  • 提高系统质量
  • 降低技术风险
  • 降低维护费用
  • 支持冲突分析
  • 支持计划编制过程
  • 管理系统复杂性

五、基于架构的软件开发方法

5.1 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)

  • 采用视角与视图来描述软件架构。
  • 采用用例来描述功能需求。
  • 采用质量场景来描述质量需求。

5.2 基于体系结构(架构)的软件设计具有三个基础

  • 功能的分解
  • 通过选择体系结构风格来实现质量和商业需求
  • 软件模板的复用

ABSD是自顶向下、递归细化的,迭代的每一步都有清晰的定义,有助于降低体系结构设计的随意。

5.3 基于体系结构(架构)的软件设计的六个子过程

  • 体系结构需求:需求获取、标识构件、需求评审。
  • 体系结构设计:提出结构模型—>将已标识的构件映射到架构中—>分析构件之间的相互作用—>产生体系结构评审。
  • 体系结构文档化:生成《体系结构规格说明书》和《测试体系结构需求的质量设计说明书》。
  • 体系结构复审:安排一次由外部人员(如客户代表和领域专家)参加的架构复审。目的是标识潜在的风险,及早发现架构设计中的缺陷和错误,包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理等。
  • 体系结构实现:分析与设计—>构件实现—>构件组装—>系统测试
  • 体系结构演化:需求变化归类—>体系结构演化计划—>构件变动—>更新构件的相互作用—>构件的组装与测试—>技术评审—>演化后的体系结构。

六、软件架构风格

6.1 数据流体系结构风格

其核心思想是将数据处理流程划分为一系列独立的处理单元,并通过数据流将这些单元连接起来。这种风格在数据处理和转换方面具有较高的效率和灵活性。

  • 批处理
  • 管道和过滤器

6.2 调用/返回体系结构风格

调用/返回风格是指在系统中采用了调用与返回机制,其核心思想是将一个复杂的大系统分解为若干子系统,以便降低复杂度,并且增加可修改性。

  • 主程序/子程序风格
  • 面对对象体系结构风格
  • 层次型体系结构风格
  • 客户端/服务器体系结构风格
  • 浏览器/服务器体系结构风格

6.3 以数据为中心的体系结构风格

以数据为中心的架构风格强调数据在系统中的核心地位,将数据处理逻辑围绕数据进行组织。

  • 仓库体系结构风格
  • 黑板体系结构风格

6.4 虚拟机体系结构风格

基本思想是人为构建一个运行环境,可以解析与运行自定义的一些语言,增加架构的灵活性。

  • 解释器体系结构风格
  • 规则系统体系结构风格

6.5 独立构件体系结构风格

系统每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度,提高灵活性。

  • 进程通信体系结构风格
  • 事件系统体系结构风格

七、软件架构复用

7.1 软件架构复用的原因

  • 减少开发工作
  • 减少开发时间
  • 降低开发成本
  • 提高生产力
  • 提高产品质量

7.2 软件架构复用的基本过程

  • 构建/获取可复用的软件资产
  • 管理可复用软件资产
  • 使用可复用软件资产

7.3 软件架构复用类型

  • 机会复用:在开发过程中,只要发现有可复用的资产就复用。
  • 系统复用:开发前进行规划,决定复用哪些软件资产。

八、特定领域软件架构

特定领域软件架构(Domain Specific Software Architecture,DSSA)

8.1 特定领域软件架构的特征

  • 领域性
  • 普遍性
  • 抽象性
  • 可复用性

8.2 特定领域软件架构的基本活动

  • 领域分析
  • 领域设计
  • 领域实现

8.3 特定领域软件架构的参与人员

  • 领域专家
  • 领域分析师
  • 领域设计人员
  • 领域实现人员

8.4 特定领域软件架构的建立过程

  • 定义领域范围
  • 定义领域特定原色
  • 定义领域特定的设计和实现约束
  • 定义领域模型和体系结构
  • 产生、搜集可重用的单元

若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。

;