这两天一直在学习UML,对UML有了一个新的认识。以前本科学软件工程的时候,其实也接触过UML,不过那时大多是为了应付考试,也没有走心去学,背了一大堆的概念,没有过实际的操作,考完试也就全给忘记了。这两天会去复习UML的知识也是由于最近想自己写一个APP,又感觉以前开发APP的方式不够规范,自己想到哪就写到哪,导致后来再回过头来看项目,都不忍心。想重构一下却又发现耦合性太强,无从下手,于是就狠下心来再学习学习软件工程相关的知识,这部分内容真的是很无聊,看了两天,看着看着总有睡着的冲动,而且还奇烦无比。好啦,废话不多说,来总结一下这两天学的内容。
首先来看什么是UML?UML全称为UnifiedModeling Language 统一建模语言,是一种对真实世界的物体进行建模的标准标记。UML分为很多种模型图,具体的我也不一一介绍,相关的知识大家可以直接百度,在这里我只总结一下最常用的三种图:1.用例图2.类图3.时序图
1. 用例图
什么是用例图?用例图使用在什么阶段?
用例图是由主角,用例以及它们之间的关系构成的图。用例图用来描述需求场景,在于用户交流过程中快速建立用户业务描述,并且跟用户确认。设计好的用例图用来检验程序实现情景。用例图一般用于需求分析阶段。
用例图包括如下元素:
1. 参与者(Actor)
表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
2. 用例(UseCase)
用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。
4. 关系
用例图中涉及的关系有:关联、泛化、包含、扩展。
a. 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
b. 泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
c. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
d. 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
e. 依赖(Dependency)
以上4种关系,是UML定义的标准关系。但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示,表示源用例依赖于目标用例。
【箭头指向】:指向被依赖项
接下来就来描述一下网上订餐的场景:
2 类图
类图是我们经常在开发中用到并且非常重要的一个图。学好类图的关键时搞清楚它们之间的关系,介绍类图之间关系的文章网上有很多,我就不重复造轮子了,给出几个链接,有兴趣的可以看看
http://www.open-open.com/lib/view/open1328059700311.html
3. 时序图
时序图顾名思义就是表示行为时间顺序的图。时序图包括以下元素:
a.角色(Actor)
系统角色,可以是人或者其他系统,子系统。
b.对象(Object)
对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类明。
c.消息(Message)
消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。消息分为:普通消息和自关联消息。
以上就是这几天学习的UML知识的简化,省略了很多东西,也忽略了很多东西,只有以后用到了再不断的补充吧。