




已阅读5页,还剩79页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象建模技术 软件工程系 林 琳 2 第3章 类图、对象图和包图 v类图和对象图合称为结构模型视图或者静态 视图,用于描述系统的结构或静态特征。 v类图用来描述系统中的类以及类与类之间的 静态关系等; v对象用来描述特定时刻实际存在的若干对象 以及它们之间的关系。 v一个系统的模型中可以包含多个对象图,每 个对象图描述了系统在某个特定时刻的状态。 3 本章学习要点: v理解类图的基本概念 v为系统建模类 v建模类之间的关联关系 v理解并建模泛化关系 v了解依赖关系和实现关系 v了解对象图和包图的概念 v构造类图 4 3.1 类图 v构建面向对象模型的基础是类、对象以及它们 之间的关系。 v在不同的系统中描述的类可以是各种各样的。 v在面向对象的处理中,类图处于核心地位,它 提供了用于定义和使用对象的主要规则,同时 ,类图是正向工程(将模型转化为代码)的主 要资源,是逆向工程(将代码转化为模型)的 生成物。 v类图是任何面向对象系统的核心。 5 3.1.1 概述 v类图是描述类、接口以及它们之间关 系的图,它显示了系统中各个类的静 态结构。可以用某种面向对象的语言 实现类图中的类。 v 建模对象 对系统的词汇建模 对协作建模 对数据库模式建模 v类图的元素: 类(Class) 接口(Interface) 协作(Collaboration) 依赖关系(Dependency) 泛化关系(Generalization) 关联关系(Association) 实现关系(Realization) 3.1.1 概述 一个例子 3.1.2 类及类的表示 v类是对资源的定义,它所包含的信息主要用来描述 某种类型实体的特征以及对该类型实体的使用方法 。对象是具体的实体,它遵守类制定的规则。 v类定义了一组具有状态和行为的对象,这些对象具 有相同的属性、操作、关系和语义。 v类包括名称部分(Name)、属性部分(Attribute )和操作部分(Operation),名称必须有,属性 和操作部分可以省略。 8 名称 属性 操作 名称 名称 属性 名称 操作 v1 名称 v2 属性 v3 操作 v4 职责 v5 约束 v6 注释 3.1.2 类及类的表示 1 名称 v 应该来自系统的问题域。 v 应该是一个名词,且不应该有前缀或后缀。 v 分为简单名称和路径名称。 2 属性 v 描述了类在软件系统中代表的事物(即对象)所具备 的特性。 v 类可以有任意数目的属性,也可以没有属性。 v 在UML中,类属性的语法为: 2 属性 v1. 可见性 v2. 属性名 v3. 类型 v4. 初始值 v5. 属性字符串 (1) 可见性 v类型: 公有(Public) “” 私有(Private)“” 被保护(Protected)“” UML中没有默认可见性类型 (2) 属性名 v每个属性都必须有一个名字以 区别于类中的其他属性。 v属性名由描述所属类的特性的 名词或名词短语组成。 v单字属性名小写,如果属性名 包含了多个单词,这些单词要 合并,且除了第一个单词外其 余单词的首字母要大写。 (3) 类型 应为属性指定所属的数据类型 整型 布尔型 实型 枚举类型 系统中的其他类 用户自定义的数据类型 (4) 初始值 v目的: 保护系统的完整性, 防止漏掉取值或被非 法的值破坏系统的完 整性。 为用户提供易用性。 (5) 属性字符串 v指定关于属性的其他信息。 v任何希望添加在属性定义字符串值但又没有合 适地方可以加入的规则,都可以放在属性字符 串里。 特殊类型的属性 v类的作用域属性:属性下 加下划线 v对象属性:用数组表示 3 操作 v对类的对象所能做的事务的抽象。 v一个类可以有任意数量的操作或者根本没有操 作。 v由返回值类型、名称和参数表描述。 v在UML中,类操作的语法为: 3 操作 v(1)可见性 v(2)操作名 v(3)参数表 v(4)返回类型 (1) 可见性 v类型: 公有(Public) “” 私有(Private) “” 受保护(Protected) “” 包内公有(Package) “” (2) 操作名 v用来描述所属类的行为的动词或动词短语。 v单字操作名小写,如果操作名包含了多个单 词,这些单词要合并,并且除了第一个单词 外其余单词的首字母要大写。 (3) 参数表 v 一些按顺序排列的属性定义了操作的输入。 v 是可选的,即操作不一定必须有参数才行。 v 定义方式:“名称:类型”。 v 若存在多个参数,将各个参数用逗号隔开。 v 参数可以具有默认值。 (4) 返回类型 v是可选的,即操作不一定必须有返回类型。 v绝大部分编程语言只支持一个返回值。 v具体的编程语言一般要加一个关键字void来 表示无返回值。 4 职责 v 类或其他元素的契 约或义务。 v 自由形式的文本。 v 非形式化的方法。 5 约束 v 指定了类所要满足的一个或多个规则。 v 形式化的方法。 6 注释 v注释可以包含图形也可以包含文本。 3.1.3 定义类 v实体抽象成类 v将系统要处理的数据抽象为类的属性 v处理数据的方法抽象成类的操作 v要对问题域有透彻的理解 v依据:需求规格说明书 类之间的关系 v 关联关系(Association) v 泛化关系(Generalization) v 依赖关系(Dependency) v 实现关系(Realization) 对象之间的通信手段,包括: v二元关联 v关联类 v或关联与反身关联 v聚合(Aggregation) v组成(Composition) 3.2 关联关系 3.2.1 二元关联 v只有两个类参与的关联 v在类图中的关联关系,两个类的相应对象 所具有的关系称为链 v名称 v角色 v多重性 v约束 v限定符 v导航性 3.2.1 二元关联 (1) 名称 v 使用一个动词或动词短语来命名关联。 v 清晰而简洁地说明类间关系。 v 关联的名称并不是必需的。 v 可以前缀或后缀一个指引阅读方向的方向指示符,以消除 歧义。一般是从左到右,从上到下阅读。如果方向不同, 要指出来。 (2) 角色 v 关联关系中一个类对另一个类所表现出来的职责。 v 角色的名称应该是名词或名词短语,以解释对象是如何参 与关系的。 v 可以用角色名代替关联名。 (3) 多重性 v 指有多少对象可以参与该关联。 v 可以表达一个取值范围、特定值、无限定的范围或一 组离散值。 v 格式:“minimummaximum” (均为Int型)。 v 赋给一个端点的多重性表示该端点可以有多少个对象 与另一个端点的一个对象关联。 v 确定方式: (4)约束 规定了实现关联端点时必须遵守的规则 (5)限定符 v使用关键字ID识别对象集合中的对象,称为 受限关联 (6) 导航性 v 描述一个对象通过链进行导航访问另一个对象。 v 使用导航性可以降低类间的耦合度。 v 包括:单向关联和双向关联。 v 双向导航一般省略箭头。 v 大多数情况都是双向导航 3.2.2 关联类 v 与关联关系相连的类。 v 关联类与关联相对应,表示关联的附加信息 v 关联类是一种将数据值和链接关联在一起的手段 v关联类与一般类的不同:一般类描述的是实体 ,关联类描述的是关系 v关联类与一般类的相同:关联类也是类,也可 以与其他类关联 3.2.2 关联类 3.2.3 或关联 v或关联指多个关联附加约束条件,使类中的对 象一次只能参与一个关联关系 3.2.3 反身关联 v参与关联的对象属于同一个类,称为反身连接。 3.2.4 聚合关系(Aggregation) v在关联之上的紧密耦合 v表示整体与部分关系的关联。 v整体类和部分类都可以独立存在。 3.2.5 组成关系(Composition) v更紧密耦合的关系 v表示整体与部分关系的关联。 v部分类不能脱离整体类存在。 1* 1* 3.3 泛化关系(Generalization) v存在于一般元素和特殊元素间的分类关系。 v可以用于类、用例以及其他模型元素。 v描述了一种“is a kind of” 的关系。 3.3.1 泛化的含义和用途 v一般元素称为超类或父类,特殊元素称为子类 v子类继承了父类的所有属性和操作,并具有自 己独有属性和操作。 3.3.2 泛化的层次 v 泛化可以有多层 v 泛化是类关系中最强的耦合形式,必要时才使用 v 只有在一个类确实是另一个类的特殊类型时才使用泛化 3.3.2 泛化的层次 v 不提倡使用多重泛化 3.3.3 泛化约束 v 泛化约束的表示 3.3.3 泛化约束 v泛化约束的类型 不完全约束incomplete 完全约束complete 解体约束disjoint 重叠约束overlapping 3.4 依赖关系 v 表示两个或多个模型元素之间语义上的关系。 v 一种元素以某种形式依赖于另一种元素。 v 关联、实现和泛化都是依赖关系的特例。 依赖关系 v1. 使用依赖(Usage):最常用 v2. 抽象依赖(Abstraction) v3. 绑定依赖(Binding) v4. 授权依赖(Permission) 实现关系 v 用于规格说明与实现之间的关系,通常用在接口 以及实现该接口的类之间。 类关系图 3.5 构造类图模型 迭代进行以下步骤 v 问题域类建模 v GUI类建模 v 数据访问类建模 3.5 构造类图模型 首先对问题域类建模,步骤是: v 一、确定可以在用例图中找到的类 v 二、为类图中的类添加必要的特性和操作 v 三、分析类之间的关系 问题域类建模 一、确定可以在用例图中找到的类 v 找出系统需求中的所有名词,作为类的候选者,形容 词作为属性的线索,动词作为操作的候选者。 v 筛选类:去除冗余、无关、笼统名词、统一不一致的 用法。 v 对剩下的名词适当分类(人、事、物) v 通过检查名词是否存在相关的属性和行为,如果有, 则应该建立相应的类。 v 抽象出共享功能,构成单独的类。 二、 分析类的属性和操作 例 v需求(P256) v针对图书管理系统的需求,抽象出Borrower、 Librarian、Administrator 、Title、Book和 Loan类, v抽象出管理员Manager类,Librarian和 Administrator 作为Manager类的泛化 v分析类的属性和操作 类的属性和操作1 类的属性和操作2 类的属性和操作3 v1个Title对应1到多个Book v1个Book对应0到1个Loan v1个Borrower对应0到多个Loan vLibrarian和Administrator 是Manager类的 泛化 三、分析类之间的关系 问题域类图1 问题域类图2 用户接口类(GUI)建模 v用户接口类与用例图密切相关 图书管理员的接口类 系统管理员的接口类 图书管理员的接口类 系统管理员的接口类 数据访问类建模 v Manager、Borrower、Title、 Book和Loan都是持久性类,需 要存储到数据库,因此抽象出 共享的访问数据库的 Persistent类,实现对数据库 的增删改查操作。 v Manager、Borrower、Title、 Book和Loan都是Persistent的 泛化 数据访问类建模 GUI类与问题域类的关系 v 大多比较简单 v 借书、还书GUI类涉及较多类。 3.6 抽象类 v抽象的操作,留给子类实现 v操作全部是抽象的类称为抽象类 v抽象类不能实例化 v抽象操作和抽象类用斜体表示 3.7 接口 v一组没有相应方法实现的操作,类似于抽 象类,不能实例化 v接口只有操作,没有属性 v通过将接口与类相关联,实现该接口。 构造型表示法 球型表示法 3.8 对象图 v 描述参与一个交互的各个对象在交互过程中某一 时刻的状态。 v 可以被看作是类图在某一时刻的实例。 v 对于每个属性,对象都有特定的值 3.8 对象图 v 对象之间的关系称为链,从类图中的关联而来。 v 同一个类图所对应的对象图可以有多个,多个对象图合 在一起共同展示了随着时间的推移,在不同时间点系统 的对象状态。 类图和对象图的区别 类图 对象图 类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性 在类的名称分栏中只有类名对象的名称形式为“对象名:类名”, 匿名对象的名称形式为“:类名” 类中列出了操作对象图中不包含操作,因为对于属于 同一个类的所有对象而言,其操作是 相同的 类使用关联连接,关联使用名称、角 色、多重性以及约束等特征定义。类 代表的是对对象的分类,所以必须说 明可以参与关联的对象的数目 对象使用链连接,链拥有名称、角色 ,但是没有多重性。对象代表的是单 独的实体,所有的链都是一对一的, 因此不涉及到多重性 3.9 包图 v 包是对模型元素分组管理的机制。 v 一个包可以包含一组类,还可以包含接口、用例、节点 等模型元素。 v 一个元素只能由一个包拥有。 v 包划分的原则:低耦合、高内聚。 v Java中称为包(Package) v C+、C#中称为命名空间(Namespace) 3.9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆山杜克大学《生理学C》2023-2024学年第二学期期末试卷
- 2025授权借款合同样本
- 重庆工商职业学院《电路设计及综合实训》2023-2024学年第二学期期末试卷
- 吉安职业技术学院《医学遗传学检验》2023-2024学年第二学期期末试卷
- 2025签订租赁合同的注意事项
- 2025至2031年中国子弹项链行业投资前景及策略咨询研究报告
- 2025至2031年中国压滤脱水机行业投资前景及策略咨询研究报告
- 车行道积水施工方案
- 2025至2030年中国集装箱封口栓数据监测研究报告
- 2025至2030年中国轮辗搅拌混料机数据监测研究报告
- 2024年医院依法执业培训课件
- 公司收款委托书模板
- 宏观经济学全套课件(完整)
- 17 他们那时候多有趣啊 教学设计-2023-2024学年语文六年级下册统编版
- 2024年CCAA注册审核员《产品认证基础》(真题卷)
- 2024年高考英语训练动词(谓语、非谓语)单句语法填空50题
- 七年级下册数学平行线中拐点问题
- 2024年杭州市高三二模英语试卷及答案
- 走进歌剧世界智慧树知到期末考试答案2024年
- 20G520-1-2钢吊车梁(6m-9m)2020年合订本
- 介入手术需要的设备
评论
0/150
提交评论