写点什么

初学架构方法

用户头像
Zzzz
关注
发布于: 2020 年 09 月 20 日

为什么需要架构?

一个复杂的系统,如果没有架构设计,直接上手开发,开发人员想到哪开发到哪,很可能开发过程中就会发现最开始考虑不全面,开发没办法进行下去,需要重复修改设计,造成时间的浪费;或者是设计得不合理,导致性能低下,扩展性不足。同时由于系统由多个人协作开发,没有架构设计,每个开发人员对于功能的理解也都不尽相同,会导致开发过程混乱,沟通成本高。所以开发前,进行架构设计,对功能模块划分清晰,落实架构文档的编写,尤其重要。

架构设计的方法

最常用的就是通过UML(Unified Modeling Language,同一建模语言)进行建模,把现实世界的业务领域问题映射到计算机世界的领域设计模型中,以图形的方式描述软件的概念。



UML模型4+1视图

逻辑视图:设计的对象模型

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

物理视图:描述了软件到硬件的映射,反映了部署特性。

过程视图:捕捉设计的并发和同步特征



场景视图:描述场景用例的视图,跟所有视图相关,每个视图可以加入场景视图用例。



为什么需要这么多视图?

因为一个系统参与方可能不止开发人员,还有提供需求的业务人员,老板,客户,或者是负责系统运维,部署的支持人员等等,单一的视图无法反应整个系统的设计,表达架构,需要从多个维度去展示整个系统设计。



UML的十种模型图

其中又分为静态图与动态图,静态图通过描述类、对象和数据结构以及它们之间存在的关系,来描述软件要素种不变的逻辑结构。动态图通过描绘执行流程或者实体状态变化的方式,来展示软件实体在执行过程种变化的过程。

静态图
  • 用例图

  • 对象图

  • 类图

  • 组件图

  • 包图

  • 部署图

动态图
  • 协作图

  • 序列图(时序图)

  • 活动图

  • 状态图



在实践中,其中比较常用的有七种,分别是类图,组件图,序列图,活动图,状态图,部署图,用例图。

一般在需求分析阶段使用的比较多的是用例图,序列图,组件图,部署图

概要设计阶段则是序列图,活动图,组件图,部署图

详细设计阶段的是类图,序列图,活动图、状态图



推荐使用的工具

  • Visio:可以通过visio画uml类图,序列图,状态图,尤其是序列图,线能自动吸附到激活的元素上面,感觉比ProcessOn方便很多。但遗憾的是我使用的版本没有找到部署图跟组件图的模板,不然用visio就够了。

  • ProcessOn:UML所有模板都有,可以全部都在上面画,优点是可以在网页上画图,不需要下载软件,比较轻便,模板种类多,美观。缺点是不付费的话有文件限制。



总结

我们光有设计的想法是不行的,开发一个系统不是一个人的事,需要各个相关方的参与,我们需要与其他各个参与到系统的相关方进行沟通,把我们脑海中的架构设计想法通过UML模型图进行表达出来,UML多种模型视图,能让各个相关方详细了解到我们的架构设计,从而进行有效的协作,确保系统能按我们设计的预期进行开发,部署,运行。



用户头像

Zzzz

关注

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

发布
暂无评论
初学架构方法