学习UML也有一段时间了,自己也对视频进行了总结。自己画完了UML图也需要结合总结一下。UML理论性的总结,前几篇已经概述,这次不予赘述。下面是我对UML九种图和包图的总结。九种图分为:用例图、类图与对象图、行为图(状态图、活动图、顺序图、协作图)、实现图(构件图和部署图)。
一包图:
第一个问题:包图是什么? 是一张划分软件系统模块的图。
第二个问题:用来做什么? 用来把抽象的图形、对象或者接口等事物模块化,便于我们去理解,去实现。
第三个问题:如何去画一个包图?首先我们需要把抽象的事物模块化成包,也就是实体化成包,然后寻找包与包之间的联系,借助Rational Rose这个工具进行绘画。
第四个问题:需要注意那些问题:1 包与包之间避免循环依赖;2测试时可以以包为测试单位;3尽量把概念和语义上相近的元素放到一个包中; 4 包内的元素,可以包外访问的标记为公共类型,否则标记为私有类型或者保护类型。
下面是我的包图,请指出错误:
二用例图:
第一个问题:什么是用例图? 一个软件在规划阶段产生的技术性需求和功能性需求,利用某种建模工具来实现出来的一个图形化的介绍。
第二个问题:用来做什么? 为了让软件开发人员了解用户的需求以及软件需要的技术或功能需求。
第三个问题:如何画一个用例图? 首先明确该用例图要包括什么元素?接着确定本用例的等级(概述级、用户目标级、子功能级),然后明确各元素之间的关系,最后利用Rational Rose绘图。
第四个问题:需要注意什么问题:1应该清晰定义系统边界;2用例不宜过多;3应该从执行者的角度命名用例;4:用例描述正规程度;5避免执行者的名字不一致;6 避免执行者与用例之间的关系太复杂;7 用例大小得当 8 避免用例描述混乱。
下面是我的用例图,请指出错误:
三类图和对象图:
1 类图:
第一个问题:什么是类图? 类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
第二个问题:用来做什么? 类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。
第三个问题:如何画一个类图? 首先确定研究项目共包括多少个类;然后清楚每个类的属性和操作;接着明确类与类之间有什么关系;最后利用Rational Rose绘图。
第四个问题:需要注意什么问题? 1类与类之间的关系要明确清楚;2 类的可见性范围定义准确; 3每个实例都拥有自己的属性和操作;4 抽象类的分析;
下面是我的类图,请指出错误:
2 对象图:
第一个问题:什么是对象图? 一个对象图是类图的一个实例
第二个问题:用来做什么? 描述系统对象实例,表示系统在某一时刻的体现,而不是实际的类。
第三个问题:如何画一个对象图? 与类图的画法相似,只是把类换成对象即可。
第四个问题:需要注意什么问题? 类与类之间的关系要明确。
下面是我的对象图,请指出错误:
四:行为图(状态图、活动图、交互图(顺序图、协作图))
1 状态图:
第一个问题:什么是状态图? 状态图是对类图的补充。
第二个问题:用来做什么? 描述类的对象所有可能的状态以及事件发生时状态的转移条件。
第三个问题:如何画一个状态图? 首先明确系统不同时刻的状态;接着分析各个状态之间有什么关系;最后用Rational Rose绘图。
下面是我的状态图,请指出错误:
2 活动图:
第一个问题:什么是活动图? 描述满足用例要求所要进行的活动以及活动间的约束关系
第二个问题:用来做什么? 1描述一个操作的执行过程中所完成的工作或动作;2描述对象内部工作;3 显示如何执行一组相关的动作,以及这些动作如何影响周围对象;4 描述用例的执行;5 处理多线程应用。
第三个问题:如何画一个活动图? 首先分析系统进行需要多少执行过程;对每个执行过程中的相关工作和动作分析,确定之间的关系;最后利用Rational Rose画图。
第四个问题:需要注意什么问题? 显示对象之间的合作或者对象在其生命周期内的运转情况时不用活动图。
下面是我的活动图,请指出错误:
3 交互图:
(1)顺序图:
第一个问题:什么是顺序图? 一种描述系统执行顺序的图。
第二个问题:用来做什么? 显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
第三个问题:如何画一个顺序图?首先明确顺序图的构成(对象、消息、生命线的定义);接着明确系统执行过程中消息发送的顺序;然后确定对象之间的动态合作关系;最后用Rational Rose画图。
第四个问题:需要注意什么问题?1 明确消息的不同形式;2 消息发送的消息避免顺序混乱;3 对象之间有何种动态合作关系要清楚。
下面是我的顺序图,请指出错误:
(2)协作图
第一个问题:什么是协作图? 一种描述对象关系的图。
第二个问题:用来做什么? 描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系,除显示信息交换外,合作图还显示对象以及它们之间的关系,强调上下级关系。
第三个问题:如何画一个协作图? 首先明确要研究项目有多少对象,各对象之间有什么关系;接着这些关系分为上下级几层关系;最后利用Rational Rose 画图。
下面是我的协作图,请指出错误:
五:实现图:
1 构件图:
第一个问题:什么是构件图? 显示具体物理实体或者物理实体之间关系的一种图。
第二个问题:用来做什么? 描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
第三个问题:如何画一个构件图?首先确定研究项目有多少构件;明确各个构件之间的关系;最后利用Rational Rose 画图。
下面是我的构件图,请指出错误:
2 部署图:
第一个问题:什么是部署图? 定义系统中软硬件的物理体系结构。
第二个问题:用来做什么? 显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
第三个问题:如何画一个部署图? 首先清楚系统用到何种软件和硬件;接着明确软件和硬件彼此的关系,同时设置合理的节点,节点内部显示可执行部件或部件之间的关系;最后利用Rational Rose 画图。
下面是我的部署图,请指出错误:
六:总结:当今社会软件开发主要采用面向对象技术,这样就离不开UML建模语言,那么软件开发中如何利用UML哪?
首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。由此可见,学好UML对于我们这些软件工程学习者是必要的。