ATM自动取款机系统需求分析.ppt
1,ATM自动取款机,面向对象分析与设计案例,2,ATM系统,ATM 系统,图 1 ATM系统,面向对象分析与设计案例,3,1.建立对象模型,问题描述 ATM问题陈述:某银行开发一个自动取款机系统,其组成:自动取款机、中央计算机、分行计算机、柜员终端组成的网络系统。ATM 和中央计算机由中行投资购买。中行拥有多台ATM,分别设在全市各个主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储 蓄所内。该系统的软件开发成本由各个分行分摊。,面向对象分析与设计案例,4,银行柜员使用柜员终端处理储户提交 的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户可以从自己的账户中取款,通常一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信。分行计算机具体处理针对某个账户的事务并且维护账户。,面向对象分析与设计案例,5,拥有银行账户的储户有权申请领取现 金兑换卡,使用现金兑换卡可以通过ATM 访问自己的账户。目前,仅限于用现金兑换卡在ATM上提 取现金,或查询有关自己账户的信息(如 有没有余额),将来还要使用ATM办理转账、存款等事务。现金兑换卡是一张磁卡,上面有分行 代码和卡号。,面向对象分析与设计案例,6,分行代码唯一标识总行下属的一个分行.卡号确定这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是用一张卡可能有多个副本 因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性也就是说系统应当处理并发的访问。,面向对象分析与设计案例,7,当用户把现金兑换卡插入ATM之后,ATM 就与用户交互,以获取有关这次事务的信 息。并与中央计算机交换关于事务的信息。首先,ATM要求输入密码,接下来ATM 把从这张卡上读到的信息以及用户输入的密 码传给中央计算机,请求中央计算机核对这 些信息并处理这些事务。,面向对象分析与设计案例,8,中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。若用户输入的密码是正确的,ATM要求用户选择事务类型(取款、查询等),当用户选择取款时,ATM请求用户输入取 款额。最后ATM从现金出口吐出现金,并且打印出账单交给用户。,面向对象分析与设计案例,9,建立对象模型的步骤:,.确定类&对象,.确定属性建立实例连接,.确定结构,.确定主题,.确立服务建立消息连接,面向对象分析与设计案例,10,1)确定类&对象,找出候选的类&对象.找名词(34个)银行,总行,分行,系统,中央计算机,分行计算机,街道,市,营业厅,网络,储蓄所,软件,成本,信息,柜员终端,柜员,储户,事务,现金,现金兑换卡,支票,账户,用户,余额,磁卡,副本,卡号,密码,类型,账单,取款额,自动取款机,分行代码,(访问),面向对象分析与设计案例,11,筛选出正确的对象和类 冗余:储户、用户,现金兑换卡、磁卡、副本 无关:去掉:成本、市、街道、营业厅、储蓄所 去掉模糊类、概括类 银行指总行、分行;网络、系统、软件、信息等 去掉非独立的类(属性):描述其他对象的属性 实现:通信链路、事务日志设计实现时考虑,面向对象分析与设计案例,12,自动取款机(ATM)中央计算机分行计算机柜员终端总行分行柜员储户账户事务现金兑换卡,最后确定的对象:,面向对象分析与设计案例,13,2)确定属性建立实例连接属性:描述对象静态特征的一个数据项.名词词组表示属性、形容词表示枚 举的属性.注意误把对象当作属性在邮政目录中,“城市”是属性在人口普查中,“城市”是对象,面向对象分析与设计案例,14,误把内部状态当成属性构造一个“电话模型”时,“拨号”是操作开发“电话自动记账”时,“拨号”是类,有属性(时间等)不要把链属性误作为属性误把限定当属性是否存在不一致的对象,面向对象分析与设计案例,15,确定ATM对象的属性,“分行代码”是关联分行组成总行上的限定词“卡号”是分行发放现金兑换卡关联上的限定词“账号”是关联分行保管账户上的限定词“雇员号”是分行雇用柜员上的限定词“站号”是分行拥有柜员终端,柜员终端与分行 计算机通信及中央计算机ATM通信等三个关联 上的限定词,面向对象分析与设计案例,16,图 2 ATM对象模型中的属性及实例连接,分行代码,1+,保管,1+,1+,1+,拥有,1+,修改,1+,输入,1+,修改,1+,1+,1+,组成,通信,通信,1+,拥有,1+,通信,1+,拥 有,1+,输入,输入,授权,1+,3,拥 有,分行代码,站号,柜员终端,分行计算机,站号,雇员号,分行 分行名,账号,账户余额限额类型,卡号,远程事务,储户姓名地址,站号,发放,总行,ATM 现有金额 付出金额,中央计算机,1+,现金兑换卡密码,类型日期金额,总行名,柜员事务,类型日期金额,柜员,姓名,面向对象分析与设计案例,17,确定ATM的关联,直接提取动词短语得出的关联(18个关联)ATM、中央计算机、分行计算机、柜员终端组成网络。总行有 多台ATMATM设在 主要街道上 分行提供 分行计算机、柜员终端柜员终端设在 分行营业厅及储蓄所内分行分摊 软件开发成本 储户拥有 账户 分行计算机处理 针对账户的业务,面向对象分析与设计案例,18,直接提取动词短语得出的关联 分行计算机 维护 账户柜员终端与分行计算机 通信柜员 输入 针对账户的事务ATM与中央计算机 交换 关于事务的信息中央计算机 确定 事务与分析的对应关系 ATM 读 现金兑换卡 ATM与用户 交互 ATM 吐出 现金 ATM 打印 账单 系统 处理 并发的访问,面向对象分析与设计案例,19,需求陈述中的隐含关系 总行由各行 组成 分行 保管 账户 总行 拥有 中央计算机 系统 维护 事务日志 系统 提供 必要的安全性 储户 拥有 现金兑换卡 根据问题域、知识得出的关联 现金兑换卡 访问 账户 分行 雇用 柜员,面向对象分析与设计案例,20,已被删去类之间的关联 ATM、中央计算机、分行计算机、柜员终端组成网络;ATM设在主要街道上;分行分摊软件开发成本 系统提供必要的安全性;系统维护事务日志 ATM 吐出现金;ATM打印账单;柜员终端设在分行营业厅及储蓄所内.与问题无关的或在实现中要考虑的关联去掉 分行计算系统处理并发的访问,去掉不正确、不必要的关联,面向对象分析与设计案例,21,发现一般-特殊结构 具有领域的分类知识 按常识考虑事物的分类 用一般-特殊关系去发现一般-特殊 结构 考虑领域范围内的复用,3)确定结构,一般-特殊结构(分类结构),面向对象分析与设计案例,22,发现整体部分结构,客观世界存在的整体部分关系(物理上的)组织机构上下级关系 事物的包容性 抽象事务和某个抽象方面 具体事物和它的某个抽象方面,面向对象分析与设计案例,23,4)确定主题(subject),图 3 ATM 系统划分成三个主题,1,2,面向对象分析与设计案例,24,2.建立动态模型,编写脚本 确定各个对象之间的事件 构造事件追踪图(交互图)构造状态图 添加活动和动作 验证一致性、完整性,建立顺序图、协作图、状态图、活动图,步骤:,面向对象分析与设计案例,25,1)TM系统正常情况下的脚本,面向对象分析与设计案例,26,2)ATM系统异常情况下的脚本,面向对象分析与设计案例,27,(1)顺序图(交互图、事件追踪图、序列图)展示对象之间的交互顺序,这些交互是指在场景或用例的事件流 中发生的。,面向对象分析与设计案例,28,图 4 ATM系统正常情况下的对象交互,面向对象分析与设计案例,29,图 5 ATM 状态图中,(2)ATM 状态图,面向对象分析与设计案例,30,“总行类”状态图:,图 6 总行类状态图,面向对象分析与设计案例,31,“分行类”状态图:,图 7 分行类状态图,面向对象分析与设计案例,32,3.功能模型,功能模型描述系统的数据信息,系统中数据之间的依赖关系,及有关的数据处理功能。功能模型规定了对象模型中操作的意义,动态模型中动作的意义。功能模型是由多张数据流图DFD组成的。DFD图中允许出现:输入、输出对象(矩形框)处理 数据流 控制流 数据存储,面向对象分析与设计案例,33,ATM系统的DFD图:,图 8 ATM系统的DFD图,面向对象分析与设计案例,34,图 9 ATM系统细化的DFD图,