写点什么

第一周架构方法 - 周总结

用户头像
潘涛
关注
发布于: 2021 年 01 月 02 日

第一周 - 我的疑问

问题 1:使用 UML 表达建模时,如何区分“组件”,以便于绘制“组件图”和“组件时序图”?

问题 2:“用例图”比较粗略,感觉不足以用来描述一个大型系统,为什么软件架构时还需要使用用例图?


什么是模型?

模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的

理解和认识都蕴涵在模型中。

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

域问题到计算机系统的映射。


什么是软件架构?

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


软件架构的核心是:架构。

架构由架构元素和元素间的关系组成。

系统都应该有架构,使用架构文档来描述架构结果,架构文档是用来给系统的相关方阅读的。

架构文档由架构视图来表示。

如何做软件架构

架构师的主要职责

编写架构设计文档

开发编程框架

重构软件代码

设计系统架构

进行技术选型,解决技术应用中的问题

优化系统性能

模块分解与微服务架构重构

保障系统安全与高可用

大数据应用

技术创新

沟通管理


架构师主要能力

编程能力

基础技术掌握能力

常用技术产品的理解与应用能力

性能优化与分析故障的能力

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

建模以及设计文档的方法和能力

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

快速学习能力

沟通与领导能力

使用【4+1 视图模型】来进行软件架构设计

• 逻辑视图(Logical View)

设计的对象模型

相关方:客户,用户,开发组织管理者。

视角:系统的功能元素,以及它们接口,职责,交互。

主要元素:系统,子系统,功能模块,子功能模块,接口。

用途:开发组织划分,成本/进度的评估。

例如:


• 过程视图(Process View)

捕捉设计的并发和同步特征。

相关者:性能优化,开发相关人员。

视角:系统运行时线程,进程的情况。

主要元素:系统进程,线程以及处理队列等。

例如:


• 物理视图(Physical View)

描述了软件到硬件的映射,反映了部署特性。

相关者:系统集成商,系统运维人员。

视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。

主要元素:物理节点以及节点的通信。

例如:部署图

• 开发视图(Development View)

描述了在开发环境中软件的静态组织结构。

相关者:开发相关人员,测试人员

视角:系统如何开发实现

主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,

系统平台和相关基础框架。

用途:指导开发组织设计和开发实现

例如:类图

• 场景视图(scenarios)

描述用例场景

相关者:用户,设计和开发人员。

视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这

些场景的实现,阐明了架构的广度或众多架构元素运行的方式。

例如:用例图

如何使用 UML 进行软件架构设计与建模?

UML 图的分类 -静态图

静态图 - 通过描述类、对象和数据结构以及它们之间存在的关系,来描述软件要素中不

变的逻辑结构。

• 用例图(Use Case Diagrams)

• 对象图(Object Diagrams)

• 类图(Class Diagrams)

• 组件图(Component Diagrams)

• 包图 (Package Diagrams)

• 部署图(Deployment Diagrams)

UML 图的分类 -动态图

动态图 - 通过描绘执行流程或者实体状态变化的方式,来展示软件实体在执行过程 中

的变化过程。

• 协作图(Collaboration Diagrams)

• 序列图(Sequence Diagrams)

• 活动图(Activity Diagrams)

• 状态图(State Diagrams)


用户头像

潘涛

关注

还未添加个人签名 2020.02.25 加入

还未添加个人简介

评论

发布
暂无评论
第一周架构方法-周总结