【架构课笔记 - 第一周】一般方法与设计文档

用户头像
Nelson
关注
发布于: 2020 年 06 月 10 日
【架构课笔记-第一周】一般方法与设计文档

1. 架构师的主要能力

  1. 能力基础:

  • 编程

  • 掌握基础技术原理

  • 常用技术产品的理解与应用

  1. 架构技能:

  • 常用架构模式和框架的理解与应用

  • 建模以及设计文档编写

  • 业务理解与功能模块及非功能模块拆解

  1. 其他软技能:

  • 快速学习

  • 沟通领导

2. 什么是软件架构

软件架构是有关整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

软件架构 = {元素,形式,关系/约束}

重点在于“抽象描述”,要对元素(组件)的特征、形式与关系的要点,进行分层和概括描述。



3. 4+1 视图方法

3.1 什么是 4+1 视图



软件架构涉及到抽象、分解和组合。可以由多个视图或视角组成的模型来描述它,常见的有 4+1 视图:

逻辑视图

开发视图 + 场景视图

物理视图

过程视图

3.2 架构视图重点的关注

  • 给什么人看

  • 如何达到设计意图

3.3 参考:

架构蓝图—软件架构 “4+1” 视图模型



4. 建立模型

4.1 什么是模型:

即系统的完整抽象,重点是抽象。

对架构师的要求正是抽象能力和抽象表达能力。

领域问题(现实问题)出发,获得概念模型,提取系统需求,设计解决方案。

4.2 为什么建模

目的是沟通

4.3 何时画图

  • 讨论交流时

  • 产出最终设计文档

4.4 何处画图

  • 白板

  • Visio ……

  • draw.io



5. UML

统一建模语言

5.1 UML 图分类

5.1.1 静态图

  • 用例图

  • 对象图

  • 类图

  • 组件图

  • 包图

  • 部署图

5.1.2 动态图

协作图

序列图

活动图

状态图

5.2 UML 图的组成

5.2.1 模型元素

类、对象、状态、用例、节点、包和组件

5.2.2 静态关系

  • 依赖

  • 关联

  • 继承

  • 实现

  • 聚合

  • 组合

5.3 具体 UML 图

5.3.1 用例建模

通常需求分析阶段用

5.3.2 类图

详细设计阶段用;

类名、成员变量、方法;

+public、-private

5.3.3 时序图

各阶段都可使用;

表达动态关系;

对象、生命线、激活、消息;对象层面方法就是消息

消息

  • 简单消息

  • 同步消息

  • 异步消息

注:对象间的消息(方法调用)是同步消息;

5.3.4 活动图

各阶段都可使用;例如泳道

5.3.5 状态图

需求分析、详细设计阶段可用

5.3.6 协作图

用时序图可以生成,丢掉时序关系即可生成

5.3.7 组件图

5.3.8 部署图

建议架构师做架构设计时做的第一张图

5.4 参考书



用户头像

Nelson

关注

还未添加个人签名 2017.09.04 加入

还未添加个人简介

评论

发布
暂无评论
【架构课笔记-第一周】一般方法与设计文档