当前位置:文档之家› 第5讲 面向对象的分析-建立对象模型

第5讲 面向对象的分析-建立对象模型


在需求陈述中,找到一些名词词组 领域知识和常识 只需要重要的属性,不需要实现阶段的属性 不能把对象作为属性 不能把关联类的属性作为一般对象的属性 不能把限定当作属性,如分行代码是限定词,决定 总行拥有的哪一个分行 如果有毫不相关的属性,则可以考虑分解为两个类
识别继承关系
继承关系的识别,需要领域知识 自底向上,有共同属性泛化出父类 自顶向下,将父类细化成子类
1.面向对象分析过程

首先,系统分析员要对需求文档进行分析。发现和改正需求 文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的 内容,弥补不足,从而使需求文档更完整、更准确。 然后,是需求建模。系统分析员根据提取的用户需求,即用 面向对象观点建立对象模型、动态模型和功能模型。


最后,是需求评审。通过用户、领域专家、系统分析员和系 统设计人员的评审,并进行反复修改后,确定需求规格说明。

完善



1 给关联定义含义明确的名字。“分行拥有柜员终 端” 2 为了适应不同的关联,分解前面析出的类 如事务分解为远程事务和柜员事务 3 补充。 当分解出柜员事务后,多出几个关联,如 柜员输入柜员事务,ATM上输入远程事务 4 标明重数。
ATM系统原始的类图
确定属性

确定类间关联

由需求陈述中的动词词组表示关联关系 确定隐含的关联
总行有多个分行构成 分行保管帐号 储户拥有现金兑换卡

根据问题域知识得到的关联
现金兑换卡访问帐号 分行雇佣柜员
筛选
1去掉前面已删除的对象引起的关联 2 去掉实现阶段考虑的关联 3 去掉瞬时事件(有更长期的联系存在) 4 将3元关联,变为两个2元的,或者限定的 5 去掉重复的关联。如总行拥有多台ATM, 事 实上是与(总台拥有中央计算机,中央计算 机与ATM通信)重复的
筛选
1 去冗余 例如磁卡,实际上就是现金兑换卡 2 去掉与系统无关的 如街道,成本,储蓄所 3 去掉抽象词 如银行,网络,系统,软件 4 将属性词去掉 如 分行代码,取款额,余额 5 属于操作的名词 如 6 实现阶段才考虑的 例如日志,通信链路

备选对象

ATM, 中央计算机,分行计算机,柜员终端, 总行,分行,柜员,储户,账户,事务,现 金兑换卡
面向对象的3个模型
对象模型总是很重要 设计人机交互,以及过程控制时,动态模型 很重要 涉及科学计算等问题,功能模型很重要

面向对象的5个层次 类与对 象层 属性层
属性
类边界 实例边界 实例连接
服务层
服务
消息
结构层
主题层
主题
主题(Subject)层:主题给出分析模型的总体概貌,是控制读者 在同一时间所能考虑的模型规模的机制。 类-&-对象(Class & Object)层:对象是数据及其处理的抽象。 它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。类 - 成员结构 反映了一般-特殊关系,整体 - 部分结构反映了整体 - 部分的关 系。 属性(Attribute)层:属性是数据元素,用来描述对象或分类结 构的实例,可在图中给出并在对象的储存中指定,即给出对象 定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理, 可在图上标明它并在对象的储存中指定,即给出对象定义的同 时,定义服务。

反复修改
1 根据功能独立性,将现金兑换卡分解为两个 类,其一负责权限,其二负责卡号里的数据 2 在”事务”中,独立出一个更新,一个事务包含 对帐户的若干次更新. 3 分行和分行计算机合并,总行和总行计算机 合并, 因为对分析来说,分开没有什么意义.

对象模型的5个层次

对应着面向对象分析中对象建模的5个活动, 这5项活动并没有先后次序,可以并行进行, 什么时候想起,什么时候补充。 面向对象分析的基本步骤:寻找类与对象, 识别结构,识别主题,定义属性,建立动态 模型,建立功能模型,定义服务

需求陈述

实现一个基于Android的手机拼图游戏,能计 时,能记录成绩,能切换不同的图,能按玩 家要求分割等分,能提示玩家走法。 需求陈述做什么而不是怎么做。哪些是必须ቤተ መጻሕፍቲ ባይዱ的功能,哪些是任选的,性能规定,与环境 的交互协议,适合的标准,扩充和可维护性 要求等





某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行 计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总 行 拥有多台ATM。,分别设在全市各主要街道上。分行负责提供分行计算机和柜 员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开 发 成本由各个分行分摊。 银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向 自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常, 一个储 户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员 终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计 算机通信,分 行计算机具体处理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或 查询 有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯 一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张 卡可以访 问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张 现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须 考虑同时在若干 台.ATM上使用同样的现金兑换卡的可能性。也就是说,系统 应该能够处理并发的访问。 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事 务的信息,并与中央计算机交换关于事务的信息。首先,.ATM要求用户输入 密 码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行 代码确 定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密 码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询 等)。当用 户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐 出现金,并且打印出账单交给用户。

自动柜员机系统





某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行 计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总 行 拥有多台ATM。,分别设在全市各主要街道上。分行负责提供分行计算机和柜 员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开 发 成本由各个分行分摊。 银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向 自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常, 一个储 户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员 终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计 算机通信,分 行计算机具体处理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或 查询 有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯 一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张 卡可以访 问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张 现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须 考虑同时在若干 台.ATM上使用同样的现金兑换卡的可能性。也就是说,系统 应该能够处理并发的访问。 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事 务的信息,并与中央计算机交换关于事务的信息。首先,.ATM要求用户输入 密 码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行 代码确 定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密 码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询 等)。当用 户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐 出现金,并且打印出账单交给用户。
相关主题