写点什么

第 1 周作业 - 学习总结

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

本周主要学习了四大方面的内容:

1)大厂架构师招聘职位要求以及常见面试题;

2)架构设计的本质以及多视图的方式来描述架构;

3)使用UML进行软件架构建模;

4)架构设计文档写作模式。

下面分享一下自己的学习总结:

软件架构是由元素、形式以及关系约束组成,因为架构设计要面向不同的角色如开发人员、测试人员、运维人员甚至管理人员,因此架构设计需要多种视图来表达,一般采用逻辑视图、过程视图、物理视图、开发视图以及用例视图来描述架构。

1)逻辑视图

构成逻辑视图的元素主要包括系统、子系统、功能模块、子功能模块以及交互。逻辑视图主要面向客户、用户以及开发组织管理者。用途是开发组织划分、成本/进度的评估。

2)过程视图

构成过程视图的元素包括系统进程、线程以及处理队列等。过程视图主要面向性能优化人员、开发相关人员。

3)物理视图

构成物理视图包括物理节点以及节点的通信。物理视图主要面向系统集成商、系统运维人员。

4)开发视图

构成开发视图包括层、分区、包、框架、系统通用服务、业务通用服务、类和接口、系统平台和相关基础框架,开发视图主要相关者包括开发相关人员、测试人员。

5)场景视图

构成场景视图包括角色、用例、关系等,场景视图主要用于用户、设计和开发人员。

在实践中并不会设计上面这些视图,而是通过UML来建模,但上面这些视图提供了一个思考点和启发。

模式是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴含在模型中。

通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射。

为什么需要建模?

可维护性、可扩展性、代码质量

领域模型设计+系统设计

建造传统模型的目的

  1. 为了证明某件事物能否工作

  2. 前提:建造模型成本远低于建造实物成本

建造软件模型目的

  1. 为了与它人沟通

  2. 为了保存软件设计的最终成果

  3. 前提:除非模型比代码更说明问题

何时画图?

  1. 讨论、交流时

  2. 最终设计文档

  3. 只保留少量的、重要的图

  4. 避免涉及过多内容和实现细节

何处画图?

  1. 白板

  2. 绘图工具,如visio,Aastah

  3. draw.io

什么是UML?

  1. Unified Modeling Language, 统一建模语言

  2. 以图形方式描述软件的概念

图是否规范是否不重要,重要的是能正确表达思想,像人的方言一样,是否有用为第一性原理

UML可用来描述

  1. 某个问题领域

  2. 构思中的软件设计

  3. 描述已经完成的软件实现



用户头像

jingx

关注

还未添加个人签名 2018.09.07 加入

还未添加个人简介

评论

发布
暂无评论
第1周作业-学习总结