面向对象oo复习总结_第1页
面向对象oo复习总结_第2页
面向对象oo复习总结_第3页
面向对象oo复习总结_第4页
面向对象oo复习总结_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面象课程学结一 基本概念1、对象:对象是系统中客观事物的一个实体,是系统的一个基本。一个对象由一组属性和对这组属性进行操作的一组服务。2、属性:属性是对象静态特征的一个数据项。3、服务:服务是对象动态特征的一个操作系列。4、类:类似具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了的抽象描述,其一个实例。包括属性和服务两个主要部分。类的作用是用来创建对象,对象是类的5、抽象:抽象是一种分类原则,忽略了事务的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性;把具有共同性质的事物划分为一类,得出一个抽象的概念。过程抽象:任何一个完成确定功能的操作序列,其使用者都可把

2、它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。数据抽象:根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。6、一般/特殊类:如果类 A 具有类 B 的全部属性和全部服务,而且具有自己特有的某些属性或服务,则 A 叫 B 的特殊类,B 叫 A 的一般类。7、封装:封装就是把对象的属性和服务结细节。一个独立的系统,并尽可能隐蔽对象的8、封装机制:在面象的语言中,要求把属性和服务结合起来定义成一个程序,并通过编译系统保证对象的外部不能直接存取对象的属性和调用它的作封装机制。服务,这种机制就叫9、继承:特殊类的对象拥有其一般类的全部属性与服务,称作

3、特殊类对一般类的继承。10、多继承:一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这种继承模式叫做多继承。11、命名:当一个特殊类继承了多个一般类时,如果这些一般类中的属性或服务有彼此同名的现象,则当特殊类中这样的属性名或者服务名时,系统无法判定它的语义到底是指哪个一般类中的属性和服务。12、消息:消息就是象发出的服务请求,它应该含有下述信息:提供服务的对象的对象标识、服务标识、输入信息和回答信息。同步消息:仅当发送者要发送一个消息而接收者已做好接收这个消息的准备时才能传送的消息。如果其中有一个发现对方未准备好都必须等待。异步消息:发送者不管接收者是否做好接收准备都可以发送

4、的消息。消息连接:OO 模型中对对象之间行为依赖关系的表示。即:若类 A 的对象在它的服务执行时需要向类 B 的对象发送消息,则称存在从 A 到 B 的消息连接。13、一般特殊结构:又称作分类结构,是由一组具有一般特殊关系(继承关系)的类所组成的结构。它是一个以类为结点,以继承关系为边的连通有向图。14、整体部分结构:又称作组装结构,它描述对象之间的组成关系,即:一个(或一些)对象是另一个对象的组成或部分。是由一组具有聚合关系的类所组成的结构,是一个以类为结点,以聚合关系为边的连通有向图。15、聚合:一个较复杂的对象由其他若干较简单的对象作为其部分,称作聚合。刻画了现实事物之间的关系。16、关

5、联:对象之间的静态联系,通过对象属性体现的联系。17、实例连接:反映了对象与对象之间的静态联系。18、多态性:在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或变现出不同的行为。使得同一个属性或服务名在一般类及其各个特殊类中具有不同的语义。19、对象:在程序运行结束后仍能继续保存的对象,即生存期可以程序的执行时间而长期存在的对象。20、主动对象:主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行。21、:事面象程序设计中的一种共享机制。它使特殊类的对象能共享为一般类的对象定义的特征。22、OOA:面象的分析,运用面象方法,进行系统需求分析,即对

6、问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性与服务,以及它们之间所形成的结构、静态联系和动态联系,产生一个符合问题域,满足用户需求的 OOA 模型。23、问题域:被开发系统的应用领域,即在现实世界中由这个系统进行处理的业务范围。24、系统责任:所开发的系统应该具备的职能。25、OOA 模型:通过面象的分析所建立的系统逻辑模型,它以基本表示法的图形符号为图元,表达 OOA 阶段所认识的系统成分及彼此之间的关系,在系统的全局范围内整的图形表示。完26、分类:把具有相同属性和服务的对象划分为一类,用类作为这

7、些对象的抽象描述,是抽象原则运用于对象描述时的一种表现形式。27、粒度控制:考虑全局时,注重其大的组成部分,暂时不祥察每一部分的具体的细节;考虑其部分的细节时则暂时撇开其余的部分。28、对象状态:使对象的服务呈现相种对象状态。为规则的属性值的集合,这样的一个等价集称作一29、:把一组具有较强联系的类组织在一起而得到的类的集合。30、系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。31、活动者:在系统之外与系统进行交互的任何事物。32、use case:对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。33、交互图:一种详细表示对象之间以及对象与系统外部的活动

8、者之间动态联系(即行为依赖关系)的图形文档。详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)use case 时的行为依赖关系以及服务和消息的时序关系。34、复用:将已有的成分用于构造新的系统。35、构件构架:由特定领域的体系结构所决定的构造框架,描述了的总体结构。36、领域分析:对一类应用系统的共同应用领域进行系统化的分析,以发现该领域的共同知识、需求及其应用系统的共同特征。37、OOD:面象设计,在 OOA 模型基础上运用面象方法进行系统设计,目标是产生一个符合具体实现条件的 OOD 模型。38、问题域部分:对 OOA 结果按实现条件进行补充与调整。39、人机交互部分:是 OO

9、D 模型的中所包含的对象(称作界面对象)组成部分之一,是系统中了系统的人机界面。机交互的部分。其40、基本命令:使用一项独立的系统功能令。命令步:在执行一条基本命令的交互过所包含的具体输入步骤命令:如果在一条命令是在另一条命令的引导下被选用的,则后者称作前者的命令。41、多任务系统/并发系统:有多个任务(进程)并发执行的系统42、任务管理部分:OOD 模型的组成部分之一,用来定义和表示并发系统中的每个任务。用主动对象表示每个任务,所有的主动对象类任务管理部分。43、数据管理部分:OOD 模型中负责在特定的数据管理系统中和检索对象的组成部分。44、程序设计范型:关于计算机系统的思考方法,体现了一

10、类语言的主要特点。是人们在程序设计时所采用的基本方式模型。45、高内聚:一个模块只完成一项明确定义的、完整而单一的功能。46、消息穿越:对象 A 从 P 接收消息,如果不使用它的任何信息,也不执行什么活动,只是传送给 Q,则称消息穿越二 简答性质的内容1、如何解决多继承中名问题?两种方法:1)不允许多继承结构中的各个一般类的属性及服务取相同的名字2)由 OOPL 提供一种更名机制,使程序可以在特殊类中更换从各个一般类继承来的属性和服务的名字。2、控制行为复杂性的原则?确定行为的归属和作用范围认识事物之间行为的依赖关系认识行为的起因,区分主动行为和行为认识系统的并为认识对象状态对行为的影响状态转

11、换图3、OOA 模型的基本组成?基本模型类图,分为对象层、特征层、关系层补充模型图,use case 和交互图详细说明,主要由类描述模板4、如何发现对象?确立出发点,以问题域和系统责任作为发现对象的根本出发点。.正确运用抽象原则。舍弃与系统责任无关的事物,只注意与系统责任有关的事物。主要从两个角度考 察:该事物是否为系统提供了一些有用的信息,或者,它是否需要系统为它保存和管理某些信息;该事物是否向系统提供了一些有用的信息,或者它是否需要系统描述它的某些行为。对于与系统责任有关的事物,也不是把它们的任何特征都在相应的对象中表述出来,而要舍弃那些与系统责任无关的特征。考虑应该把问题域中的事物卫什么

12、对象,以及如何对这些对象进行分类。把握“先松后紧”的原则,即尽可能发现候选对象,然后进行严格那些不必要的对象。3)策略与启发,筛选掉考虑问题域,启发有:,组织,物品、设备、事件、表格、结构等。考虑系统边界,考虑的有:、设备、外系统考虑系统责任:检查每一项功能需求是否有相应的对象提供,发现新的对象4)与筛选舍弃无用的对象:通过属性判断,检查是否通过属性了某些有用的信息通过服务判断,检查是否通过服务提供了某些有用的功能如果二者都不是,即为无用对象,可以删除之对象精简:只有一个属性的对象,合并到的对象中只有一个服务的对象,合并到它的请求对象中与实现条件相关的对象,应推5)识别主动对象OOD 考虑从问

13、题域和系统责任考虑,在系统呈现主动行为的对象是主动对象从系统执行情况考虑,并发执行的控制线程起点所在的对象是主动对象从系统边界考虑,如果一个交互式由活动者发起的,第一个处理这个交互的是主动对象6)异常情况的检查和调整类的属性或服务不适合该类的全部对象,需要重新分类,并考虑建立一般特殊结构属性与服务相同的类,考虑合并属性与服务形似的类,考虑出一个一般类对同一事物的重复描述,取消重复的类5、如何定义属性?1)策略与启发按一般这个对象应该有哪些属性在当前问题域中,这个对象应该有哪些属性根据系统责任的要求,这个对象应该具有哪些属性建立这个对象是为了保存和管理哪些信息对象为了在服务中实现其功能,需要增设

14、哪些属性对象有哪些需要区别的状态,是否需要增加一个属性来区别这些状态用什么属性表示整体部分结构和实例连接和筛选这个属性是否体现了以系统责任为目标的抽象,没有用就放弃这个属性是不是描述这个对象本身的特征,没有就放弃该属性是否破坏了对象特征的“原子性”。否则加以修改这个属性是否可以通过继承得到,可以就不要在特殊类中重复出现可以从其他属性直接导出的属性,也应该考虑删除2)6、如何定义服务?1)策略与启发考虑系统责任,有哪些功能要求在本对象中提供考虑问题域,对象在问题域对应的事物有哪些行为分析对象的状态,对象状态的转化,是由哪些服务引起的追踪服务的执行路线,模拟服务的执行,并在整系统中2)与调整检查每

15、个服务是否真正有用,取消无用的服务检查每个服务是否高内聚,对于低内聚的服务采用拆分或合并的方法调整3)认识对象的主动行为从问题域考虑,识别是由该对象主动呈现的还是由外来的重点考虑与系统边界以外的活动者直接进行交互的对象考虑完成最外层功能的对象服务是否应定义为主动服务进行服务执行路线的逆向追踪,发现主动服务的行为7、如何发现一般特殊结构?学习当前领域的分类学知识按考虑事物的分类回顾一般特殊结构的两种定义:把每个类看作一个对象集合,分析集合之间的包含关系看一个类是否具有另一个类的全部特征考虑类的属性与服务:一个类的属性与服务是否适合这个类的全部对象,如果只适合一部分对象,需要划分出特殊类;检查是否

16、有两个(或)的类含有一些共同的属性和服务,如果有则需要考虑 把这些共同的属性和服务提取出来,一个概念上的一般类。考虑领域范围内的复用,考虑能贡献一些可复用性更强的类构件。8、如何简化一般特殊结构?1)与调整问题域是否需要这样的分类系统责任是否需要这样的分类是否符合分类学的是否2)简化方法了继承关系取消没有特殊属性和服务的特殊类某些特殊类之间的差别可以由一般类的某个属性值来体现,可以考虑增加属性简化一般特殊结构一个一般类之下只有唯一的特殊类,并且这个一般类没有可创建的对象实例,可以考虑这样用途单一的一般类,减少继承层次。9、系统中的一般类的存在价值?满足下列条件之一:有两个或两个以上的特殊类需要

17、用它创建对象实例有助于复用10、如何发现整体部分结构?物理上的整体事物和它的组成部分组织机构和它的下级组织及部分团体(组织)与成员一种事物在空间上包容其他事物抽象事物的整体与部分具体事物和它的某个抽象方面与筛选:是否属于问题域是否系统责任的需要部分对象是否有一个以上的属性是否有明显的整体部分关系11、整体部分结构的运用?简化对象的定义:在一个复杂对象的进行“再分析”,分离出描述该对象的某个独立部分的属性和服务,生成新的对象,与该复杂对象形成整体部分关系支持复用:系统中已经定义了某类对象,在定义其他对象时,发现其中一组属性和服务与这个已定义的对象是相同的,只需建立它与前一类对象之间的整体部分结构

18、;在两个或的对象类中都有一组属性和服务描述这些对象的一个相同组成部分,可以把它们分离出来作为部分对象,通过整体部分结构为其他对象复用。表示数量不定的组成部分:对象中若含有数量不定而内容相同的组成部分,分离出来作为部分对象。表示动态变化的对象特征:分析对象中需要由动态变化的属性和服务描述的特征,分离出这些属性和服务组成一个部分对象。12、如何建立实例连接?认识对象之间的静态联系认识实例连接的属性与服务分析实例连接的多重性异常情况处理:增加对象类,用对象表示实例连接的复杂性,举例说明;增加对象类表示多元关系,举例说明。增加对象类表示多对多关系,举例说明。命名与定位:定位问题如果实例连接适应结构中的

19、每一个类的对象,则定位到一般类上,如果只适应其中某些特殊类定位到相应的特殊类上。13、顺序系统中与并发系统中消息的区别?顺序系统象发出服务请求并发系统(控制线程无区别,控制线消息有多种请求消息有同步和异步两种接受者对消息有不同响应方式发送着对消息处理结果有不同期待方式消息的接收者可能不唯一有区别)消息消息是同步的接受者执行消息所请求的服务发送者等待消息处理完毕再执行每个消息只有唯一的接受者14、如何建立消息连接?1)建立控制线程的消息连接:服务模拟和执行路线追踪人为模拟当前对象服务的执行,考虑需要请求其他对象(或本对象)提供什么服务分析消息的接受者和发送者是否属于一个控制线程:顺序 or 并发

20、?引起控制线程切换?接受者是否只有通过这种消息触发才能执行?沿着控制线程的每一种消息追踪到接收该消息的对象服务,重复以上工作,发现遗漏消息或多余服务。2)建立控制线程之间的消息连接:需要其他的控制线程提供服务?源于每个主动对象的控制线程要向其他控制线的对象提供或索取数据?是否将产生影响其他控制线程执行的事件?是否需要传递同步控制信号?中止执行的条件?唤醒条件?3)对象分布问题及其对消息的影响考虑:根据需求中的分布要求,对对象类进行初步分组,确定消息:本地机上同一个控制线程的消息本地机上不同控制线程之间的消息异地机上不同控制线程之间的消息15、对象分布问题对 OOA 的影响?每台处理机上分布的一

21、组对象中,至少应有一个对象是主动对象同一台处理机上的对象之间的消息痛心既可能是一个控制线程不同控制线程之间的。的,也可能是分布在不同处理机上的对象之间的消息通信只能是不同控制线程之间的。16、如何划分1)低层?的划分每一个一般特殊结构和每一个整体部分结构作为一个实例连接和消息连接密集的类划分到一个独立的类暂时作为一个2)合并:如果低层数量过多,可以合并为在概念上比较接近的或者具有较强相关性的可以考虑合并从系统责任,属于某项大功能的可以考虑合并从类图考虑,强耦合的可以合并从分布情况考虑,分布在同一个处理机上的可以合并3)层次的控制:合并之后,决定低层是否取消,原则:每个72个内层划分,层次不宜太

22、多4)异常问题的处理:的交叉问题共同类划归为一个;建立共同类的副本17、现实世界中的事物与系统之间的关系?被抽象为系统中的对象只作为系统外部的活动者与系统交互既是系统中的对象,又与系统进行交互与系统无关18、如何发现活动者?1)系统的直接使用者直接为系统服务的设备与系统直接相联的设备:为系统提供信息,在系统控制下运行不予系统相联的设备和计算机设备排除外系统系统子系统其他系统必要条件:与本系统相联,并进行信息交互;不是系统的当前责任19、如何定义 use case?基本策略:把自己当作一个活动者,与设想中的系统进行交互考虑下列问题:交互目的需要向系统输入什么信息?希望系统进行什么处理,希望从系统

23、得到何种结果?活动者的主要任务?活动者是否要读、写、修改信息?活动者是否要把系统外的变化通知系统?活动者是否希望系统把预料之外的变化通知自己?20、如何建立交互图?把 use case过来,做一定调整把与系统边界和活动者交互的对象/类 靠近系统边界注重活动者和系统双方行为的切换点和信息传送点,用箭头表示内互参照类图和服务详细说明,模拟服务的执行,注重服务发送点,画出消息追踪到下一个对象服务,继续模拟21、完整的 OOA 文档的内容?活动者use case类图 由对象层、特征层和关系层三个层次的信息叠加在一起图 包括压缩方式和半展开方式两种图交互图详细说明22、复用的级别?程序代码复用:目标代码

24、和源代码的复用设计结果的复用:现有系统的设计结果提取,新的软硬件门开发的上的重新实现,转分析结果的复用:现有系统的分析结果提取,新的软硬件上的重新设计,转门开发的测试信息的复用:测试用例的复用和测试过程信息的复用23、可复用构件的特点?独立性:相对独立完整性:对相对独立可标识性:所解决一般性:所解决或部分,对外联系尽量少完整解决是可标识的在同类应用中具有一般性适应性:当应用场合发生某些变化,仍可用可靠性:对预计要使用的系统也是可靠的标准化:符合一定的标准,便于复用24、关系两端的类谁谁?一般特殊结构:特殊类的定义了一般类整体部分结构:整体对象类的定义了部分对象类消息连接:发送者实例连接:无区别

25、了接受者25、OOA 与 OOD 的关系?从OOA 到 OOD 不是转换,不是细化,是调整和增补。将 OOA 模型搬到 OOD,进行必要的调整,作为 OOD域部分;增补三个部分:人机交互部分,任务管理部分,数据管理部分,成为完整的 OOD 模型。采用一致的概念和表示法,不存在分析和设计之间的鸿沟有不同的侧重点和不同的策略。OOA 主要针对问题域和系统责任,识别对象以及它们之间的关系,产生一个问题域,满足用户需求,独立于实现的 OOA 模型。OOD,基于 OOA 模型,针对软硬件条件产生一个可实现的 OOD 模主要解决与实现有关型。OOA 与 OOD 可适合不同的生命周期模型,OOA 与 OOD

26、 之间可以顺序进行,也可以交叉进行26、如何进行问题域部分的设计?继续运用 OOA 的方法使用 OOA 的结果,并加以修改,需求的变化,新发现的错误的修改使用 OOA 的结果,并进行补充裕调整为复用设计与编程的类而增加结构:把要复用的类加到 PDC,标以OTS或复用,删除(或标出)不用的属性与服务建立从复用类到 PDC 原有类之间的一般特殊关系删掉 PDC 中原有类中能继承的属性和服务修改 PDC 原有类的结构和连接,必要时移到 OTS 类增加一般类以建立共同协议:增加根类:将所有类组织在一起,提供全系统的通用协议,如创建,删除,等服务增加其他的一般类:提供局部通用的协议,如、恢复等功能按编程

27、语言调整继承: OOA 强调如实地反映问题域,OOD 考虑实现问题,有的语言不支持多继承,甚至不支持继承。简单转换:一般特殊整体部分重新定义对象类,化解多继承保持分类,剥离多继承信息提高性能:增加属性,合并通讯频繁的类为数据管理增补属性与服务:增加低层分类为编程方便增加底层成分,细化对象的分类27、如何进行人机交互部分的需求分析对使用系统的人进行分析:列举出所有活动者,研究,区分类型,统计比例,了解需求从use case 分析人机交互:删除所有与输入、输出无关的语句和不再包含任何内容的控制语句与括号,剩下的就是对一个活动者使用一项系统功能时的人机交互描述。人机交互的细化:输入的细化:步骤、设备

28、的选择、信息表现形式的选择输出的细化:步骤、设备的选择、信息表现形式的选择命令组织:分解与组合28、如何设计人机交互部分?选择界面支持系统根据人机交互需求选择界面元素用OO 概念与表示法表示所有的界面成分以窗口为基本类以窗口的作为窗口的部分对象类发现窗口与的共性,形成一般特殊结构用属性表示窗口和用服务表示窗口或的静态特征的动态特征建立与系统其他对象之间的消息连接29、如何设计任务管理部分?识别每个任务OOA 定义的主动对象,主动对象类的每个对象实例都是一个任务系统的并发需求所要求的多任务要求多项工作同时进行,则每一项工作就是一个任务系统分布方案所要求的多任务,每一个分布站点至少有一个任务为提高性能而增设的任务,高优先任务,低优先任务,关键任务为实现方便设立的任务,处理机之间通讯的任务为协调多任务的执行设立的任务与筛选:去掉不必要的任务任务的表示与分类:用主动对象表示每个任务,用主动对象类描述每一类任务,用主动对象的主动服务描述任务的功能27、如何设计数据管理部分?选择数据管理系统,针对 RDBMS设计数据存放,每个类使用一个数据库表列出每个类的所有属性(包括继承来的属性)规范化,按第三范式,按时间与空间权衡定义数据库的表,列:规范化之后的一个属性,行:一个对象实例设计数据管理部分的类,并修改问题域部分问题域部分:每个类的对象自己哪个数据库表,对象实例对应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论