本周学习总结
一、学习知识
a) 架构基本概念
b) 模型概念
c) UML 简介以及静态图和动态图
d) 每种图的画法以及关键要素
二、学习心得
架构师重点是知道问题来源,知道解决谁的问题,了解问题的本质,抽象模型如何落地,如何协调资源,制定合理的切合实际的解决方案。
以下为学习笔记,学习笔记由 xmind 记录的格式转换有点问题。
1. 架构是什么?
·
2. 架构视图:达成设计意图是重点
· 基本概念
• 软件架构={元素,形式,关系/约束}
•
· 4+1 视图模型
• 逻辑视图(Logical View)
• 设计的对象模型。
• 相关方:客户、用户、开发组织管理者。
• 视角:系统的功能元素,以及他们接口,职责,交互。
• 主要元素:系统、子系统,功能模块,子系统功能,接口。
• 用途:开发组织划分,成本/进度的评估。
• 过程视图(Process View)
• 捕捉设计的并发和同步特征。
• 相关者:开发相关人员,测试人员
• 视角:系统如何开发实现
• 主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,系统平台的相关基础框架。
• 用途:指导开发组织设计和开发实现
• 物理视图(Physical View)
• 描述软件到硬件的映射,反映了部署特性。
• 相关者::系统集成商,系统运维人员
• 视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
• 主要元素:物理节点以及节点的通信。
•
• 开发视图 (Development View)
• 描述了在开发环境中软件的静态组织结构。
• 相关者:性能优化,开发相关人员。
• 视角:系统运行时线程,进程的情况。
• 主要元素:系统进程,线程以及处理队列等。
•
• 场景视图(scenarios)
• 描述用例场景
• 相关者:用户,设计和开发人员
• 视角:概况了架构最重要的场景及其非功能性需求,通过这些场景的实现,阐明了架构的广度和众多架构元素运行的方式。
•
3. 什么是模型?
· 模型是一个系统的完整的抽象。
· 领域问题
• 分析、抽取成概念模型
• 提取系统需求
• 分析,设计解决方案
4. 为什么要建设模型?
· 建造传统模型的目的
• 为了证明某件事物能否工作
• 前提:建造模型的成本远远低于建造师物的成本
• 造飞机
• 造高楼
· 建造软件模型的目的
• 为了与他人沟通
• 为了保存软件设计的最终成果
• 前提:除非模型比代码更说问题
5. 何时、何处画图?
6. UML 简介
· 什么是 UML?
• Unified Modeling Language,或统一建模语言
• 以图形方式描述软件的概念
· UML 可用来描述:
• 某个问题领域
• 构思中的软件设计
• 描述已经完成的软件实现
· 分类
• 静态图
• 通过描述类、对象和数据结构以及他们之间存在的关系,来描述软件要素中不变的逻辑结构。
• 用例图
• 角色
• 用例
• 动宾短语
• 边界
• 关系
• 对象图
• 类图
• 组件图
• 包图
• 部署图
• 规模在 10 到 20 个元素,信息不要太多
• 动态图
• 类型
• 时序图
• 描述动态调用关系
• 对象
• 类
• 模块
• 角色
• 系统
• 生命线(虚线)
• 激活(白色长条)
• 消息(虚线箭头)
• 方法
• 活动图
• 描述流程的
• 合作图
• 组件图
• 描述物理组件模块的
• 部署图
• 第一张图
• UML 中的消息
• 简单消息
• 同步消息
• 异步消息
评论