类的五种关系 泛化聚合关联等应注意的问题和练习.pptx_第1页
类的五种关系 泛化聚合关联等应注意的问题和练习.pptx_第2页
类的五种关系 泛化聚合关联等应注意的问题和练习.pptx_第3页
类的五种关系 泛化聚合关联等应注意的问题和练习.pptx_第4页
类的五种关系 泛化聚合关联等应注意的问题和练习.pptx_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7 9类图 面向对象方法的三个最重要的技术是用例图 交互图和类图 无论是面向对象的分析还是面向对象的设计和实现 类图都是最核心技术 它不仅能够表现信息的结构 还能够反映系统的行为 类图以反映类的结构 属性 操作 以及类之间的关系为主要目的 描述了软件系统的结构 是一种静态建模方法事实上 软件开发不同时期的类图反映了不同层次上的抽象 类的概念 1 类的定义类 class 具有相似结构 行为和关系的一组对象 2 类的表示 类名 属性 操作 类的其他几种表示形式 简化表示 缩略表示 实体类 界面类 控制类 类名 名词或名词短语 动词或动词短语表示控制类 尽可能用明确 简短 业务领域中事物的名称 避免使用抽象 无意义的名词 例如 人 桌子 图形 汇总 用英文 第1个字母大写 例如 Shape Person CheckingAccdount 可分为简单类名 带路径类名 例如 CheckingAccdountBanking CheckingAccdount 例如 帐户 订单 事物 问题 教学进程 1 指出下面命名有问题的的类 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 第1个英文单词首字母小写 其它单词首字母大写contactNamecredintLimitisPrepaid 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 该属性对外部实体的显现程度 可见public 受限protected 私有private 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 属性的数据类型 字符串 String日期 Date布尔 Boolean整型 int 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 表示属性值的取值的多寡 以及有序性 例如 name String 0 1 表示属性 name 可能无值 也可能仅有一个值 points Point 2 ordered 表示有两个或多个值 有序 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 表示属性初始所取的值 例如 visibility Boolean false表示属性 visibility 初始取 false 可见性 属性名 类型 多重性 次序 初始值 特性 类的属性 1 属性的含义属性 attribute 描述类所表示事物的静态性质 2 属性的格式 表示属性约束说明 例如 visibility Boolean false 读写 表示属性 visibility 可读 写 可见性 属性名 类型 多重性 次序 初始值 特性 问题 教学进程 1 指出下面属性名的含义 studentName String 黎明 studentBirthDay Date 1999 10 21 price float 12 01 R W 类的操作 1 操作的含义操作 operation 描述类所表示事物的动态性质 2 操作的格式 可见性 操作名 参数列表 返回类型 特性 类的操作 1 操作的含义操作 operation 描述类所表示事物的动态性质 2 操作的格式 可见性 操作名 参数列表 返回类型 特性 第1个英文单词首字母小写 其它单词首字母大写close creditRecording 类的操作 1 操作的含义操作 operation 描述类所表示事物的动态性质 2 操作的格式 该操作对外部实体的显现程度 可见public 受限protected 私有private 可见性 操作名 参数列表 返回类型 特性 类的操作 1 操作的含义操作 operation 描述类所表示事物的动态性质 2 操作的格式 该操作的返回值的类型 例如 display Location 可见性 操作名 参数列表 返回类型 特性 类的操作 1 操作的含义操作 operation 描述类所表示事物的动态性质 2 操作的格式 该操作的输入参数 可以为空 例如 create hide ttachXWindow xwin Xwindow 可见性 操作名 参数列表 返回类型 特性 问题 教学进程 1 指出下面操作名的含义 setName String name getName String creatbook 类的类型 边界类位于系统与外界的交界处 承担系统与外界的信息功能 1 边界类 边界类处在用例图中 参与者与用例的关联处 可以根据用例图发现边界类 实体类对应着现实中的客观实物 用来保存信息 一般对应着数据表 文件等 2 实体类 实体类可以从现实中存在的客观事物 以及需要持久存放的信息两方面来发现 控制类承担着事务处理 控制调控的控制作用 3 控制类 一个用例中最少会有一个控制类 用来控制用例中的事件顺序 也可以在多个用例之间协调用例之间的联系 类之间的关系有关联关系 组成关系 泛化关系 要寻找关系 可以检查交互图 大多数关系信息已经在交互图中列出 重温这些图 获得类之间的关系 关联 1 关联的定义关联的通俗含义 表示事物之间的一种固有联系 描述类的结构之间的关系 例如 关联 关联 1 关联的定义关联 association 模型元素之间的一种语义联系 它是对具有共同的结构特性 行为特性 关系和语义的链接的描述 关联可以分为单向关联 双向关联 单向关联 双向关联 2 关联的特性 关联名 关联名 如果关联关系已经清楚 就无需关联名 2 关联的特性 关联的角色 如果关联名与角色名相同 则不标出角色名 关联的角色 2 关联的特性 关联的多重性 0 1 0或10 n 0 0或多11 n 1到多 0到多 关联的角色 关联的多重性 2 关联的特性 关联类 通过关联类描述关联的属性 操作 及其它信息 关联类 2 关联的特性 关联的约束 通过约束加强关联的含义 例如 帐户 不能同时与 人 和 公司 有关联 约束 2 关联的特性 限定关联 通过限定符来规定关联的限定关系 可消除多重性 例如 文件目录 通过 文件名 来与具体的文件对象进行关联 银行 通过 帐号 与具体的 帐户 对象进行关联 限定关联 3 关联的种类 一元 自返 关联 二元关联 3 关联的种类 多元关联 三元关联 问题 教学进程 班级 和 班长 两个类之间存在管理关系 一个班级仅可以有一个班长 一个班长只能是一个班级的班长 标出这两个类的关系 问题 教学进程 班主任 和 学生 两个类之间存在管理关系 一个班主任仅可以管理一个班的学生 一个班的学生 只能由一个班主任来管理 标出这两个类的关系 问题 教学进程 教师 和 学生 两个类之间存在授课关系 一个教师可以教授多个学生 一个学生可以由多个教师授课 标出这两个类的关系 问题 教学进程 采购员从供货商处订货 双方需要签订订单 一个采购员可以订多个供货商的货品 一个供货商也可以给多个采购员供货 要求 1 提取这个问题涉及的类 2 定义各个类之间的关系 并画出类图 1 提取本问题的类 类是否提取完全了 还有没有隐藏的没有提取的类 1 提取本问题的类 2 确定类之间的关系 2 确定类之间的关系 货品是由供应商提供 但订单所订的货品怎么样反映出来 2 确定类之间的关系 聚集和组合 1 聚集聚集 aggregation 表示类之间一种松散的整体与部分的组成关系 是一种特殊的关联 表示 例子 聚集和组合 2 组合组合 composition 表示类之间一种紧密的整体与部分的组成关系 也是一种特殊的关联 表示 例子 聚集和组合 3 聚集与组合的区别 聚集松散 组合紧密 聚集和组合 3 聚集与组合的区别 聚集松散 组合紧密 一个部分事物对象可以属于多个聚集对象 但一个部分事物对象仅能属于一个组合对象 聚集和组合 3 聚集与组合的区别 聚集松散 组合紧密 一个部分事物对象可以属于多个聚集对象 但一个部分事物对象仅能属于一个组合对象 聚集的对象生命周期可以不同 但组合对象则是同存同亡 问题 教学进程 举出一个具有聚合关系的类图的例子 泛化 1 泛化的含义泛化 generalization 表示事物之间的一般与特殊的关系 也可以称为继承关系 泛化关系除了表示类与类之间的关系之外 还可以表示参与者 用例 包 构件 接口等建模元素之间的关系 泛化 2 泛化的表示 例子 表示 例子 依赖 1 依赖的含义依赖 dependency 表示两个元素X Y 如果X的变化必然导致Y的变化 则称Y依赖X 依赖关系不仅限于类 用例 包 构件之间都可以存在依赖关系 依赖 2 依赖的表示 例子 表示 问题 教学进程 下面几个模型图中 能够正确地表示出 一个雇员最多有一个经理 经理可以管理多个雇员 也可以不管理一个雇员 这样的意思 问题 教学进程 下面对类之间关系的描述 是正确的 A聚集关系中的部分只属于一个整体 B组合关系中的部分可能属于整体 C关联是表示对象之间的关系 D泛化是表示对象之间的关系 类图的概念 类图 ClassDiagram 是由类 相关建模元素 及其关系构成的图 用来描述类之间的静态关系 类图在系统中处在核心位置 也是UML中最为重要的一种图 类图的抽象层次 在系统的不同开发阶段 类图可以具有不同的抽象程度 随着开发的深入 类图应该越来越详细 具体 可以分为 概念层 逻辑层 实现层 概念层 逻辑层 实现层 建立类图的一般步骤 研究分析问题领域 确定系统需求 确定类 明确类的含义和职责 确定类的属性和操作 确定类之间的关系 关联 泛化 聚集 组合 依赖 调整和细化类及其关系 解决重复和冲突 绘制类图 并增加相应说明 对象图 类图 对象图 练习1 教学进程 绘制图书馆图书借阅管理的类图 对于图书馆里的每一种图书 计算机管理目录中包括 书名 作者 ISBN号 出版社 单价 每一种图书馆都藏多册 每一册图书对应着一个唯一的图书编号 有许多注册读者 读者的信息包括读者编号 姓名 出生日期 职业 电话 通信地址 邮政编码 邮箱 每一个读者拥有一个借书证 借书证包括读者编号 注册日期 读者类型 读者每次可以凭借书证借图书 图书馆要对读者借书登记借书记录 借书记录中登记读者 所借图书 借出日期 返还日期 管理员等信息 练习1 教学进程 注意点 教学进程 1 类图是用来描述系统资源和要素相互之间的静态结构关系 区分类图和用例图之间的区别 注意点 教学进程 2 类图可以用于业务模型 需求模型 逻辑模型和设计模型中 业务模型 对业务资源的关系建模需求模型 系统要素关系建模逻辑模型 系统要素关系建模设计模型 系统要素关系建模 注意点 教学进程 3 类的类型可以具有三种类型 界面类 表示外界与系统的交互接口实体类 表示实体型事物控制类 表示控制和协调作用的要素 注意点 教学进程 4 类的关系具有四种 关联 表示类中对象之间的链接关系组成 表示事物之间的整体和部分关系 聚合 组合 泛化 表示事物的一般和特殊关系依赖 事物之间的因果关系 注意点 教学进程 5 类图的抽象层次 概念层 需求建模逻辑层 逻辑建模实现层 设计建模 注意点 教学进程 6 类可以优化 一个复杂类可以分解为多个简单类 例如 教学进程 注意点 教学进程 7 描绘类图时 应根据所要表现的应用需要来提取要素 绘制类图 例如 教学进程 描述公司与个人雇佣关系的类图 方法1 方法2 问题为 教学进程 提取企业与个人雇佣关系的类图 一个企业可以雇佣多个人员 企业的属性包括名称 住址 电话 简况 人员的情况包括姓名 年龄 性别 住址 电话 简历等 雇佣的信息包括雇佣的开始日期 截止日期 简要说明等 双方要签订雇佣合同 雇佣还涉及到人员所从事的工作岗位 方法3 教学进程 C 代码classVehicle public virtualintStart 0 virtualintStop 0 virtualintRun floatfSpeed 0 private floatfMaxSpeed Java代码publicabstractclassVehicle publicabstractintStart publicabstractintStop publicabstractintRun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论