29
Mar
2012
UML学习笔记
UML不是一种方法学,而是一种描述语言。作为面一种描述语言,在OOA、OOD、OOP中,有着非常重要的作用。在项目初期的需求分析、功能分析中,在设计阶段的模块设计、类设计及对象状态,到了编程的时候可以很快的从UML转换为源代码。
对小项目,UML的优势不明显,无须过多的需求分析,所有的一想就出来了。但是面对复杂的业务时,这种描述语言的存在(此处仅针对UML),使得思路清晰。
UML图分为三类:
- 静态图:包括用例图、对象图、类图、组件图、部署图
- 动态图:协作图、序列图、活动图、状态图
- 物理图:文件、数据库等
1、用例图
帮助开发团队以一种可视化的方式来理解系统的功能需求。
什么是用例?用例是指系统的功能,是系统某个功能的执行动作的集合。从用户的观点告诉系统要做的一些特定的事情。
符号:椭圆(用例)、人形符号(用户或角色)
2、类图和对象图
类间关系:
- 继承
- 关联
- 依赖
- 聚合
- 组合
3、序列图
序列图用来显示具体用例图的详细流程,显示流程中不同对象的交互关系,以及相互的各种调用。
序列图有两个维度:
- 水平:对象实例之间的交互
- 垂直:以发生时间顺序显示消息/调用的序列
对象之间的交互:
- 调用(call)
- 返回(return)
- 发送(send)
- 创建(create)
- 销毁(destroy)
4、状态图
状态图表示某个类所处的不同状态和该类的状态转换信息。
符号:
- 初始起点 ========»实心圆
- 状态之间的转换====»带箭头的线段
- 状态 ===========»圆角矩形
- 判断点==========»空心圆
- 终止点==========»内部包含实心圆的圆
PS:每个类都有状态,但不一定有状态图
5、活动图
活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动,描述一组顺序或并发的活动。活动状态代表一个活动: 一个工作流步骤或一个操作的执行。
泳道(swimlane)表示实际执行活动的对象。
6、组件图
组件图担任物理视图,它的用途是显示系统中的软件与其他软件的依赖关系。
7、部署图
部署图表示该软件系统如何部署到硬件环境中。
PS:呃,本文纯属笔记。看到最后其实发现什么都没有讲清楚,所以还是好好看书。但是不得不强调一点题外话:UML只是面向对象技术中的描述语言,真正重要的还是要对“面向对象”理解。
书目:
《面向对象设计与分析》——纯粹对面向对象讲解的书
《UML参考书》——UML图详解
《设计模式》——你懂的
上一篇: 微内核的实现
下一篇: Javascript画一个函数图像