ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:232.71KB ,
资源ID:16515187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16515187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象分析全解Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象分析全解Word文档下载推荐.docx

1、我们知道动态模型和功能 模型中都包含了对象模型中的操作, 因此人们在定义每个类中的服务前,往往先建立起动态模型和功能模型,这样说来 OOA大体上可按下列顺序进行:(1) 确定类和对象(2) 确定关联(3) 划分主题(4) 定义属性(5) 确定继承关系(6)建立动态模型(7)建立功能模型(8)定义服务需要注意地是在这里我们根本不强调顺序, 更不是谈什么步骤。10.2需求陈述需求陈述的主要任务是准确地回答“系统必须做什么?”,而不是“系统应该怎么做?”10.2.1书写要点1022例子我们用 “ ATM 系统”(ATM 是 Automatic Teller Machine 的缩写,意即自动柜员机)的

2、开发作为 OOA&OOD的实例图10.2ATM系统10.3建立对象模型10.3.1确定类与对象1.找出候选的类与对象(例:P236 ATM系统)一般来说,大千世界中的客观事物可分为 5类:1) 可感知的物理实体,如:飞机,汽车,房屋2) 人或组织的角色,如:教师,医生,计算机系,学生 处3) 应该记忆的事件,如:飞行,演出,访问,交通事故4) 对象的相互作用,如:购买,结婚,纳税5) 概念,如:政策,刑法,泛化,集合2.筛选出正确的类与对象我们需要确定的类与对象是:(1) 应该记录的对象(2) 需要它提供服务的对象同时要关注下述6个方面:1) 冗余:去掉冗余的类(如“用户”)2) 无关:去掉无

3、关的类(如“储蓄所”)3) 笼统:去掉笼统的类(如“银行”)4) 属性:区分属性和类(某个性质若具有很强的 独立性应当作为“类”)5) 操作:区分操作和类(本身具有属性且需独立存 在的“操作”应当作为“类”)6) 实现:忽略实现内容(应当去掉仅和实现有关 的“类”,如“事务日志”)10.3.2确定关联对象之间的相互依赖、相互作用的关系就是关联。在分析的起始阶段,我们不必花过多的精力去区分关联和聚集,聚集不过是一种特殊的关联,是关联的一个特例。1.初步确定关联ATM 系统)2. 筛选筛选时要关注下述 5 个方面:1)已删去的类之间的关联也要删除2)无关的或 在 实现阶 段考虑 的 关联 要 删除

4、3)描述瞬时事件的关系不应作为关联(关联应该描 述问题域的静态结构)4)三个或三个以上对象的关联要作分解或描述成限 定关联5)冗余关联要删除3. 进一步完善完善时要关注下述 4 个方面:1)正名:选择更明确的名字作为关联名2)分解:分解已确定的类以适用关联3)补充:及时补充遗漏关联4)标明重数:但无需花过多精力图10.3ATM系统原始的类图10.3.3划分主题按问题领域而不是用功能分解来高度概括主题10.3.4确定属性属性是类中所定义的 数据,它表明了对象的性质。一般来说,确定属性的过程包括分析和选择两个步骤:1.分析通常用名词词组表示属性, 口:“汽车的颜色”、“光 标的位置”,而用形容词表

5、示可枚举的具体属性,如:“红 色的”、“白色的”。在分析阶段应该仅考虑与具体应用直接相关的属性, 不要考虑那些纯粹用于实现的属性。2. 选择选择时要关注下述 6 个方面:1) 区分对象与属性(仅关注其值的是属性);2) 区分关联类属性与对象属性(例:依赖某个 关联链的性质是关联类属性);3) 区分限定词和属性(能用限定词更好)4) 区分内部状态和属性(例:某性质是对象的 内部状态)5) 忽略无影响的属性(在分析阶段应该忽略对大多数操作无影响的属性)6) 注意属性的相关性(分解该“类”)图10.4ATM系统对象模型中的属性1035识别继承关系确定了类中的属性之后, 就可以利用继承机制共享公共性质

6、,并对众多的类重新加以组织。般来说,可以应用两种方式建立继承 (即泛化)关系:(1)自底向上:抽象出现有类的共同性质泛化出父类;2)自顶向下:把现有类细化成更具体的子类输AM输入1 +査型日期1十-Ill; 图10.5带有继承关系的ATM对象模型1036反复修改对象模型的建立是一个反复修改、逐步完善的迭代过程。对于初学者来说,可尝试用面向对象方法开发几个较小 系统,取得一定的经验后,再总结更适合自己的工作方式1.分解“现金兑换卡”类2.“事务”由“更新”组成3.把“分行”与“分行计算机”合并图10.6修改后的ATM对象模型10.4建立动态模型般来说,建立动态模型的典型步骤如下:(1)编写脚本,

7、确保不遗漏正常的交互行为 ;(2)从脚本中提取事件 ,确定每个事件的发送对象(触发该事件动作的对象)和接受对象 ;(3)画事件跟踪图(Sequence Diagram,时序图或顺序图,描述对象之间的时间顺序)(4)画状态图(5)审查状态图的完整性和一致性10.4.1编写脚本脚本是指系统在某一执行期间内出现的一系列事件(脚本描述事件序列,是用例的实例,是系统的一种实际使用方 法。),它描述用户(或其它外部设备)与系统之间的交互 过程;对于每个事件,脚本都应该指明触发该事件的动作对 象(如:系统、用户或其它外部事物) 、接受事件的目标对象,以及该事件的参数。目的编写脚本的目的是保证不遗漏重要的交互

8、步骤实质编写脚本的实质是分析用户对与系统交互过程 的要求。编写脚本时,首先编写正常情况的脚本,其次考虑特殊情况,最后考虑出错情况;如有可能还应该允许用户“异常操作”。此外还应该提供“在线帮助”、状态查询等在基本交 互行为之上的“通用”交互行为。表10. 1 ATM系统的正常悄况脚本*ATM请储户插卡;储户插人一张现金兑换卡*ATM接嚨该卡并读它上面的分行代码和卡号*ATM要求储户输入密码;储户输入自己的密码】為4等数宇玄TN(请求总行验证卡号和密码|总行要求39号分行樓对储户密码然后通知為TM说这张卡 有效*ATM要求储户选择事务类型(取款、转账、査询等;储户选择乂取款”ATM要求储户输入取款

9、额,储户输人細0*ATM确认取款额在预先規定的限额内,然后要求嵐行处理这牛事务:总行把请求转给分行,该分 行成功地处理完这项事务井返回该账户的新余额*ATM吐出现金并请储户拿走这些现金#储户拿走现金*ATM问储户是習继续这映事务|储户回答“不“*ATM打印脈单,退出现金兑换卡,请储户拿走它们;储户取走账单和卡*ATM请储户插卡表】山2 ATM 的异常情况脚本ATM请储户插卡;A丁就接受这张卡并顷序读它上面的数字ATM要求犠码;储户课输入鹽闕ATM请求思行验证输人的数字和密码总行在向有关分行咨洵之后拒绝遠张卡ATM显示“密码错讯并请储户重新输人密码;储户输入谴总行验证后知道这找输入 的密码正确A

10、TM请储户选择事务类型;储户选择“取款”ATM询问取款额;储户改蛮主意不想取款了,他按下“取消抄键ATM退出现金兑换卡并诸储户拿走它;储户拿走他的卡ATNI请储户插卡1042设想用户界面否喜欢一个系统起很重要的作用, 因此在分析阶段也不能完全忽略用户界面。 设计用户界面时重要的是用户和系统进行 信息交换的方式向储户显示的信息E H H B S CH E E S E | | ENTER |CLEAR| |CANCER胀单出口 现金出口图10.7 ATM的界面格式1043画事件跟踪图脚本为建立动态模型(状态图)提供了很好的基础,但 用自然语言书写的脚本还不够简明,并且会有二义性,因此 在画状态图前

11、,我们往往先画出事件跟踪图简化的UML顺 序图(Sequence Diagram,时序图),为此需进一步明确事件(事件就是引起系统做动作或(和)转换状态的控制信息) 及事件与对象的关系。1. 确定事件事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等,要注意的是( 1)对象的动作也是事件 ;( 2)对控制流产生相同效果的那些事件应作为 一类事件。经过分析要确定每类事件的发送对象和接受对象。2. 画出事件跟踪图从脚本中提取出各类事件, 并确定每类事件的发送对象 和接受对象, 就可以用事件跟踪图把事件序列以及事件与对 象的关系表示出来,事件跟踪图是扩充的脚本,更是简化了 的

12、UML 顺序图。益讣.乐匸 蛾戸甘效 ,耍求耶务英叫轍心型 OWAiOMi输人取就瓢请:瓯即灯门华 抹厅卅爹瓏朗.吐:出残懂工芒现金: 请求堪馥此鼻必 帖或 _印贱爪 退代 -图10.8ATM系统正常情况脚本的事件跟踪图(时序图) 1044画状态图状态图描述了事件与对象状态(对象生命周期中的阶 段)的关系。UML用状态图来表示对象的动态行为,它确定了由事 件序列引出的状态序列。 系统分析员应仅考虑系统内具有重 要交互行为的哪些类, 即每个主动发送事件的对象类的动态 行为用一张状态图来表示, 各个类的状态图通过共享事件合 并起来,从而构成系统的动态模型。从一张事件跟踪图出发画状态图时,象的事件,

13、即考虑指向某条竖线(对象)的箭头线,把这些 事件作为状态图中的有向边(箭头线) ,边上标以事件名,两个事件之间的间隔就是一个状态。:护&Mill;r可读叫显示主恥电丿1卡车可设的厂不可連的尸、 doiCff.nIP 消j佶息y图10.9 ATM类的状态图图10.10总行类的状态图图10.11分行类的状态图1045审查动态模型各个类的状态图通过共享事件合并起来, 就构成了系统的“动态模型”,应该细致审查动态模型的完整性和一致性10.5建立功能模型的数据处理功能,它由一组 DFD组成,其中处理功能可以 用IPO图(或表)、伪码等描述 10.5.1画出基本系统模型图最高层的DFD图10.12ATM系

14、统的基本系统模型10.5.2画出功能级数据流图现金tf图10.13ATM系统的功能级数据流图10.5.3描述处理框功能表63对更新账户功能的描述更新账户(账号事务类型*金额)f现金额厳单數据信息如果融熬额超过账户当前余额,拒绝该事务且不忖出现金如果取款额不超过账户当前余制从余额中减去取款额后柞为新的余额,忖出储户要取的现金 如果事务是存款,把存款额加到余额中得到新余额,不付出现金.如果事务是查询,不忖出现金,在上述任何一种情况下,厳单内容都是ATM号,日期,时间,岷号事务类型.事务金额(如果有 的话如新余额.10.6定义服务对象是由描述其属性的数据, 以及可以对这些数据施加的操作,封装在一起构

15、成的独立单元。在确定类中的操作时,既要考虑该类实体的常规行为,又要考虑本系统中特殊的服务。1.常规行为在分析阶段可以认为, 类中定义的每个属性都是可以访问的,也就是类中已经定义了读、写该类每个属性的操作,而无需显式表示这些常规操作。2.从事件导出的操作状态图中若有发往对象的事件,该对象必须要有相应的操作3.与数据流图中处理逻辑对应的操作DFD中的每个处理逻辑都与一个对象(或几个对象)上 的操作相对应。4.利用继承减少冗余操作应尽量利用继承机制减少所需定义的操作。10.7小结习题101.用面向对象方法分析研究本书习题 系统,试建立它的对象模型、动态模型和功能模型。2.用面向对象方法分析研究本书习题 预订系统,试建立它的对3.用面向对象方法分析研究本书习题 监护系统,试建立它的对2第2题中描述的储蓄2第3题中描述的机票2第4题中描述的患者4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1