第5章面向对象_第1页
第5章面向对象_第2页
第5章面向对象_第3页
第5章面向对象_第4页
第5章面向对象_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、珠海市软件行业协会专家委员会主任珠海市软件行业协会专家委员会主任 吉林大学珠海学院计算机系教授吉林大学珠海学院计算机系教授 2 1.1. 面向对象分析概述面向对象分析概述 2.2. 面向对象分析过程面向对象分析过程 2 3 1. 需求获取需求获取 2. 面向对象分析模型面向对象分析模型 3. 面向对象分析的步骤面向对象分析的步骤 (Object-Oriented Analysis, OOA) 运用运用面向对象的方法进行需求分析,其主要任务是面向对象的方法进行需求分析,其主要任务是 分析和理解问题域,找出相应的描述问题域和系统责任分析和理解问题域,找出相应的描述问题域和系统责任 所需的类及对象,

2、分析它们的内部构成好外部关系,正所需的类及对象,分析它们的内部构成好外部关系,正 确地抽象为规范的对象,定义其内部结构和外部消息传确地抽象为规范的对象,定义其内部结构和外部消息传 递关系,建立问题域精确模型的过程。为建立分析模型,递关系,建立问题域精确模型的过程。为建立分析模型, 要运用如下的要运用如下的5 5个基本原则个基本原则: 建立信息域模型;建立信息域模型; 描述功能;描述功能; 表达行为;表达行为; 划分功能、数据、行为模型,揭示更多的细节;划分功能、数据、行为模型,揭示更多的细节; 用早期的模型描述问题的实质,用后期的模型给出用早期的模型描述问题的实质,用后期的模型给出 实现的细节

3、。这些原则形成面向对象分析的基础。实现的细节。这些原则形成面向对象分析的基础。 5 在面向对象分析中,主要包括以下在面向对象分析中,主要包括以下3个独立的模型。个独立的模型。 对象模型(静态模型):对用例模型进行分析,把系对象模型(静态模型):对用例模型进行分析,把系 统分解成互相协作的分析类,通过类图统分解成互相协作的分析类,通过类图/对象图描述对象图描述 对象对象/对象的属性对象的属性/对象间的关系,是系统的静态模型。对象间的关系,是系统的静态模型。 对象模型是最基本、最重要、最核心的。对象模型是最基本、最重要、最核心的。 动态模型:描述系统的动态行为,通过顺序图动态模型:描述系统的动态行

4、为,通过顺序图/合作合作 图描述对象的交互,以揭示对象间如何协作来完成每图描述对象的交互,以揭示对象间如何协作来完成每 个具体的用例,单个对象的状态变化个具体的用例,单个对象的状态变化/动态行为可以动态行为可以 通过状态图来表达。通过状态图来表达。 功能模型:以用例模型为基础,描述系统应具有的功功能模型:以用例模型为基础,描述系统应具有的功 能用于实现用户的日常需要。由用例和场景表示。能用于实现用户的日常需要。由用例和场景表示。 基本模型是一个类图(基本模型是一个类图(Class DiagramClass Diagram),是以直观的方式),是以直观的方式 表达系统最重要的信息。构成类图的元素

5、所表达的模型信表达系统最重要的信息。构成类图的元素所表达的模型信 息,分为三个层次:对象层、特征层、关系层息,分为三个层次:对象层、特征层、关系层 补充模型补充模型: :主题图、交互图主题图、交互图 详细说明:按照分析方法详细说明:按照分析方法 所要求的格式,对分析模所要求的格式,对分析模 型进行说明和解释,主要型进行说明和解释,主要 以文字为主。以文字为主。 7 面向对象分析需要将真实世界进行抽象,通过问题的叙面向对象分析需要将真实世界进行抽象,通过问题的叙 述,将真实世界系统加以描述。分析的目的是为了构造述,将真实世界系统加以描述。分析的目的是为了构造 一个系统属性和系统行为的模型,该模型

6、是根据对象和一个系统属性和系统行为的模型,该模型是根据对象和 对象之间的关系、动态控制和功能转移来确定的。对象之间的关系、动态控制和功能转移来确定的。 OOAOOA应该包含以下几个步骤:应该包含以下几个步骤: 分析问题域,建立用例模型。分析问题域,建立用例模型。 发现和定义对象和类。发现和定义对象和类。 识别对象的内部特征。识别对象的内部特征。 识别对象的外部联系。识别对象的外部联系。 识别对象之间的交互。识别对象之间的交互。 8 1. 需求获取和问题需求获取和问题域域分析分析 2. 发现发现和定义对象与类和定义对象与类 3. 识别对象的内部特征识别对象的内部特征 4. 识别对象的外部联系识别

7、对象的外部联系 5. 建立建立用例模型用例模型 9 需求获取是需求分析 的第一项工作,涉及软件 设计人员如何与客户建立 有效的沟通。也称为“需 求发现”、“需求获得”。 是采用用例来收集客户需 求的技术。需求获取的途 径和手段主要有以下几种: 访谈式 诱导式 确认式 需求需求陈述是陈述是开发任何一个系统的首要任务。主要陈述用户的需求,即该开发任何一个系统的首要任务。主要陈述用户的需求,即该 系统应该系统应该“做什么做什么”, 而不是而不是“怎么做怎么做”(系统如何实现)。应该陈(系统如何实现)。应该陈 述系统任务是什么,而不是解决问题的方法述系统任务是什么,而不是解决问题的方法。 需求陈述过程

8、中需要解决的问题:需求陈述过程中需要解决的问题: 问题域(问题域(Problem DomainProblem Domain) 被开发系统的应用领域。被开发系统的应用领域。 系统责任(系统责任(System ResponsibilitiesSystem Responsibilities) 所开发的系统应具备所开发的系统应具备 的职能。的职能。 充分的交流充分的交流 获得准确分析结果的关键获得准确分析结果的关键 需求的不断变化需求的不断变化 应变能力的强弱是衡量一种方法优劣的重要标应变能力的强弱是衡量一种方法优劣的重要标 准准 考虑复用要求考虑复用要求 提高开发效率,改善软件质量的重要途径提高开发

9、效率,改善软件质量的重要途径。 首先,系统分析员要对需求陈述进行首先,系统分析员要对需求陈述进行分析;然后分析;然后,是需求,是需求建模;最后建模;最后, 是需求评审是需求评审。 11 面向对象分析的基础就是问题域以及用户的需求,面向对象分析的基础就是问题域以及用户的需求, 研究问题域和系统需求的主要目的是通过对问题域的研究问题域和系统需求的主要目的是通过对问题域的 深入研究,建立一个能够满足用户需求的系统模型。深入研究,建立一个能够满足用户需求的系统模型。 面向对象分析强调系统模型与用户需求的紧密对应,面向对象分析强调系统模型与用户需求的紧密对应, 对问题域的研究贯穿与整个面向对象分析工作中

10、。面对问题域的研究贯穿与整个面向对象分析工作中。面 向对象分析的第一步就是分析用户需求,在此基础上向对象分析的第一步就是分析用户需求,在此基础上 建立用例模型。建立用例模型。 12 学生信息管理系统学生信息管理系统 系统管理员学校领导 教师学生 学生信息管理系统主要参与者 学生信息管理模块的用例学生信息管理模块的用例 录入学生基本信息录入学生基本信息 查询学生基本信息查询学生基本信息 修改学生基本信息修改学生基本信息 删除学生基本信息删除学生基本信息 打印学生基本信息打印学生基本信息 班级基本信息管理模块的用例班级基本信息管理模块的用例 添加班级基本信息添加班级基本信息 修改班级基本信息修改班

11、级基本信息 查询班级基本信息查询班级基本信息 删除班级基本信息删除班级基本信息 打印班级基本信息打印班级基本信息 13 学生信息管理系统学生信息管理系统 课程课程基本信息管理模块的用例基本信息管理模块的用例 添加课程基本信息添加课程基本信息 查询课程基本信息查询课程基本信息 修改课程基本信息修改课程基本信息 删除课程基本信息删除课程基本信息 打印课程基本信息打印课程基本信息 成绩管理模块的用例成绩管理模块的用例 录入成绩录入成绩 修改成绩修改成绩 保存成绩保存成绩 查询成绩查询成绩 打印成绩单打印成绩单 14 学生信息管理系统学生信息管理系统 账号账号管理模块的用例管理模块的用例 创建新账号创

12、建新账号 设置账号权限设置账号权限 设置账号登录开关设置账号登录开关 修改账号修改账号 查看账号查看账号 删除账号删除账号 登录模块的用例登录模块的用例 登录登录 修改密码修改密码 网上选课模块的用例网上选课模块的用例 查看课程基本信息查看课程基本信息 添加选课信息添加选课信息 删除已选课程删除已选课程 描述如何发现类及对象。 16 在对象识别中最为关键的是正确运用抽象原则。面向对在对象识别中最为关键的是正确运用抽象原则。面向对 象分析用对象来映射问题域中的事物,但并不是问题域象分析用对象来映射问题域中的事物,但并不是问题域 中的所有事物都需要用对象来映射。中的所有事物都需要用对象来映射。 首

13、先要舍弃与系统责任无关的事物,保留与系统责任有首先要舍弃与系统责任无关的事物,保留与系统责任有 关的事物。其次,还要舍弃与系统责任有关的事物中与关的事物。其次,还要舍弃与系统责任有关的事物中与 系统责任无关的特征。判断事物极其系统责任无关的特征。判断事物极其及其及其特征是否与系特征是否与系 统责任相关的准则是:该事物是否向系统提供了一些服统责任相关的准则是:该事物是否向系统提供了一些服 务或需要系统描述它的某些行为。同时还要考虑将问题务或需要系统描述它的某些行为。同时还要考虑将问题 域中的事物映射为什么对象以及如何对对象进行分类域中的事物映射为什么对象以及如何对对象进行分类 17 在寻找各种可

14、能有用的候选对象时,主要的策略是:从问在寻找各种可能有用的候选对象时,主要的策略是:从问 题域、系统边界和系统责任这题域、系统边界和系统责任这3 3方面出发,考虑各种能启发我方面出发,考虑各种能启发我 们发现对象的因素,找到可能有用的候选对象。们发现对象的因素,找到可能有用的候选对象。 在问题域方面,可以启发分析员发现对象的因素包括在问题域方面,可以启发分析员发现对象的因素包括 人员、组织、物品、设备、事件、表格、结构等等。人员、组织、物品、设备、事件、表格、结构等等。 在系统边界方面,应该考虑的因素包括人员、设备和在系统边界方面,应该考虑的因素包括人员、设备和 外部系统,它们可以启发分析员发

15、现一些系统与外部外部系统,它们可以启发分析员发现一些系统与外部 活动所进行的交互,并处理系统对外接口的对象。活动所进行的交互,并处理系统对外接口的对象。 对系统责任的分析是基于对象识别的遗漏的考虑,对对系统责任的分析是基于对象识别的遗漏的考虑,对 照系统责任所要求的每一项功能查看是否可以由已找照系统责任所要求的每一项功能查看是否可以由已找 出的对象来完成该功能,在不能满足要求时增加相应出的对象来完成该功能,在不能满足要求时增加相应 的对象,可以是系统分析员尽可能完全的找出所需要的对象,可以是系统分析员尽可能完全的找出所需要 的各种对象。的各种对象。 18 发现学生信息管理系统中的类对象:首先在

16、用户需发现学生信息管理系统中的类对象:首先在用户需 求中分检出候选的类对象。通常,需要通读需求报告,求中分检出候选的类对象。通常,需要通读需求报告, 在问题域中发现其中的名词,将其分检出来作为候选的在问题域中发现其中的名词,将其分检出来作为候选的 类对象。在学生信息管理系统中,可能作为候选类对象类对象。在学生信息管理系统中,可能作为候选类对象 的有:系统、用户、新生、系统管理员、学生、基本信的有:系统、用户、新生、系统管理员、学生、基本信 息、姓名、性别、年龄、身份证号、家庭住址、身高、息、姓名、性别、年龄、身份证号、家庭住址、身高、 编号、学生证号、学校领导、学生信息、相关部门、新编号、学生

17、证号、学校领导、学生信息、相关部门、新 专业、学校、社会、课程信息、课程编号、所属专业、专业、学校、社会、课程信息、课程编号、所属专业、 课程名称、开课学期、学时、学分、任课教师、专业、课程名称、开课学期、学时、学分、任课教师、专业、 班级、报表、网络、选修课、时间、数量、人数、考试、班级、报表、网络、选修课、时间、数量、人数、考试、 考试成绩、账号、密码、账号信息。考试成绩、账号、密码、账号信息。 19 对于我们研究的学生信息管理系统,还需要筛选和精对于我们研究的学生信息管理系统,还需要筛选和精 简候选的类对象。简候选的类对象。 本系统中筛选的候选类对象包括:学生、教师、账号、本系统中筛选的

18、候选类对象包括:学生、教师、账号、 课程、成绩、班级、专业和选修课。为了将学生、教课程、成绩、班级、专业和选修课。为了将学生、教 师类与参与者相互区别,这里描述为学生信息、教师师类与参与者相互区别,这里描述为学生信息、教师 信息信息。 20 学生信息 学号 姓名 年龄 家庭住址 性别 身份证号 身高 课程 课程编号 所属专业 课程名称 学时 学分 任课教师 账号 密码 教师信息 专业班级 学期 成绩选修课 选课信息 系统系统初步类图初步类图 21 在面向对象分析中,从软件功能需求来看,分析类在面向对象分析中,从软件功能需求来看,分析类 (在进行面向对象分析过程中所使用的类)根据其功能(在进行面

19、向对象分析过程中所使用的类)根据其功能 和作用可以划分为以下和作用可以划分为以下3 3种:种: 实体类:表示系统存储和管理的永久信息;实体类:表示系统存储和管理的永久信息; 边界类:表示参与者与系统之间的交互;边界类:表示参与者与系统之间的交互; 控制类:表示系统在运行过程中的业务控制逻辑。控制类:表示系统在运行过程中的业务控制逻辑。 22 (1)识别边界类)识别边界类 边界类使边界类使是是从那些系统和外界进行交互的对象中归纳、从那些系统和外界进行交互的对象中归纳、 抽象出来的,它是系统内的对象和系统外的参与者的联抽象出来的,它是系统内的对象和系统外的参与者的联 系媒介,外界的消息只有通过边界

20、类的对象实例才能发系媒介,外界的消息只有通过边界类的对象实例才能发 送给系统。送给系统。 根据角色的不同类型,边界类可以是用户接口、系统接根据角色的不同类型,边界类可以是用户接口、系统接 口和设备接口。对于用户接口来说,边界类集中描述了口和设备接口。对于用户接口来说,边界类集中描述了 用户与系统的交互信息,而不是描述用户接口的显示形用户与系统的交互信息,而不是描述用户接口的显示形 式,如按钮等;对于系统接口和设备接口来说,边界类式,如按钮等;对于系统接口和设备接口来说,边界类 集中描述所定义的通信或交换协议,而不是说明协议如集中描述所定义的通信或交换协议,而不是说明协议如 何实现的。边界类使系

21、统与系统的外部变化隔离开来。何实现的。边界类使系统与系统的外部变化隔离开来。 参与者只许通过边界类和系统通信。参与者只许通过边界类和系统通信。 23 (2) 识别控制类识别控制类 控制类是实体类和边界类之间的润滑剂,用于协控制类是实体类和边界类之间的润滑剂,用于协 调边界类和实体类之间的交互。调边界类和实体类之间的交互。 控制类与用例存在着密切的关系,它在用例开始控制类与用例存在着密切的关系,它在用例开始 执行时创建,在用例结束时取消。一般来说,一执行时创建,在用例结束时取消。一般来说,一 个用例对应一个控制类。个用例对应一个控制类。 24 该阶段分为两个步骤: 第一,识别一般-特殊 结构,该

22、结构捕 获了 识别出的类的层次结 构; 第二,识别整体-部分 结构,该结构用来表 示一个对象如何成为 另一个对象的一部分, 以及多个对象如何组 装成更大 的对象。 26 对象的内部特性包括对象的属性和服务。识别对象的内对象的内部特性包括对象的属性和服务。识别对象的内 部特征包括定义对象的属性和服务两个部分的工作。问部特征包括定义对象的属性和服务两个部分的工作。问 题域中,事物的特征可以区分为静态特征和动态特征,题域中,事物的特征可以区分为静态特征和动态特征, 静态特征通过一组数据来表示,而动态特征则可以通过静态特征通过一组数据来表示,而动态特征则可以通过 一系列操作来表达。一系列操作来表达。

23、对象的属性和服务描述了对象的内部细节,只有给出了对象的属性和服务描述了对象的内部细节,只有给出了 对象的属性和服务,才能说对于该对象有了明确的认识对象的属性和服务,才能说对于该对象有了明确的认识 和定义。和定义。 对于对象的属性和服务,面向对象方法提供了专门的表对于对象的属性和服务,面向对象方法提供了专门的表 示方法:对象的属性用在类符号中部填写的各属性的名示方法:对象的属性用在类符号中部填写的各属性的名 字表示;而对象的服务则用在类符号的下部填写的各服字表示;而对象的服务则用在类符号的下部填写的各服 务的名称表示。务的名称表示。 27 可以可以从以下角度确定对象应具有的属性:从以下角度确定对

24、象应具有的属性: 按照一般常识,对象应该具有哪些属性;按照一般常识,对象应该具有哪些属性; 在当前问题域中,对象应具有哪些属性;在当前问题域中,对象应具有哪些属性; 根据系统责任的要求,对象应具有哪些属性;根据系统责任的要求,对象应具有哪些属性; 建立该对象是为了保存和管理哪些信息;建立该对象是为了保存和管理哪些信息; 对象为了在服务中实现其功能,需要增设哪些属性;对象为了在服务中实现其功能,需要增设哪些属性; 是否需要增设属性来区别对象的不同状态;是否需要增设属性来区别对象的不同状态; 用什么属性来表示对象的整体用什么属性来表示对象的整体-部分联系和实例连接。部分联系和实例连接。 28 对于

25、找到的对象属性,还应进行严格的审查和筛选,才对于找到的对象属性,还应进行严格的审查和筛选,才 能最终确定对象应具有的属性,在审查和筛选中,应考能最终确定对象应具有的属性,在审查和筛选中,应考 虑的问题有:虑的问题有: 该属性是否体现了以系统责任为目标的抽象;该属性是否体现了以系统责任为目标的抽象; 该属性是否描述了该对象本身的特性;该属性是否描述了该对象本身的特性; 该属性是否破坏了对象特征的该属性是否破坏了对象特征的“原子性原子性”; 该属性是否已通过类的继承得到;该属性是否已通过类的继承得到; 该属性是否可以从其他属性推导得到。该属性是否可以从其他属性推导得到。 29 在在系统需求中分检出

26、相应的动词,作为类中可能使系统需求中分检出相应的动词,作为类中可能使 用的服务,通过这种方法,我们能够发现类对象的用的服务,通过这种方法,我们能够发现类对象的 一些服务。一些服务。 对象-关系 模型描述了系统 的静态结构,它 指出了类间的关 系。 31 一般一般- -特殊关系(即继承关系):即对象之间的分特殊关系(即继承关系):即对象之间的分 类关系,用一般类关系,用一般- -特殊结构表示;特殊结构表示; 整体整体- -部分关系:即对象之间的组成关系,用整体部分关系:即对象之间的组成关系,用整体 - -部分结构表示;部分结构表示; 静态连接关系(即关联关系):即通过对象属性静态连接关系(即关联

27、关系):即通过对象属性 所反映出来的联系,用实例连接表示;所反映出来的联系,用实例连接表示; 动态连接关系(即依赖关系):即对象行为之间动态连接关系(即依赖关系):即对象行为之间 的依赖关系,用消息连接表示。的依赖关系,用消息连接表示。 32 一般一般-特殊结构又称分类结构,是由一组具有一般特殊结构又称分类结构,是由一组具有一般- 特殊关系(即继承关系)的类所组成的结构,表示特殊关系(即继承关系)的类所组成的结构,表示“is- a-kind-of”关系。在关系。在UML中,用一个带有空心三角形中,用一个带有空心三角形 的连线来表示。空心三角形指向基类。的连线来表示。空心三角形指向基类。 33

28、为了发现一般为了发现一般- -特殊结构,同时还应采用如下策略:特殊结构,同时还应采用如下策略: 学习学习问题域的分类学知识,按照问题域已有的分类学问题域的分类学知识,按照问题域已有的分类学 只是找出与之相对应的一些一般只是找出与之相对应的一些一般- -特殊结构;特殊结构; 按照按照尝试考虑事物的分类,从而发现其中的一般尝试考虑事物的分类,从而发现其中的一般- -特殊特殊 关系;关系; 考察类的属性与服务,若一个类的属性与服务只能适考察类的属性与服务,若一个类的属性与服务只能适 合该类的一部分对象,则应该从这个类中划分出一些合该类的一部分对象,则应该从这个类中划分出一些 特殊类:若两个或两个以上

29、的类含有一些共同的属性特殊类:若两个或两个以上的类含有一些共同的属性 和服务,则可以考虑将这些共同的属性和服务提取出和服务,则可以考虑将这些共同的属性和服务提取出 来,构成一个在概念上包含原先那些类的一般类;来,构成一个在概念上包含原先那些类的一般类; 考虑领域范围内的复用,在更高水平上运用一般考虑领域范围内的复用,在更高水平上运用一般- -特殊特殊 结构,并能开发贡献一些可复用性更强的类的构件。结构,并能开发贡献一些可复用性更强的类的构件。 34 在找到一系列候选的一般在找到一系列候选的一般-特殊结构后,还应逐个特殊结构后,还应逐个 对它们进行审查,从而舍弃哪些不合适的结构或者对它对它们进行

30、审查,从而舍弃哪些不合适的结构或者对它 们进行调整。进行审查的原则如下:们进行调整。进行审查的原则如下: 问题域是否需要这样的分类;问题域是否需要这样的分类; 系统责任是否需要这样的分类;系统责任是否需要这样的分类; 这种分类是否符合分类学的常识;这种分类是否符合分类学的常识; 这种分类是否构成了继承关系。这种分类是否构成了继承关系。 35 关联关联关系用来表达对象之间的静态联系,即通过对象属性来表示一关系用来表达对象之间的静态联系,即通过对象属性来表示一 个对象对另一个对象的依赖关系。在个对象对另一个对象的依赖关系。在OOAOOA模型中,关联关系是一种结模型中,关联关系是一种结 构关系,表达

31、模型元素之间的一种语义联系,它是对具有共同的结构关系,表达模型元素之间的一种语义联系,它是对具有共同的结 构特性、行为特性、关系和语义的描述。在构特性、行为特性、关系和语义的描述。在UMLUML中,关联用一条连接中,关联用一条连接 两个类之间的实线表示。可以在连接线旁边注明连接名,并在连接两个类之间的实线表示。可以在连接线旁边注明连接名,并在连接 线的两端用数字标明连接的多重性。多重性指的是由类产生的对象线的两端用数字标明连接的多重性。多重性指的是由类产生的对象 之间存在的数量关系,主要有以下之间存在的数量关系,主要有以下4 4种:种: 0.10.1:表示:表示0 0到到1 1个对象;个对象;

32、 1.11.1或或1 1:表示:表示1 1个对象;个对象; 0.n0.n或或n n:表示:表示0 0到多个对象;到多个对象; 1.n1.n:表示:表示1 1到多个对象。到多个对象。 多对多的关联相对比较复杂不好描述,通常情况,也会将这种关联多对多的关联相对比较复杂不好描述,通常情况,也会将这种关联 关系描述为类,称之为关联类。通过这样的方式,能够让两个类更关系描述为类,称之为关联类。通过这样的方式,能够让两个类更 好的关联和导航。好的关联和导航。 36 37 整体整体- -部分结构又称为组装结构,用于描述系统中各类对部分结构又称为组装结构,用于描述系统中各类对 象之间的组成关系,通过它可以了解

33、哪些类的对象用了其象之间的组成关系,通过它可以了解哪些类的对象用了其 他类的对象作为其组成的一部分。整体他类的对象作为其组成的一部分。整体- -部分关系是一种部分关系是一种 特殊的关联关系。特殊的关联关系。 在关联关系的基础上,如果要表达在关联关系的基础上,如果要表达“整体整体- -部分部分”的关系,的关系, 应将其建模成聚合关系。在应将其建模成聚合关系。在UMLUML中,聚合关系用一条带有中,聚合关系用一条带有 菱形的直线来表示,菱形端在整体端。聚合关系是一种特菱形的直线来表示,菱形端在整体端。聚合关系是一种特 殊的关联关系,聚合的两端是殊的关联关系,聚合的两端是“has-a”has-a”的

34、关系。的关系。 组合关系也是一种关联关系,也能表达组合关系也是一种关联关系,也能表达“整体整体- -部分部分”的的 关系,与聚合不同的是,组合的整体和部分之间具有一种关系,与聚合不同的是,组合的整体和部分之间具有一种 相同的生命周期,即部分不存在则整体不存在。组合是一相同的生命周期,即部分不存在则整体不存在。组合是一 种更强的聚合关系。在种更强的聚合关系。在UMLUML中,组合使用带有实心菱形的中,组合使用带有实心菱形的 直线来表示,实心菱形在整体端。直线来表示,实心菱形在整体端。 38 在定义整体在定义整体- -部分结构时,应考虑以下方面:部分结构时,应考虑以下方面: 物理上的整体事物和它的

35、组织结构;物理上的整体事物和它的组织结构; 组织机构和它的下级组织及部分;组织机构和它的下级组织及部分; 团体组织和成员;团体组织和成员; 一种事物在空间上包含其他事物;一种事物在空间上包含其他事物; 抽象事物的整体和部分关系;抽象事物的整体和部分关系; 具体事物和它的某个抽象方面。具体事物和它的某个抽象方面。 39 在发现了一系列候选的整体在发现了一系列候选的整体- -部分结构后,需要部分结构后,需要 对其进行严格的审查和筛选,以确定最终采用的整对其进行严格的审查和筛选,以确定最终采用的整 体体- -部分结构。在审查时,需要考虑以下几个方面:部分结构。在审查时,需要考虑以下几个方面: 该结构

36、是否属于问题域;该结构是否属于问题域; 该结构是否是系统责任所需要的;该结构是否是系统责任所需要的; 部分对象是否有一个以上的属性;部分对象是否有一个以上的属性; 是否有明显的整体是否有明显的整体- -部分关系。部分关系。 40 顺序图可以用于识别和描述对象交互,是将用例行为顺序图可以用于识别和描述对象交互,是将用例行为 分配到类对象的一个有利手段。分配到类对象的一个有利手段。 使用顺序图识别对象交互的主要步骤是:使用顺序图识别对象交互的主要步骤是: 列出启动该用例的参与者;列出启动该用例的参与者; 列出启动用例时参与者使用的边界类实例;列出启动用例时参与者使用的边界类实例; 列出管理该用例的

37、控制对象;列出管理该用例的控制对象; 列出需要使用的实体对象;列出需要使用的实体对象; 根据用例描述的所有流程,按照时间顺序列出对根据用例描述的所有流程,按照时间顺序列出对 象之间进行消息访问的序列。象之间进行消息访问的序列。 41 用例之间存在用例之间存在着一定的关系。在发现用例以后着一定的关系。在发现用例以后 还需要分析用例之间的关系,用例之间的关系主要还需要分析用例之间的关系,用例之间的关系主要 有:有: a)a) 包含关系、包含关系、 b)b) 扩展关系、扩展关系、 c)c) 泛化关系。泛化关系。 42 如果如果若干用例的某些行为都是相同的,则可以将这些若干用例的某些行为都是相同的,则

38、可以将这些 相同的行为提取出来单独组成一个用例。当其他用例使用相同的行为提取出来单独组成一个用例。当其他用例使用 该用例时,便包含了该用例的所有行为。包含关系用带关该用例时,便包含了该用例的所有行为。包含关系用带关 键字键字的依赖关系来表示,箭头指向被包含的用的依赖关系来表示,箭头指向被包含的用 例。一个用例可以包含多个用例,一个用例也可以被多个例。一个用例可以包含多个用例,一个用例也可以被多个 用例包含。用例包含。 43 用来用来说明可选的、只在特定条件下运行的行为,具说明可选的、只在特定条件下运行的行为,具 有扩展关系的用例基于参与者的选择,可以运行几个不有扩展关系的用例基于参与者的选择,

39、可以运行几个不 同的流。扩展关系用带关键字同的流。扩展关系用带关键字extendextend的依赖关系表的依赖关系表 示,箭头指向原有的基本用例。一个用例可能有多个扩示,箭头指向原有的基本用例。一个用例可能有多个扩 展点,每个扩展点也可能出现多次。展点,每个扩展点也可能出现多次。 修改密码 用户 登录 用例用例的扩展关系示例的扩展关系示例 44 用例用例的泛化关系是指一个父用例可以被特化形成多个子的泛化关系是指一个父用例可以被特化形成多个子 用例。在泛化关系中,子用例继承了父用例的所有结构、用例。在泛化关系中,子用例继承了父用例的所有结构、 行为和关系,子用例是父用例的一种特殊形式,父用例有行

40、为和关系,子用例是父用例的一种特殊形式,父用例有 子用例的若干种实现方式。子用例的若干种实现方式。 查看课程信息 按照课程编号查找 按照开课学期查找 按照专业查找 用例用例的泛化关系示例的泛化关系示例 对象-行为模型描述了系统的动 态行为,它们指明系统如何响 应外部的事件或激励。建模的 步骤如下: 评估所有的用例,完全理解系 统中交互的序列。 标识驱动交互序列的事件,理 解这些事件如何和特定的对象 相关联。 为每个用例创建事件轨迹 (event trace)。 为系统建造状态机图。 复审对象行为模型,以验证 准确性和一致性。 46 学生学生基本信息管理模块用例基本信息管理模块用例 47 所谓静

41、态建模是指对象之间通过属性互相联系,而这所谓静态建模是指对象之间通过属性互相联系,而这 些关系不随时间而转移,即建立对象模型。些关系不随时间而转移,即建立对象模型。 对象模型表示了静态的、结构化的系统数据性质,描对象模型表示了静态的、结构化的系统数据性质,描 述了系统的静态结构,它是从客观世界实体的对象关述了系统的静态结构,它是从客观世界实体的对象关 系角度来描述,表现了对象的相互关系。该模型主要系角度来描述,表现了对象的相互关系。该模型主要 关心系统中对象的结构、属性和操作,它是分析阶段关心系统中对象的结构、属性和操作,它是分析阶段 三个模型的核心,是其他两个模型的框架。三个模型的核心,是其

42、他两个模型的框架。 构造对象模型的第一步是标出来自问题域的相关的对象构造对象模型的第一步是标出来自问题域的相关的对象 类,对象包括物理实体和概念。类,对象包括物理实体和概念。 类类责任责任协作者(协作者(Class-Responsibility- Collaborator,简称,简称CRC)技术来完成类的定义。)技术来完成类的定义。 类名: 责任:写作者: 物理物理实体实体 与系统交互的人或组织的角色。与系统交互的人或组织的角色。 与系统发生交互的人及系统必须保留其信息的与系统发生交互的人及系统必须保留其信息的 人,可作为候选的类及对象。人,可作为候选的类及对象。 这些人所属的组织单位,可作为

43、候选的类及对这些人所属的组织单位,可作为候选的类及对 象。象。 事件事件 系统必须观测、记忆的与时间有关的事件可作系统必须观测、记忆的与时间有关的事件可作 为候选的类及对象为候选的类及对象。 系统系统的工作环境场所的工作环境场所 系统需了解掌握的物理位置、办公地点等可作为候系统需了解掌握的物理位置、办公地点等可作为候 选的类及对象。选的类及对象。 性能说明性能说明 与系统有关的外部实体与系统有关的外部实体 系统必须记忆、且不在问题域约束中的顺序操作过系统必须记忆、且不在问题域约束中的顺序操作过 程(为了指导人机交互),可作为候选的类及对象。程(为了指导人机交互),可作为候选的类及对象。 筛选筛

44、选时主要依据下列标准,删除不正确或不必时主要依据下列标准,删除不正确或不必 要的类和对象。要的类和对象。 关键性关键性 可操作性可操作性 信息含量信息含量 公共属性公共属性 公共操作公共操作 关键外部信息关键外部信息 确切性确切性 包含性包含性 顺序性顺序性 完整性完整性 持久性持久性 参加参加复审的人,每人拿复审的人,每人拿CRCCRC卡片的一个子集。注意,有协作关系的卡卡片的一个子集。注意,有协作关系的卡 片要分开,即,没有一个人持有两张有协作关系的卡片。片要分开,即,没有一个人持有两张有协作关系的卡片。 将所有用例将所有用例/ /场景分类。场景分类。 复审负责人仔细阅读用例,当读到一个命

45、名的对象时,将令牌复审负责人仔细阅读用例,当读到一个命名的对象时,将令牌 (tokentoken)传送给持有对应类的卡片的人员)传送给持有对应类的卡片的人员。 收到令牌的类卡片持有者要描述卡片上记录的责任,复审小组将确收到令牌的类卡片持有者要描述卡片上记录的责任,复审小组将确 定该类的一个或多个责任是否满足用例的需求。当某个责任需要协定该类的一个或多个责任是否满足用例的需求。当某个责任需要协 作时,将令牌传给协作者,并重复此步骤。作时,将令牌传给协作者,并重复此步骤。 如果卡片上的责任和协作不能适应用例,则需对卡片进行修改,这如果卡片上的责任和协作不能适应用例,则需对卡片进行修改,这 可能导致

46、定义新的类,或在现有的卡片上刻画新的或修正的责任及可能导致定义新的类,或在现有的卡片上刻画新的或修正的责任及 协作者。协作者。 审查和筛选候选项,根据下列标准,去掉不必要的审查和筛选候选项,根据下列标准,去掉不必要的 类和不正确的类。类和不正确的类。 冗余类冗余类 不相干的类不相干的类 模糊类模糊类 属性准则属性准则 操作准则操作准则 实现准则实现准则 两个或多个对象之间的相互依赖、相互作用的关系就两个或多个对象之间的相互依赖、相互作用的关系就 是关联。是关联。 一般情况下,在初步分析问题域中的类一般情况下,在初步分析问题域中的类-对象确定之后,对象确定之后, 接着就可以分析、确定类接着就可以

47、分析、确定类-对象之间存在的关联关系对象之间存在的关联关系。 初步确定初步确定关联:通常,在需求陈述中使用的描述性动关联:通常,在需求陈述中使用的描述性动 词或动词词组,通常表示关联关系。因此,在初步确词或动词词组,通常表示关联关系。因此,在初步确 定关联时,大多数关联可以通过直接提取需求陈述中定关联时,大多数关联可以通过直接提取需求陈述中 的动词词组而得出。的动词词组而得出。 经经初步分析得出的关联只能作为候选的关联,还需初步分析得出的关联只能作为候选的关联,还需 经过进一步筛选,以去掉不正确的或不必要的关联。经过进一步筛选,以去掉不正确的或不必要的关联。 删除已去掉的类之间的关联删除已去掉

48、的类之间的关联 删除不相干的关联或实现阶段的关联删除不相干的关联或实现阶段的关联 删除瞬时动作删除瞬时动作 分解多元关联分解多元关联 派生关联派生关联 经过经过筛选后余下的关联不够精确、完善时,应筛选后余下的关联不够精确、完善时,应 该进一步分解和增补,以调整关联。该进一步分解和增补,以调整关联。 重命名重命名 分解分解 补充补充 标明阶数标明阶数 属性是用来描述类和对象的稳定特性的,即为了完成客属性是用来描述类和对象的稳定特性的,即为了完成客 户规定的目标所必须保存的类的信息。一个属性是一个户规定的目标所必须保存的类的信息。一个属性是一个 数据项(状态数据项(状态信息信息),类中对象都有相应

49、的值(状态),类中对象都有相应的值(状态)。 确定属性的过程包括分析和选择两个步骤确定属性的过程包括分析和选择两个步骤。分析、选择。分析、选择 需要注意的是确定需要注意的是确定属性通常有以下几种常见情况。属性通常有以下几种常见情况。 误把对象当作属性误把对象当作属性 把链属性误作为属性把链属性误作为属性 把限定误当成属性把限定误当成属性 误把内部状态当成了属性误把内部状态当成了属性 过于细化过于细化 存在不一致的属性存在不一致的属性 主题是一种指导开发者或用户研究大型复杂模型的机主题是一种指导开发者或用户研究大型复杂模型的机 制。制。 主题是把一组具有较强联系的类组织在一起而得到的主题是把一组

50、具有较强联系的类组织在一起而得到的 类的集合。类的集合。 主题是一种手段,有助于分解大型项目以便分组承担主题是一种手段,有助于分解大型项目以便分组承担 任务。任务。 主题还可以给出面向对象分析和设计的模型总体概貌。主题还可以给出面向对象分析和设计的模型总体概貌。 主题所依据的原理是整体主题所依据的原理是整体部分关系的扩充。部分关系的扩充。 一个系统模型可以包含多个主题。一个系统模型可以包含多个主题。 是是由一组类构成的集合由一组类构成的集合 一个主题内部的对象类应具有某种意义上的内在联系一个主题内部的对象类应具有某种意义上的内在联系 描述系统中相对独立的组成部分(如一个子系统)描述系统中相对独

51、立的组成部分(如一个子系统) 描述系统中某一方面的事物(如人员、设备)描述系统中某一方面的事物(如人员、设备) 解决系统中某一方面的问题(如输入输出)解决系统中某一方面的问题(如输入输出) 主题的划分有一定的灵活性和随意性主题的划分有一定的灵活性和随意性 首先首先,由高级分析员粗略地识别对象和关联,初步选取,由高级分析员粗略地识别对象和关联,初步选取 结构中最上层的类作为一个主题。结构中最上层的类作为一个主题。 经进一步分析,在更深入了解系统结构的基础上,修改经进一步分析,在更深入了解系统结构的基础上,修改 和精炼主题,通过实例连接互相联系的类可划分到一个和精炼主题,通过实例连接互相联系的类可

52、划分到一个 主题。主题。 最后,按问题领域构造出一个主题(主题编号和主题最后,按问题领域构造出一个主题(主题编号和主题 名),应该将相互间依赖和交互较多的对象确定为同一名),应该将相互间依赖和交互较多的对象确定为同一 个主题。把不属于任何结构,也没有实例连接的类作为个主题。把不属于任何结构,也没有实例连接的类作为 一个主题。一个主题。 对对系统中众多的类加以组织。一般说来,可以使用系统中众多的类加以组织。一般说来,可以使用 两种方式建立继承(即归纳)关系。两种方式建立继承(即归纳)关系。 自底向上自底向上 自顶向下自顶向下 访问对象属性的操作访问对象属性的操作 来自事件驱动的操作来自事件驱动的

53、操作 处理对应的操作处理对应的操作 消除冗余操作消除冗余操作 几种可能丢失对象的情况及解决办法几种可能丢失对象的情况及解决办法: 同一类中存在毫无关系的属性和操作,则分解这个同一类中存在毫无关系的属性和操作,则分解这个 类,使各部分相互关联。类,使各部分相互关联。 一般化体系不清楚,则可能分离扮演两种角色的类。一般化体系不清楚,则可能分离扮演两种角色的类。 存在无目标类的操作,则找出并加上失去目标的类。存在无目标类的操作,则找出并加上失去目标的类。 存在名称及目的相同的冗余关联,则通过一般化创存在名称及目的相同的冗余关联,则通过一般化创 建丢失的父类,把关联组织在一起建丢失的父类,把关联组织在一起。 删除冗余的类。删除冗余的类。 补充关联。补充关联。 分解类分解类 合并合并类类 当对象模型建立起来后,接着可以建立动态模型。当对象模型建立起来后,接着可以建立动态模型。 对于一个系统来说,功能模型指明了系统应

温馨提示

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

评论

0/150

提交评论