本文主要是介绍【UML图】实践出真知,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于UML,视频、课本都看了一遍,总结也总了,博客也博了,提起UML的时候,自我感觉也能说上那么一两句,本以为画个图就能say goodbye了,结果就是图让我又把视频笔记找了找,课本翻了翻,博客瞅了又瞅。下面是我画图时候的一些问题和感受。
一、知识补充
1、用例图中的关系:关联、泛化、包含、扩展
包含(include):使用包含用例来疯长一组跨越多个用例的相似动作(行为片 断),以便多个基用例复用。基用例控制与包含用例的关系,以及被 包含用例的事件流是否会插入到用例的事件流中。基用例可以依赖包 含用例执行的结果,但是双方都不能访问对方的属性。简单来说,所 谓包含是指当一个用例的实现需要以另一个用例的实现为前提时,这 两个用例间的关系就是包含。
(由基本用例指向被包含用例)
扩展(extend):将基用例中一段相对独立并且可选的动作,用扩展用例加以封 装,再让它从基用例中声明的扩展点上进行扩展,从而使基用例 行为更简练。简单说就是,扩展指的是当一个用例执行时出现某 种特定条件时,激活另一个用例,这里的一定条件称为扩展点, 被激活的用例称为扩展用例。
(由扩展用例指向基础用例)
2、泛化和继承
好多人都说泛化即继承,查师哥师姐的博客也都是直接用继承代表继承,但是还是感觉泛化跟继承不一样,虽然继承和泛化都是表示子类可以使用父类的属性和方法,都是为了实现多态。
泛化:泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般 描述的基础之上,并对其进行了扩展。具体描述完全拥有一般描述的特 性、成员和关系,并且包含补充的信息。
继承:继承是一种机制,通过该机制类的对象的描述从类及其祖先的声明部分聚 集起来。
说白了就是,香蕉继承水果,水果泛化香蕉,泛化是从子到父的抽象过程,继承是从父到子的过程。
3、对象图和类图
对象图是类的实例,几乎使用与类图完全相同的标识,区别在于对象图显示类的多个对象实例,而不是实际的类,对象图存在生命周期,所以对象图表示某一时间类的实例。
4、图和文档
UML图和文档不是一一对应的,除了几个核心图,例如用例图,类图,其它图都是可以酌情在任何文档中出现的.
需求分析阶段,主要是用例图来填充,是面向程序员、分析员和用户的;
设计阶段是UML图的主要载体,即概要设计和详细设计说明书,用到类图、活动 图、状态图、顺序图等,面向分析人员和编程人员;
实现阶段用到部署图和组件图。
其他没有特殊要求,整图或者部分图,酌情处理。知道每个图是干什么的给谁看的,知道每个文档是干什么的给谁看的,一一对应就好。
开始画图的时候,仅仅知道用例图很重要,类图很重要,包图很重要,时序图很重要,嗯,然后就开始画了。但是开画的时候,感觉满脑子的机房系统和UML理论,就是死活画不出来啊,于是乎,死的书,活得人,博客、笔记各种交流借鉴,貌似有那么点儿意思了,对错不说,师傅验了再说吧。光说不练假把式,像高中老师说的,有些知识你会了不一顶能说出来,能说出来不一定能做对题,做对题不一定能得高分。UML图,能说又会画才是硬道理。
这篇关于【UML图】实践出真知的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!