第7章面向对象的需求分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2.1 OMT方法
对象建模技术( Object Modeling Technique , OMT) 由 Rumbaugh等提出,其目的是不断对系统设计进 行细化,直到最后的模型适合于实现为止。
7.2.2 Booch方法
Booch 方法提出了描述对象系统的两个模型:用 于描述逻辑结构的逻辑模型(Logical Model)和描 述系统物理结构的物理模型( Physical Model), 而对于这两个模型又可以采用描述系统静态侧面的 静态模型( Static Model )和描写系统动态特性的 动态模型(Dynamic Model)两种方式来描述。
7.1.1 对象(Object)
对象是现实世界事物或个体的抽象表示,抽象的结 果不仅包括事物个体的属性,还包括事物的操作。 属性值表示了对象的内部状态。 在分析阶段,对象的操作是对象展现给外部的服务。 对象状态的改变是由对对象的操作引起的。 例如,对于民航机场的指挥控制系统,MU9114 航班就是该问题域中的对象,该对象的属性可以包 含:航班号、起飞机场、降落机场、起飞时间、降 落时间,位臵等;可能的操作包括离港、到港等。 当对MU9114航班对象进行离港操作时,对象的状 态将从停靠状态改变成飞行状态。
பைடு நூலகம்
1)标识潜在的对象
需求描述中的对象可能呈现以下方式: ①外部实体。通过与目标系统交换信息来实现交互。例 如物理设备,操作人员或用户,其他相关系统等。 ②信息域内的概念实体。如信号、报表等。 ③需记忆的系统事件。如交通监管系统中的一次汽车超 速事件。 ④角色。管理员,工程师,销售员等。不同的角色具有 不同的职能和权限。 ⑤场所、位臵。如卫星定位系统中被定位对象的位臵, 包括经度、纬度和高程。 ⑥组织机构。如财务部,项目部等。 ⑦聚集对象。如物理设备,它由多个成分对象聚集而成, 有时概念实体对象和外部实体对象也是聚集对象。
表7-2 银行系统潜在对象的筛选结果
潜在对象 理由
银行(Bank) 帐号(Account) 资金(Funds) 客户(Client) 交易(Transaction)
符合①~⑤ 符合①~⑤概念实体 不符合③ 符合①~⑤ 符合①~⑤
对象的识别和筛选结果没有正确与错误之分,识别 和筛选对象的结果依赖于分析人员的素质和经验。 好的分析员会得出一个易于重用和适应需求变更的 分析结果。随着分析活动的逐步展开,需求分析员 可以根据需要增加和删除原有的对象。
7.1.4 聚合(Aggregation)
聚合模拟了现实世界的部分与整体的关系。它允许利 用现有的类组成新类。比如说汽车,它是由发动机、 变速箱、底盘等组成,那么我们就可以利用发动机、 变速箱、底盘等类聚合成一个新的类:汽车类。
7.1.5 消息(Message)
消息是对象之间交互的唯一途径,一个对象要想使用 其他对象的服务,必须向该对象发送服务请求消息。 而接收服务请求的对象必须对请求做出响应。 例如:当我们向银行系统的帐号对象发送取款消息时, 帐号对象将根据消息中携带的取款金额对客户的帐号 进行取款操作:验证帐号余额,如果帐号余额足够, 并且操作成功,对象将把执行成功的消息返回给服务 请求的发送对象,否则发送交易失败消息。
2. 标识对象的属性
例如在用户需求的描述中有“帐号的余额”这样的 短语,余额便可以识别为帐号的属性。而“帐号可 以有两种状态,开放的和关闭的,开放的帐号可以 进行存入、提取、转帐操作”这段描述则可以识别 出帐号对象的一个重要的枚举类型的属性:帐号状 态,它可以取开放和关闭两个值,如果业务需要, 还可以取其他的值,比如“只存入”,处于这种状 态的帐号只能进行存入和转入操作,而不能进行提 取和转出操作。 有时,客户的需求描述中并没有陈述,但是它是对 象必须的的属性,这时候。也要把该属性作为对象 的属性。在帐号对象中,用户可能没有描述帐号所 属的银行,但它是银行跨行操作必须的一个属性。
第7章
面向对象的需求分析
面向对象(Object Oriented)方法是将现实世 界的事物以对象的方式映射到计算机世界的方 法。用面向对象的方法求解现实世界问题的第 一步便是面向对象分析。面向对象分析包含两 个可以重叠的过程:用面向对象的方法对现实 世界的问题进行分析;用面向对象的工具对分 析结果进行描述。 本章重点介绍面向对象的方法,并用银行系统 作为贯穿本章的例子。在介绍方法的同时,还 将 简 单 介 绍 面 向 对 象 的 CASE 工 具 Rational Rose和Rational统一过程。
7.1 面向对象的概念
从事物的过程侧面来描述事物的方法被称之为面向过 程的方法。该方法在认识现实事物的整个过程中是把 事物内部的处理过程作为核心来描述的。 从事物的属性侧面来描述事物的方法就是面向数据的 方法,该方法在认识事物的过程中始终把事物的属性 作为描述的核心。 从事物的组成部件及每个部件的属性、功能来认识事 物。比如,汽车由发动机,底盘,变速箱等组成,发 动机有排量,有冲程数等属性,同时发动机还具有启 动,加大油门等操作。这就是将现实世界的事物的属 性和及其过程一并进行描述的方法,这种方法被称为 面向对象的方法。
课程名称:软件工程 第12讲 班 级: 日 期: 教 室: 教学题目:第7章 面向对象的需求分析。 教学目的:理解面向对象的概念、Coad/Yourdon方 法、熟悉需求分析CASE工具和Rational过程。 教学重点: Coad/Yourdon方法、CASE工具。 教学难点: CASE工具。 教 具:多媒体教室、电子教案 作 业:
7.1.2 类(Class)
类是对具有共同特征的对象的进一步抽象。类通常 被认为是对象的模板,通过该模板可以创建特性一 致的对象。使用类创建对象的过程实际上是类的实 例化过程。
7.1.3 继承(Inheritance)
继承关系模拟了现实世界的一般与特殊的关系。 它允许我们在已有的类的特性基础上构造新类。被 继承的类我们称之为基类(父类),在基类的基础 上新建立的类我们称之为派生类(子类)。派生类 的特性比基类的特性更细致。 继承关系可以表述为:派生类是基类。因此可以 说:动物是生物。生物比动物具有更一般的特性。
图7-2-1 Account类
在Rational Rose中类用图7-2-1符号表示。其中第一 框为类名(帐号);第二框为类的属性,accountNo 为帐号号码、bank为银行、createDate为建立日期、 holder为持有人、balance为余额;第三框是类的行为, withdraw为取款操作。
2. 标识对象的属性
对象属性的组合标明了对象状态,而对象状态的改变 则依赖于对对象的操作。对于银行帐号对象来说,帐 号accountNo、帐号创建时间createDate、帐号归属银 行bank、帐号持有者holder、帐号余额balance表明了 该帐号当前状态。从银行系统的业务描述中得知,一 个客户可以拥有多个帐号,同时一个帐号可为多个客 户拥有,因此帐号持有者 holder为客户类(Costumer) 的集合(可以是链表或静态数组)。帐号余额的改变 只能通过三种操作来实现:取款( Withdraw )、存 款(Deposit)和转帐(Transfer)。 在标识对象属性时,分析人员要保证识别出来对象的 属性落在所分析系统的信息域内。为了更准确的标识 对象的属性,分析人员还要认真的研究用户的需求陈 述,从中找到关键的形容词和带所有格的名词。
7.2.3 OOSE方法
OOSE (Object Oriented Software Engineering)是 用例(use case)驱动的方法。在该方法中,用例模 型是分析阶段的模型。用例模型主要用来描述系统外 部角色和软件系统为这些外部角色提供的服务和功能。 比如银行系统中的转帐功能既是客户角色的一个用例。 通过确定系统外部角色与系统内部功能的交互作用, 用例模型描述了系统的完整功能。 需求模型 OOSE的分析阶段,要构造两种模型: 分析模型 需求模型从用户的角度描述了系统具有的所有功能。 需求模型由三部分组成 用例模型 问题域对象模型 接口描述
7.2.3 OOSE方法
分析模型是通过对接口对象、实体对象 和控制对象的分析和描述而建立的模型。 接口对象、实体对象和控制对象可以完 成用例视图所要求的全部功能。 OOSE方法的最大的贡献就是引入了 用例的概念。
7.2.4 Coad/Yourdon的OOA/OOD方法
Coad/Yourdon面向对象的方法包含5个步骤:
7.1 面向对象的概念
在抽象现实世界的事物时,必须把抽象的范围限定 在我们的问题域内。现实世界的事物都有很多侧面, 我们只应关心那些跟我们要解决的问题相关的侧面。 比如,在抽象和描述“学生”对象时,针对不同的 问题域,可能得到不同的抽象结果。对于学生管理 系统,学生的成绩、所选的课程等在问题域范围内, 而学生的病史,过敏史则不在问题域内;如果是一 个医管系统,病史,过敏史则落在问题域内。
分析阶段所得到的对象应该是实际问题域中有 意义的个体或概念实体。对象应该具有记忆其 自身状态的能力。也就是对象具有软件系统所 关心的属性。而且对象不应该是孤立的。它必 须以某种方式与系统中的其他对象进行交互。
识别对象包括两个基本步骤:标识潜在的对象 和筛选对象。
1)标识潜在的对象
识别潜在对象主要依据用户的需求描述。 具体方法——找出需求描述中的名词或名词短语 并合并同义词。除去有动作含义的名词,他们 将被描述为对象的操作而非对象本身。 可修改性和可重用性是面向对象系统的目标,因 此仅仅通过上述的机械方法不能符合对象系统 的目标。其中正确的分析类之间的继承、聚合 关系以及类之间的通讯方式是至关重要的。
识别对象 标识对象的属性 标识对象的性为 识别对象所属的类 定义主题词 这些步骤之间并无严格的边界,比如可以在 识别对象的同时标识对象的属性和行为等活动。
7.2.4 Coad/Yourdon的OOA/OOD方法 1. 识别对象
OOA最困难的部分就是如何将系统分解成相互 作用的对象集合。识别对象是面向对象分析的 第一步也是很关键的一步,分析阶段的模型基 本上决定了系统的可重用性和可修改性指标。
2)筛选对象
对潜在的对象进行筛选的原则: ①对象应具有记忆自身状态的能力。并且对象的属性 应该是系统所关心的,或者是目标系统所必须的。 ②对象应具有有意义的操作,以某种方式修改其状态。 并且,对象应利用其操作为目标系统中的其他对象提 供外部服务。 ③对象应具有多种意义的属性。仅有一种属性的对象最 好表示为其他对象的属性。 ④对象的属性和操作应该适用于对象的所有实例,这是 对象所必须具备的基本条件。 ⑤对象应是软件需求模型的必要成分,与设计和实现方 法无关。需求分析阶段只关心对象的外部表现,而对 象的具体实现则在设计阶段才会考虑。所以在分析阶 段不应包含实现对象功能所用到的对象。
标识潜在的对象举例
根据描述识别潜在的对象如表7-1 银行系统的需求描述: ①一个银行可以有多个帐号。 ②一个银行可以有多个客户。 ③一个客户可以持有多个帐号。 ④一个帐号可以被多个客户持有。 ⑤可以开户、注销帐户、存钱、取钱、银行 内转帐、银行间转帐 表7-1 银行系统潜在的对象
潜在对象 银行(Bank) 帐号(Account) 资金(Funds) 客户(Client) 交易(Transaction) 理由 概念实体 概念实体 概念实体 外部实体 事件对象
面向对象需求分析方法的概念
面向对象的需求分析方法通过提供对象、 对象间消息传递等语言机制,让分析人
员在解空间中直接模拟问题空间中的对
象,从而消减运用其他分析方法带来的
语义断层,为需求建模活动提供直观、
自然的语言支持和方法学指导。
7.2 面向对象的分析方法
面向对象的分析和设计(OOA&OOD)方 法出现在20世纪70年代中期。从1989年 到1994年,面向对象方法从不到10种增 加到50多种。这些不同的面向对象的方 法具有不同的建模符号体系,建模语言 本身又各有优劣,用户很难从这些方法 中找到一个适合自己的方法。