版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章面向对象分析
(Object-OrientedAnalysis)§1.基本过程:RequirementstatementRapidprototypeModels其中model有三个:①Objectmodel:最重要,开发任何系统都需要;②Dynamicmodel:对于开发交互式系统(interactivesystem)很重要;③Functionmodel:对于开发大运算量问题(如科学计算、编译系统等)很重要。CategoryClass-&-ObjectStructure1+1+AttributeMethod§1.基本过程Objectmodel由五个层次组成(Coad&Yourdon,1991),相当于把五张透明胶片(transparencies)叠在一起,每一层显示更多的细节。§2.需求陈述第三章中已介绍过,需求陈述的内容包括:问题范围、功能需求、性能要求、应用环境、假设条件等等。陈述方式可繁可简,说明What
而不是
How。例:教材p.209-210,对AutomatedTellerMachine(ATM)的需求陈述。§3.建立ObjectModel1、确定Class-&-Object:第1步:列出所有候选对象(candidates),它们可能是
物理实体
人或组织
要处理的事件
对象间的活动
抽象概念等等非正式分析:从需求陈述中挑出名词
Class-&-Object
形容词
Attribute
动词Method§3.建立ObjectModel第2步:去粗取精例:从ATM需求分析中提出的名词集合银行、ATM、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问筛选时依下列标准删除:、通信链路、事务日志
冗余
无关
笼统
属性
操作既可为名词又可为动词的词,应慎重考虑。
实现§3.建立ObjectModel2、确定关联结构层第1步:收集——①需求陈述中涉及objets的动词短语:分行计算机维护账户柜员终端与分行计算机通信柜员输入针对账户的事务
ATM与中央计算机交换关于事务的信息中央计算机确定事务与分行的对应关系
ATM读现金兑换卡
ATM与用户交互
ATM吐出现金
ATM打印账单系统处理并发的访问
ATM、中央计算机、分行计算机及柜员终端组成网络总行拥有多台ATMATM设在主要街道上分行提供分行计算机和柜员终端柜员终端设在分行营业厅及储蓄所内分行分摊软件开发成本储户拥有账户分行计算机处理针对账户的事务②需求陈述中隐含的关联总行由各个分行组成系统维护事务日志
分行保管账户系统提供必要的安全性总行拥有中央计算机储户拥有现金兑换卡§3.建立ObjectModel③根据问题域知识得出的关联现金兑换卡访问账户分行雇用柜员第2步:筛选删除——§3.建立ObjectModel①与已删去的object有关的关联②与问题无关的或应在实现阶段考虑的关联
ATM、中央计算机、分行计算机及柜员终端组成网络总行拥有多台ATMATM设在主要街道上分行提供分行计算机和柜员终端柜员终端设在分行营业厅及储蓄所内分行分摊软件开发成本储户拥有账户总行由各个分行组成分行计算机处理针对账户的事务分行计算机维护账户柜员终端与分行计算机通信柜员输入针对账户的事务
ATM与中央计算机交换关于事务的信息中央计算机确定事务与分行的对应关系
ATM读现金兑换卡
ATM与用户交互
ATM吐出现金
ATM打印账单系统处理并发的访问现金兑换卡访问账户系统维护事务日志
分行保管账户系统提供必要的安全性总行拥有中央计算机储户拥有现金兑换卡分行雇用柜员§3.建立ObjectModel③瞬时事件:注意关联描述静态结构
ATM、中央计算机、分行计算机及柜员终端组成网络总行拥有多台ATMATM设在主要街道上分行提供分行计算机和柜员终端柜员终端设在分行营业厅及储蓄所内分行分摊软件开发成本储户拥有账户总行由各个分行组成分行计算机处理针对账户的事务分行计算机维护账户柜员终端与分行计算机通信柜员输入针对账户的事务
ATM与中央计算机交换关于事务的信息中央计算机确定事务与分行的对应关系
ATM读现金兑换卡
ATM与用户交互
ATM吐出现金
ATM打印账单系统处理并发的访问现金兑换卡访问账户系统维护事务日志
分行保管账户系统提供必要的安全性总行拥有中央计算机储户拥有现金兑换卡分行雇用柜员§3.建立ObjectModel④三元关联:分解为二元关联或限定关联柜员输入针对账户的事务
=柜员输入事务+事务修改账户分行计算机处理针对账户的事务
=分行计算机处理事务+事务修改账户
ATM与中央计算机交换关于事务的信息
=ATM与中央计算机通信+在ATM上输入事务注:识别链属性——某实体仅用于描述另两个实体的关系,且该实体本身不包含属性。例如“公司付给员工工资”可分解为“公司雇用员工”,附链属性“工资”。§3.建立ObjectModel⑤派生关联:即可用其它关联定义的冗余关联总行拥有多台ATM
分行提供分行计算机和柜员终端储户拥有账户总行由各个分行组成分行保管账户总行拥有中央计算机现金兑换卡访问账户储户拥有现金兑换卡分行雇用柜员
分行计算机处理事务分行计算机维护账户柜员终端与分行计算机通信柜员输入事务事务修改账户
ATM与中央计算机通信在ATM上输入事务中央计算机确定事务与分行的对应关系§3.建立ObjectModel第3步:完善①正名:分行提供分行计算机和柜员终端
=分行拥有分行计算机+分行拥有柜员终端②分解:适当分解前面确定的class-&-objects,使其适用于不同的关联事务=远程事务+柜员事务③补充柜员输入柜员事务在ATM上输入远程事务柜员事务输进柜员终端远程事务由现金兑换卡授权④标明阶数(可能经常变动,不要花太多时间)中央计算机分行计算机现金兑换卡总行分行拥有分行代码组成通信1+通信拥有柜员终端柜员事务分行通信1+1+拥有1+雇用输入1+1+输入账户修改1+储户保管1+拥有1+远程事务ATM拥有1+1+1+访问1+1+修改授权1+输入1+§3.建立ObjectModel1233、划分主题
注意:①按问题域而不是按功能分解
②主题间的依赖和交互尽可能少1.总行2.分行3.ATM§3.建立ObjectModel4、确立属性注意:①Attribute不表示objects之间的关系,只表示其本质性质,不要与链属性、限定词混淆。②暂不考虑纯用于实现的attributes(即单纯的内部状态)。③需求陈述中与已确定的objects有关的名词、形容词可能是选择的线索。5、识别继承关系及其它修改①Bottom-up:将具有相同属性的classes向上归纳出父类。②Top-down:将现有classes向下细化出子类(但分析阶段避免过度细化).§3.建立ObjectModel③若某class中具有几个独立的功能,则考虑分为几个classes。④对于某class中具有自己特有属性的部分,可考虑将之列为独立存在的class,且是原有class的组成。⑤合并无须分别考虑的若干classes。账户余额限额类型现金兑换卡分行代码卡号储户姓名地址输入站事务日期柜员事务远程事务柜员姓名卡权限密码限额更新金额类型总行总行名分行分行名ATM现有金额付出金额柜员终端分行代码组成站号站号账号雇员号卡号输入1+拥有1+保管拥有拥有雇用发放拥有1+1+标识1+1+访问1+启动1+1+输入1+组成修改归纳组成分解合并§3.建立ObjectModel§4.建立DynamicModel1、编写脚本(scenarios),描述event序列:Event=Activator+Receiver+Parameters基本类型:①正常情况脚本;②特殊情况脚本(输入\输出取边界值时);③异常情况脚本(应允许用户异常中止或取消一个操作)§4.建立DynamicModel例:ATM系统的正常、异常情况脚本(p.222-223)ATM系统的正常情况脚本
ATM请储户插卡;储户插入一张现金兑换卡。
ATM接受该卡并读它上面的分行代码和卡号。
ATM要求储户输入密码;储户输入自己的密码“1234”等数字。
ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM说这张卡有效。
ATM要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。
ATM要求储户输入取款额;储户输入“880”。
ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求转给分行,该分行成功地处理完这项事务并返回该帐户的新余额。
ATM吐出现金并请储户拿走这些现金;储户拿走现金。
ATM问储户是否继续这项事务;储户回答“不”。
ATM打印帐单,退出现金兑换卡,请储户拿走它们;储户取走帐单和卡。
ATM请储户插卡§4.建立DynamicModelATM系统的异常情况脚本
ATM请储户插卡;储户插入一张现金兑换卡。
ATM接受该卡并读它上面的分行代码和卡号。
ATM要求储户输入密码;储户误输入“8888”。
ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM拒绝这张卡。
ATM显示“密码错”,并请储户重新输入密码;储户输入“1234”;
ATM请总行验证后知此次输入的密码正确。
ATM要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。
ATM要求储户输入取款额;储户改变主意不想取款了,敲“取消”键。
ATM退出现金兑换卡,请储户拿走它;储户取走他的卡。
ATM请储户插卡3、画事件跟踪图(eventtracingdiagram)§4.建立DynamicModelEventActivatorReceiverTimeLine每个脚本对应一张图2、设想用户界面(userinterface)rapidprototype.§4.建立DynamicModel例:ATM系统的正常情况脚本的ETD要求输入取款额插卡要求密码输入密码请求验证帐户请求分行验证帐户帐户有效帐户有效要求事务类型输入类型输入取款额请求处理事务请求处理分行事务分行事务成功事务成功吐出现金请求拿走现金拿走现金请求继续此事务结束印帐单退卡请求拿走卡拿走卡显示主屏幕储户ATM总行分行4、画状态图(eventflowdiagram)§4.建立DynamicModel从ETD出发:Event2Event1ActionStatusClass-&-Object每个具有交互行为的class-&-object对应一张图。Event1Statusdo:ActionEvent2§4.建立DynamicModel例:ATM类的的EFD插卡(可读)主屏do:显示主屏幕
等待网络响应中断do:显示取消信息事务成功帐户有效do:要求密码do:验证帐户do:要求类型不可读的卡do:显示不可读卡信息退卡do:退卡;请求拿走卡取消do:显示取消信息do:要求金额结束do:打印帐单
do:显示无效帐户信息
do:请求继续do:吐出现金;请求拿走现金do:处理事务do:失败信息网络响应密码错输入密码插卡(不可读)拿走卡取消中止取消拿走现金继续事务失败取消等待5秒钟输入金额输入类型取消取消无效帐户注:①一个event若缺少activator或
receiver,而对应
status又不是在起点\终点,则发生错误。②画状态图时应考虑所有的事件跟踪图脚本,包括异常处理。§4.建立DynamicModel§5.建立FunctionModelDFD+IPO+Pseudocode
必要时对功能进行文字描述(参考教材P.229表10.3)。§6.定义服务1、状态图(EFD)中的do:action对应m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年锂电池循环后高镍正极岩盐相检测与定量分析
- 2026年托育实训基地建设与岗位需求 技能培训项目化模式
- 2026年数据资源持有权确权操作指南
- 2026年X波段低空探测雷达系统操作手册
- 关爱地球不止这一小时-节能环保主题班会课件
- 2026年数字孪生在金融领域的应用:风险模拟与业务流程
- 2026中国国际工程咨询(北京)有限公司社会招聘5人备考题库附完整答案详解【易错题】
- 2026贵州贵阳观山湖区铭廷小学语文教师招聘备考题库带答案详解(新)
- 2026年边境巡检无人化:卫星融合网 无人系统方案
- 2026陕西西安市西北工业大学材料学院高温功能材料团队招聘1人备考题库及参考答案详解(突破训练)
- 木工三级安全教育
- 25MW汽轮机操作规程
- AutoCAD2020教程课件完整版
- 学习适应性测验(AAT)(小学一、二年级)
- 横山县殿市镇水坝滩煤矿环境保护与治理实施方案
- GB/T 4956-2003磁性基体上非磁性覆盖层覆盖层厚度测量磁性法
- GB 12476.5-2013可燃性粉尘环境用电气设备第5部分:外壳保护型“tD”
- 新编教育社会学课件
- 2022年海南省农垦投资控股集团有限公司招聘笔试试题及答案解析
- 自考《现代设计史》(05424)考试复习题库(汇总版)
- 陕西省科学技术奖提名通用项目汇总表
评论
0/150
提交评论