UML复习重点必过.docx
- 文档编号:28709582
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:12
- 大小:21.19KB
UML复习重点必过.docx
《UML复习重点必过.docx》由会员分享,可在线阅读,更多相关《UML复习重点必过.docx(12页珍藏版)》请在冰豆网上搜索。
UML复习重点必过
1.OO的主题:
抽象、封装、组合数据和行为、共享、强调对象的本质、协同
2.建模的作用:
在构建物理实体之前先测试、与客户交流、可视化、降低复杂度
3.三种模型:
类模型(系统静态的、结构化的“数据”层面,描述系统中对象的结构---它们的标识、与其他对象的关系、属性和操作)、状态模型(系统时序的、行为的“控制”层面,描述了与操作的时间和顺序相关的对象层面---标记变化的时间,界定事件上下文的状态,以及事件和状态的组织)、交互模型(表示独立对象的协作,系统的“交互”层面,描述对象之间的交互---独立对象如何协作,来从整体上完成系统的行为)
4.UML9种图:
类图、对象图、(类模型---静态模型);状态图(状态模型---动态模型);用例图、协作图、活动图(交互模型);组件图、部署图(实现模型);
具体分类如下:
静态图:
类图、对象图、部署图、组件图、用例图
动态图:
状态图、活动图、协作图、时序图
5.UML的三个特征:
UML是一种语言,是用来建模的,是统一的标准
6.软件过程中使用UML的好处:
软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好地共识,也能够有效地降低复杂性。
7.两者关系:
面向对象开发是一种软件开发思想,UML则是用于表达这种思想的语言。
UML不是方法论,只是一门描述模型的语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
8.关联的多重性:
0..1:
0或1;0..n,0..*,n:
0或多;1;1..n:
1到n;*:
0到多
9.审查泛化:
是否在系统责任范围之内;是否同处一个领域;是否符合常识;是否在结构上真正构成泛化关系;子类之间的差别能否由超类的属性值改变来实现;子类是否有自己特有的属性和操作;超类下面是否只有一个子类
10.识别类之间的泛化:
根据领域知识;自上而下;自下而上;考虑领域内的复用
11.识别类之间的聚合\组合:
物理上的整体事物和他的组成部分;组织机构和它的下级组织;团队(组织)和成员;空间上得包容;抽象事物的整体和部分;具体事物和它的某个抽象方面
12.审查聚合\组合:
是否属于问题域和系统责任的范围内;部分对象的属性有多少;是否有明显的聚合关系
13.聚合的进一步讨论:
简化对象的定义;支持软件复用;表示数量不定的组成部分;表示动态变化的对象特征;取代泛化以利于实现
14.类之间的各种关系:
关联、泛化、依赖、聚合、组合、接口与实现
以下绝对正版!
!
一、多项选择(2*18)
二、填空(2*22)
三、作图(10*2)
1、OO
1)类:
是对一组对象的描述,这些对象具有相似的属性、操作、关系和行为。
是对某种类型的对象定义属性和方法的原型,表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。
具有相同数据结构和行为的对象被分组为一个类。
2)对象:
对象是人们进行研究的任何事物,不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
对象可以改变自身的状态,对象具有对世界作出决定和反应的能力,对象具有一定的特征和行为
3)OO特色:
继承、封装、多态。
4)不同视角描述系统的三种模型:
类模型(描述系统内部对象及其关系。
。
。
系统静态的、结构化的“数据”层面,描述系统中对象的结构---它们的标识、与其他对象的关系、属性和操作)、状态模型(描述对象生命历史。
。
。
系统时序的、行为的“控制”层面,描述了与操作的时间和顺序相关的对象层面---标记变化的时间,界定事件上下文的状态,以及事件和状态的组织)、交互模型(描述对象之间交互。
。
。
表示独立对象的协作,系统的“交互”层面,描述对象之间的交互---独立对象如何协作,来从整体上完成系统的行为)
5)三种模型的关系:
类模型描述状态模型和交互模型操作的数据结构。
类模型中的操作对应于事件和动作。
状态模型描述对象的控制结构。
它显示了依赖于对象取值的决策,并引发动作来改变对象取值和状态。
交互模型专注于对象之间的信息交互,并提供了系统操作的整体视图。
6)OO和UML关系:
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。
UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
面向对象是一种软件开发思想,UML则是用于表达这种思想的语言
–UML是对描述面向对象的系统分析和设计工作所用符号进行标准化尝试的一种语言
–其目的是建立一套不依赖于完成设计所用方法的符号
–UML的开发意图是用于所有面向对象的开发方法、生命循环阶段、应用程序
–UML未定义标准过程,而是为迭代开发过程提供帮助
2、UML概念等
1)UML9种图:
类图、对象图、(类模型---静态模型);状态图(状态模型---动态模型);
顺序图、用例图、协作图、活动图(交互模型);组件图、部署图(实现模型);
具体分类如下:
静态图:
类图、对象图、部署图、组件图、用例图
动态图:
状态图、活动图、协作图、顺序图。
。
。
动态模型:
描述了系统与操作时间和顺序有关的系统方面、影响更改的事件,事件的序列,事件的环境以及事件的组织。
2)UML概念:
统一建模语言,为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准语言。
为面向对象软件设计提供统一的、可视化、标准的建模语言。
3)UML的三个特征:
UML是一种语言,是用来建模的,是统一的标准
4)面向对象建模过程是通过应用面向对象的思维,分析、设计和实现系统的过程
分析:
通过构造模型来更加深入地理解需求。
分析的目标就是要确定应该完成哪些内容,而不是确定如何完成这些内容。
在尝试解决问题之前必须先理解问题。
分析分为领域分析和应用分析两个子阶段。
设计:
系统设计和类设计,系统设计是为了解决应用问题而设计一个高层策略—架构,制定政策以后指导后续的类设计。
类设计扩充并调整从分析当中得到的真实模型,以使它们易于进行计算机实现,其次决定实现这些操作的算法。
3、类建模
1)类图:
类图描述系统中类的静态结构。
不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。
类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联
2)对象图:
对象图是类图的实例,几乎使用与类图完全相同的标识。
他们的不同点在于对象图显示类的多个对象实例,而不是实际的类
3)类之间的关系:
关联、聚合、组合、泛化与继承、依赖、接口与实现
(1)关联:
通过属性来表示一个对象对另一个对象的静态依赖关系,所谓的静态,即指只要两个对象存在,他们的关联关系即存在,不会因对象状态的不同而有所变化。
关联具有多重性,表示多少个对象参与了某个关联。
P24页好好看书。
注意和多重关联区别:
多重关联举例,学生和导师既可以是老师关系也可是朋友关系。
关联终端名:
关联的两端需要名字来加以识别,特别是对于同一个类的两个对象之间的关联是必须的,他们可以区分一对类之间的多重关联。
如何避免多重关联:
将关联上升为关联类。
注意理解关联类和普通类。
(2)聚合:
特殊的关联,更强的一种聚合,关联两端不但存在整体和部分的关系,而且整体和部分是具有相同的生命周期,而且一个部件只能属于一个装配件,如车窗户---玻璃。
聚合具有传递性和反对称性。
(3)组合:
特殊的关联,关联两端存在整体和部分的关系,如书房---书桌
(4)泛化和继承:
泛化具有“代码复用”、“支持多态”“结构化描述对象”
泛化出现了父类,继承出现了子类。
泛化和特化是相反的过程。
多重继承种类:
独立类的多重继承、重叠类的多重继承
如何消除多重继承:
使用部件组合的委托、继承最重要的类并委托其余的类、嵌套泛化看书(P59---P60)
(5)依赖:
如果一个类依靠另一个类的服务来完成其角色,则他们之间的关系成为依赖关系。
一个类的变化会导致另一个类的变化。
依赖的表现形式:
一个类作为另一个类的方法参数或者返回类型,或者方法中使用到了另一个类的对象。
(6)接口与实现:
类接口用于描述类的外部可见行为。
类的实现是其内部视图,涵盖了其行为的秘密。
类的接口提供了其外部视图,因此在隐藏其行为以及其结构的秘密时,强调了抽象。
4)元数据,元模型:
4、状态模型:
描述响应外部激励而发生的操作序列。
1)状态图:
每个类对应一个状态图,状态图是一个类所有实例所可能经历的所有历程的模型图。
状态图由对象的各个状态和连接这些状态的转换组成,即状态图联系起状态和事件,事件表示外部激励,状态表示对象的取值。
描述了单个事物如何为响应发生的事件而更改状态和生成响应,并通过此方式与其环境进行交互。
显示对象在生命周期内响应外部事件和消息时所经历的状态序列。
对一个类的生命循环建模,对复杂的动态行为有用。
2)什么是事件:
某个时刻发生的事情。
包括信号事件、变更事件、时间事件。
(1)信号:
是指从一个对象到另一个对象的明确的单向流动信息。
信号事件:
指发送或接收信号的事件。
变更事件:
由满足布尔表达式而引起的事件。
When(a
时间事件:
在绝对时间上或在某个时间间隔内发生的事情所引起的事件。
When(date=*)
3)状态:
对象取值和链接的抽象。
状态表示某个对象的状态,状态和事件之间有某种对称性,事件表示时间点,状态表示时间段,状态对应着对象接收的两次事件之间的时间间隔。
4)迁移:
指从一个状态到另一个状态的瞬时变化。
从源状态到目标状态一发生变化,就说是触发了迁移。
5)警戒条件:
为了要让迁移发生而必须为真的布尔表达式。
6)状态建模步骤:
找出适合用模型描述其行为的类
确定对象可能存在的状态
确定引起状态转换的事件
确定转换进行时对对象执行的相应动作
7)状态图包括:
状态、事件、迁移、状态图、迁移条件、效应(活动)
8)效应:
为响应某事件而执行的行为的引用。
活动:
为了相应某事件而执行的行为。
效应触发的实际行为。
do活动:
持续了一段时间的活动,绑定到某个状态上,不能依附于迁移。
进入和退出动作:
把活动绑定到某状态的入口和出口。
9)如果某状态有多个活动,则执行顺序为:
到达迁移上的活动、进入活动、do活动、退出活动、输出迁移上的活动。
10)自迁移会引起进入和退出活动,但是状态内部的事件却不能。
5、交互模型
1)用例图:
用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。
(1)用例描述:
用例(系统通过与参与者交互提供的一段连贯的功能,把与一段程序功能相关的所有行为组织在一起)、小结、参与者、前置条件、描述、异常、后置条件。
(2)用例模型的准则:
确定系统边界、确保关注参与者、每个用例必须给用户提供功能、关联用例与参与者、记住用例是非形式化的、用例可以结构化。
2)顺序图:
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
以时间为中心,描述对象间的交互,焦点是消息的时间顺序。
(1)顺序图的一个用途是用来表示用例中的行为顺序,显示特定的用例或者特定用例中的某部分的详细流程。
当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。
(2)顺序模型(场景和顺序图)的准则:
至少为每个用例编写一种场景,把场景抽象成顺序图,划分复杂的交互,为每种错误的条件(异常场景)绘制一张顺序图。
3)协作图:
协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作
关系。
除显示信息交换外,协作图还显示对象以及它们之间的关系。
协作图的一个用途是表示一个类操作的实现。
收发消息的对象结构组织,利用工具可以由顺序图生成。
4)活动图:
活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。
活动图描述了一组顺序的或并发的活动。
5)描述对象不同:
状态图:
描述对象状态及状态之间的转移,以状态为中心;
活动图:
描述从活动到活动的控制流,以活动为中心。
使用场合不同:
状态图:
描述对象在其生命期中的行为状态变化;
活动图:
描述过程的流程变化。
6、
1)组件图:
组件图为系统的组件建模型,组件即构造应用的软件单元,还包括各组件之间的依赖关系,以便通过这些依赖关系来估计对系统组件的修改给系统可能带来的影响。
2)部署图:
部署视图描述位于节点实例上的运行构件实例的安排。
节点是一组运行资源,如计算机、设备或存储器。
这个视图允许评估分配结果和资源分配。
三、简答题:
1、简述用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。
n扩展关系:
基用例是可以独立于扩展用例存在的,只是在特定的条件下,它的行为可以被另一个用例的行为所扩展
n包含关系:
包含的用例不是孤立存在的,它必须通过包含其他用例才是一个完整的行为
n泛化关系:
用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系
2、在类的关联关系中,聚合关系与组合关系有什么区别?
试举例说明。
组合:
特殊的关联,更强的一种聚合,关联两端不但存在整体和部分的关系,而且整体和部分是具有相同的生命周期,而且一个部件只能属于一个装配件,如车窗户---玻璃。
聚合具有传递性和反对称性。
聚合:
特殊的关联,更强的关联两端存在整体和部分的关系,不具有相同的生命周期。
如书房---书桌
3、试举例说明活动图与状态图之间的区别
(1)描述对象不同:
状态图:
描述对象状态及状态之间的转移,以状态为中心;
活动图:
描述从活动到活动的控制流,以活动为中心。
(2)使用场合不同:
状态图:
描述对象在其生命期中的行为状态变化;
活动图:
描述过程的流程变化。
活动图中一个活动结束后将立即进入下一个活动,在状态图中状态的转移可能需要事件的触发。
4、在类图中,主要的类间关系有哪几种,各代表什么含义,使用什么图符来表示?
答:
关联、聚合、组合、泛化与继承、依赖、接口与实现
(1)关联:
通过属性来表示一个对象对另一个对象的静态依赖关系,所谓的静态,即指只要两个对象存在,他们的关联关系即存在,不会因对象状态的不同而有所变化。
关联具有多重性,表示多少个对象参与了某个关联。
P24页好好看书。
注意和多重关联区别:
多重关联举例,学生和导师既可以是老师关系也可是朋友关系。
关联终端名:
关联的两端需要名字来加以识别,特别是对于同一个类的两个对象之间的关联是必须的,他们可以区分一对类之间的多重关联。
如何避免多重关联:
将关联上升为关联类。
注意理解关联类和普通类。
(2)聚合:
特殊的关联,更强的一种聚合,关联两端不但存在整体和部分的关系,而且整体和部分是具有相同的生命周期,而且一个部件只能属于一个装配件,如车窗户---玻璃。
聚合具有传递性和反对称性。
(3)组合:
特殊的关联,关联两端存在整体和部分的关系,如书房---书桌
(4)泛化和继承:
泛化具有“代码复用”、“支持多态”“结构化描述对象”
泛化出现了父类,继承出现了子类。
泛化和特化是相反的过程。
多重继承种类:
独立类的多重继承、重叠类的多重继承
如何消除多重继承:
使用部件组合的委托、继承最重要的类并委托其余的类、嵌套泛化看书(P59---P60)
(5)依赖:
如果一个类依靠另一个类的服务来完成其角色,则他们之间的关系成为依赖关系。
一个类的变化会导致另一个类的变化。
依赖的表现形式:
一个类作为另一个类的方法参数或者返回类型,或者方法中使用到了另一个类的对象。
(6)接口与实现:
类接口用于描述类的外部可见行为。
类的实现是其内部视图,涵盖了其行为的秘密。
类的接口提供了其外部视图,因此在隐藏其行为以及其结构的秘密时,强调了抽象。
5.、在用例图中参与者是什么,它属于系统范围之内吗?
系统的直接外部用户-直接与系统通信的一个或一组对象,不是系统的一部分,每个参与者都表示对以某种方式对系统起作用的那些对象。
四、名词解释:
统一建模语言(UML):
是一种绘制软件蓝图的标准语言。
可以用UML对软件密集型系统的制品进行可视化详述和文档化。
UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。
它融入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML的作用就是用很多图从静态和动态方面来全面描述我们将要开发的系统。
事件:
某个时刻发生的事情。
包括信号事件、变更事件、时间事件。
用例:
系统通过与参与者交互提供的一段连贯的功能,把与一段程序功能相关的所有行为组织在一起。
对象:
对象是人们进行研究的任何事物,不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
对象可以改变自身的状态,对象具有对世界作出决定和反应的能力,对象具有一定的特征和行为
类:
是对一组对象的描述,这些对象具有相似的属性、操作、关系和行为。
是对某种类型的对象定义属性和方法的原型,表示对现实生活中一类具有共同特征的事物的抽象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 复习 重点