做软件架构设计,这个好用的画图工具推荐给你

前面写了两篇软件架构设计的文章,今天Relax想跟大家聊一聊如何通过具体的工具去画出软件架构设计中的那些图,那么今天主要给大家分享的是一个好用的架构设计画图工具——Enterprise Architect(后面都简称EA)。

前面说了Relax平时主要用到了类图、构件图、部署图、用例图和序列图五种图,所以这篇文章主要是想比较详细的说明如何通过EA画出这些图。

安装好EA后,打开EA新建一个工程,选择对应的视图,具体步骤见下图红色方框标注:
做软件架构设计,这个好用的画图工具推荐给你_第1张图片
点击确认后,在EA的右侧就可以看到对应的视图:
做软件架构设计,这个好用的画图工具推荐给你_第2张图片
可以看到,用例图、类图、组件图和部署图都已经有了,序列图还没有,我们待会儿手动添加一下就行了。这样,我们就可以开始通过EA画我们想要的这些图了,为了大家好理解,Relax会举一个简单的网站系统架构设计的例子,当然不一定恰当,大家能理解其中的意思就行了。

选中上图中的User Case View,然后选择Toolbox(EA中画图都是选中视图,然后去对应的Toolbox选相应的控件),如下图所示:
做软件架构设计,这个好用的画图工具推荐给你_第3张图片

用例试图概括的是角色和系统之间的关系,描述了系统的功能需求,角色和系统的交互以及系统的反应。任何一个网站最少有两种角色,用户和管理员,拖动ToolBox中的Actor到页面上,按提示输入用户,表示新建用户角色,那么用户这个角色最少包含注册、登录和发表评论功能,拖动ToolBox中的Use Case到页面上,按提示属于注册、登录和发表评论,如下所示(管理员的用例图操作也是一样):
做软件架构设计,这个好用的画图工具推荐给你_第4张图片
这样基本的用例图就画好了,上面说过创建工程时没有序列图,现在我们就可以接着画序列图了,这里我们以用户注册为例,选中注册,然后右键选中Add,选中Interaction,选中with Sequence Diagram,见下图:
做软件架构设计,这个好用的画图工具推荐给你_第5张图片

右键选择Interaction,选择属性,修改序列表的名称为注册:
做软件架构设计,这个好用的画图工具推荐给你_第6张图片

到此,序列图就建好了,序列图描述的对于一个功能,系统内部各个相关模块之间的流程关系,下面画一下用户注册这个过程中,网站相关模块的流程:
做软件架构设计,这个好用的画图工具推荐给你_第7张图片

好了,到此,用户注册的序列图就画完了。

下面再看看构件图(组件图),构件图描述的是系统的逻辑层次结构和划分的模块,选中Component View,然后选择Toolbox:
做软件架构设计,这个好用的画图工具推荐给你_第8张图片

下面再看看部署图,部署图描述的是系统硬件部署时上下游设备的一个位置连接关系,对于小型个人站点来说,大家可能觉得我直接租一台云主机一配置就完事儿了,根本就不需要关心这些,但是对于大型网站来说,网站服务器部署时的DNS配置、负载均衡、防火墙、CDN,数据存储等等,都是不得不考虑的,所以部署图也是架构设计中需要重点考虑的,通过看系统的部署图,我们可以知道系统在整个环境中的位置,在EA中,选中Deployment就可以画部署图:
做软件架构设计,这个好用的画图工具推荐给你_第9张图片

最后讲一下类图,类图就涉及到具体的编码了,在架构设计前期可能还用不到,到概要设计阶段就要考虑了。

类图其实就相当于写代码之前把模块的文件划分、函数API以及参数,变量定义和外部接口都提前想好了,在具体编码中就只用关心实现了,这样做的好处就是,在编码之前就可以定义出外部接口,方便多模块多人的协同开发,同时编码之前大家就可以对类图进行评审,避免等完成代码开发之后由于考虑不周导致的返工。

这里还要说一下,其实EA中还可以将画好的类图直接生成代码,这样在画图的过程中,其实就把部分代码都写好了,简直就是程序员的福音啊。在EA中,选中Logical View,从Toolbox选中控件就可以开始画类图了:

添加函数和结构体都是右键选中Attributes添加变量,选择Operations添加函数方法:
做软件架构设计,这个好用的画图工具推荐给你_第10张图片

下面是登录模块画的一个类图:
做软件架构设计,这个好用的画图工具推荐给你_第11张图片
要想自动生成代码,选择类图右键选择Generate Code就行了。

好了,Relax要讲的五种图就讲完了,大家有想了解更多详细内容的,可以评论给我留言。

想要Relax写出更精彩的文章?那么希望老铁别吝啬你的三连击哦
1、点赞,可以让更多的人看到这篇文章
2、关注我的原创微信公众号『Relax聊技术』,第一时间阅读我的文章。
3、也欢迎关注我的博客哦。
做软件架构设计,这个好用的画图工具推荐给你_第12张图片

你可能感兴趣的:(软件架构设计)