一些文章:
这篇文章,讲类图中的六种关系,比较清晰:
https://blog.csdn.net/qq_20936333/article/details/86773664
这篇文章介绍uml中常用的图的功能:
https://blog.csdn.net/weixin_43574446/article/details/106728306
这篇讲业务系统设计,属于软件前期的业务梳理,需求整理,写的太好了,后边可以反复看看:
https://zhuanlan.zhihu.com/p/127384988
这篇讲业务梳理,需求建模用到的uml图:
https://zhuanlan.zhihu.com/p/433666903
理解:
一、首先,软件工程,说白了就是制作一个软件,实现某些功能。那么,制作过程就可以这么分:
1.确定要实现什么(确定业务)
2.把要实现的软件,细分功能模块(梳理、划分需求、得到整体/概要设计)
3.根据2得到的设计,软件开发人员进行详细的设计
4.编码实现
5.测试
6.部署
二、根据上面的这些开发流程,uml提供了各个阶段的规范图形,帮助梳理各个阶段的任务,帮助不同人员清晰的沟通协作;
1.确定业务阶段:
(1)业务流程图:清晰的流程图有助于梳理清楚业务关系、现状、问题;
(2)组织架构图:得到组织关系
这两个其实不属于uml图,uml图比较偏设计、实现。
这两个图其实是将业务调研得到的一些信息、数据整理,得到的用来描述清楚业务逻辑的图,有了业务流程图,才有后边的进一步需求细分,此时,业务方案应该基本有了。
2.整体设计阶段:
(1)系统架构图(uml中的组件图):根据梳理的业务,把业务和目前现有系统以及需要依赖的三方库等联系起来,便于展示沟通
(2)功能模块图:对业务进行拆分,得到功能模块。
(3)演进蓝图:对功能模块图中的具体功能划分迭代周期,找到重点关注的功能。
(4)跨部门流程图:对业务流程图的细化,根据功能模块细化流程图。
3.详细设计阶段:
(1)ER图:描述业务对象及关系的模型,实体建模,最重要的环节。“只要模型清晰合理,功能设计、界面设计都是水到渠成的事。”
(2)类图(uml):ER图已经描述好了对象及关系的模型,类图则是对这些的实现。
(3)用例图(uml):有了整体设计阶段得到的功能模块图,相当于模块划分好了,用例图,从用户视角描述各个功能模块,主要给业务、用户看。
(4)活动图(uml):与之前的业务流程图/跨部门流程图其实本质一样,都是流程图,不过在详细设计阶段更强调对某个功能的流程图;且面向开发人员。此外,有说活动图可以并行表现,这个只是画图上的差异。
(5)时序图(uml):对各个功能模块,表现其行为的时间顺序(也说消息传递的时间顺序)。
(6)状态机图(uml):状态机图(State Machine Diagram)也叫有限状态机图(Finite State Machine Diagram),是一种描述所有状态及状态之间流转规则的图形。对各个模块在不同功能操作下的状态变化。
4.编码
5.测试
6.部署:
部署图(uml)
总结:
综上,常用的uml图基本上是以上这7种:
1.组件图用来表现做整体模块架构 (整体设计/概要设计)
2.类图用来表现实体建模 (详细设计)
3.用例图、活动图、时序图、状态机图从不同角度表现划分好的各个功能模块 (详细设计)
用例图从外部用户使用的场景表现
活动图描述各个功能的操作流程
时序图表现各个功能操作的时间顺序,这个相对重要,可以功能和各模块对象的顺序关系、交互关系
状态机图表现各个对象在执行不同功能时的不同状态变化(执行不同功能就是条件)
这些图理论每个功能模块应该对应一个,不过一般对核心的、重要的功能画图即可,目的是梳理清楚模块的功能,不要有遗漏。
4.部署图用来表现与硬件的部署关系:(部署阶段,如果有的话)
5.没出现的图不太重要:
对象图(感觉有了类图不怎么需要对象图)
包图(这个感觉是对类图中的一些相近类的一个打包显示,使图的结构更清晰)