《第5讲 面向对象的分析建立对象模型优秀课件.ppt》由会员分享,可在线阅读,更多相关《第5讲 面向对象的分析建立对象模型优秀课件.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5讲面向对象的分析建立对象模型第1页,本讲稿共21页面向对象的3个模型v对象模型总是很重要v设计人机交互,以及过程控制时,动态模型很重要v涉及科学计算等问题,功能模型很重要第2页,本讲稿共21页类与对类与对 象层象层属性层属性层属性层属性层服务层服务层结构层结构层主题层主题层主题主题服务服务消息消息属性属性实例连接实例连接类边界类边界实例边界实例边界面向对象的5个层次第3页,本讲稿共21页主主题题(Subject)层层:主题给出分析模型的总体概貌,是控制读者在同一时间所能考虑的模型规模的机制。类类-&-对对象象(Class&Object)层层:对象是数据及其处理的抽象。它反映了保存有关信息和
2、与现实世界交互的能力。结结构构(Structure)层层:结构表示问题域的复杂性。类-成员结构反映了一般-特殊关系,整体-部分结构反映了整体-部分的关系。属属性性(Attribute)层层:属性是数据元素,用来描述对象或分类结构的实例,可在图中给出并在对象的储存中指定,即给出对象定义的同时,指定属性。服务服务(Serves)层层:服务是接收到消息后必须执行的一些处理,可在图上标明它并在对象的储存中指定,即给出对象定义的同时,定义服务。第4页,本讲稿共21页对象模型的5个层次v对应着面向对象分析中对象建模的5个活动,这5项活动并没有先后次序,可以并行进行,什么时候想起,什么时候补充。v面向对象分
3、析的基本步骤:寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务第5页,本讲稿共21页需求陈述v实现一个基于Android的手机拼图游戏,能计时,能记录成绩,能切换不同的图,能按玩家要求分割等分,能提示玩家走法。v需求陈述做什么而不是怎么做。哪些是必须的功能,哪些是任选的,性能规定,与环境的交互协议,适合的标准,扩充和可维护性要求等第6页,本讲稿共21页自动柜员机系统第7页,本讲稿共21页v某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM。,分别设在全市各主要
4、街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。v银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。v拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款
5、),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。v所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。v当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,AT
6、M要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。第8页,本讲稿共21页筛选v1去冗余例如磁卡,实际上就是现金兑换卡v2去掉与系统无关的如街道,成本,储蓄所v3去掉抽象词如银行,网络,系统,软件v4将属性词去掉如分行代码,取款额,余额v5属于操作的名
7、词如v6实现阶段才考虑的例如日志,通信链路第9页,本讲稿共21页备选对象vATM,中央计算机,分行计算机,柜员终端,总行,分行,柜员,储户,账户,事务,现金兑换卡第10页,本讲稿共21页v某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM。,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。v银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也
8、可以从自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。v拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。v所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通
9、常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。v当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输
10、入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。第11页,本讲稿共21页确定类间关联v由需求陈述中的动词词组表示关联关系v确定隐含的关联总行有多个分行构成分行保管帐号储户拥有现金兑换卡v根据问题域知识得到的关联现金兑换卡访问帐号分行雇佣柜员第12页,本讲稿共21页筛选v1去掉前面已删除的对象引起的关联v2去掉实现阶段考虑的关联v3去掉瞬时事件(有更长期的联系存在)v4将3元关联,变为两个2元的,或者限定的v5去掉重复的关联。如总行拥有多台ATM,事实上是与(总台拥有中央计算机,中
11、央计算机与ATM通信)重复的第13页,本讲稿共21页完善v1给关联定义含义明确的名字。“分行拥有柜员终端”v2为了适应不同的关联,分解前面析出的类v如事务分解为远程事务和柜员事务v3补充。当分解出柜员事务后,多出几个关联,如柜员输入柜员事务,ATM上输入远程事务v4标明重数。第14页,本讲稿共21页ATM系统原始的类图第15页,本讲稿共21页确定属性v在需求陈述中,找到一些名词词组v领域知识和常识v只需要重要的属性,不需要实现阶段的属性v不能把对象作为属性v不能把关联类的属性作为一般对象的属性v不能把限定当作属性,如分行代码是限定词,决定总行拥有的哪一个分行v如果有毫不相关的属性,则可以考虑分解为两个类第16页,本讲稿共21页第17页,本讲稿共21页识别继承关系v继承关系的识别,需要领域知识v自底向上,有共同属性泛化出父类v自顶向下,将父类细化成子类第18页,本讲稿共21页第19页,本讲稿共21页反复修改v1根据功能独立性,将现金兑换卡分解为两个类,其一负责权限,其二负责卡号里的数据v2在”事务”中,独立出一个更新,一个事务包含对帐户的若干次更新.v3分行和分行计算机合并,总行和总行计算机合并,因为对分析来说,分开没有什么意义.第20页,本讲稿共21页第21页,本讲稿共21页
限制150内