软件架构设计之工具实践篇

前面写了两篇软件架构设计的文章,思想篇和理论篇,今天Relax君想跟大家聊一聊如何通过具体的工具去画出软件架构设计中的那些图,这其实也正是上篇文章《这个公众号后面会写些什么》中写到的,Relax君会给大家分享一些优质的技术资源,那么今天主要给大家分享的是一个好用的架构设计画图工具——Enterprise Architect(后面都简称EA)。

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

安装好EA后,打开EA新建一个工程,选择对应的视图,具体步骤见下图红色方框标注:

点击确认后,在EA的右侧就可以看到对应的视图:

可以看到,用例图、类图、组件图和部署图都已经有了,序列图还没有,我们待会儿手动添加一下就行了。这样,我们就可以开始通过EA画我们想要的这些图了,为了大家好理解,我会举一个简单的网站系统架构设计的例子,当然不一定恰当,大家能理解其中的意思就行了。

选中上图中的User Case View,然后选择Toolbox(EA中画图都是选中视图,然后去对应的Toolbox选相应的控件),如下图所示:

用例试图概括的是角色和系统之间的关系,描述了系统的功能需求,角色和系统的交互以及系统的反应。任何一个网站最少有两种角色,用户和管理员,拖动ToolBox中的Actor到页面上,按提示输入用户,表示新建用户角色,那么用户这个角色最少包含注册、登录和发表评论功能,拖动ToolBox中的Use Case到页面上,按提示属于注册、登录和发表评论,如下所示(管理员的用例图操作也是一样):

这样基本的用例图就画好了,上面说过创建工程时没有序列图,现在我们就可以接着画序列图了,这里我们以用户注册为例,选中注册,然后右键选中Add,选中Interaction,选中with Sequence Diagram,见下图:

右键选择Interaction,选择属性,修改序列表的名称为注册:

到此,序列图就建好了,序列图描述的对于一个功能,系统内部各个相关模块之间的流程关系,下面画一下用户注册这个过程中,网站相关模块的流程:

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

下面再看看构件图(组件图),构件图描述的是系统的逻辑层次结构和划分的模块,选中Component View,然后选择Toolbox:

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

最后讲一下类图,类图就涉及到具体的编码了,在架构设计前期可能还用不到,到概要设计阶段就要考虑了,类图其实就相当于写代码之前把模块的文件划分、函数API以及参数,变量定义和外部接口都提前想好了,在具体编码中就只用关心实现了,这样做的好处就是,在编码之前就可以定义出外部接口,方便多模块多人的协同开发,同时编码之前大家就可以对类图进行评审,避免等完成代码开发之后由于考虑不周导致的返工。这里还要说一下,其实EA中还可以将画好的类图直接生成代码,这样在画图的过程中,其实就把部分代码都写好了,简直就是程序员的福音啊。在EA中,选中Logical View,从Toolbox选中控件就可以开始画类图了:

添加函数和结构体都是右键选中Attributes添加变量,选择Operations添加函数方法:

下面是登录模块画的一个类图:

要想自动生成代码,选择类图右键选择Generate Code就行了。

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

已经陆续有小伙伴关注我的公众号了,所以Relax君想发起一个投票,了解下大家是如何关注到我的。

码字不易,如果你觉得Relax君写得文章对你有帮助,请关注一下我的公众号,点击在看或者分享到你的朋友圈让更多有需要的人看到。

      我是Relax君,一个专注于分享程序员优质技术资源的公众号。

                                                         

猜你喜欢

转载自blog.csdn.net/xuedabao/article/details/90143184