第一范文网 - 专业文章范例文档资料分享平台

UML期末复习 - 图文

来源:用户分享 时间:2025/5/18 18:22:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

③关联角色(role)

④关联的多重性(multiplicity)0表没有实例的关联 0..1 0..n 1 1..n n ⑤受限关联(qualified association)

受限关联用于一对多或多对多的关联。限定符(qualifier)用来区分关联“多”端的对象集合,它指明了在关联“多”端的某个特殊对象。

⑥关联约束(constraint) /依赖(dependency)⑦聚合(aggregation):整体和部分的关系,个体可以属于多个整体;⑧组合(composition):整体和部分的关系,个体唯一属于一个整体;⑨自反关联 派生(Derived)关联 2、泛化

(1)Generalization,一般元素和特殊元素之间的关系。(2)泛化的目的:可以使子类共享父类的属性和操作,实现继承;可以使子类的实例用于任何父类被声明使用的地方,实现多态; (3)尽管每个子类的实现方法各自不同,但外界调用的方式完全一样:

(4)抽象类(abstract,斜体表示):不能产生实例的类,因为类中的方法往往只是声明,而没有实现。所有的基类都应该是抽象类,所有的抽象类都应该是基类。 3、依赖

一个元素(b)的改变会影响另外一个元素(a),则称存在依赖关系(a依赖于b)

抽象(abstraction):从一个对象中提取一些特性,并用类方法表示。 绑定(binding):为模板参数指定值,以定义一个新的模板元素。 组合(combination):对不同类或包进行性质相似融合。 许可(permission):允许另一个对象对本对象的访问。

使用(usage):声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确实现使用者的功(包括调用、实例化、参数、发送)。 调用(call):声明一个类调用其他类的操作的方法。 导出(derive):声明一个实例可从另一个实例导出。

实例(instantiation):关于一个类的方法创建了另一个类的实例声明。 参数(parameter):一个操作和它参数之间的关系。

精化(refine):声明具有两个不同语义层次上的元素之间的映射。 4、 实现

①一个元素完成另外一个元素的操作功能。②如接口类及其实现;接口没有属性,只有声明的操作方法(对方法没有实现部分),而由实现类具体定义实现部分。 四、高级概念

四种特殊类:关联类、模板类、主动类、嵌套类

(1)关联类:即是关联也是类,它不仅像关联那样连接两个类,而且还可以定义一组属于关系本身的特性(2)模板类:可以根据占位符或参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型(3)主动类:主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程(4)嵌套类:在诸如Java的语言中,允许你将一个类的定义放在另一个类定义的内部,这就是嵌套类,在Java中也称为内层类。嵌套类是声明在它的外层类中的,因此只能够通过外层类或外层类的对象对它进行访问 五、用例分析

①分析对象行为②补充用例描述③对每一个用例实现:从用例行为中发现(分析)类;把用例行为分发给(分析)类④对每一个(分析)类:描述职责;描述属性和关系⑤统一分析类 1、分析类:边界类( Boundary)、实体类( Entity)、控制类(Control)

(1)边界类:①位于系统与外界的交界处,例如窗体、对话框、报表、与外部设备或系统交互的类等等;②边界类可以通过用例确定,因为活动者必须通过边界类参与用例;

(2)实体类:保存永久信息,最终可能映射数据库中的表和字段;

(3)控制类:协调其他类工作和控制总体逻辑流程,一般每个用例有一个控制类。控制类会向其他类发送消息。

2、分析类到系统设计:子系统、子系统接口、设计类 六、绘制类图

第 9 页 共 42 页

1、类图的抽象层次

①概念类:描述应有领域中的概念,仅包含类名,不考虑细节;②分析类:分析不针对具体语言,包含一些类的细节特性;③设计类:针对具体的语言,考虑类的实现细节; 2、绘制步骤

①分析问题域,确定需求②寻找类,确定类的含义和职责③定义类的属性和操作④确定类之间的关系⑤精化类和类间的关系⑥绘制类图 3、寻找类

(1)使用名词/动词分析寻找类:①收集相关信息:补充的需求规格说明、用例、项目词汇表、其他文档②分析信息:名词、名词短语---类或属性;动词、动词短语-----操作

(2)使用CRC卡片分析寻找类:①脑力风暴收集信息②关键业务用类表示,其他卡片作为属性 (3)确定潜在的对象类

通常陈述中的名词或名词短语是可能的潜在对象,它们以不同的形式展示出来,如:①外部实体(如其它系统、设备、人员),他们生产或消费计算机系统所使用的信息;②物体(如报告、显示、信函、信号),它们是问题域的一部分;③发生的事情或事件(如,性能改变或完成一组机器人移动动作),它们出现在系统运行的环境中;④角色(如管理者、工程师、销售员),他们由与系统交互的人扮演;⑤组织单位(如,部门、小组、小队),他们与一个应用有关;⑥场所(如制造场所、装载码头),它们建立问题和系统所有功能的环境;⑦构造物(如四轮交通工具、计算机),它们定义一类对象,或者定义对象的相关类。

(4)回答下列问题来识别潜在对象:①是否有要储存、转换、分析或处理的信息?②是否有外部系统?③是否有模式(pattern)、类库和构件等?④是否有系统必须处理的设备?⑤是否有组织部分(organizational parts)?⑥业务中的执行者扮演什么角色?这些角色可以看作类,如客户、操作员等。

(5)筛选对象类,确定最终对象类:①保留的信息:仅当必须记住有关潜在对象的信息,系统才能运作时,则该潜在对象在分析阶段是有用的;②需要的服务:潜在对象必须拥有一组可标识的操作,它们可以按某种方式修改对象属性的值;③多个属性:在分析阶段,关注点应该是“较大的”信息(仅具有单个属性的对象在设计时可能有用,但在分析阶段,最好把它表示为另一对象的属性);④公共属性:可以为潜在的对象定义一组属性,这些属性适用于该对象所有发生的事情;⑤公共操作:可以为潜在的对象定义一组操作,这些操作适用于该对象所有发生的事情;⑥必要的需求:出现在问题空间中的外部实体以及对系统的任何解决方案的实施都是必要的生产或消费信息,它们几乎总是定义为需求模型中的对象。

4、定义类

1)标识属性:①属性表示类的稳定特征,即为了完成客户规定的目标所必须保存的类的信息,一般可以从问题陈述中提取出或通过对类的理解而辨识出属性。②分析员可以再次研究问题陈述,选择那些应属于该对象的内容,同时对每个对象回答下列问题:“在当前的问题范围内,什么数据项(复合的和/或基本的)完整地定义了该对象?”

2)定义操作:①操作定义了对象的行为并以某种方式修改对象的属性值。操作可以通过对系统的过程叙述的分析提取出来,通常叙述中的动词可作为候选的操作。类所选择的每个操作展示了类的某种行为。②操作大体可分为三类:

·以某种方式操纵数据的操作(如,增加、删除、重新格式化、选择); ·完成某种计算的操作;

·为控制事件的发生而监控对象的操作。

3)协作者:①一个类可以用它自己的操作去操纵它自己的属性,从而完成某一特定的责任,一个类也可和其它类协作来完成某个责任。如果一个对象为了完成某个责任需要向其它对象发送消息,则我们说该对象和另一对象协作。协作实际上标识了类间的关系。②为了帮助标识协作者,可以检索类间的类属关系。如果两个类具有整体与部分关系(一个对象是另一个对象的一部分),或者一个类必须从另一个类获取信息,或者一个类依赖于(depends-upon)另一个类,则它们间往往有协作关系。 5、实例 (1)发现类

小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计

(2)筛选备选类

①“小王”、“人”、“家里”很明显是系统外的概念,无须对其建模;②而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;③很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则是书籍

第 10 页 共 42 页

的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。④“基本信息”则是书名、作者、类别等描述书籍的基本信息统称,“关键字”则是代表其中之一,因此无需对其建模; ⑤“功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉; (3)筛选修选类

①“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义;②“外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”—借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”;③“购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类—书籍列表,也就是执行统计的主体 (4)得到候选类

书籍 计算机类书籍 非计算机类书籍 借阅记录 借阅记录列表 书籍列表 (5)关联分析,建模,多重性分析,再建模 (6)职责分析

①书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时从统计的需要中,可得知“定价”也是一个关键的成员变量。

②书籍列表类:书籍列表就是全部的藏书列表,其主要的成员方法是新增、修改、查询(按关键字查询)、统计(按特定时限统计册数与金额)。 ③借阅记录类:借阅人(朋友)、借阅时间。

④借阅记录列表类:主要职责就是添加记录(借出)、删除记录(归还)以及打印借阅记录 (7)限定与修改

①导航性分析:Book与BookList之间、BorrowRecord和BorrowList之间是组合关系均无需添加方向描述,而Book与BorrowRecord之间则是双方关联,也无需添加②约束:Book对象创建后就不能够被删除只能被修改,因此在Book类边上加上用自由文本写的约束;一本书要么属于计算机类,要么属于非计算机类,因此在ItBook和OtherBook间加了 “{Xor}”约束③限定符:一本书只有一册,因此只能够被借一次,因此对于一本Book而言只能有一个RecordId与其对应

七、 设计原则:开闭原则、Liskov替换原则、依赖倒置原则、接口分离原则 1、开闭原则:指一个模块在扩展性方面是开放的,在更改性方面是封闭的。 2、Liskov替换原则:子类可以替代父类出现在任何父类出现的地方

3、依赖倒置原则:依赖关系尽量依赖接口(或抽象类),而不是依赖具体类。

4、接口分离原则:设计时采用多个与特定客户类有关的接口比采用一个通用的接口好。 【作业】建立“医院病房监护系统”的类与对象模型

识别类——通过名词识别法和系统实体识别法等方法可以识别出系统的十二个类,以下用类图这种简单明了的方法分别表示出类的名称,属性\\操作。见下图:

值班护士 医生 病人 病症监视 中央监护系统 报警信号 标准病症信号库病历库 病人病症信号 病情报告 病历 标准病症信号

建立类的关系——在类图中标明类之间的关系:

第 11 页 共 42 页

第五章 接口、对象、包

1、接口和实现

接口是描述类的部分行为的一组操作,它也是一个类提供给另一个类的一组操作。 2、对象图

(1)对象与类的关系 1)对象的概念与特性

①对象代表一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领域里有确切定义的角色。换句话说,对象是边界非常清楚的任何事物 ②状态:对象的状态包括对象的所有属性(通常是静态的)和这些属性的当前值(通常是动态的) ③行为:没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是一个对象根据它的状态改变和消息传送所采取的行动和所做出的反应 ④标识:为了将一个对象与其它所有对象区分开来,我们通常会给它起一个“标识”对象与类的关系 2)对象 vs 类

①对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的“本质”。 ②类是共享一个公用结构和一个公共行为对象集合③类是静态的,对象是动态的;类是一般化,

对象是个性化;类是定义,对象是实例;类是抽象、对象是具体对象的表示法 (2)对象的表示法

①对象名:由于对象是一个类的实例,因此其名称的格式是“对象名:类名”,这两个部分是可选的,但如果是包含了类名,则必须加上“:”,另外为了和类名区分,还必须加上下划线。 ②属性:由于对象是一个具体的事物,因此所有的属性值都已经确定,因此通常会在属性的后面列出其值。

(3)对象图:描述一组对象及其联系。通常用类图元素的一个子集来强调在某个时刻类的实例间的关系。 (4)绘制对象图 1)绘制对象图的过程

①先找出类和对象,通常类在“class”、“new”、“implements”等关键字之后的,而对象名则通常是在类名之后的

②然后对其进行细化的关联分析,绘制出相应的对象图

③论证类模型的设计:当设计了类模型时,你可以通过对象图来模拟出一个运行时的状态,这样

就可以研究在运行时设计的合理性。同时,也可以作为开发人员讨论的一个基础。

④分析和说明源代码:由于类图只是展示了程序的静态类结构,因此通过类图看懂代码的意图是很困难的。因此在分析源代码时,可以通过对象图来细化分析。而对于开发人员,对于逻辑较复杂的类交互时,可以考虑画出一些对象图来做补充说明 3、包

(1)什么是包

1)包在 UML 中被视为文件夹

2)包的作用是:①包图经常用来组织用例图和类图, 当然,包图的用途并不仅限于这些 UML 元素 。②对语义上相关的元素进行分组;③定义模型中的“语义边界”;④提供配置管理单元;⑤在设计时,提供并行工作的单元;⑥提供封装的命名空间,其中所有名称必须惟一。 3)包的表示法

名称:每个包都必须有一个与其它包相区别的名称

拥有的元素:在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图 4)包的关系 ①依赖

第 12 页 共 42 页

搜索更多关于: UML期末复习 - 图文 的文档
UML期末复习 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c11sx693t2v79c964hv2d_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top