第5 章 面向对象的需求分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般聚合关系 组成
共享聚合
第5 章 面向对象的需求分析
(3)泛化
类之间的泛化关系也就是类的继承关系。
第5 章 面向对象的需求分析
(4)依赖
依赖关系用来描述两个类之间存在的与依赖有 关的语义上的连接。其中一个模型元素是独 立的,另一个模型元素不是独立的,它依赖 于独立的模型元素,需要由独立元素提供服 务,如果独立模型改变了,将影响依赖于它 的模型元素 。
第5 章面向对象的需求分析
通过在不同程度上运用抽象原则(忽略事物 之间的一些差异),可以得到较一般的类和 较特殊的类。特殊类继承一般类的属性和操 作,面向对象方法支持这种继承关系的描述 与实现,从而简化系统的构造过程及其文档; 复杂对象可以用简单的对象作为其构成部分 (称为聚合); 对象之间通过消息进行通信,以实现对象之 间的动态联系; 通过关联表达对象之间的静态关系。
第5 章 面向对象的需求分析
5.3.3 用例之间的关系 1.扩展关系
2.包含关系
第5 章 面向对象的需求分析
5.3.4 用例建模
从几方面识别系统的执行者,包括需要从系统 中得到服务的人、设备、其他软件系统等; 分析系统的业务边界或系统执行者对于系统的 基本业务需求,可以将其作为系统的基本用例; 分析基本用例,将基本用例中具有一定独立性 的功能,特别是具有公共行为特征的功能分解 出来,将其作为新的用例供基本用例使用; 分析基本用例功能以外的其他功能,将其作为 新的用例供基本用例进行功能扩展; 分析并建立执行者与用例之间的通信关系。
第5 章 面向对象的需求分析
2.筛选出正确的类与对象 (1)冗余 (2)无关 (3)笼统 (4)属性 (5)操作 (6)实现
第5 章 面向对象的需求分析
5.4.3 识别属性 1.分析 2.确定属性 注意以下问题: (1)误把对象当作属性 (2)误把关联类的属性当作对象的属性 (3)误把内部状态当成属性 (4)过于细化 (5)存在不一致的属性 (6)属性不能包含一个内部结构 (7)属性在任何时候只能有一个在其允许范围内的 确切的值
5.4.5 识别关联 例: “ 消费 者 ”以 “ 顾客 ” 的角 色 参与 “提交定单”的关联
第5 章 面向对象的需求分析
关联的多重性:表示是由类产生的对象之间存在 的数量关系,主要有以下几种: 1..1或1 表示1个对象 0..1 表示0到1个对象 0..*或* 表示0到多个对象 1..* 表示1到多个对象
第5 章 面向对象的需求分析
(10) ATM从客户帐户中减去所取金额。 (11) ATM向客户提供要取的钱。 (12) ATM打印清单。 ATM退出客户的卡,用例结束。 子事件流a: a1. 提示用户输入无效密码,请求再次输入; a2. 如果三次输入无效密码,系统自动关闭,退出客户银行卡。 子事件流b: b1. 提示用户余额不够。 b2. 返回(5),等待客户重新选择。 后置条件:结束取款事件。
第5 章 面向对象的需求分析
(1)关联类 关联有可能具有自己的属性或操作,对此需要 引入一个关联类来进行记录。这时,关联关 系中的每个连接与关联类的一个对象相联系, 关联类通过一条虚线与关联连接。
第5 章 面向对象的需求分析
(2)聚合 聚合是一种特殊形式的关联。聚合表示类之间的关系 是整体与部分的关系。
第5 章 面向对象的需求分析
5.3 用例模型
5.3.1 执行者 执行者是指与系统交 互的人或其他系统,它代 表外部实体。
第5 章 面向对象的需求分析
5.3.2 用例
用例是可以被执行者感受到的、系统的一个完整的功 能。在UML中把用例定义成系统完成的一系列动作序 列,动作的结果能够被特定的执行者察觉到。 用例具有下述特征: 用例代表某些用户可见的功能,实现一个具体的用户 目标; 用例总是被执行者启动,并向执行者提供可识别的值; 用例可大可小,但它必须是完整的; 用例在以后开发过程中,可以进行独立的功能检测。
第5 章 面向对象的需求分析
5.4.5 识别关联 关联用于描述类与类之间的连接 关联名称:用于标记关联 关联角色:用于反映类在这一关联关系中扮 演了什么角色.如果在关联上没有标出角 色名,则隐含地用类的名称作为角色名。 关联导向性:是指关联关系只在指定方向上 成立,可以使用一个指向符号表示。
第5 章 面向对象的需求分析
第5 章 面向对象的需求分析
(2)系统实体识别方法 可感知的物理实体,例如汽车、书、信用 卡; 人或组织的角色,例如:学生、教师、经 理、管理员、供应处; 应该记忆的事件,例如取款、飞行、订购; 两个或多个对象的相互作用,例如购买、 结婚; 需要说明的概念,例如保险政策、业务规 则。
第5 章 面向对象的需求分析
2.继承
继承是子类自动地共享基类中定义的数据和 方法的机制。 继承刻画了一般性和特殊性 继承也体现了类的层次关系
第5 章 面向对象的需求分析
3.多态性
是指在一般类中定义的属性或操作被特殊 类继承之后,可以具有不同的数据类型或表 现出不同的行为。 多态性的作用在于它允许我们开发灵活的 系统,我们只要指定什么应该发生,而不是 它应该怎样发生,以便获得一个易修改、易 变更的系统。
第5 章 面向对象的需求分析
5.2.2 封装、继承和多态
1.封装 封装是指把对象的外部特征与内部实现细节分开,使 得一个对象的外部特征对其它对象来说是可访问的, 而它的内部细节对其它对象是隐蔽的。 对象具有封装性的条件如下: (1)有一个清楚的边界,所有私有数据和操作的代码都被 封装在这个边界内,从外面看不见更不能访问; (2)有确定的接口,这些接口描述这个对象和其他的对象 之间相互的作用; (3)受保护的内部实现,这个实现给出了由软件对象提供 的功能的细节,实现细节能在定义这个对象的类的外 面访问。
Biblioteka Baidu
第5 章 面向对象的需求分析
2.识别关联
直接提取动词短语得出的关联 需求陈述中隐含的关联 根据问题域知识得出关联
第5 章 面向对象的需求分析
5.4.6 建立静态模型 建模步骤: 从几方面识别系统的实体对象和类; 分析每个对象的主要属性和操作,达到对类的完整 认识的目的; 识别类之间的结构,包括泛化、聚合、组成等; 识别对象、类之间的关系; 修改、补充对象与类,绘制类图,对重点类加以文 本描述和说明。
第5 章 面向对象的需求分析
2.类 是指具有相同属性和操作的对象的集合, 它代表一种抽象,作为具有类似特性与共同 行为的对象的模板,可用来产生对象。 例如:汽车具有运输功能,它是由车轮、发动机、 车身等部分组成,这个描述适合所有的汽车。 3.实例 类是建立对象时使用的“样板”,按照这 个样板所建立起来的一个个具体的对象,就 是类的实例。
第5 章面向对象的需求分析
5.1.2 面向对象方法概述 主要特点: 从问题域中客观存在的事物出发来构造软件系 统,用对象作为对这些事物的抽象表示,并以 此作为系统的基本构成单位; 事物的静态特征(即可以用一些数据来表达的 特征)用对象的属性来表示,事物的动态特征 (即事物的行为)用对象的操作来表示; 对象的属性与操作结合为一体,成为一个独立 的实体,对外屏蔽其内部细节(称为封装); 对事物进行分类,把具有相同属性和相同操作 的对象归为一类,类是这些对象的抽象描述, 每个对象是它的类的一个实例;
第5 章 面向对象的需求分析
用例描述:
用例名称:取款 前置条件:ATM机正常工作 主事件流: (1) 客户将卡插入ATM机,开始用例。 (2) ATM显示欢迎消息并提示客户输入密码。 (3) 客户输入密码。 (4)ATM确认密码有效。如果无效则执行子事件流a。如果与主机联 接有问题,则执行异常事件流e。 (5) ATM提供以下选项:存钱,取钱,查询。 (6) 用户选择取钱选项。 (7) ATM提示输入所取金额。 (8) 用户输入所取金额。 (9) ATM确定该帐户是否有足够的金额。如果余额不够,则执行子 事件流b,如果与主机联接有问题,则执行异常事件流e。
第5 章 面向对象的需求分析
4.消息 消息是面向对象系统中实现对象间的通信 和请求任务的操作。 5.关联 泛化关系:主要表现继承机制; 聚合关系:对象间的由分解或组成所构成的 关系; 关联关系表示两个类之间除泛化、聚合以外 的,存在某种语义上的联系。
第5 章 面向对象的需求分析
5.2.3 面向对象的分析概述 1. 获取用户需求 2. 标识对象和类 3. 定义类的结构和层次 4. 建立对象模型 5. 建立动态模型
第5 章 面向对象的需求分析
5.4.4 识别操作 有哪些类会与该类交互(包括该类本身)? 所有与该类具有交互行为的会发送哪些消 息给该类?该类又会发送哪些消息给这些 类? 该类如何响应别的类发送来的消息?在发 送消息出去之前,该类需要做何处理? 从该类本身来说,它应该有哪些操作来维 持其信息的更新、一致性和完整性? 系统是否要求该类具有另外的一些职责?
第5 章 面向对象的需求分析
本章学习内容: 1. 理解面向对象方法的基本概念 2.了解面向对象方法的特点与优点 3.初步掌握面向对象分析的各种模型及 视图 4.掌握面向对象需求分析的过程与步骤
第5 章面向对象的需求分析
5.1面向对象方法学概述
5.1.1 面向对象技术的由来 1986年Booch提出的面向对象分析与设计方法论 (OOA/OOD)。 1991 年 Rumbaugh 提 出 的 面 向 对 象 模 型 技 术 (OMT)。 1994年Jacobson提出的面向对象软件工程方法学 (OOSE)。 Booch、OMT和Jacobson将他们各自的对象建模方 法结合到一起,提出了统一的建模语言UML (Unified Modeling Language)
第5 章面向对象的需求分析
5.1.3 面向对象方法的优点 1. 与人们习惯的思维方法一致 2. 可使软件系统结构更加稳定 3. 软件具有更好的可复用性 4. 软件更加便于维护与扩充
第5 章面向对象的需求分析
5.1.4 面向对象建模
用例模型:包含所有用例及其与用户之间的关系; 对象模型:包含问题域涉及的类及其属性和关系,其 作用是更详细地提炼用例,将系统的行为初步分 配给提供行为的一组对象; 设计模型:将系统的静态结构定义为子系统、类和接 口,并定义由子系统、类和接口之间的协作来实 现的用例; 实现模型:包含构件和类到构件的映射; 配置模型:定义计算机的物理节点和构件到这些节点 的映射; 测试模型:描述用于验证用例的测试用例。
第5 章 面向对象的需求分析
5.4 对象模型
5.4.1 类图 名称:用来区别其他的类。类名可 以是一个字符串,也可以是包含路 径的名字。 属性:属性用来描述该类的对象所具有的特 征。 操作:操作描述对数据的具体处理方法。
第5 章 面向对象的需求分析
5.4.2 识别类与对象 1.找出侯选的类与对象 (1)名词识别法 例:顾客带着所要购买的商品到达营业厅的一个销售 点终端(终端设在门口附近),销售点终端负责 接收数据、显示数据和打印购物单;出纳员与销 售点终端交互,通过销售点终端录入每项商品的 通用产品代码,如果出现多个同类商品,出纳还 要录入该商品的数量;系统确定商品的价格,并 将商品代码、数量信息加入到正在运行的系统; 系统显示当前商品的描述信息和价格。 候选对象:顾客、商品、销售点终端、购物单、出纳 员
第5 章面向对象的需求分析
5.2 面向对象的基本概念
5.2.1 类和对象 1.对象 是指问题域中某些事物的一个抽象,它反映 该事物在系统中需要保存的信息和发挥的作 用,它是由数据(属性)及其上的操作(也 称为服务、方法或行为)组成的封装体。
第5 章面向对象的需求分析
可以从以下4个方面来认识对象: (1) 从动态的观点看,对象的操作就是对象的行为。 (2)从存储角度看,对象是私有存储,其中有数据也 有操作。其他对象的方法不能直接操纵该对象的私 有数据,只有对象私有的方法才可操纵它。 (3)从实现机制看,对象是一个自动机,其中私有数 据表示了对象的状态,该状态只能由私有的方法改 变它。 (4)在面向对象的程序设计中,对象是系统中的基本运 行实体。