李万龙 第7章 面向对象分析

上传人:子 文档编号:52254770 上传时间:2018-08-19 格式:PPT 页数:30 大小:483KB
返回 下载 相关 举报
李万龙  第7章 面向对象分析_第1页
第1页 / 共30页
李万龙  第7章 面向对象分析_第2页
第2页 / 共30页
李万龙  第7章 面向对象分析_第3页
第3页 / 共30页
李万龙  第7章 面向对象分析_第4页
第4页 / 共30页
李万龙  第7章 面向对象分析_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《李万龙 第7章 面向对象分析》由会员分享,可在线阅读,更多相关《李万龙 第7章 面向对象分析(30页珍藏版)》请在金锄头文库上搜索。

1、第七章 面向对象分析 (Object-Oriented Analysis)李万龙2013年秋2内容 分析过程分析过程 需求陈述需求陈述 建立对象模型建立对象模型 建立动态模型建立动态模型 建立功能模型建立功能模型 定义服务定义服务 面向对象分析实例面向对象分析实例难点3导引 分析:提取需求的过程 3项任务:分析=理解,表达,验证交流交流建模建模 全清到全清到 分析模型=对象模型,动态模型,功能模型 分析是迭代过程:利用原型做辅助工具Requirement statement Rapid prototype Models 47.1 分析过程 Object model: 最重要、最基本、最核心;

2、Dynamic model:对于开发交互式系统(interactive system)很重要; Function model:对于开发大运算量问题(如科学计算、编译系统等)很重要。 OOA:抽取和整理用户需求并建立问题域精确模型的过程。57.1 分析过程 Object model 由五个层次组成(Coad&Yourdon, 1991),相当于把五张透明胶片(transparencies)叠在一起,每一层显示更多的细节。主题指读者理解大型 、复杂模型的一种机 制(记忆的7+2原则)67.1 分析过程CategoryClass-&-Object Structure1+1+AttributeMeth

3、od请找错?77.2 需求陈述 需求陈述的内容问题范围、功能需求、性能要求、应用环境、假设条件等等 。 陈述方式可繁可简说明What 而不是 How。 举例如果你要做一个银行的信用卡系统,你就可以这样描述软件 需求:银行的卡部管理信用卡,每张信用卡只属于一个帐户 。信用卡有卡号、余额。一张信用卡有多笔的交易记录。87.3.建立 Object Model一、确定Class-&-Object第1步:列出所有候选对象(candidates),它们可能是 物理实体、人或组织、要处理的事件、对象物理实体、人或组织、要处理的事件、对象 间的活动、抽象概念间的活动、抽象概念 等等非正式分析:从需求陈述中挑出

4、名词 Class-&-Object形容词 Attribute动词 Method97.3.建立 Object Model例:从ATM需求分析中提出的名词集合银行、ATM、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问、通讯链路、事务日志筛选时依下列标准删除: 冗余 无关 笼统 属性 操作 既可为名词又可为动词 的词,应慎重考虑。 实现107.3 建立 Object Model二、确定关联 结构层 第1步:收集 需求陈述中涉及

5、objets的动词短语: 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 ATM、中央计算机、分行计 算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员 终端 柜员终端设在分行营业厅及 储蓄所内 分行分摊软件开发成本 储户拥有账户 分行计算机处理针对账户的 事务11 需求陈述中隐含的关联 总行由各个分行组成 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中

6、央计算机 储户拥有现金兑换卡 根据问题域知识得出的关联 现金兑换卡访问账户 分行雇用柜员7.3 建立 Object Model12第2步:筛选删除 与已删去的object 有关的关联 与问题无关的或应在实现阶段考虑的关联 ATM、中央计算机、分行计算 机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终 端 柜员终端设在分行营业厅及储 蓄所内 分行分摊软件开发成本 储户拥有账户 总行由各个分行组成 分行计算机处理针对账户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分

7、行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 现金兑换卡访问账户 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡 分行雇用柜员137.3.建立 Object Model瞬时事件:注意关联描述静态结构 ATM、中央计算机、分行计算 机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终 端 柜员终端设在分行营业厅及储 蓄所内 分行分摊软件开发成本 储户拥有账户 总行由各个分行组成 分行计算机处理针对账户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜

8、员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 现金兑换卡访问账户 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡 分行雇用柜员147.3.建立 Object Model三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务= 柜员输入事务 + 事务修改账户 分行计算机处理针对账户的事务= 分行计算机处理事务 + 事务修改账户 ATM与中央计算机交换关于事务的信息= ATM与中央计算机通信 + 在ATM上输入

9、事务注:识别链属性 某实体仅用于描述另两个实体的 关系,且该实体本身不包含属性。例如“公司付给员工 工资”可分解为“公司雇用员工”,附链属性“工资”。157.3.建立 Object Model派生关联:即可用其它关联定义的冗余关联 总行拥有多台ATM 分行提供分行计算机和柜员 终端 储户拥有账户 总行由各个分行组成 分行保管账户 总行拥有中央计算机 现金兑换卡访问账户 储户拥有现金兑换卡 分行雇用柜员 分行计算机处理事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入事务 事务修改账户 ATM与中央计算机通信 在ATM上输入事务 中央计算机确定事务与分行的 对应关系16第第3 3步:完

10、善步:完善 正名:分行提供分行计算机和柜员终端= 分行拥有分行计算机 + 分行拥有柜员终端 分解:适当分解前面确定的class-&-objects ,使其适用于 不同的关联事务 = 远程事务 + 柜员事务 补充 柜员输入柜员事务 在ATM上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权 标明阶数(确定关联类型以及阶数,可能经常变动,不要花标明阶数(确定关联类型以及阶数,可能经常变动,不要花 太多时间)太多时间)7.3 建立 Object Model17中央计算机分行计算机现金兑换卡总 行分 行拥有分行 代码组成通信1+通信拥有柜员终端柜员事务分 行通信 1+1+拥有1+ 雇用输入

11、1+1+输入账 户修 改1+储 户保管1+ 拥有1+远程事务ATM拥 有1+1+1+访问1+ 1+修改 授权1+输入1+划分主题 注意:按问题域而不是按功能分解主题间的依赖和交互尽可能少7.3.建立 Object Model总行ATM分行18四、确立属性注意: Attribute 不表示 objects 之间的关系,只 表示其本质性质,不要与链属性、限定词 混淆。 暂不考虑纯用于实现的 attributes(即单 纯的内部状态)。 需求陈述中与已确定的 objects 有关的名 词、形容词可能是选择的线索。7.3.建立 Object Model19 Bottom-up:将具有相同属性的clas

12、ses向上归纳出父类。 Top-down: 将现有classes向下细化出子类(但分析阶段 避免过度细化) 若某class中具有几个独立的功能,则考虑分为几个 classes。 对于某class中具有自己特有属性的部分,可考虑将之列 为独立存在的class,且是原有class的组成。 合并无须分别考虑的若干classes。7.3 建立 Object Model五、识别继承关系及其它修改20账 户余额 限额 类型现金兑换卡分行代码 卡号储 户姓名 地址输入站事 务日期柜员事务远程事务柜 员姓名卡权限密码 限额更 新金额 类型总 行总行名分 行分行名ATM现有金额 付出金额柜员终端分 行 代 码组

13、成站号站号账号雇员号卡号输 入1+拥 有1+保管拥 有拥 有雇 用发放拥有1+1+标识1+1+访 问1+启动1+1+输入1+组成修 改217.4 建立 Dynamic Model一、编写脚本 (scenarios),描述event 序列: Event = Activator + Receiver +Parameters基本类型: 正常情况脚本; 特殊情况脚本(输入输出取边界值时); 异常情况脚本(应允许用户异常中止或取消一 个操作)227.4. 建立 Dynamic Model例:ATM系统的正常、异常情况脚本(p.162 - 163) ATM系统的正常情况脚本ATM请储户插卡;储户插入一张现

14、金兑换卡。 ATM接受该卡并读它上面的分行代码和卡号。 ATM要求储户输入密码;储户输入自己的密码“1234”等数字。 ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM说这张卡有效。 ATM要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。 ATM要求储户输入取款额;储户输入“880”。 ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求转给分行,该分行成功地处理完这项事务并返回该帐户的新余额。 ATM吐出现金并请储户拿走这些现金;储户拿走现金。 ATM问储户是否继续这项事务;储户回答“不”。 ATM打印帐单,退出现金兑换卡,请储户拿走它们;储户取走帐单和卡。 ATM请储户插卡237.4 建立 Dynamic ModelATM系统的异常情况脚本 ATM请储户插卡;储户插入一张现金兑换卡。 ATM接受该卡并读它上面的分行代码和卡号。 ATM要求储户输入密码;储户误输入 “8888”。 ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM拒绝这张卡。 ATM显示“密码错”,并请储户重新输入密码;储户输入“1234”;ATM请总行验证后知此次输入的密码正确。 ATM要求储户选择事务类型(取款、

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

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

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