完整word版西南民族大学 UML复习Word格式.docx
- 文档编号:16753405
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:456.37KB
完整word版西南民族大学 UML复习Word格式.docx
《完整word版西南民族大学 UML复习Word格式.docx》由会员分享,可在线阅读,更多相关《完整word版西南民族大学 UML复习Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
然后,使这个类专用化。
多态
指同一个实体同时具有多种形式(相同的操作会产生不同的动作)。
在面向对象语言中,接口的多种不同的实现方式即为多态(同样的函数在不同的类上有不同的行为)。
比如:
形状类——有绘制方法(同一个函数,但是不同形状有不同的绘制方法)
多态性:
多态性(Polymorphism)是指同一个消息为不同的对象接收时,可产生不同的动作或执行结果。
接口
接口的主要目的是:
为不相关的类提供通用的处理服务。
接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
当类实现一个接口,它就许诺实现在那个接口中执行所有的方法。
UML对系统建模
OO开发的每个阶段都可以用UML模型对系统建模,从系统不同的角度可以分为:
●类模型:
包图、对象图、类图
●状态模型:
状态图
●交互模型:
用例图、顺序图、活动图
●针对系统构架:
构件图、配置图
三种模型:
提供数据模型
各对象的控制结构
对象间信息交换,系统的整体视图
UML的结构:
九种图形:
●静态模型(系统结构):
类图、对象图、组件图、部署图
●动态模型(系统行为):
时序图、协作图、状态图、活动图、用例图
⏹类图:
类的定义:
类是具有相似结构、行为和关系的一组对象的描述符
类图使用出现在系统中的不同类来描述系统的静态结构,类图用来描述不同的类和它们的关系。
类的UML表示法:
名字放在方框正中,首字母大写,用单数名词表示类名。
可视性(Visibility)标记表示:
+公共#保护-私用
可视性也可以用以下关键字表示:
public(公共)、protected(保护)、private(私用)。
若可视性标记为“+”或“public”,则为公共属性,可以被外部对象访问。
若可视性标记为“#’或“protected”,则为保护属性,可以被本类或子类的对象访问。
若可视性标记为“-”或“private”,则为私用属性,不可以被外部对象访问,只能为本类的对象使用。
可视性可以缺省,表示该属性不可视。
⏹对象图:
对象图是类图的实例,几乎使用与类图完全相同的标识。
他们的不同点在于对象图显示类的多个对象实例,而不是实际的类
对象的UML表示法:
一个方框,方框里面是对象名后跟冒号和类名,对象名和类名都有下划线。
比如:
⏹状态图:
状态图元素:
起点、终点、状态、事件、转换、复合状态和子状态
状态图图符(常见)
事件的描述:
事件名称[参数表]
变化事件(changeevent)是指依赖于指定属性值的布尔表达式得到满足。
这是一种一直等待直到特定条件被满足的声明方式。
在UML中,用关键字When,后面跟随布尔表达式来对一个变化事件建模。
你可以用表达式来标记一个绝对时间(如:
Whentime=10:
00),或对表达式作不间断地测试(如whenaltitude<
1000)。
时间事件(timeevent)是指在绝对时间上或在某个时间间隔内发生的事情所引起的事件。
时间(段)的UML表示法是采用关键词when或者after,后面跟着用括号括起的包含时间(间隔)的表达式。
如:
when(date=January1,2000)
after(10seconds)
调用事件(CallEvent)是指一个对象对操作调用的接收。
接收的类可以选择将操作实现为一个方法或实现为状态机里的一个调用事件触发器。
信号是一个异步事件,而调用事件一般来说是同步的。
也就是说,当对象调用另一对象的操作时,控制就从发送者传送到接收者,该事件触发转换,完成操后,接收者转换到一个新的状态,控制返还给发送者。
(应该还有一个信号事件)
⏹用例图:
用例图由如下元素组成:
●角色(Actor):
也称为参与者,它代表系统的用户。
●系统边界(Systemscope):
它确定系统的范围。
●用例(Usecase):
它代表系统提供的服务。
●关联(Association):
它表示角色与用例间的关系。
所有的用例都放置在系统边界内,表明它属于一个系统。
角色则放在系统边界的外面,表明角色并不属于系统。
但是角色负责直接(或间接地)驱动与之关联的用例的执行。
UML中的用例图描述了一组用例、参与者以及它们之间的关系。
参与者用人形图形表示,用例用椭圆形符号表示,连线表示它们之间的关系。
用例图包含3方面内容:
⑴用例(UseCase)
⑵参与者(Actor)
⑶关系:
关联关系(Association)、泛化关系(Generalization)、包含关系(Include)、扩展关系(Extend)等
用例图中可以包含注释、约束以及包。
参与者与用例之间
●关联关系
用例与用例之间
●包含关系(include)
●扩展关系(extend)
●泛化关系(generalization)
参与者与参与者之间
✧关联关系
描述参与者与使用用例之间的关系。
在UML中,关系用实线表示,实线可以有箭头,也可以没有箭头。
✧包含关系(include)
包含关系指两个用例之间的关系,其中一个用例(即基本用例)的行为包含了另一个用例(即包含用例)的行为。
包含关系中箭头的方向是从基本用例到包含用例。
✧扩展关系(extend)
扩展关系允许一个用例(可选)扩展另一个用例的功能。
扩展只能发生在基本用例的序列中某个特定的点上,这个点叫扩展点。
扩展关系中基本用例本身是完整的。
在扩展关系中,箭头的方向是从扩展用例到基本用例。
包含关联与扩展关联的区别:
存在包含关联的两个用例,用例必须包含被包含用例;
存在扩展关联的两个用例则有使用被扩展用例的选择权。
✧泛化关系
泛化关系其实是子类与父类的关系。
和类之间的泛化关系一样,用例和参与者也可以继承另一个用例和参与者。
⏹顺序图:
建立顺序的步骤:
1)确定交互的范围
2)识别参与交互的对象和活动者
3)设置对象生命线的开始和结束
4)设置消息
5)细化消息
⏹活动图:
(activitydiagram)
活动图:
显示了组成复杂过程的步骤序列,主要用于描述算法和工作流,在设计算法和工作流的早期阶段最为有用
活动图的目标:
显示复杂过程内部的各个步骤以及它们之间的顺序约束
注意:
1)活动图可以显示控制流,但专注于操作而不是对象
2)活动图中的各项活动要有相同的细节层次
粗线条:
并发线程的分流和合并
主要元素:
起点和终点、活动、转移、接收信号和发送信号、决策点和汇合点、分叉和汇合、控制流终点、泳道
泳道:
(swimlane)
泳道是为组织活动图而对活动进行的分组,用来划分状态图的状态
每个泳道代表整个活动的部分高级职责
整个活动可能最后由一到多个泳道实现
使用泳道可以把活动按照功能或所属对象的不同来进行组织。
属于一个对象的所有活动都放在同一个泳道内,对象的名字放在泳道的顶部。
业务模型中了解哪个组织负责某项活动时使用
把一项活动放在某条泳道中表明它会由组织内的某个人或某些人执行
⏹组件图:
组件图用来建模软件的组件及其相互之间的关系。
这些图由组件和组件之间的关系构成。
⏹部署图:
部署图用来描述系统的硬件配置、硬件部署以及软件构件和模块在不同节点上分布的模型图。
描述了系统运行时的硬件节点,以及在这些节点上运行的软件构件的静态视图。
显示了系统中的硬件、安装在硬件上的软件,以及用于连接异构的机器之间的中间件。
部署图中通常包含2个元素
●节点(Node)
●关联关系(Association)
部署图可以显示节点以及它们之间的必要连接,也可以显示这些连接的类型,还可以显示构件和构件之间的依赖关系,但是每个构件必须存在于某些节点上。
四、简答题范围:
1.状态图
状态图主要由起点、终点和状态组成,各状态由转移连接在一起。
状态图适合于描述跨越多个用例的单个对象的行为。
状态图由状态、事件和转换三个主要元素构成。
事件:
“事件”指发生在时间和空间某点上的且能够引起某些动作执行的事情
事件可以是(内部事件)也可以是(外部事件)
外部事件:
是在系统和参与者之间传送的事件。
内部事件:
是在系统内部的对象之间传送的事件
四类事件:
调用事件、信号事件、变更事件、时间事件
①调用事件:
是表示对操作的调度
②信号事件:
是指发送或接收信号的事件
③变更事件:
因满足某种条件而引起的事件,变化条件用when表示
④时间事件:
满足某一时间表达式而引起的事件,时间事件用after,when表示
2.类与类关联,转化为代码,类与类关系定义
UML六大关系
●关联关系(Association)(又分为单向关联、双向关联、自关联、多重关联)
●聚合关系(Aggregation)
●组合关系(Composition)
●依赖关系(Dependency)
●实现(Realization)
●泛化(Generalization)
关联关系association
关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有(hasa)联系。
在UML类图中,用实线连接有关联的对象所对应的类,在使用C#、C++和Java等编程语言实现关联关系时,通常将一个类的对象作为另一个类的属性。
关联是模型元素间的一种语义联系,当类之间在概念上有连接关系时,类之间的连接叫做关联。
队员和球队之间的关联,可以用短语“队员为篮球队效力”来刻画,图形表示为:
●单向关联
publicclassPerson{
privateBicyclebicycle;
/**骑自行车去上班*/
publicvoidgoToWork(){
bicycle.run();
}
●双向关联
publicclassCustomer{
privateProduct[]Products;
……
publicclassProduct{
privateCustomercustomer;
●自关联
publicclassNode{
privateNodesubnode;
●多重关联
publicclassForm{
privateButton[]buttons;
publicclassButton{
关联可加上一些约束,以加强关联的含义;
用{ordered}表示类的对象需要排序,不允许重复值
对于一对对象,二元关联通常至多有一个链接,在关联端标注{bag}{sequence},允许在一对对象上有多重链接。
袋子(bag):
无序,可重复
序列(sequence):
有序,可重复
{ordered}和{sequence}是相同的,只是前一个不允许重复值,后一个允许
限定符
泛化关系(Generalization)
泛化关系也就是继承关系,也称为“is-a”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
在UML中,泛化关系用带空心三角形的直线来表示。
在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C++、C#中使用冒号“:
”来实现。
publicclassPerson
{
protectedstringname;
protectedintage;
publicvoidmove()
}
publicvoidsay()
publicclassStudent:
Person
privatestringstudentNo;
publicvoidstudy()
实现关系(Realization)
接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。
在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。
publicinterfaceVehicle
publicvoidmove();
publicclassShip:
Vehicle
Console.WriteLine("
轮船航行"
);
publicclassCar:
汽车行驶"
泛化:
子类向父类抽象
子类对父类属性和行为的继承
3.高级类建模:
类图建立系统模型时可以添加的细节,包含了:
●枚举、多重性、作用域
●可见性、关联终端、N元关联
●聚合、抽象类、多重继承
●元数据、具体化、约束
●派生数据、包
枚举(enumeration):
由有限取值集合组成的一种数据类型。
enumWeekDay{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}
枚举是指同一类中具有共同属性和行为的对象,只是值不同;
泛化则是指具有一些相同属性和行为的对象,但是有一些重要属性或行为不能完全相同。
枚举与泛化的不同(语义和UML表达)
Shape类和三角形、矩形、圆形等,父类不具有子类的特征,而不仅仅是值不同
书第60页图4-2(PPT上的没找到)
派生元素是可以从其它元素计算出来的元素
不增加语义信息,但是有了派生元素可以更清楚或者更有利于设计
其表示法是在派生元素的名字前加一条斜线“/”
从多重性导出属性值
4.第12章领域分析:
领域模型:
理解系统问题和应用
主要包括:
类模型、有时候会有状态模型,很少会包含交互模型
领域模型是系统的静态模型
分析需求的第一步是构造领域模型
领域模型显示了真实系统的静态结构,并把系统划分成可工作的片段
领域模型描述真实世界的类以及它们之间的相互关系
在分析过程中,类模型的优先级要高于状态和交互模型,这是因为静态结构容易更好地定义,而且会较少地依赖应用程序的细节,并且当解决方案发生演化的时候会更加稳定
领域模型的信息来自于问题陈述、其他相关系统的制品、专家对应用领域的了解以及对真实世界的总的认识
创建领域类模型,必须要经过下面几个步骤:
1)寻找类
2)准备数据词典
3)寻找关联
4)寻找对象和链接的属性
5)使用继承组织和简化类
6)验证可能用于查询的访问路径
7)迭代并细化模型
8)重新考虑抽象的层次(新增)(书上有、PPT中没有)
9)把类分组打包
五、分析设计
1.P403.1(对象图/类图)
根据图中的对象图绘制出类图
Spain:
Country
Borders
France:
Belgium:
name=“Spain”
name=“France”
name=“Belgium”
答案:
2.组件图、部署图(例子)
组件图:
下图中的组件图显示了四个组件:
ReportingTool、BillboardService、ASP.NET和ADO.NET。
从ReportingTool组件指向BillboardService、ASP.NETAPI和ADO.NET组件的带箭头的线段,表示ReportingTool依赖于那三个组件。
部署图:
(1)
3.活动图应用(多对象→泳道)
4.需求→类图/顺序图/用例图
见补充PPT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整word版西南民族大学 UML复习 完整 word 西南 民族大学 UML 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)