温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
ATM
系统分析
设计
ATM系统分析与设计
ATM系统分析与设计
:结合软件工程相关理论,采用OMT方法对银行网络系统ATM〔AutoTradeMachine〕进行分析和设计。
一.问题需求分析
银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务;各分理处与出纳站通过网络通信;出纳站录入账户和事务数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受银行卡,发放现金,打印收据;分行计算机与拨款分理处结账。
要求系统能正确处理同一账户的并发访问;网络费用平均摊派给各分理处。
分行计算机
分理处计算机
分理处计算机
分理处计算机
账户
账户
账户
自动取款机
自动取款机
自动取款机
银行网络系统的示意图
二.软件工程相关理论
uOMT是ObjectModelingTechnology的缩写,意为对象建模技术.
面向对象建模方法有很多种,也都在进一步的开展和完善中。OMT法是目前最为成熟和实用的方法之一。它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。
主要的概念包括:类、属性、操作、继承、关联〔即关系〕、聚集
动态模型描述系统那些随时间变化的方面,其主要概念有:状态、子状态和超状态、事件、行为、活动。
功能模型描述系统内部数据值的转换,其主要概念有:加工、数据存储、数据流、控制流、角色。该方法将开发过程分为四个阶段:
1分析。基于问题和用户需求的描述,建立现实世界的模型。
分析阶段的产物有:问题描述、对象模型=对象图+数据词典、动态模型=状态图+全局事件流图、功能模型=数据流图+约束
2系统设计。结合问题域的知识和目标系统的体系结构〔求解域〕,将目标系统分解为子系统。该阶段的主要产物是:系统设计文档:根本的系统体系结构和高层次的决策
3对象设计。基于分析模型和求解域中的体系结构等添加的实现细节,完成系统设计。主要产物包括:细化的对象模型、细化的动态模型、细化的功能模型
4实现。将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活性和可扩展性。
u类的识别方法
常用的识别类的方法有:名词识别法、系统实体识别法、使用重用、从用例中识别类等。
1.名词识别法
访方法的关键是识别问题域中的实体,实体的描述通常以名词、名词短评、名词性代词的形式出现。首先对系统进行描述,从系统描述中标识名词、名词性代词,在列出系统可能的类的根底上,进一步识别类。
2.系统实体识别法
该方法只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将它们识别为类。被标识的实体有:系统需要存储、分析、处理的信息实体,系统内部需要处理的设备,与系统交互的外部系统,系统相关人员,系统的组织实体。
在确定类时,常使用两类技术:
1)分解技术:将整体类和组合类进行分解,可控制单个类的规模。
2)抽象技术:根据一些类的相似性建立抽象类,并建立抽象类与这些类之间的继承关系。抽象类实现了系统内部的重用,很好地控制了复杂性,并为所有子类定义了一个公共的界面,使设计局部化,提高了系统的可修改性和可维护性。
三.建立对象模型
1.确定类
采用名词识别法,检查问题陈述中的所有名词、名词短语,列出所有可能的类,现根据以下原那么进一步确定类:
1)去掉冗余类
2)去掉不相关的类
3)删除模糊的类
4)删除独立性不强的类,而应该是类的属性
的类。
5)所描述的操作不适宜作为对象的类
最终确定的类为:
分行计算机分行出纳站出纳员分理处分理处计算机自动出纳机账户银行卡顾客事务
2.为每个建模实体准备数据
3.确定关联
两个或多个类之间的相互信赖就是关联,实现关联的方式有多种。关联通常用描述性动词和动词词组表示。银行网络系统问题中的关联:
l银行网络包括出纳站和处动取款机
l分行共享自动取款机
l分理处提供分理处计算机
l分理处计算机保存账户
l分理处计算机处理账户支付事务
l分理处拥有出纳站
l出纳站与分行计算机通信
l出纳员为账户录入事务
l自动取款机接受银行卡
l自动取款机与用户接口
l自动取款机发放现金
l自动取款机打印收据
l系统处理并发访问
l分理处提供软件
l费用分摊给分理处
4.使用以下标准去掉不必要的和不正确的关联。
1)假设某个类已被删除,那么与它有关的关联也必须删除或者用其他类来重新表述。
2)不相干的关联或实现阶段的关联。删除所有问题域之外的关联或涉及实现结构中的关联。如系统处理并发访问
就是一种实现的概念。
3〕动作。关联应描述应用域的结构性质而不是瞬时事件。因此应删除自动取款机接受银行卡,自动取款机与用户接口。
4〕派生关联。省略那些可以用其他关联来定义的关联。
5.确定类属性
属性通常用修饰性的名词词组来表示。可按以下标准删除不必要的和不正确的属性:1〕限定词。假设属性值固定下来后,能减少关联的重数,那么可考虑把该属性重新表述为一个限定词。
2〕内部值。假设属性描述了对象的非公开的内部状态,那么应从对象模型中删除访属性
3〕细化。在分析阶段应忽略那些不可能对大多数操作有影响的属性。
6.使用继承来细化类
有两种方法:自底向上和自顶向下。1〕自底向上:将现有的类的共性一般化为父类。2〕自顶向下:将现有类细化为更具体的子类。
7.完美对象模型
在软件开发的过程中,需要不断的完美对象模型。可以从以下几个方面考虑。1〕检查是否有缺少的对象。2〕查找多余的类。3)查找缺少的关联4〕系统的改良。由于分理处
与分理处计算机
之间的区别不影响分析,可将其合并为分理处
。同理,将分行计算机
并入分行
。
四.建立动态模型
动态分析从寻找外部可见的模拟和响应事件开始,确定各对象的可能事件的顺序,在分析阶段不考虑算法的执行,它是实现模型的一局部。通常动态模型有事件跟踪表和状态图。
建立动态模型的步骤为:
1.准备典型的对话脚本
脚本是事件序列,每当系统中的对象与外部用户发生互换信息时,就产生一个事件,所互换的信息值就是该事件的参数。对于各事件,应该确定触发事件的动作对象和该事件的参数,包括正常脚本、例外脚本。
自动出纳机与用户交互的正常脚本如下:
1)自动取款机请求用户插入银行卡,用户插入银行卡
2)自动取款机接受银行卡并读出它的卡号
3)自动取款机要求密码,用户输入
4)自动取款机与分行确认卡号和密码,分理处检查并反响兑现
5)自动取款机要求选择事务类型〔取款、存款、转帐或查询〕,假设用户选择取款
6)自动取款机要求输入现金数量
7)自动取款机分发现金并要求用户取现金,用户取现金
8)自动取款机查问用户是否打印收据,假设选择是
9)自动取款机打印收据,请求用户取出它
10)自动取款机询问是否继续,用户选择不继续
,自动出纳机退出卡
11)自动取款机退出卡并且请求用户取卡,用户取卡
12)自动取款机请求用户插入银行卡
自动取款机与用户交互的例外脚本如下:
1)自动取款机请求用户插入银行卡,用户插入银行卡
2)自动取款机接受银行卡并读出它的卡号
3)自动取款机要求密码,用户输入
4)自动取款机与分行确认卡号和密码,分理处检查并反响拒绝
5)自动取款机指示密码错并要求重新键入;用户输入并成功
6)自动取款机请示用户选择事务类型,用户选择取款
7)自动取款机请求键入现金数量,用户改变选择并输入取消
8)自动取款机退出卡并且请求用户取卡,用户取卡
9)自动取款机请求用户插入银行卡
2.画出事件跟踪表
把脚本表示成一个事件跟踪表,即不同对象间的事件排序表
2.构造状态图
对各对象类建立状态图,反映对象接收和发送的事件,每个脚本或事件跟踪表都应对应于状态图中的一条路径
DO:处理分理处事务
DO:确认分理处代码
DO:确认卡
事务处理分理处事务成功
分理处事务失败
确认账户确认账户错误代码/错误分理处代码
错误分理处账户/错的密码
分理处密码/账户OK
分行
类的状态图
五.建立功能模型
功能模型描述了值之间的信赖关系,通常用分层的数据流图描述。数据流图有助于表示功能信赖关系,其中的处理对应于状态图的活动和动作,其中的数据流对应于对象力中的对象或属性,具体的步骤:
1.确定输入、输出值
先列出输入、输出值,输入输出值是系统与外部世界之间的事件的参数。检测问题陈述,从中找出遗漏的所有输入、输出值。由于所有系统与外部世界之间的交到都经过自动取款机,因而所有输入、输出值都是自动取款机事件的参数。
2.建立数据流图
数据流图说明输出值是怎样从输入值得来的,数据流图通常按层次组织。最顶层由单个处理组成,也可由收集输入、计算值及生成结果的一个综合处理构成。
银行卡
读输入
执行事务
账户
用户
产生输出
卡号
事务类型
账户类型
自动取款机顶层数据流图
3.描述处理
当数据流图已细化到一定程度后,对各处理进行描述,描述方法用自然语言、伪码及判定树等。描述可以是说明性的或过程性的。说明性描述确定了输入、输出值之间的关系。说明性描述优于过程性描述,因为它隐含实现的考虑。过程性描述确定一个算法来实现处理功能,算法只能用来确定处理干什么,过程性描述实现起来较为容易。