架构师训练营第一周”架构方法“学习笔记

用户头像
随秋
关注
发布于: 2020 年 11 月 29 日

什么是软件架构

  • 架构关注整体和部分的关系

  • 任何系统都有一个架构

  • 架构是元素和元素间的关系的描述

  • 架构设计的输出:架构文档,描述的是架构元素及之间的关系

  • 架构文档关键信息是架构视图

  • 架构视图要表达架构的主要关注点,功能有哪些、哪些组件

  • 架构文档是给相关方看的,不同阶段不一样,不同的相关方关注点不同。比如老板、相关方关注性能、负载能力,开发工程师关注落地细节。

  • 沟通能力,抓住不同相关方关注的重点

描述软件架构的4+1视图

单一的视图不足以充分描述软件架构,因此需要多种视图、多维度协同工作,典型的是采用4+1视图。

  • 逻辑视图:系统的功能元素,系统、子系统、功能模块等

  • 开发视图:描述系统如何开发实现,系统的层、分区、包、类、接口等,典型如UML

  • 物理视图:描述物理节点部署及节点之间的通信关系

  • 过程视图:描述系统运行时线程、进程的情况

  • 场景视图:概况架构的重要场景及非功能性需求

软件架构建模

模型是系统的抽象。软件实现是从领域问题抽象出领域模型、设计模型,最终到方案落地实现的过程。

软件建模是为了与人沟通,保存软件设计的最终成果

UML

Unified Modeling Language,统一建模语言

  • 静态图

  • 用例图

  • 对象图

  • 类图

  • 组件图

  • 包图

  • 部署图

  • 动态图

  • 协作图

  • 序列图

  • 活动图

  • 状态图

用例图

描述系统的功能需求,通过对典型用例非分析,使开发者能够有效的了解用户的需求。

  • 用例模型描述的是外部执行者所理解的系统功能,用于捕获系统的需求,规划和控制项目

  • 用例图描述执行者和用例之间的关系

  • 用例图可以自顶向下不断精化,抽象出不同层次的用例图

类图

  • 在详细设计阶段制定,指导代码实现

  • 属性

  • 描述类的特征,表示需要处理的数据

  • 具有可见性属性

  • 操作

  • 具体的处理方法、函数

  • 是类的组成部分,只能用于该类的对象上

时序图

·用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序

活动图

  • 既可以描述操作的行为,也可以描述用例和对象内部的工作过程,并可用于表示并行过程

  • 活动图描述系统中各种活动的执行顺序

  • 活动:活动图的核心元素,是具有内部动作的状态

  • 转移:描述活动之间的关系

  • 泳道:一种分组机制,聚合一组活动

  • 对象流、控制图符

状态图

状态图包括一系列的状态以及状态之间的转移。

状态类型分为初态、终态、中间状态、复合状态

组件图

组件可以看做包、类对应的物理代码模块。

组件之间的依赖关系是指结构之间在编译、连接、执行时的依赖关系

部署图

部署图用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。

  • 部署图中的节点通常是某种硬件

  • 节点还包括在其上运行的软件组件



心得

  • 软件架构模型是现实业务的抽象建模,反映业务需求,指导落地实现

  • 机构文档是架构师架构设计的输出

  • 架构文档是一种可落地的交流工具,针对软件开发的不同阶段、不同人群,架构文档侧重点有所不同

  • UML是经过实践验证的统一建模语言



用户头像

随秋

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第一周”架构方法“学习笔记