序言
UML意义
软件需求分析,更流畅且标准化的沟通形式。<br /> 过往也使用过UML类的图,但是没有进行学习过,使用上并不规范,单独和客户或者研发去沟通讲解没有问题,但是大范围的使用的话,不规范的问题就会极大的增加沟通成本,而且一些过往的不规范用法的使用含义自己也容易忘记。
UML的分类
结构型图:类图、对象图、构件图、部署图、包图
行为型图:活动图、状态机图、顺序图(时序图)、通信图、用例图、时序图(时间图)
UML需要的能力
- 书面表达能力
- 归纳总结能力
- “面向对象”的思维能力和抽象能力
UML在需求分析中的助力
类图
什么是类图
矩形放开,最上为类的名字,中间是属性,下面是操作。
表示一个类时,可只显示雷鸣,也可只显示“类名+属性”或“类名+操作”。
属性和操作前“+”表示为public公共类型,“-”表示private私有类型,“#” 表示protected受保护类型,一般需求分析时全部标位+即可。
冒号后是属性类型,如int、string等,需求分析初始阶段可省略。
类的关系
直线关系
表示两个类之间有关联关系
线段两侧下方添加数字表示数量对应关系,如1对1,1对多(*表示),区间表示(0..3表示0到3个,注意是两个小数点)
角色关系
导航关系表示从A可以找到B,例如
直线可以为做图便利,使用折线表示。
包含关系
弱包含:聚合—部门不存在时,员工可继续存在,可多对多
强包含:组合—部门不存在时,员工也不存在,不可多对多
*注意绘图时的箭头方向
继承关系
泛化,学生和讲师都“继承”了员工,具备员工的属性,而且他们也有各自特有的属性。
依赖关系
递归关系
三角关系
活动图
行为建模工具,与流程图类似。
活动图实践流程
- 明确该流程要达到怎样的业务目的。
- 该流程有什么角色参与?哪些是主要角色?
- 排除异常情况,画出正常情况下的流程,这就是流程的主干,通常是线性的流程。线性的流程是指一条线从头走到尾的流程,中间没有分支。
- 明确流程主干中的活动涉及到的角色。
- 逐步增加分支流程,关键的分支流程都应该表达出来,但要注意并不需要画出所有异常情况,必要时通过注释或者文字说明。
- 适当控制活动的粒度。
- 先画出反映当前情况的流程,再画出优化后的流程。使用泳道可以方便的区分角色,交互多的角色泳道相邻可使图绘制简化。
- 对照前后的差异,整理出业务需要调整的地方,与客户确认。
- 活动图最适合用来描述企业的本质工作流。在绘制活动图时千万不要去研究活动的细节,活动图所要捕捉的是整体业务流程的“大方向”。有关细节的相关描述应该是在讨论“用例”时才需要捕捉。
活动图语法
开始状态(Initial State)
结束状态(Final State)
活动(Activity) 动作(Action)
活动可以再细分为多个子活动或动作
动作不可再细分,一般不需要用到。