软件工程-atm举例

上传人:mg****85 文档编号:50652330 上传时间:2018-08-09 格式:PPT 页数:33 大小:476KB
返回 下载 相关 举报
软件工程-atm举例_第1页
第1页 / 共33页
软件工程-atm举例_第2页
第2页 / 共33页
软件工程-atm举例_第3页
第3页 / 共33页
软件工程-atm举例_第4页
第4页 / 共33页
软件工程-atm举例_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《软件工程-atm举例》由会员分享,可在线阅读,更多相关《软件工程-atm举例(33页珍藏版)》请在金锄头文库上搜索。

1、 采用OMT方法对银行网络系统ATM(Auto Trade Machine) 进行分析和设计。 一、问题的陈述一、问题的陈述银行网络系统包括人工出纳和分行共享的自动出纳机;各分 理处用自己的计算机处理业务(保存账户、处理事务等);各分 理处与出纳站通过网络通信;出纳站录入账户和事务数据;自动 出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡 ;发放现金;打印收据;分行计算机与拨款分理处结账。要求系统正确处理同一账户的并发访问;网络费用平均摊派 给各分理处。图给出了银行网络系统的示意图。银行网络系统银行网络系统ATM(Auto Trade Machine)ATM(Auto Trade M

2、achine)退出下页末页案 例 一案 例 一银行网络系统银行网络系统ATM(Auto Trade Machine)ATM(Auto Trade Machine)自动出纳机自动出纳机自动出纳机出纳站分理处 计算机分理处 计算机出纳站账户账户图1 银行网络系统的示意图用户分行计算机退出下页末页案 例 一案 例 一二、二、类的识别方法类的识别方法常用的识别类的方法有:名词识别法、系统实体识别法 、使用重用、从用例中识别类等。、名词识别法 识别问题域中的实体,实体的描述通常用名词、名词 短语、名词性代词的形式出现。用指定语言对系统进行描述;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍

3、)类。退出上页首页下页末页、系统实体识别法 不关心系统的运作流程及实体之间的通信状态 ,而只考虑系统中的人员、组织、地点、表格、 报告等实体,经过分析将他们识别为类(或对象 )。被标识的实体有:系统需要存储、分析、处理 的信息实体、系统内部需要处理的设备、与系统 交互的外部系统、系统相关人员、系统的组织实 体。在确定类时,常使用两类技术: 分解技术 将整体类和组合类分解。可控制 单个类的规模。 抽象技术 根据一些类的相似性建立抽象类 ,并建立抽象类与这些类之间的继承关系。抽象类实现了系统内部的重用,很好地控制 了复杂性,并为所有子类定义了一个公共的界面 ,使设计局部化,提高系统的可修改性和可维

4、护 性。三、建立对象模型三、建立对象模型根据下述原则进一步确定类: 去掉冗余类(一)确定类采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件 银行网络 分行计算机 系统 分行 出纳站 分理处 分理处计算机 自动出纳机 出纳员 帐户数据 帐户 现金卡 事务数据 用户 顾客 收据 记录保管 事务 费用 安全措施 访问 现金 退出上页首页下页末页 去掉不相干的类 删除模糊的类 删除那些性质独立性不强的,而应该是类“属性”的候选类 所描述的操作不适宜作为对象类(二)为每个建模实体准备数据词典 描述模板对类进行精确描述,如系统中类的范围、成员、方法的限 制等。(三)确定关联两个或多个类之间的相互

5、依赖关系就是关联,实现关联的方式有 多种。关联通常用描述性动词和动词词组表示。关联通常由以下方面确定:、银行网络系统问题陈述中抽取可能的关联(动词词组)、隐含的动词词组、基于问题域的知识、去掉不必要和不正确的关联三、建立对象模型三、建立对象模型退出上页首页下页末页银行网络系统问题陈述中的关联 网络包括出纳站和自动出纳机行共享自动出纳机分理处提供分理处计算机分理处计算机保存账户分理处计算机处理账户支付事务分理处拥有出纳站出纳站与分行计算机通信 (三)确定关联退出上页首页下页末页出纳员为账户录入事务自动出纳机接受现金卡自动出纳机与用户接口自动出纳机发放现金自动出纳机打印收据系统处理并发访问分理处提

6、供软件费用分摊给分理处、基于问题域的知识 分理处雇佣的出纳员 现金卡访问帐户 、隐含的动词词组分行由分理处组成分理处拥有账户分行拥有分行计算机系统提供记录保管系统提供安全顾客有现金卡(三)确定关联退出上页首页下页末页、去掉不必要和不正确的关联使用下列标准去掉不必要和不正确的关联: (1) 若某个类已被删除,那么与它有关的关联也必须删除或 者用其他类来重新表述。在示例中,删除了“银行网络”,相关的关联也要删除。()不相干的关联或实现阶段的关联。删除所有问题域之外 的关联或涉及实现结构中的关联,如“系统处理并发访问”就是一种实现的概念。()动作。关联应描述应用域的结构性质而不是瞬时事件, 因此应删

7、除“自动出纳机接受现金卡”,“自动出纳机与用户接口”等。() 派生关联,省略那些可以用其他关联来定义的关联。因为这种关联是冗余的。银行网络系统的初步对象图如图所示,其中含有关联。退出上页首页下页末页图初始对象图建立对象模型建立对象模型图2 银行网络系统的初始对象类图分行分理处帐户顾客分行计算机自动出纳机远程事务分理处计算机出纳员现金卡出纳站出纳事务通 信通 信所有所 有所 有雇 佣涉 及涉 及访 问授 权有有保管组成录入录 入录入退出上页首页下页末页11*1*1*1*1*1*1*1*11*(四)确定类属性属性通常用修饰性的名词词组来表示。属性一般不可能在问题陈述中完全 表述出来,应分析应用领域

8、,并考虑最主要的属性。只考虑与具体应用直接相关的属性,不要考虑那些超出问题范围的属性 ;找出重要属性,避免那些只用于实现的属性,要为各个属性取有意义的名 字。按下列标准删除不必要的和不正确的属性:(1)限定词:若属性值固定下来后,能减少关联的重数,则可考虑把该属性重新表述为一个限定词。如银行码、站代码及雇员号等是限定词,不作为属 性。 (2)内部值:若属性描述了对象的非公开的内部状态,则应从对象模型中删除该属性。(3)细化:在分析阶段应忽略那些不可能对大多数操作有影响的属性。 图给出了银行网络系统对象模型的部分属性。 退出上页首页下页末页确定类属性确定类属性退出上页首页下页末页图3 银行网络系

9、统的部分属性自动出纳机分发现金远程事务种类,日期,时间,数量顾客名字 地址现金卡密码雇员号站代码分理处名字账户号卡片码银行码分理处计算机账户余额、类型 贷款限定出纳员名字出纳事务出纳站银行码分行分行计算机银行码站代码(五)使用继承来细化类使用继承来共享公共结构,以此来重新组织类:、自底而上 将现有类的共性一般化为父类。找出具有相同属性、关联、操作的类,来发现继承,例如:“出 纳事务”和“远程事务”其属性与主要操作是是类似的,则将它们的共 性一般化,得到父类“事务”。、自顶而下 将现有类细化为更具体的子类。若假设的具体化与现有的类发生冲突,则说明该类结构不恰当 ,当同一关联名多次出现,且意义也相

10、同时,应尽量具体化为相联 系的类。例如“事务”从“出纳站”和“自动出纳机”进入,“录 入站”就是“出纳站”和“自动出纳机”的一般化。 图4给出了加入继承后银行网络系统的对象模型。退出上页首页下页末页从一般类发现特殊类公司职员股东姓名 身分证号码 股份 职员 工资 公司职员 姓名 身分证号码 股份 工资 ?从特殊类发现一般类公司职员股东姓名 身分证号码 股份 职员 工资 股东 姓名 身分证号码 股份 职员 姓名 身分证号码 工资 ?图4使用继承来细化类使用继承来细化类退出上页首页下页末页图4 银行网络系统的对象模型银行码出纳站录入站远程事务账户余额、类型 贷款限定顾客名字 地址出纳员名字现金卡密

11、码事务种类,日期,时间,数量分行计算机银行码站代码银行码分行自动出纳机分发现金出纳事务雇 员 号站 代 码分理处名字账户号卡片码银行码分理处计算机(六)完善对象模型在软件开发的全过程中,需要不断地完善对象模型。可以从以下几 方面考虑:、检查是否有缺少的对象 如果一个类中,存在毫无关系的属性和操作,则应该分解这个 类。 一般化体系不清楚,可分离为两个类。 存在名称及目的相同的冗余关联,则通过一般化创建一个父类 ,并组织关联。、查找多余的类若类中缺少属性、操作和关联,删除该类。、查找缺少的关联、系统的改进 退出上页首页下页末页 现金卡有多个独立的特性,分解为卡片权限和现金卡。卡片权限是银行用来鉴别

12、用户访问权限的卡片,表示一个 或多个用户帐户的访问权限;各个卡片权限对象中可能具有 好几个现金卡,每张都带有安全码、卡片码,它们附在现金 卡上,表示银行的卡片权限。 为了“事务”与“账户”之间的传输描述具有一般性,增 加“更新”。因为一般在每个账户中,一个“事务”包括一个或 多个“更新”,一个“更新”是对账户的一个动作,它们是取款、存款、查询之一。即事务由若干更新组成,更多涉及到账 户。 由于“分理处”与“分理处计算机”之间的区别不影响分 析,可将“分理处计算机”并入“分理处”。同理,将“分行计 算机”并入“分行”。图5完善对象模型完善对象模型退出上页首页下页末页图5 修改后的对象模型录入站远

13、程事务现金卡银行名、卡片码 安全号出纳员事务出纳员名字出纳站分行银行码站代码账户余额、类型 贷款限定顾客名字 地址自动出纳机分发现金事务种类、日期、时间、数量卡片权限密码、限制更新数量、类型雇 员 号站 代 码分理处名字账户号卡片码录入组成拥 有拥 有雇 用访问标识发行被 录 入开 始涉 及维持有有四、四、 建立动态模型建立动态模型动态分析从寻找外部可见的模拟和响应事件开始,确定 各对象的可能事件的顺序,在分析阶段不考虑算法的执行, 它是实现模型的一部分。通常动态模型有:事件跟踪表 、状 态图 。建立动态模型的步骤分为步:、准备典型的对话脚本脚本是事件序列,每当系统中的对象与外部用户发生互 换

14、信息时,就产生一个事件,所互换的信息值就是该事件的 参数。对于各事件,应确定触发事件的动作对象和该事件的 参数。包括“正常脚本”、“例外脚本”,退出上页首页下页末页自动出纳机与用户交互的正常的脚本如下所示: 自动出纳机请求用户插入卡片;用户插入现金卡。 自动出纳机接受卡片并读出它的卡号。 自动出纳机要求密码,用户键入密码“4011”。 自动出纳机与分行确认卡号和密码;分理处检查它并通知承兑的自 动出纳机。 自动出纳机要求选择事务类型(取款、存款、转户及查询),用户 选择取款。 自动出纳机要求现金数量;用户输入¥100。 自动出纳机要求分行处理事务;分行把要求转给分理处,确认事务 成功。 自动出

15、纳机分发现金并且要求用户取现金;用户取现金。 自动出纳机提示用户是否想继续;用户指出不继续。 自动出纳机打印收据,退出卡,并请求用户取出它们;用户拿走收 据和卡。 自动出纳机请求用户插入。自动出纳机与用户交互的例外的脚本如下所示: 自动出纳机请求用户插入卡;用户插入现金卡。 自动出纳机接受卡并读它的卡号。 自动出纳机要求密码;用户键入:9999:。 自动出纳机与分行确认卡号和密码,在咨询分理处 后拒绝它。 自动出纳机指示密码错并要求重新键入;用户键入 :4011,分行确认成功。 自动出纳机请求用户选择事务类型;用户选择取款 。 自动出纳机请求键入现金数量;用户改变选择并键 入“CANCEL”(

16、取消)。退出上页首页下页末页 自动出纳机退出卡并且请求用户拿走卡;用户取出卡。 自动出纳机请求用户插入卡。 、确定事件 根据脚本确定所有的外部事件,事件包括:发送者、接收 者、外设信号、输入、中断、转换和动作等。使用脚本 可以发现正常事件,但不要遗漏条件和异常事件。 、画出事件跟踪表把脚本表示成一个事件跟踪表,即不同对象间的事件排序 表,图给出了银行网络系统的事件跟踪表。图7 给出 了事件流图,它给出类之间的所有事件。事件流图是对 象图的一个动态对照,对象图中路径反映了可能的信息 流,而事件流图反映了可能的控制流。 退出上页首页下页末页图7系统的事件图自动出纳机的事件流图退出上页首页下页末页图7 银行网络系统的事件图用户分理处自动出纳机分行确认卡及银行,处理银行事务分理处事务成功、失败,分理处账户正确事务成功、事务失败、 账户正确、不正确账户 、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号