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

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

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

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

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

选中上图中的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写出更精彩的文章?那么希望老铁别吝啬你的三连击哦
1、点赞,可以让更多的人看到这篇文章
2、关注我的原创微信公众号『Relax聊技术』,第一时间阅读我的文章。
3、也欢迎关注我的博客哦。

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

  1. WEB网页设计前端(前台)开发的常用工具推荐

    WEB网页设计前端(前台)开发的常用工具推荐 最近我在搞网页设计,包括网站建设的前台界面设计和JS代码的编写,弄一个JS的时候把我给郁闷了,在寻找JS如何通过子节点操作父节点的时候找到了以下免费的网站 ...

  2. uml活动图 各个功能的操作流程和分支_做软件架构设计,你不得不知道这些图...

    作为一名架构师,你设计的架构其实是要给很多人看的,包括公司领导.产品.开发.测试和运维,那么你该如何把你设计的架构展示给别人呢? 这就是Relax今天想跟大家聊的内容.大家还是不妨先花个两三分钟好好想 ...

  3. 史上最强画图工具推荐

    大家好,我是坚果,公众号"坚果前端" 引子 水群的时候看到一个问题. 那么有了问题,就开始正文吧 在日常的写作以及做笔记等的过程之中,少不了要画图,但是在word.ppt里画图效率 ...

  4. 超好用的画图工具推荐

    读者提问: 『超好用的画图工具,有推荐的吗 ?』 阿常回答: 这 3 款画图工具,简单好用,必须得试试- 1.draw.io 支持网页 / Win / Mac / Linux,开源免费,文件存储在本地 ...

  5. 用什么来做用户行为分析?七个实用工具推荐给你

    当企业进入数据化管理阶段之后,就不得不对用户进行行为数据分析,当然其他的包括用户画像.趋势分析等等,都是现在企业经常要进行的营销分析,因此选一个好的数据分析工具是很重要的. 而现在的数据分析工具越来越 ...

  6. ai怎么切图制作html,APP扁平化设计最强AI切图工具推荐与AI切图教程

    目前很多APP设计师使用了AI软件来进行一些扁平化的设计,包括设计APP界面设计.APP引导页界面设计.APP图标设计等等.但是在AI里面切图是非常的不方便.于是,为了解决大家这个烦恼. AI设计师的 ...

  7. 《软件架构设计.第二版解析软件架构概念》阅读笔记——到底什么是软件架构?...

    2019独角兽企业重金招聘Python工程师标准>>> 我的经历及对软件架构的理解 我个人从事软件开发8年,大大小小软件做过不计其数,做过企业应用的架构设计,也做过全新的互联网在线S ...

  8. 我是如何做原型设计的

    当重新开始编程时,我不知道用什么来做原型设计比较好,用纸画草图比较简单,但演示起来没能让用户有一个动态的效果,起初想用UML画一些流程图,这只能说明操作的过程,如何交互并不能反映出来.后来在网上找了一 ...

  9. 嵌入式系统功能概要设计说明_嵌入式软件架构设计实际该怎么做?

    一   错误的示范 最近公司新招了一个做嵌入式软件开发的同事,该同事是从上海的某一个上市公司出来的,因为我们这边人手不够,因此把他安排了去负责一个新产品的研发,前期让他负责加速度计.NB-IOT.舵机 ...

最新文章

  1. 《应用时间序列分析:R软件陪同》——1.5 习题
  2. 网络通信基础:ICMP基础通识
  3. (八)Eclipse创建Maven项目运行mvn命令
  4. [UVa10296]Jogging Trails
  5. JSF JQUERY 使用datepicker
  6. Android 使用jtds远程访问数据库
  7. ASP.NET Core Razor Pages
  8. android fragment动画,Fragment 的过场动画
  9. Spring Boot 实现登录拦截器,这才是正确的姿势!!
  10. linux用户名是什么_什么是Linux用户?
  11. php开启filtervar_PHP如何使用filter_var()函数?(代码示例)
  12. java 弹出另存为_java如何实现 io流传输过来的文件,提示另存为弹出窗口?
  13. 台达plc控制伺服电机编程实例_三菱Q系列PLC控制伺服电机编程实例
  14. [BZOJ3503]-[CQOI2014]和谐矩阵-高斯消元
  15. snapchat_Snapchat的新地图功能介绍(以及如何禁用它)
  16. 人工智能课程今秋走入高中课堂
  17. vue中使用video-player 播放rtmp格式的视频,播放前有一小段黑屏
  18. 宿主机与开发板网络共享
  19. 关于在线课程及软件开发学习--给真正希望学习的朋友
  20. AOSP ~ WIFI架构总览

热门文章

  1. 如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是()。
  2. ThinkPHP V5.0.5漏洞_ThinkPHP漏洞分析与利用
  3. 米拓后台维护密码_密码维护
  4. Camtasia2020官方汉化免费下载录屏软件
  5. 宇枫资本怎样制定最适合自己的投资理财方案
  6. 2020年了,OCM认证,还有含金量么?
  7. 哈佛管理大师学习笔记
  8. android 波斯文排序,Android 4.2原生支持从右到左的文字排列格式
  9. oracle18c的rac启动,使用NFS与ASM配置Oracle 18c RAC
  10. 集丰照明|目前已发布的半导体照明电子行业标准有哪些?