面向对象方法例题 案例一:ATM网络系統 问题陈述: 设计一个支持银行ATM计算机网络系统的软件。这个网络包括柜员机和自动 取款机(AIM),由联营机构共享。每个营业部提供各自的计算机来维护它的帐户 和处理面临的事务。柜员机属于各营业部,并且直接与营业部计算机通信,柜员 输入帐务和处理数据。AIM与中心处理机通信。中心处理机分理事务到相应的营 业部。ATM接收现金卡,与用户交互,与中心计算机通信完成事务处理,分配现 金和打印收据。系统需要恰当的记录和安全保证。系统必须正确控制并发访问同 帐号。营业部提供自己的计算机软件。共享系统的费用由各营业部根据现金卡 数量来分担。 问题描述示意图: 柜员 营业部 ATM 工作站计算机 ATM 中心 处理机 营业部 计算机 ATM 建立对糗 从问题陈述名词及领域知识中提取出的候选类: 软件 营业部 柜员 ATM 联营机构营业部 网络 营业部 用户 柜员机 帐务 数据 计算机 帐户 业务 现金 收据 保存记 录装置 处理机现金卡 事务 费用 系统 安全装置通信线业务日志
面向对象方法例题 1 案例一: ATM 网络系统 问题陈述: 设计一个支持银行 ATM 计算机网络系统的软件。这个网络包括柜员机和自动 取款机(ATM),由联营机构共享。每个营业部提供各自的计算机来维护它的帐户 和处理面临的事务。柜员机属于各营业部,并且直接与营业部计算机通信,柜员 输入帐务和处理数据。ATM 与中心处理机通信。中心处理机分理事务到相应的营 业部。ATM 接收现金卡,与用户交互,与中心计算机通信完成事务处理,分配现 金和打印收据。系统需要恰当的记录和安全保证。系统必须正确控制并发访问同 一帐号。营业部提供自己的计算机软件。共享系统的费用由各营业部根据现金卡 数量来分担。 问题描述示意图: : : 一、建立对象模型 从问题陈述名词及领域知识中提取出的候选类: 中心 处理机 营业部 计算机 营业部 计算机 柜员 工作站 帐户 帐户 帐户 帐户 ATM ATM ATM 软件 营业部 计算机 营业部 网络 柜员 ATM 联营机构 营业部 帐户 业务 柜员机 帐务 数据 中心 处理机 现金卡 用户 现金 收据 系统 保存记 录装置 安全装置 事务 费用 通信线 业务日志
面向对象方法例题 筛选掉不必要的类 模糊的 应是属 实现用 系统 数据现金 软件通信线 全装置 收据 务日志 相干的 保存记录装置 冗余的 费用 营业部网络 帐务 事务
面向对象方法例题 2 筛选掉不必要的类: 模糊的 应是属性 实现用 相干的 冗余的 系统 安全装置 保存记录装置 营业部网络 数据 收据 现金 帐务 事务 费用 软件 通信线 业务日志
面向对象方法例题 建成类的数据字典: ATM系统类数据字典: 帐户:营业部的一个户头。帐户可能有许多不同的类型,至少有 支票帐户和储蓄帐户 ATM:允许客户使用现金卡作为身份证明,进入自己帐户的一种 机器。ATM与客户交互,通过收集业务处理信息并把该信息 送至中心处理机的方式,验明客户的合法性后进行处理, 把现金分配给客户。这里假定一个ATM离开了网络就不能 运行。 营业部:一个金融机构。它代管客户的账目,发行现金卡,并授 权客户可以通过ATM网络进入自己的帐户取现金。 营业部计算机:营业部所拥有的、与ATM网络以及该营业部柜员 机相连接的计算机。一个营业部可能拥有一个用于 处理内部帐务的计算机网络,但我们只关注与网络 通信的这台计算机。 现金卡:营业部分发给客户的卡片。客户可以通过ATM用现金卡 访问自己的帐户。每个卡包含一个营业部代码和卡片号 码。营业部代码唯一确定联营机构中的一个营业部。卡片 号决定了该卡可访问的帐户。一张现金卡只属于一个客 户,但可能会存在若干个拷贝,必须考虑在不同计算机上 相同的现金卡同时使用的可能性。 柜员:营业部的雇员。她授权把业务信息输入柜员机,接收或分 配现金和支票给客户。柜员处理的业务、现金、和支票必 须记录,并对其全部负责。 柜员机:柜员为客户输入业务信息的一套设备。柜员用此套设备 开出支票和接收现金,并打印收据。柜员机与营业部计算 机通信,使业务生效并进行处理。 中心处理机:由联营机构操纵的计算机。它协调ATM与营业部计 算机之间的业务,中心处理机负责验明营业部代码的 有效性,但并不直接处理业务。 联营机构:多个营业部组成的一个组织机构。授命指挥和操作ATM 网络。该网络仅处理属于联营机构中的营业部之间的业
面向对象方法例题 3 建成类的数据字典: ATM 系统类数据字典: 帐户:营业部的一个户头。帐户可能有许多不同的类型,至少有 支票帐户和储蓄帐户。 ATM: 允许客户使用现金卡作为身份证明,进入自己帐户的一种 机器。ATM 与客户交互,通过收集业务处理信息并把该信息 送至中心处理机的方式,验明客户的合法性后进行处理, 把现金分配给客户。这里假定一个 ATM 离开了网络就不能 运行。 营业部:一个金融机构。它代管客户的账目,发行现金卡,并授 权客户可以通过 ATM 网络进入自己的帐户取现金。 营业部计算机:营业部所拥有的、与 ATM 网络以及该营业部柜员 机相连接的计算机。一个营业部可能拥有一个用于 处理内部帐务的计算机网络,但我们只关注与网络 通信的这台计算机。 现金卡:营业部分发给客户的卡片。客户可以通过 ATM 用现金卡 访问自己的帐户。每个卡包含一个营业部代码和卡片号 码。营业部代码唯一确定联营机构中的一个营业部。卡片 号决定了该卡可访问的帐户。一张现金卡只属于一个客 户,但可能会存在若干个拷贝,必须考虑在不同计算机上 相同的现金卡同时使用的可能性。 柜员:营业部的雇员。她授权把业务信息输入柜员机,接收或分 配现金和支票给客户。柜员处理的业务、现金、和支票必 须记录,并对其全部负责。 柜员机:柜员为客户输入业务信息的一套设备。柜员用此套设备 开出支票和接收现金,并打印收据。柜员机与营业部计算 机通信,使业务生效并进行处理。 中心处理机:由联营机构操纵的计算机。它协调 ATM 与营业部计 算机之间的业务,中心处理机负责验明营业部代码的 有效性,但并不直接处理业务。 联营机构:多个营业部组成的一个组织机构。授命指挥和操作 ATM 网络。该网络仅处理属于联营机构中的营业部之间的业 务
面向对象方法例题 建成类的初步对象图(对象模型之 联营机构行代码 由.组成 保存 营业部 帐户 雇佣 存取 拥有 涉 中心处理机 营业部计算机 柜员 通信 进入 柜员机输入 柜员业务 通信 输入 ATM 远程业务 现金卡 授权 注:这里将“业务”分成(柜员)业务和(远程)ATM业务 具有属性和继承的ATM对象模型 L输入设备 输入 旧期 交易总数 ATM 柜员机 有现金 柜员业务 远程业务 枝出金额 别 被输入 被授权 通信 通信 柜员 代码 中心处理机 营业代码]通信业部计算机 现金卡\有地名 客户 雇用 存取地址 拥有 拥有 营业部 帐户 员代码 联营机构 组成名称 发 余额 营业代码 卡片代码 保存有贷限制涉及 型 帐户代码
面向对象方法例题 4 建成类的初步对象图 (对象模型之一) 由组成 保存 有 雇佣 存取 拥有 有 涉及 有 通信 通信 被进入 输入 通信 输入 涉及 授权 注:这里将“业务”分成(柜员)业务和(远程)ATM 业务 具有属性和继承的 ATM 对象模型 输入 被输入 被授权 通信 通信 通信 有 雇用 存取 拥有 拥有 由组成 发行 涉及 保存有 联营机构 银行代码 中心处理机 营业部 帐户 客户 营业部计算机 柜员机 柜员 柜员业务 ATM 远程业务 现金卡 输入设备 业务 种类 日期 交易总数 ATM 现有现金 支出金额 柜员机 姓名 级别 柜员业务 远程业务 柜员 现金卡 密码 客户 姓名 地址 帐户 余额 类型 信贷限制 营业部计算机 营业部 名称 中心处理机 联营机构 雇员代码 卡片代码 帐户代码 营业代码 营业代码 站代码 站代码
面向对象方法例题 、立勃亮模到 ATM通常情况下的脚本: 脚本 ATM要求用户插入一张现金卡;用户插入一张现金卡 ATM接收磁卡并读其序号 ATM要求密码;用户输入密码 AIM通过联营机构核实序号和密码:联营机构联系对应 的营业部鉴别密码后通知该ATM AIM要求用户选择业务方式(提款、汇兑、查询);用户 选择提款方式 ATM询问现金数额;用户输入现金数额 AIM核实数额范围:提交联营机构,将业务传送给营业 部,确认成交返回帐户新余额 ATM分配现金并要求用户提款;用户取走现金 AIM询问用户是否要继续提款:用户表示否定 ATM打印收据、退出现金卡并提示用户拿走,用户得到 现金卡 有例外情况ATM脚本: 脚本: ATM要求用户插入一张现金卡;用户插入一张现金卡 ATM接收磁卡并读其序号 ATM要求密码;用户输入密码 AIM通过联营机构核实序号和密码,联营机构联系对应 的营业部鉴别密码后拒绝此密码 ATM提出密码错误并要求用户重新输入,用户输入密 码,ATM通过联营机构核实成功 ATM要求用户选择业务方式(提款、汇兑、查询);用 户选择提款方式 ATM询问现金数额;用户改变想法,输入“取消” ATM退出现金卡并提示用户拿走,用户得到现金卡 ATM要求另一个用户插入现金卡
面向对象方法例题 5 二、建立动态模型 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 联营机构 营业部 输入卡片 要求密码 输入密码 验证帐户 与营业部验证卡片 营业帐户合法 要求业务种类 帐户合法 输入业务种类 要求盒额总数 处理业务 处理营业部业务 营业部业务成功 业务成功 分配现金 要求取走现金 用户取走现金 询问继续 回答“终止” 打印收据 推出现金卡 取走现金卡 显示主屏
面向对象方法例题 6 ATM 脚本的事件轨迹:(通常情况) 用户 ATM 联营机构 营业部 输入卡片 要求密码 输入密码 验证帐户 与营业部验证卡片 营业帐户合法 帐户合法 要求业务种类 输入业务种类 要求金额总数 输入金额总数 处理业务 处理营业部业务 营业部业务成功 业务成功 分配现金 要求取走现金 用户取走现金 询问继续 回答“终止” 打印收据 推出现金卡 取走现金卡 显示主屏
面向对象方法例题 ATM对象类的状态图 插入卡片 错误密码 取消 主屏 做:请求密码 做:核实帐户 显示主屏 键入密码 输入卡片 帐户非法帐户合法 ↓[不可读] 消 取消 不可读的 取消 做:请求业务种 取卡片做:不可度的 做:取消信息 卡片信息 键入业务种类 取消 做:请求总金 卡片弹出 弹出卡片 非法帐户信息 要求取走卡片 键入总数 业务成功 做:分配现 做:处理业务 请求取走现 业务失败 结束 取税金 取消 做:打印收 做:失败信 等待 终止取消 5秒 做:请求继续 中断 做:取消信息 迷续 网络响应 等待网络响应 其中:网络响应=合法帐户、非法帐户、非法营业部代码、非法密码、业务成功、业务失败
面向对象方法例题 7 ATM 对象类的状态图: 插入卡片 错误密码 取消 主屏 [可读] 做:请求密码 做:核实帐户 做:显示主屏 键入密码 输入卡片 帐户非法 帐户合法 [不可读] 取消 取消 不可读的 取消 做:请求业务种类 取卡片 做:不可度的 做:取消信息 卡片信息 键入业务种类 取消 做:请求总金额 卡片弹出 做:弹出卡片 做:非法帐户信息 要求取走卡片 键入总数 业务成功 做:分配现金 做:处理业务 请求取走现金 业务失败 结束 取税金 取消 做:打印收据 做:失败信息 等待 终止取消 5 秒 做:请求继续 中断 做:取消信息 继续 网络响应 等待网络响应 其中:网络响应=合法帐户、非法帐户、非法营业部代码、非法密码、业务成功、业务失败
面向对象方法例题 联营机构对象类状态图 业务处 核实帐户[非法代码 /营业部代码 做:处理营业部业务 做:验证营业部代码 营业部业务失败 业部业务成功 合法代码]非法营业部帐户/ /业务失败 厘业务成功 非法帐户O 做:与营业部验证卡片 ↓非法营业部密码准非法密码O 营业部对象类状态图: 处理营业部业 营业部验证卡片 无效y营业部代码 做:修改帐目 做:验证卡片号 有效] 失败] /营业部业务失 /营业部业务成功 [无效y 非法营业部代码 「做:与营业部验证卡片 [有效] 合法营业部帐户
面向对象方法例题 8 联营机构对象类状态图 业务处理 核实帐户 [非法代码] /营业部代码 做:处理营业部业务 做:验证营业部代码 营业部业务失败 营业部业务成功 [合法代码] 非法营业部帐户/ /业务失败 /业务成功 非法帐户 非法营业部密码/非法密码 营业部对象类状态图: 处理营业部业务 与营业部验证卡片 [无效]/营业部代码 做:修改帐目 做:验证卡片号 [有效] [失败] [成功] /营业部业务失败 /营业部业务成功 [无效]/ 非法营业部代码 做:与营业部验证卡片 [有效] /合法营业部帐户 做:与营业部验证卡片
面向对象方法例题 三、系統设计 ATM系统的结构 联营机构 ATM 柜 柜员机 用户 现金卡 帖代码 电话线 电话线 帐目 营业部代码 卡片授权 业务 业务 业务」 说明:1)ATM系统软件总体结构:交互式界面和事务处理型系统的混合体 用分析模型表示系统的总体结构包括: 对象模型一一表示事务处理的各部分。 动态模型—一说明系统固有的分布形式及并发访问的处理过程。 函数模型一一不太重要 2)ATM系统分为三个系统层 ATM事务处理层 营业部事务处理层 联营机构事务处理层 3)ATM系统构成一个简单的星型拓扑结构,如上图所示。 4)事务处理的数据库在营业部计算机中集中存放。可被多个并发的ATM 通过联营机构确定连接访问。数据处理是单一的批处理型系统(指一个 帐号被封锁直到处理结束)。 5)联营计算机通过电话线与各营业部计算机连接。并通过站代码和营业 部代码区分ATM业务到营业部的业务处理。 6)每一时刻ATM上只有一个业务活动,联营计算机和营业部计算机可同 时处理多个并发的业务活动。一个业务通过三个物理片段来完成,缺 不可 7)系统应该具有增加和删除ATM和营业部处理层的能力。 8)系统的安全保证至关重要。必须包括:存取权限、数据一致性保证、 出错处理等解决方案
面向对象方法例题 9 三、系统设计 ATM 系统的结构: 电话线 电话线 说明:1)ATM 系统软件总体结构:交互式界面和事务处理型系统的混合体。 用分析模型表示系统的总体结构包括: 对象模型——表示事务处理的各部分。 动态模型——说明系统固有的分布形式及并发访问的处理过程。 函数模型——不太重要。 2)ATM 系统分为三个系统层次: ATM 事务处理层 营业部事务处理层 联营机构事务处理层 3)ATM 系统构成一个简单的星型拓扑结构,如上图所示。 4)事务处理的数据库在营业部计算机中集中存放。可被多个并发的 ATM 通过联营机构确定连接访问。数据处理是单一的批处理型系统(指一个 帐号被封锁直到处理结束)。 5)联营计算机通过电话线与各营业部计算机连接。并通过站代码和营业 部代码区分 ATM 业务到营业部的业务处理。 6)每一时刻 ATM 上只有一个业务活动,联营计算机和营业部计算机可同 时处理多个并发的业务活动。一个业务通过三个物理片段来完成,缺一 不可。 7)系统应该具有增加和删除 ATM 和营业部处理层的能力。 8)系统的安全保证至关重要。必须包括:存取权限、数据一致性保证、 出错处理等解决方案。 用户 ATM 现金卡 业务 联营机构 站代码 营业部代码 业务 柜员 柜员机 帐目 客户 卡片授权 业务
面向对象方法例题 四、ATM主控程序路怪设计: 主屏 插入卡 请求密码 输密码 验证帐户 非法帐户 合法帐户 请求类型(业务) 输入业务类型号 请求输入金额数 ↓输入金额数 处理业务 失败 业务成功 分发现金 取现金 继续否 继续 终止 结束 弹出卡 取走卡
面向对象方法例题 10 四、ATM 主控程序路径设计: 主屏 插入卡 请求密码 输密码 验证帐户 非法帐户 合法帐户 请求类型(业务) 输入业务类型号 请求输入金额数 输入金额数 处理业务 失败 业务成功 分发现金 取现金 继续否 继续 终止 结束 弹出卡 取走卡