




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章面向对象方法第一节
概述一、OO的起源和发展1、
起源1967年挪威计算机中心学者奥理(Ole-JoneDahl)设计的仿真语言Simula67,该语言首次提出了对象、封装、数据抽象化及类的概念和继承机制,并以互动的方式来表达真实情况中的对象与并行问题,体现了用对对象模拟客观世界中实体的特点。第七章面向对象方法170年代,犹他大学的博士生AlanKay为在个人计算机上开展图形学和模拟工作,设计里一个实验性的语言Flex。1972年,Kay和PaRc等人设计了Smalltalk语言,Smalltalk——72正式使用了“面向对象”这一术语,把对象作为一个较为独立的程序单位进行软件开发,开发出的所有对象都是类的实例。70年代,犹他大学的博士生AlanKay为在个人计算机上开2精品资料精品资料3你怎么称呼老师?如果老师最后没有总结一节课的重点的难点,你是否会认为老师的教学方法需要改进?你所经历的课堂,是讲座式还是讨论式?教师的教鞭“不怕太阳晒,也不怕那风雨狂,只怕先生骂我笨,没有学问无颜见爹娘……”“太阳当空照,花儿对我笑,小鸟说早早早……”市场调查复习-ppt课件42、
发展80年代初,Smalltalk——80,OOPL出现,如C++、object-c、object-pascal等90年代,从系统分析、系统设计到编程、测试与维护都采用面向对象的方法。出现了50多种方法,如Rumbaugh的对象模型技术(OMT),Booch和Yourdon的面向对象分析与设计(OOA/OOD),Jacobson的面向对象软件工程(OOSE)。2、
发展5二、基本概念1、
对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成。二、基本概念6属性:用来描述对象静态特征的一个数据项。服务:用来描述对象动态特征(行为)的一个操作序列。属性:用来描述对象静态特征的一个数据项。72、
类:具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。一般类,特殊类:如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫B的特殊类,B叫A的一般类。2、
类:具有相同属性和服务的一组对象的集合,它为属于该类83、
封装:把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。可见性:对象的属性和服务允许对象外部存取和引用的程度。3、
封装:把对象的属性和服务结合成一个独立的系统单位,并94、
继承:特殊类的对象拥有其一般类的全部属性和服务,称作特殊类对一般类的继承。多继承:一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这种继承模式叫多继承。4、
继承:特殊类的对象拥有其一般类的全部属性和服务,称作105、
消息:想对象发出的服务请求。它应该含有下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。5、
消息:想对象发出的服务请求。它应该含有下述信息:提供116、
结构和连接①
通用——特定结构(分类结构):由一组具有一般——特殊关系(继承关系)的类所组成的结构。②
整体——部分结构(组装结构):一个(或一些)对象是另一个对象的组成部分。③
实例连接:反映对象与对象之间的静态关系。④
消息连接:描述对象之间的动态联系,即:若一个对象在执行自己的服务时,需要通过消息请求另一个对象为它完成某个服务,则说第一个对象和第二个对象之间存在消息连接。6、
结构和连接127、
多态性:在一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为。7、
多态性:在一般类中定义的属性或服务被特殊类继承后,可13三、OO的信息系统开发流程三、OO的信息系统开发流程14第二节
OOA一、OOA的基本模型
OOA的系统模型包括三大部分:基本模型、补充模型和系统的详细说明。OOA的基本模型构成(类图的构成要素)第二节
OOA15二、标识对象及对象类,建立对象层1、
标识对象①
发现对象实物飞机、书、汽车、文档、工作表角色雇员、顾客、教师、学生、系统、管理员组织部门部门、任务组、设备传感器、定时器、打印机、键盘、显示器、菜单按钮突发事件、事件或交互登录、退出、合同、购买、订单、支付地点/位置仓库、部门办公室、工厂、零售店、桌面二、标识对象及对象类,建立对象层实物飞机、书、汽车、文档、工16发现对象A、发现对象的出发点:问题域(客观存在的事物与系统中的对象的映射)和系统责任(系统责任范围内的每一项职责都应落实到某些对象来完成)。B、正确地运用抽象原则:——取舍的准则是看被观察的事物及其特征是否与当前的目的有关——考虑把问题域中的事物映射为什么对象,以及如何对这些对象分类C、策略与启发——人员、组织、物品、设备、事件、表格、结构——系统边界:人员、设备、外系统——系统责任发现对象17②
筛选对象审查和筛选——舍弃无用的对象通过属性判断(有用的信息?)通过服务判断(有用的功能?)——对象的精简只有一个属性的对象只有一个服务的对象②
筛选对象审查和筛选18③
构建对象③
构建对象192、
标识类①
从对象集合到类采用的是抽象原则;对象分类,建立类图的对象层异常情况的检查和调整——类的属性或服务不适合该类的全部对象——属性及服务相同的类——属性和服务相似的类——对同一事物的重复描述类的命名——符合这个类所包含的每一个对象——反映每个对象个体,而不是整个群体——名词,或带有定语的名词②建立类图2、
标识类对象分类,建立类图的对象层②建立类图20例:在一个公共习题库的支持下,使各科教师可以在系统中编写习题及标准答案,并将编写的习题及答案加入习题库;或者从题库中选取一组系统,组成一份向学生布置的作业,并在适当时刻公布答案。学生可以在系统中完成教师布置的作业,也可以从题库中选择更多的题目练习。教师可以通过系统检查学生的作业,学生也可以在教师公布答案后对自己的练习进行核对。系统维持对题库的管理,并对教师及学生的权限进行检查:只有本课程的教师可以提交或修改习题,并指定哪些习题的答案可以向学生公开。例:在一个公共习题库的支持下,使各科教师可以在系统中编写习题21三、标识属性及服务,建立特征层1、
标识对象的属性:对象属性指对象内封装的数据,它描述对象的内部特征,是待开发系统中所有待存储数据的反映。
①
属性的分类:A、单值属性:属性值在任何时刻有一个值或一种状态。B、多值属性:任何时刻都具有多个值的属性。C、互斥属性:属性值的出现依赖与其他属性值的出现与否。三、标识属性及服务,建立特征层22②
寻找属性:根据问题空间特征、系统责任、对象在问题空间中的一般常识、对象存在的状态等角度发现对象属性针对每个对象提出并回答以下问题,启发自己从各种角度发现对象的属性——按一般常识这个对象应该有哪些属性——在当前的问题域中,这个对象应该有哪些属性——根据系统责任的要求,这个对象应具有哪些属性——建立这个对象是为了保存和管理哪些信息——对象为了在服务中实现其功能,需要增设哪些属性——对象有哪些需要区别的状态,是否需增加一个属性来区别这些状态——用什么属性表示整体—部分结构和实例连接②
寻找属性:根据问题空间特征、系统责任、对象在问题23③
筛选属性:适用性原则、原子性原则、无冗余性原则等
——这个属性是否体现了以系统责任为目标的抽象——这个属性是否描述这个对象本身的特征——该属性是否破坏了对象特征的“原子性”——这个属性是否可以通过继承得到——从其他属性直接导出④
属性的命名和定位名词,带定语的名词⑤
属性说明属性的解释、数据类型、体现的关系、实现要求③
筛选属性:适用性原则、原子性原则、无冗余性原则等24例:习题管理系统例:习题管理系统252、
标识服务行为分类——系统行为,对象的创建、复制、删除等——对象自身的行为,算法简单的服务——对象自身的行为,算法复杂的服务①
寻找服务:从系统责任和问题空间、对象属性等角度考虑——考虑系统责任——考虑问题域——分析对象的状态——追踪服务的执行路线2、
标识服务26②
筛选服务:服务是对象所映射的事物固有的行为、服务满足系统功能、一个服务完成一项定义明确、完整而功能单一的操作。是否真正有用,是否高内聚③
服务的命名和定位动词+名词④
服务说明服务解释、消息协议、消息发送、约束条件、服务流程图例:习题管理系统②
筛选服务:服务是对象所映射的事物固有的行为、服务273、
建立特征层3、
建立特征层28四、标识对象的外部特征,建立关系层1、
标识一般——特殊结构一般——特殊结构是把一组有一般——特殊关系的类组织在一起而得到的结构,它是一个以类为结点,以一般——特殊关系为边的连通有向图。①
寻找一般——特殊结构:从已有的行业知识和分类学知识、常识发现一般——特殊结构——学习当前领域的分类学知识——按常识考虑事物的分类——考察类的属性与服务——考虑领域范围内的复用四、标识对象的外部特征,建立关系层29②
调整所标识的一般——特殊结构——问题域是否需要这样的分类——系统责任是否需要这样的分类——是否符合分类学的常识——是否构成了继承关系一般——特殊关系的简化——取消没有特殊属性的特殊类——通过增加属性简化一般——特殊结构——取消用途单一的一般类②
调整所标识的一般——特殊结构302、
标识整体——部分结构整体——部分结构是把一组具有整体——部分关系的类组织在一起的结构。它是一个以类为结点,以整体——部分关系为边的连通有向图。①
整体——部分结构的概念:设有三个对象:a对象、b对象和c对象,如果对象a和对象b是对象c的两个组成部分,则把对象a和对象b称为部分对象,对象c是整体对象,对象a、b、c之间的关系形成整体——部分结构。2、
标识整体——部分结构31表现形式:——物理上的整体事物和它的一个部分——组织结构与它的下级组织或部门——团体与成员——空间上的包容关系——抽象事物的整体与部分——具体事物和它的某个抽象方面表现形式:32②
寻找整体——部分结构:总装和零件、容器与内容物、组织和成员——物理上的整体事物和它的组成部分——组织机构和它的下级组织及部分——团体与成员——一种事物在空间上包容其他事物——抽象事物的整体与部分——具体事物和它的某个抽象方面③
筛选所标识的整体——部分结构——是否属于问题域——是否是系统责任的需要——部分对象是否有一个以上的属性——是否有明显的整体——部分关系②
寻找整体——部分结构:总装和零件、容器与内容物、333、标识实例连接用于表达对象之间的静态联系。静态联系指最终通过对象属性表示的一个对象对另一个对象的依赖关系。3、标识实例连接34如何建立实例连接——认识对象之间的静态联系——认识实例连接的属性与操作——分析实例连接的多重性命名与定位动词或动宾结构实例连接的定位:当连接线的某一端是一个一般——特殊结构时,要考虑连接线画到结构中的哪个类符号上。如果实例连接适应结构中的每一个类的对象,则画到一般类上,如果只适应其中某些特殊类,则画到相应的特殊类上。如何建立实例连接354、标识消息连接A、顺序系统中的消息顺序系统中的一切操作都是顺序执行的。顺序系统中的消息的特点:——每个消息都是向对象发出的一个服务请求,它必定引起接收者一个服务的执行——除主动对象唯一的主动服务之外,其他对象服务只有在接收到消息时才开始执行——每个消息的发送与接收都是同时进行的,消息是同步的——消息是从正在执行的服务中发出的。所有操作都是串行的。4、标识消息连接36B、并发系统中的消息并发系统是有多个任务并发执行的系统。C、如何建立消息连接——建立控制线程内部的消息连接(考虑为了完成当前的工作,需要请求其他对象(或本对象)提供什么服务。)——建立控制线程之间的消息连接例:习题管理系统B、并发系统中的消息37第三节
OOD一、OOD的系统模型:问题空间(PD)、人机交互(HI)、任务管理(TM)和数据管理(DM)。第三节
OOD38二、PD的设计1、
建立OOD模型的初始PD部分2、
修改——增补初始PD部分现实条件对问题域部分的影响1、编程语言(不支持某些面向对象的概念与原则;对象细节推迟到OOD阶段定义)2、硬件、操作系统及网络设施3、复用支持4、数据管理系统5、界面支持系统二、PD的设计39设计内容及策略1、针对编程语言支持能力的调整A、对继承的调整——简单转换设计内容及策略40——重新定义对象类——重新定义对象类41——保持分类,剥离多继承信息——保持分类,剥离多继承信息42B、对多态性的调整B、对多态性的调整432、增加一般类,提供共同协议2、增加一般类,提供共同协议443、为实现复用采取的设计策略——直接复用——删除可复用类的多余信息——通过继承复用——删除多余信息,通过继承复用市场调查复习-ppt课件454、提高性能(数据传输时间、存取时间、处理时间)——调整对象分布4、提高性能(数据传输时间、存取时间、处理时间)46——缩短对象存取时间——合并消息频繁的类——增加属性以减少重复计算——降低算法的计算复杂性——细化对象的分类——缩短对象存取时间47——将复杂对象化为整体——部分结构——将复杂对象化为整体——部分结构48映射方式OOA类OOD类1=11TOMMTO1MTOM0TO1建立与OOA文档的映射表
映射方式OOA类OOD类1=11TOMMTO1MT49三、HI的设计1、分析与系统交互的人2、从usecase分析人机交互三、HI的设计50收款员·收款输入开始本次收款的命令;作好收款准备,应收款总数置为0,输出提示信息;FOR顾客选购的每种商品DO
输入商品编号;
IF此种商品多于一件THEN
输入商品数量
ENDIF
检索商品名称及单价;货架商品数减去售出数:IF货架商品数低于下限值THEN
通知供货员请求上货ENDIF计算本种商品总价并打印编号、名称、数量、单价、总价;总价累加到应收款总数;ENDFOR打印应收款总数;输入顾客交来的款数;计算应找回的款数,打印以上两个数目,收款数计入帐册。“收款员·收款”usecase收款员·收款51人机交互描述收款员·收款(人机交互)输入开始本次收款的命令;输出提示信息;FOR顾客选购的每种商品DO
输入商品编号;
IF此种商品多于一件THEN
输入商品数量
ENDIF
打印商品编号、名称、数量、单价、总价;ENDFOR打印应收款总数;输入顾客交来的款数;打印交款数及找回款数人机交互描述52设计过程和策略1、选择和掌握界面支持系统2、根据人机交互需求选择界面元素3、用OO概念表示界面元素A、对象和类(每一个具体的界面元素都是一个对象)B、属性和服务——属性用于描述界面元素的各种静态特征,如位置、尺寸、颜色、分辨率、立体效果等物理特征;状态、内容等逻辑特征;一个界面对象所含有的部分对象。——服务表示界面元素的各项操作,如窗口的创建、激活、最大化、最小化、移动、按纽单击、双击,菜单的显示、隐藏等。设计过程和策略53C、整体——部分结构——在图形结构上具有构成关系的界面元素之间用整体——部分结构表示——用整体——部分结构表示某些界面对象在操作中的逻辑层次C、整体——部分结构54D、一般——特殊结构E、关联,一个类的界面对象需要知道它与另一个类的哪个界面对象相联系D、一般——特殊结构E、关联,一个类的界面对象需要知道它与另55F、消息连接——从命令输入到命令处理F、消息连接56——系统向用户输出信息——系统向用户输出信息57四、TM的设计控制驱动部分是OOD模型中的外围组成部分,由系统中全部主动类构成。1、确定系统分布方案四、TM的设计58对象的分布——按功能决定——按数据决定类的分布——在一个节点上创建一个类的对象实例——在多个节点上创建一个类的对象实例类图的划分——把每个节点上的主题看成一个独立的子系统,用一个完整的类图表示——把每个节点的主题看成是在整个系统的类图上划分出来的一个局部。对象的分布59五、DM的设计数据接口部分是OOD模型中负责与具体的数据管理系统衔接的外围组成部分,为系统中需要长久存储的对象提供了在选定的数据管理系统中进行数据存储与恢复的功能。一、针对文件系统的设计五、DM的设计601、对象在内存空间和文件空间的映射1、对象在内存空间和文件空间的映射612、对象存放策略:把由每个类直接定义,并需要永久存储的全部对象实例,存放在一个文件中;其中每个对象实例的全部属性作为一个存储单元,占用该文件的一个记录。3、设计数据接口部分的对象类一个最主要的对象类是为所有其他对象提供基本保存与恢复功能的对象类。2、对象存放策略:把由每个类直接定义,并需要永久存储的全部对624、问题域部分的修改问题域部分的对象通过请求数据接口部分提供的服务实现对象的保存与恢复。为了实现这种请求,这些对象类需要增加一些属性和服务。4、问题域部分的修改63针对RDBMS的设计1、对象及其对数据库的使用针对RDBMS的设计642、对象的存放策略把由每个类直接定义并需要永久存储的全部对象实例存放在一个数据库表中。类——表,经过规范化之后的类的每个属性对应数据库表的一个属性,类的每个对象实例对应数据库表中的一个元组。3、数据接口部分对象类的设计和问题域部分的修改2、对象的存放策略65第四节
实例录像商店信息系统一、寻找对象根据自己在录像商店租电影录像带的亲身经历,讨论问题域的对象初稿,候选对象清单:会员、顾客、电影、报表、优惠、销售、游戏、库存、录像机出租、电影出租、雇员、奖励计划、销售点终端、交易、营销、爆米花、价格、地点、会计、广告、日常开支、工资单第四节
实例66第二稿,对象清单:电影(录像带)、游戏(游戏)、优惠(优惠项)、录像机出租(录像机)、交易(出售交易、出租交易)、会员(会员)、雇员(雇员)、地点(商店地址)、厂商、采购订单第二稿,对象清单:67二、寻找属性二、寻找属性68属性数据词典:属性类定义/规则条码号库存交易最多12个字符信用卡到期日期会员月/年信用卡号会员最多19个字符成本库存范围0——999.99
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务平台服务与使用协议
- 人家服务合同范本
- 中班社会领域活动方案
- 房屋双方买卖合同
- 车辆挂靠经营协议书
- 交通物流配送优化方案
- 班车租赁合同集锦
- 智能制造模具研发投资合同
- 工程机械施工协议书
- 新能源材料研发投资合同
- 《中国居民膳食指南》课件
- 银行柜面业务操作流程手册
- 烧烤配方出售合同范例
- 妇科手术麻醉
- Unit1RelationshipsLesson2HowDoWeLikeTeachers'Feedback课件高中英语北师大版选择性
- 库存管理规划
- 灌篮高手培训课件
- 小学生心理健康讲座5
- 贵州省房屋建筑和市政工程标准监理电子招标文件(2023年版)
- 高级职业培训师(三级)职业资格鉴定考试题及答案
- 静脉留置针操作常见的并发症及处理
评论
0/150
提交评论