架构设计学习笔记 1

用户头像
Arthur
关注
发布于: 2020 年 10 月 25 日



架构设计的表达

架构文档内容

软件的架构 = 元素 + 形式 + 关系/约束

主要包含架构视图;

4+1架构视图模型

核心观点:通过多种架构视图向不同的相关方描述架构方案;

  1. Logical View

  2. 设计的对象模型

  3. For:End-user Functionality

  4. Process View

  5. 设计的并发和同步特征

  6. For:Integrators, Performance, Scalability

  7. Physical View

  8. 软件到硬件的映射,反映了部署特性

  9. For: System engineers, Topology Communications

  10. Development View

  11. 开发环境中软件的静态组织结构

  12. For: Programmers, Software management

  13. Scenarios

  14. 用例场景



UML

统一建模语言,用于交流模型设计,以图形的方式描述。

  1. UML有自己的规范语法,建议首先要敢于进行设计的表达;不必纠结于语法、规范、标准;

  2. 重点在于能否正确的表达设计意图



UML建模

How? 如何进行UML建模?

软件开发三个阶段

  1. 需求分析

  2. 时序图

  3. 概要设计

  4. 组件图

  5. 详细设计

  6. 类图

What?

*为UML建模过程中常见图例

静态图

  1. 用例图*

  2. 对象图

  3. 类图*

  4. 组件图*

  5. 包图

  6. 部署图*



动态图

  1. 协作图

  2. 序列图*(时序图)

  3. 活动图*

  4. 状态图*



通用模型元素

元素符号

关系

常见关系

  1. 关联

  2. 连接模型元素及链接实例

  3. 泛化

  4. “一般”元素是“特殊”关系的泛化;"is-a kind of";

  5. 依赖

  6. 聚合

  7. 整体与部分的关系,

  8. 组合

  9. 人是组合起来的"has-a"



用例图Use Case

  1. 需求分析阶段,用于描述系统的功能需求。在宏观上给出模型的整体轮廓。通过对典型用例的分析,使开发者能够有效地了解用户的需求。(5'54'')

  2. 可以逐层向下细化,用更细化的用例图描述进一步的细节。



动态图的前提是怎样处理消息。

时序图

用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序。(18'33'')

两个轴

  1. 水平轴表示一组对象

  2. 垂直轴表示时间



在软件开发的三个阶段均可以使用;

组件图

组件可以是物理组件或者逻辑组件,是系统中遵从一组接口且提供其实现的物理的、可替换的部分。可以看做包与类对应的物理代码模块,逻辑上与包,类对应,实际上是一个文件。(35'35")



组件之间的依赖关系是指组件之间在编译,链接或者执行时的依赖关系。



部署图

部署图描述开发的组件最终在硬件上的部署情况。一般用在概要设计阶段。

软件设计开始的第一张图。



从概要到详细设计

从上到下的顺序:

  1. 部署图

  2. 组件图

  3. 组件时序图

  4. 每个组件的类图



没有设计文档就没有软件设计

没有软件设计就没有技术进步



发布于: 2020 年 10 月 25 日 阅读数: 11
用户头像

Arthur

关注

Every Step Counts 2019.12.13 加入

还未添加个人简介

评论

发布
暂无评论
架构设计学习笔记1