




免费预览已结束,剩余31页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 面向对象分析 (object-oriented analysis),1. 基本过程:,requirement statement rapid prototype models,其中model 有三个: object model:最重要,开发任何系统都需要; dynamic model:对于开发交互式系统 (interactive system)很重要; function model:对于开发大运算量问题(如科学计算、编译系统等)很重要。,1. 基本过程,object model 由五个层次组成(coad&yourdon, 1991),相当于把五张透明胶片(transparencies)叠在一起,每一层显示更多的细节。,2.需求陈述,第三章中已介绍过,需求陈述的内容包括: 问题范围、功能需求、性能要求、应用环境、假设条件等等。陈述方式可繁可简,说明what 而不是 how。,例:教材p.226 - 227,对automated teller machine (atm) 的需求陈述。,3.建立 object model,1、确定class-&-object:,第1步:列出所有候选对象(candidates),它们可能是 物理实体 人或组织 要处理的事件 对象间的活动 抽象概念 等等,非正式分析:从需求陈述中挑出 名词 class-&-object 形容词 attribute 动词 method,3.建立 object model,第2步:去粗取精,例:从atm需求分析中提出的名词集合,银行、atm、系统、中央计算机、分行计算机、 柜员终端、网络、总行、分行、软件、成本、市、 街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问,筛选时依下列标准删除:,、通信链路、事务日志, 冗余, 无关, 笼统, 属性, 操作 既可为名词又可为动词的词,应慎重考虑。, 实现,3.建立 object model,2、确定关联 结构层,第1步:收集 , 需求陈述中涉及objets的动词短语:, 需求陈述中隐含的关联 总行由各个分行组成 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡,3.建立 object model, 根据问题域知识得出的关联 现金兑换卡访问账户 分行雇用柜员,第2步:筛选删除 ,3.建立 object model, 与已删去的object 有关的关联, 与问题无关的或应在实现阶段考虑的关联,3.建立 object model,瞬时事件:注意关联描述静态结构,3.建立 object model,三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务 = 柜员输入事务 + 事务修改账户 分行计算机处理针对账户的事务 = 分行计算机处理事务 + 事务修改账户 atm与中央计算机交换关于事务的信息 = atm与中央计算机通信 + 在atm上输入事务,注:识别链属性 某实体仅用于描述另两个实体的关系,且该实体本身不包含属性。例如“公司付给员工工资”可分解为“公司雇用员工”,附链属性“工资”。,3.建立 object model,派生关联:即可用其它关联定义的冗余关联,3.建立 object model,第3步:完善, 正名:分行提供分行计算机和柜员终端 = 分行拥有分行计算机 + 分行拥有柜员终端, 分解:适当分解前面确定的class-&-objects ,使其适用于不同的关联 事务 = 远程事务 + 柜员事务,补充 柜员输入柜员事务 在atm上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权,标明阶数(可能经常变动,不要花太多时间),3.建立 object model,3、划分主题 注意:按问题域而不是按功能分解 主题间的依赖和交互尽可能少,1. 总 行 2. 分 行 3. atm,3.建立 object model,4、确立属性,注意: attribute 不表示 objects 之间的关系,只表示其本质性质,不要与链属性、限定词混淆。 暂不考虑纯用于实现的 attributes(即单纯的内部状态)。 需求陈述中与已确定的 objects 有关的名词、形容词可能是选择的线索。,3.建立 object model,确立属性,5、识别继承关系及其它修改 bottom-up:将具有相同属性的classes向上归纳出父类。 top-down: 将现有classes向下细化出子类(但分析阶段避免过度细化).,3.建立 object model, 若某class中具有几个独立的功能,则考虑分为几个classes。 对于某class中具有自己特有属性的部分,可考虑将之列为独立存在的class,且是原有class的组成。 合并无须分别考虑的若干classes。,归 纳,组 成,分 解,合 并,3. 建立 object model,4. 建立动态模型(dynamic model),动态模型,表示系统瞬时的控制性质,反映系统的交互行为。 三要素: 事件 (event): 引发 object 状态改变的控制信息(瞬时) 状态(status): object 的 attributes 所处的情形(可持续) 行为(action): object 要达到某种 status 所做的操作(耗时),动态模型图形: 1、事件跟踪图(etd, event tracing diagram):简化的时序图或顺序图 2。状态图(efd, event flow diagram) 动态模型建立步骤: 1、编写典型交互行为脚本 2、提取事件,指明触发者、接受者 3、排列事件次序(时序图、状态图) 4、检查一致性,4. 建立 dynamic model,1、编写脚本 (scenarios) : 脚本是指系统在某一执行期间内出现的一系列事件,用来描述event 序列,用户与系统的具体交互过程。,基本类型: 正常情况脚本; 特殊情况脚本(输入输出取边界值时); 异常情况脚本(应允许用户异常中止或取消一个操作),4. 建立 dynamic model,注意: 脚本用来描述event 序列,当用户与系统交换信息时,就发生一个事件。所交换的信息值就是一个参数(也可以无参数,表明该事件发生了)。, 对于每个事件,都应指明触发者、接受者、参数。 event = activator + receiver +parameters,4. 建立 dynamic model,4. 建立 dynamic model,例:atm系统的正常、异常情况脚本,atm系统的正常情况脚本 atm请储户插卡;储户插入一张现金兑换卡。 atm接受该卡并读它上面的分行代码和卡号。 atm要求储户输入密码;储户输入自己的密码“1234”等数字。 atm请求总行验证卡号和密码;总行要求“39”号分行核对储户密码, 然后通知atm说这张卡有效。 atm要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。 atm要求储户输入取款额;储户输入“880”。 atm确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行 把请求转给分行,该分行成功地处理完这项事务并返回该帐户的新余额。 atm吐出现金并请储户拿走这些现金;储户拿走现金。 atm问储户是否继续这项事务;储户回答“不”。 atm打印帐单,退出现金兑换卡,请储户拿走它们;储户取走帐单和卡。 atm请储户插卡,4. 建立 dynamic model,atm系统的异常情况脚本 atm请储户插卡;储户插入一张现金兑换卡。 atm接受该卡并读它上面的分行代码和卡号。 atm要求储户输入密码;储户误输入 “8888”。 atm请求总行验证卡号和密码;总行要求“39”号分行核对储户密码, 然后通知atm拒绝这张卡。 atm显示“密码错”,并请储户重新输入密码;储户输入“1234”; atm请总行验证后知此次输入的密码正确。 atm要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。 atm要求储户输入取款额;储户改变主意不想取款了,敲“取消”键。 atm退出现金兑换卡,请储户拿走它;储户取走他的卡。 atm请储户插卡,交互行为应用逻辑用户界面 应用逻辑内在的、本质的内容(dm重点) 用户界面外在的表现(美观、方便、易学、效率,影响用户的评价),4. 建立 dynamic model,用户界面全部必要信息,2、设想用户界面(user interface) rapid prototype.,3、画事件跟踪图(etd, event tracing diagram),4. 建立 dynamic model,每个脚本对应一张图,4. 建立 dynamic model,例:atm系统的正常情况脚本的etd,4、画状态图(efd, event flow diagram),4. 建立 dynamic model,状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,它的下个状态取决于当前状态及所接受的事件。 通常,用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。 每个具有交互行为的 class-&-object 对应一张图。,4. 建立 dynamic model,4. 建立 dynamic model,例:总行类的efd,4. 建立 dynamic model,例:分行类的efd,4. 建立 dynamic model,例:atm类的efd,注:一个event 若缺少activator 或 receiver,而对应 status 又不是在起点终点,则发生错误。 画状态图时应考虑所有的事件跟踪图脚本,包括异常处理。 状态图的合并,4. 建立 dynamic model,4. 建立 dynamic model,5. 建立 function model,功能模型表明系统中数据之间的依赖关系,以及有关的数据处理功能, 1、画出基本系统模型图,4. 建立 dynamic model,2、画出功能级数据流图,4. 建立 dyn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经济学考研备考心得分享
- 降低化学工业排放标准方案
- 企业员工激励方案调研
- 工作总结:计划执行与目标实现
- 仪表工业故障诊断预案
- 年终总结:别具一格风采独特
- 2025浙江丽水缙云县壶镇中学招聘代课教师4人笔试备考试题及答案解析
- 分析初高中生心理健康问题
- 2025云南丽江宁蒗彝族自治县应急管理局面向社会招聘公益性岗位1人笔试备考试题及答案解析
- 2025新疆克孜勒苏柯尔克孜自治州阿合奇县面向社会招聘社区工作者13人笔试备考试题及答案解析
- (二)冲床安全操作规程
- 思想道德与法治2023年版电子版教材-1
- 电动汽车充电基础设施十五五发展规划
- 《泥塑的乐趣》教学课件-2024-2025学年鲁教版(五四学制)(2024)初中美术六年级上册
- (新版)焊工职业技能考试题库及答案(含各题型)
- 征拆协调岗招聘试题及答案
- 2025年网络安全专业考研模拟试卷及答案
- T/CNFAGS 10-2024双加压稀硝酸工艺用硝酸四合一机组技术规范
- 花果园湿地公园规划设计
- 2025秋一年级语文上册-【语文园地八】教学课件
- 2025年商务短信平台软件系统项目市场调查研究报告
评论
0/150
提交评论