




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类图 2007 10 8 CopyRightX Shi DHU 2 本章内容类的定义类图类图的阅读类的关系高级概念 3 类的定义面向对象思想 4 类的定义面向对象思想每个对象都扮演了一个角色 并为其它成员提供特定的服务或执行特定的行为 在面向对象世界中 行为的启动是通过将 消息 传递给对此行为负责的对象来完成的 同时还将伴随着执行要求附上相关的信息 参数 而收到该消息的对象则会执行相应的 方法 来实现需求用类和对象表示现实世界 用消息和方法来模拟现实世界的核心思想 5 类的定义什么是类 class 具有相同属性 操作 关系 和语义的对象的描述 类的组成 属性操作 shapeorigin pointsize doublefillcolor colorcount intother shape move resize display 属性标准格式 可见性 属性名 类型 多重性 次序 初始值 特性 可见性 可访问性多重性 属性值个数格式次序 属性值顺序特性 属性约束 7 属性可见性属性的可访问性 四类 公共 public 私有 private 保护 protected 实现 Package 8 属性举例 size Area 100 100 visibility Boolean false origin Point Colors color 3 Points Point 2 ordered Name String 0 2 操作标准格式 可见性 操作名 参数列表 返回类型 特性 例 display create attachXWindow xwin XWindowPtr getname String 类图 UML用类图 classdiagram 表示类 接口及其关联 类图用于静态对象建模 类图应用在领域建模和概念透视图中 类图 名称 类名 每个类都有一个惟一的名称 属性 是已被命名的类的特性 它描述该类实例中包含的信息 操作 方法 是类所提供的服务 它可以由类的任何对象请求以影响其行为 属性名和操作名首字母通常为小写 属性和操作 在画类图的时候没有必要将全部的属性和操作都画出来 实际上 在大部分情况下你也不可能在一个图中将类的属性和操作都画出来 在画类图时可以只将感兴趣的属性和操作画出来就可以了 可以用 表示还有属性或方法没有画出来 为了更好地组织属性或方法 可以在一组功能相同的属性或方法前加上一个描述的前缀 中的文字 类图的职责和约束 注释 职责指的是类所担任的任务 类的设计要完成什么样的功能 要存担的义务 一个类可以有多种职责 设计得好的类一般至少有一种职责 在定义类的时候 将类的职责分解成为类的属性和方法 通常在UML中在类图的最下方用单独的部分列出类的职责 类的职责其实只是一段或多段文本描述 约束是指定类要满足的一个或多个规章注释是最重要的一种修饰 一个注释在UML中是一个图形符号 描述了和它相关联的元素或一组元素的限制或注释语 类的关系四类基本关系 关联 association 泛化 generalization 实现 realization 依赖 dependency 2007 10 8 关联关联名 导航性 navigability 从一个类 对象 可以找到另外一个 反过来却不可 关联关联角色 role 关联的多重性 multiplicity 表没有实例的关联 00 10 n1 1 n n一个教师可以开设一到三门课 一门课程有一到多名教师讲授 关联 受限关联 qualified association 受限关联用于一对多或多对多的关联 限定符 qualifier 用来区分关联 多 端的对象集合 它指明了在关联 多 端的某个特殊对象 关联关联约束 constraint 依赖 dependency 关联聚合 aggregation 整体和部分的关系 个体可以属于多个整体 组合 composition 整体和部分的关系 个体唯一属于一个整体 关联自反关联 关联派生 Derived 关联 person employer person department employer 一个公司有多个部门 一个职员为其中某部门工作 则可推导该职员为该公司工作 泛化Generalization 一般元素和特殊元素之间的关系 泛化泛化的目的 可以使子类共享父类的属性和操作 实现继承 可以使子类的实例用于任何父类被声明使用的地方 实现多态 泛化继承 2007 10 8 CopyRightX Shi DHU 29 泛化 多态 尽管每个子类的实现方法各自不同 但外界调用的方式完全一样 Shape oShape Line oLine oLine newline oShape oLine oShape draw 泛化抽象类 abstract 斜体表示 不能产生实例的类 因为类中的方法往往只是声明 而没有实现 所有的基类都应该是抽象类 所有的抽象类都应该是 基类 依赖一个元素 b 的改变会影响另外一个元素 a 则称存在依赖关系 a依赖于b 依赖抽象 abstraction 从一个对象中提取一些特性 并用类方法表示 绑定 binding 为模板参数指定值 以定义一个新的模板元素 组合 combination 对不同类或包进行性质相似融合 许可 permission 允许另一个对象对本对象的访问 使用 usage 声明使用一个模型元素需要用到已存在的另一个模型元素 这样才能正确实现使用者的功能 包括调用 实例化 参数 发送 调用 call 声明一个类调用其他类的操作的方法 导出 derive 声明一个实例可从另一个实例导出 实例 instantiation 关于一个类的方法创建了另一个类的实例声明 参数 parameter 一个操作和它参数之间的关系 精化 refine 声明具有两个不同语义层次上的元素之间的映射 实现一个元素完成另外一个元素的操作功能如接口类及其实现 接口没有属性 只有声明的操作方法 对方法没有实现部分 而由实现类具体定义实现部分 类图的阅读示例类图先看清有哪些类 然后看看类之间存在的关系 并结合多重性来理解类图的结构特点以及各个属性和方法的含义 类图的阅读读图过程读出类 Order OrderItem Customer Consignee DeliverOrder Peddlery Prodcut读出关系 从图中关系最复杂 也就是线最密集 的类开始阅读 本图中最复杂的就是Order类 OrderItem和Order之间是组合关系 根据箭头的方向可知Order包含了OrderItem Order类和Customer Consignee DeliverOrder是关联关系 也就是说 一个订单和客户 收货人 送货单是相关的 类图的阅读读图过程多重性 用来说明关联的两个类之间的数量关系 类图的阅读读图过程理解方法与图Order类 有两个方法 dispatch 和close 从名字中可以猜出它们分别实现 分拆订单生成送货单 和 完成订单 DeliveOrder 类中则有一个Close 方法 同理它应该表示 完成送货 而在OrderItem中有一个stateChange 方法和deliverState 不难猜出它就是用来改变其 是否交给收货人 标志位的先调用Order的dispatch 方法 它将根据其包含的OrderItem中产品信息 来按供应商户分拆成若干个DeliverOrder 商户登录系统后就可以获取其DeliverOrder 并在执行完后调用close 方法 这时 就将调用OrderItem的stateChange 方法来改为其状态 同时再调用Order的close 方法 判断该Order的所有的OrderItem是否都已经送到了 如果是就将其真正close 掉 类图的阅读一张复杂的类图 类图的阅读一张复杂的类图 高级概念四种特殊类关联类模板类主动类嵌套类 四种特殊类关联类即是关联也是类 它不仅像关联那样连接两个类 而且还可以定义一组属于关系本身的特性 四种特殊类模板类可以根据占位符或参数来定义类 而不用说明属性 方法返回值和方法参数的实际类型 四种特殊类主动类主动类的实例称为主动对象 一个主动对象拥有一个控制线程并且能够发起控制活动 它不在别的线程 堆栈或状态机内运行 具有独立的控制期 从某种意义上说 它就是一个线程嵌套类在诸如Java的语言中 允许你将一个类的定义放在另一个类定义的内部 这就是嵌套类 在Java中也称为内层类 嵌套类是声明在它的外层类中的 因此只能够通过外层类或外层类的对象对它进行访问 用例分析分析对象行为补充用例描述对每一个用例实现从用例行为中发现 分析 类把用例行为分发给 分析 类对每一个 分析 类描述职责描述属性和关系 统一分析类 用例分析分析类边界类 Boundary 实体类 Entity 控制类 Control 用例分析边界类位于系统与外界的交界处 例如窗体 对话框 报表 与外部设备或系统交互的类等等 边界类可以通过用例确定 因为活动者必须通过边界类参与用例 用例分析边界类RegisterforCourses 用例分析实体类保存永久信息 最终可能映射数据库中的表和字段 49 用例分析实体类RegisterforCourses CreateSchedule Student Schedule CourseOffering 用例分析控制类协调其他类工作和控制总体逻辑流程 一般每个用例有一个控制类 控制类会向其他类发送消息 用例分析控制类RegisterforCourses 用例分析例 用例分析分析类到系统设计 子系统子系统接口 设计类 绘制类图类图的抽象层次绘制步骤寻找类实例 类图的抽象层次概念类 描述应有领域中的概念 仅包含类名 不考虑细节 分析类分析不针对具体语言 包含一些类的细节特性 设计类针对具体的语言 考虑类的实现细节 绘制步骤步骤分析问题域 确定需求寻找类 确定类的含义和职责定义类的属性和操作确定类之间的关系精化类和类间的关系绘制类图 寻找类使用名词 动词分析寻找类收集相关信息补充的需求规格说明用例项目词汇表其他文档分析信息 名词 名词短语动词 动词短语 类或属性操作 使用CRC卡片分析寻找类脑力风暴收集信息关键业务用类表示 其他卡片作为属性 寻找类确定潜在的对象类通常陈述中的名词或名词短语是可能的潜在对象 它们以不同的形式展示出来 如 外部实体 如其它系统 设备 人员 他们生产或消费计算机系统所使用的信息 物体 如报告 显示 信函 信号 它们是问题域的一部分 发生的事情或事件 如 性能改变或完成一组机器人移动动作 它们出现在系统运行的环境中 角色 如管理者 工程师 销售员 他们由与系统交互的人扮演 组织单位 如 部门 小组 小队 他们与一个应用有关 场所 如制造场所 装载码头 它们建立问题和系统所有功能的环境 构造物 如四轮交通工具 计算机 它们定义一类对象 或者定义对象的相关类 寻找类回答下列问题来识别潜在对象 是否有要储存 转换 分析或处理的信息 是否有外部系统 是否有模式 pattern 类库和构件等 是否有系统必须处理的设备 是否有组织部分 organizationalparts 业务中的执行者扮演什么角色 这些角色可以看作类 如客户 操作员等 寻找类筛选对象类 确定最终对象类1 保留的信息 仅当必须记住有关潜在对象的信息 系统才能运作时 则该潜在对象在分析阶段是有用的 2 需要的服务 潜在对象必须拥有一组可标识的操作 它们可以按某种方式修改对象属性的值 3 多个属性 在分析阶段 关注点应该是 较大的 信息 仅具有单个属性的对象在设计时可能有用 但在分析阶段 最好把它表示为另一对象的属性 寻找类筛选对象类 确定最终对象类4 公共属性 可以为潜在的对象定义一组属性 这些属性适用于该对象所有发生的事情 5 公共操作 可以为潜在的对象定义一组操作 这些操作适用于该对象所有发生的事情 6 必要的需求 出现在问题空间中的外部实体以及对系统的任何解决方案的实施都是必要的生产或消费信息 它们几乎总是定义为需求模型中的对象 定义类标识属性属性表示类的稳定特征 即为了完成客户规定的目标所必须保存的类的信息 一般可以从问题陈述中提取出或通过对类的理解而辨识出属性 分析员可以再次研究问题陈述 选择那些应属于该对象的内容 同时对每个对象回答下列问题 在当前的问题范围内 什么数据项 复合的和 或基本的 完整地定义了该对象 定义类定义操作操作定义了对象的行为并以某种方式修改对象的属性值 操作可以通过对系统的过程叙述的分析提取出来 通常叙述中的动词可作为候选的操作 类所选择的每个操作展示了类的某种行为 操作大体可分为三类 以某种方式操纵数据的操作 如 增加 删除 重新格式化 选择 完成某种计算的操作 为控制事件的发生而监控对象的操作 定义类协作者一个类可以用它自己的操作去操纵它自己的属性 从而完成某一特定的责任 一个类也可和其它类协作来完成某个责任 如果一个对象为了完成某个责任需要向其它对象发送消息 则我们说该对象和另一对象协作 协作实际上标识了类间的关系 为了帮助标识协作者 可以检索类间的类属关系 如果两个类具有整体与部分关系 一个对象是另一个对象的一部分 或者一个类必须从另一个类获取信息 或者一个类依赖于 depends upon 另一个类 则它们间往往有协作关系 实例发现类小王是一个爱书之人 家里各类书籍已过千册 而平时又时常有朋友外借 因此需要一个个人图书管理系统 该系统应该能够将书籍的基本信息按计算机类 非计算机类分别建档 实现按书名 作者 类别 出版社等关键字的组合查询功能 在使用该系统录入新书籍时系统会自动按规则生成书号 可以修改信息 但一经创建就不允许删除 该系统还应该能够对书籍的外借情况进行记录 可对外借情况列表打印 另外 还希望能够对书籍的购买金额 册数按特定时间周期进行统计 实例筛选备选类 小王 人 家里 很明显是系统外的概念 无须对其建模 而 个人图书管理系统 系统 指的就是将要开发的系统 即系统本身 也无须对其进行建模 很明显 书籍 是一个很重要的类 而 书名 作者 类别 出版社 书号 则都是用来描述书籍的基本信息的 因此应该作为 书籍 类的属性处理 而 规则 是指书号的生成规则 而书号则是书籍的一个属性 因此 规则 可以作为编写 书籍 类构造函数的指南 基本信息 则是书名 作者 类别等描述书籍的基本信息统称 关键字 则是代表其中之一 因此无需对其建模 功能 新书籍 信息 记录 都是在描述需求时使用到的一些相关词语 并不是问题域的本质 因此先可以将其淘汰掉 实例筛选修选类 计算机类 非计算机类 是该系统中图书的两大分类 因此应该对其建模 并改名为 计算机类书籍 和 非计算机类书籍 以减少歧义 外借情况 则是用来表示一次借阅行为 应该成为一个候选类 多个外借情况将组成 外借情况列表 而外借情况中一个很重要的角色是 朋友 借阅主体 虽然到本系统中并不需要建立 朋友 的资料库 但考虑到可能会需要列出某个朋友的借阅情况 因此还是将其列为候选类 为了能够更好地表述 将 外借情况 改名为 借阅记录 而将 外借情况列表 改名为 借阅记录列表 购买金额 册数 都是统计的结果 都是一个数字 因此不用将其建模 而 特定时限 则是统计的范围 也无需将其建模 不过从这里的分析中 我们可以发现 在该需求描述中隐藏着一个关键类 书籍列表 也就是执行统计的主体 实例得到候选类书籍计算机类书籍非计算机类书籍借阅记录借阅记录列表书籍列表在使用 名词动词法 寻找类的时候 很多团队会在此耗费大量的时间 特别是对于中大型项目 这样很容易迷失方向 其实在此主要的目的是对问题领域建立概要的了解 无需太过咬文嚼字 实例关联分析 建模 多重性分析 再建模 实例职责分析书籍类 从需求描述中 可找到书名 类别 作者 出版社 同时从统计的需要中 可得知 定价 也是一个关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年呼伦贝尔农垦谢尔塔拉特泥河哈达图浩特陶海农牧场招聘172人笔试历年难、易点深度预测模拟试卷带答案详解
- 2025年禁毒法测试题及答案
- 2025年北京警察招录考试(申论)历年参考题库含答案详解
- 合成孔径雷达成像关键算法剖析与前沿探索
- 基于2025年的跨境电商海外营销中心用户体验优化报告
- 内蒙古呼伦贝尔农垦牙克石、莫拐、免渡河农牧场有限公司招聘笔试题库及答案详解(名校卷)
- 2025年教师招聘之《幼儿教师招聘》通关练习题库包附答案详解(考试直接用)
- 教师招聘之《小学教师招聘》提分评估复习附完整答案详解(考点梳理)
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人备考及参考答案详解
- 教师招聘之《小学教师招聘》通关模拟题库及答案详解(真题汇编)
- 2024-2025初中七年级历史上册各单元知识点总结
- 卫生院岗位体系与职责说明
- 关于工资结清协议书
- 养老机构供餐协议书
- 2025-2030曲面屏幕电视行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 10kV电力电缆户内冷缩终端头制作评分表
- 《高铁信号连锁设备》课件-(一) 平面布置图的识读
- 泥浆护壁旋挖钻孔灌注桩施工技术交底
- 初中地理跨学科学习实践研究
- 幼儿园常见传染病的预防课件
- GB/T 36287.1-2025轨道交通地面装置直流牵引供电能量利用第1部分:储存系统
评论
0/150
提交评论