第九章 面向对象分析演示课件.ppt
文本预览下载声明
增加了继承关系之后的ATM对象模型 由于面向对象的概念和符号在整个开发过程中都是一致的,因此远比使用结构分析、设计技术更容易实现反复修改、逐步完善的过程。 建模的步骤并不一定按照前面讲述的次序进行。 它给初学者提供了一个指南。 下面以ATM系统为例,讨论可能做的修改: 10.3.6 反复修改 1. 分解“现金兑换卡”类 “现金兑换卡”有两个相对独立的功能,它既是鉴别储户及使用ATM的权限的卡,又是ATM获得分行代码和卡号等数据的数据载体。 因此,把“现金兑换卡”类分解为“卡权限”和“现金兑换卡”两个类,将使每个类的功能更单一:前一个类标志储户访问账户的权限,后一个类是含有分行代码和卡号的数据载体。 2. “事务”由“更新”组成 一个事务可包含对账户的若干次更新。更新指的是对账户所做的一个动作(取款、存款或查询)。“更新” 有自己的属性(类型、金额等),应该独立存在,因此应该把它作为类。 3. 把“分行”与“分行计算机”合并 区分“分行”与“分行计算机”,对于分析这个系统来说,并没有多大意义,为简单起见,把它们合并。类似地,应该合并“总行”和“中央计算机”。 下图给出了修改后的ATM对象模型,与修改前比较起来,它更简单、更清晰。 对于仅存储静态数据的系统(例如数据库)来说, 动态模型并没有什么意义。 但是若开发交互式系统时,动态模型却起着很重要的作用。 例如: 收集输入信息是目标系统的主要工作 10.4 建立动态模型的方法 10.4 建立动态模型 建立动态模型的三步: 编写典型交互行为的脚本, 不遗漏常见的交互行为。 从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。 排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。 最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。 方法: 1)确定对象类和关联(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若干个主题; 2)类和关联增添属性,以进一步描述它们; 3)利用适当的继承关系进一步合并和组织类。 而对类中操作的最后确定,则需等到建立了动态模型和功能模型之后,因为这两个子模型更准确地描述了对类中提供的服务的需求。 精选编制 1.找出候选的类与对象 寻找以下五类客观事物 (1) 可感知的物理实体,例如,飞机、汽车、书、房屋等等。 (2) 人或组织的角色,例如,医生、教师、雇主、雇员、计算机系、财务处等等。 (3) 应该记忆的事件,例如,飞行、演出、访问、交通事故等等。 精选编制 (4) 两个或多个对象的相互作用,通常具有交易或接触的性质,例如,购买、纳税、结婚等等。 (5) 需要说明的概念,例如,政策、保险政策、版权法等等。 在分析所面临的问题时,可以参照上列5类常见事物,找出在当前问题域中的候选类与对象。 精选编制 10.3 建立对象模型 10.3.1找出候选类与对象 1.找出候选的类与对象(续) 名词解析法 从陈述中找出所有名词,作为类和对象的初步候选者 银行,自动取款机(ATM),系统,中央计算机, 分行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事物,现金兑换卡,余额, 磁卡,分行代码,卡号,用户,副本,信息,密码, 类型,取款额,账单,访问。 通信链路 事务日志 精选编制 10.3 建立对象模型 10.3.1找出候选类与对象 2.筛选出正确的类与对象 筛选时主要依据下列标准,删除不正确或不必要的类与对象 (1)冗余 (2)无关 (3)笼统 (4)属性 (5)操作 (6)实现 银行,自动取款机(ATM),系统,中央计算机 分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事物,现金兑换卡,余额, 磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。 通信链路 事务日志 (储户、用户;现金兑换卡、磁卡和副本) (成本、市、街道、营业厅和储蓄所) (银行、访问、信息、网络、系统、软件等) (现金、支票、取款额、账单、余额、分行代码、 卡号、密码、类型) (事务日志、通信链路) 精选编制 10.3 建立对象模型 10.3.1找出候选类与对象 2.筛选出正确的类与对象 ATM、中央计算机、分行计算机、柜员终端、 总行、分行、柜员、储户、账户、事务、 现金兑换卡 精选编制
显示全部