UML——九种图总结

来源:互联网 发布:程序员博客网站 编辑:程序博客网 时间:2024/05/22 10:53

        标准建模语言UML的重要内容由5类图用例图、静态图、行为图、交互图、实现图来定义,一直没有系统的总结一下UML的九种图,下面总结一下:

        【知识点】

        用例图(Use Case Diagram)是从用户的角度描述系统的功能,并指出各功能的操作者,主要作用有3个:获取需求、指导测试、在整个过程中的其他工作流中期指导作用。用例元素包括参与者和用例,用例间的关系主要是:继承关系、扩展关系和包含关系,这里比较难区分的的是扩展关系和包含关系,比较容易混淆,在前面的博客中也有提到过,可以看一下《用例图的扩展和包含关系》。用例图如下:


        静态图中可分为类图和对象图:

        类图用于定义系统的类,显示了模型的静态结构,包括描述类之间的关系(关联组合关系等)和类的内部结构(属性操作等),类图是描述系统中类的静态结构,它的生命周期存在于系统的始终。类图包含元素:类、包、接口等,类之间常见的关系有:继承、关联、聚合、组合和依赖,这几种关系在前面也都分析过了。类图不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码,类图在UML的9个图中占据了一个相当重要的地位。画类图的过程中接触了一下三层的概念,也根据三层简单的画了一下,只能算是了解,理解不深刻图就不贴出来了。以下是根据三层画的包图和最开始画的类图:

                                      

        对象图是类图的实例,使用与类图基本一致的标识,不同点是对象图显示类的多个对象实例,而不是实际的类。资料中说对象存在生命周期,因此对象图只能在系统的某一时间段内存在。对象图显示的是一组对象与它们之间的关系,使用对象图来说明数据结构。书中说对于对象图不需要提供单独的形式,类图中就包含了对象,所以有对象而无类的类图就是一个“对象图“。虽然查了一些资料,但是对于对象图还是不太理解,只是将就着画了一下,以后慢慢理解吧!管理员对象图如下:


        交互图中包括顺序图和协作图,这两种图是等价的,只是描述的角度不同。交互图是指定和说明用例的实现,交互图表达对象之间的交互,是描述一组对象如何完成某个行为的模型化工具。

        顺序图(时序图)主要是描述对象之间的动态合作关系,强调对象之间消息发送的约束关系,也显示对象之间的交互过程。存在两个轴:水平轴表示不同的对象,垂直轴表时间。注册时序图如下(对象之间的消息最好用英文描述):


        协作图(合作图)用于描述互相合作的对象间的交互关系和链接关系,重在描述对象间的协作关系。在对象间的链接上标志带有消息串的消息可以表达对象间的消息传递。

在Rose上画好时序图后按F5可直接生产协作图,非常的方便。注册协作图如下:

                                        

        行为图包括状态图和活动图:

        状态图描述一类对象可能出现的状态及事件发生时的状态和转移条件,对象从产生到结束可以有很多不同的状态,利用状态图对对象的行为建模。一般状态图是对类图的补充,它显示了单个类的生命周期。登录时的状态图如下:

                                                                    

        活动图描述为满足用例要求所要进行的活动,是用例视图中的一种,捕捉用例的活动。用例图可以说是描述的工作流,用它可以说明什么时间什么地点采取什么样的动作来做什么事,它描述了一个操作执行过程中所要完成的工作。活动图如下:


        实现图包括组件图和部署图:

        组件图(构件图)可以显示组件及其之间的依赖关系,一般一个组件就是一个实际的文件。组件视图包含模型代码库、可执行文件、运行库及其他组件的信息,组件图有利于分析和理解部件之间的相互影响程度。现在也不是很理解组件图,只能先瞎画了,总会懂得。组件图如下:

                                                   

        配置图(部署图)定义系统中的软硬件的物理体系结构,表示系统的实际部署。可以描述实际的计算机、设备及它们之间的关系,也可以描述部件之间的依赖性以及连接的类型。配置图如下:

                                                                                   

       【小结】

        UML的九种图第一次接触还有很多不是很理解的地方,画完之后要比画之前好很多了,虽然还是错误百出。UML图实际画的时间并不是很长,但是说好听一点“酝酿”的时间太长了,借书看资料很长时间没敢尝试画,总是觉得画不出来。而且酝酿的时间真心痛苦啊!想画又不知道如何画,但是真正的画起来也没有想象的那么难。迈出实践的第一步很难,但是又是不得不迈出的一步,所以还是大胆的迈出第一步的好。以后还是少“酝酿”,多在实践中发现问题解决问题吧!


0 0
原创粉丝点击