没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐

银行自动取款机 ATM 系统需求分析
1、ATM 系统的需求概述
图 1-1 ATM(自动取款机)系统
ATM 系统的需求要点
拟开发一个自动取款系统(参考图 1-1),它是一个由自动取款
机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM 和
中央计算机由总行投资购买。总行拥有多台 ATM,分别设在全市各
主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在
分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由
各个分行分摊。
银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现
金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从
自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责
把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金
或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分
ATM
ATM
ATM
中央计算
机
分行计算
机
柜员终端
账户
分行计算
机
账户
账户
账户
储户
储户 柜员

行计算机具体处理针对某个账户的事务并且维护账户。
拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡
可以通过 ATM 访问自己的账户。目前仅限于用现金兑换卡在 ATM
上提取现金(即取款),或查询有关自己账户的信息(如余额)。
将来还可能要求用 ATM 来办理转账、存款。
所谓现金兑换卡就是一个特制的磁卡,上面有分行代码和卡号。
分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访
问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一
定能访问这个储户的全部账户。每张卡仅属于一个储户所有,但是,
同一张卡可能有多个副本,因此,必须考虑同时在若干台 ATM 上使
用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发
的访问。
当用户把现金兑换卡插入 ATM 之后,ATM 就与用户交互,以获
取有关这次事务的信息,并与中央计算机交换关于事务的信息。首
先,ATM 要求用户输入密码,接下来 ATM 把从这张卡上读到的信
息以及用户输入的密码传给中央计算机,请求中央计算机核对这些
信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事
务与分行的对应关系,并且委托相应的分行计算机验证用户的密码。
如果用户输入的密码是正确的,ATM 就要求用户选择事务类型(取
款、查询等)。当用户选择取款时,ATM 请求用户输入取款额。最
后,ATM 从现金口吐出现金,并且打印账单交给用户。

2、建立对象模型
建立对象模型的步骤 :
(一)确定类和对象
(二)确定属性建立实例连接
(三)确定结构
(四)确定主题
(五)确立服务建立消息连接
面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。通常,它从
分析陈述用户需求的文件开始,再通过深入理解,抽象出目标系统的本质属性,并用模型
对问题的进行精确而又简洁的表示,再以此分析模型为基础进行后继的设计。
在概念上,我们可以认为面向对象分析大体上按照下列顺序进行:寻找类—对象,识
别结构,识别主题,定义属性,建立动态模型、建立功能模型,定义服务。但是,分析不
可能是严格按照此顺序进行的,通常要多次反复构造才能完全建立。
面向对象分析首要的工作,是建立域的对象模型。这个模型描述了现实世界中的“类一
对象”以及它们之间的关系,表示了目标系统的静态数据结构。静态数据结构对应用细节依
赖较少,比较容易确定}当用户的需求变化时。静态数据结构相对来说比较稳定。因此,用
面向对象方法开发绝大多数软件时,都首先建立对象模型,然后再建立另外两个子模型。
需求陈述、应用领域的专业知识以及关于客观世界的常识,是建立对象模型时的主要
信息来源。
如前所述,对象模型通常有五个层次。典型的工作步骤是,首先确定对象类和关联
(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若
干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进
一步合并和组织类。而对类中操作的最后确定,则需等到建立了动态模型和功能模型之后
因为这两个子模型更准确地描述了对类中提供的服务的需求。
确定类——对象
类一对象是在问题域中客观存在的,系统分析员的主要任务,就是通过分析找出这些
类一对象。首先.找出所有候选的类一对象;然后,从候选的类一对象中筛选掉不正确的
或不必要的。
首先,找出候选的类一对象
对象是对问题域中有意义的事物的抽象,它们既可能是物理实休-也可髓是抽象概念。

具体地说,爽多数客观事物可分为下述五类:
(1) 可感知的物理实体,例如,飞机、汽车、书、房屋等。
(2) 人或组织的角色,例如,医生、教师、雇主、雇员、计算机系、财务处等等。
(3) 应该记忆的事件,例如,飞行、演出、访问、交通事故等等。
(4) 两个或多个对象的相互作用,通常具有交易或接触的性质,例如,购买、纳税、结
婚等等。
(5) 需要说明的概念,例如,政策、保险政策、版权法等等。
在分析所面临的问题时,可以参照上列五类常见事物,找出在当前问题域中的候选类
一对象。
另一种更简单的分析方法,是所谓的非正式分析。这种分析方法以用自然语言书写的
需求陈述为依据,把陈述中的名词作为类一对象的候选者,用形容词作为确定属性的线索
把动词作为服务(操作)的候选者。当然,用这种简单方法确定的候选者是非常不准确的,
其中往往包含大量不正确的或不必要的事物。还必须经过更进一步的严格筛选。通常,非
正式分析是更详细、更精确的正式的面向对象分析的一个很好的开端。
下面以 ATM 系统为例,说明非正式分析过程。认真阅读给出的需求陈述,从陈述中找
出下列名词,可以把它们作为类一对象的初步的候选者:
银行,自动取款机(ATM).系统,中央计算机,分行计算机,柜员终端,网络,总行 ,
分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金.支票,账户,事务
现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,
账单,访问。
通常,在需求陈述中不会一个不漏地写出问题域中所有有关的类一对象。因此,分析
员应该根据领域知识或常识进一步把隐台的类一对象提取出来。例如,在 ATM 系统的需求
陈述中虽然没写“通信链路”和“事务日志”,但是,根据领域知识和常识可以知道,在 ATM
系统中应该包含这两个实体。
第二步,筛选出正确的类一对象
显然,仅通过一个简单、机械的过程不可能正确地完成分析工作。非正式分析仅仅帮
助我们找到一些候选的类一卜对象.接下来应该严格考察每个候选对象,从中去掉不正确
的或不必要的,仅保留确实应该记录其信息或需要其提供服务的那些对象。
筛选时主要依据下列标准.删除不正确或不必要的类一对象:
(1)冗余
如果两个类表达了同样信息,则应该保留在此问题域中最富于描述力的名称。
以 ATM 系统为例,上面用非正式分析法得出了 34 个候选的类,其中储户与用户,现
金兑换卡与磁卡及副本分别描述了相同的二类信息,因此,应该去掉“用户”、“磁卡”、“副
本”等冗余的类,仅保留“储户”和“现金兑换卡”这两个类。
(2)无关
现实世界中存在许多对象,不能把它们都纳入到系统中去.仅需要把与本问题密切相
关的类--对象放进目录系统:有些类在其他问题中可能很重要,但与当前要解决的问题无
关,同样也应该把它们删掉。
以 ATM 系统为例,这个系统并不处理分摊软件开发成本的问题,而且 ATM 和柜员终
端放置的地点与本软件的关系也不大。因此,应该去掉候选类“成本”、“市”、“街道”、“营业
厅”和“储蓄所”。
(3)笼统
在需求陈述中常常使用一些笼统的、泛指的名词,虽然在初步分析时把它们作为候选
的类一对象列出来了,但是,要么系统无须记忆有关它们的信息,要么在需求陈述中有更

明确更具体的名词对应它们所暗示的事务,因此,通常把这些笼统的或模糊的类去掉。
以 ATM 系统为例,“银行”实际指总行或分行,“访问”在这里实际指事务。“信息”的具体
内容在需求陈述中随后就指明了。此外还有一些笼统含糊的名词。总之,在本例中应该去
掉“银行”、“网络”、“系统”、“软件”、“信息”、“访问”等候选类。
(4)属性
在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类一
对象中去掉。当然,如果某个性质具有很强的独立性,则应把它作为类而不是作为属性。
在 ATM 系统的例子中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代码”、“卡
号”、“密码”、“类型”等,实际上都应该作为属性对待。
(5)操作
在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它
们在本问题中的含义,以便正确地决定把它们作为类还是作为类中定义的操作。
例如,谈到电话时通常把“拨号”当作动词,当构造电话模型时确实应该把它作为一个
操作,而不是一个类。但是,在开发电话的自动记账系统时,“拨号”需要有自己的属性 (例
如日期、时间、受话地点等),因此应该把它作为一个类。总之,本身具有属性需独立存在
的操作,应该作为类---对象
(6)实现
在分析阶段不应该过早地考虑怎样实现目标系统。因此应该去掉仅和实现有关的候选
的类---对象。在设计和实现阶段,这些类一对象可能是重要的,但在分析阶段过早地考虑
它反而会分散我们的注意力。
在 ATM 系统的例子中,“事务日志”无非是对一系列事务的记录,它的确切表示方式是
面向对象设计的议题}“通信链路”在逻辑上是一种联系,在系统实现时它是关联链的物理实
现。总之,应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们。
综上所述,在 ATM 系统的例子中,经过初步筛选,剩下
下列类一对象:
自动取款机(ATM)
中央计算机
分行计算机
柜员终端
总行
分行
柜员
储户
剩余29页未读,继续阅读














david8112
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

评论2