面向对象技术引论(复习题带术语题答案)
面向对象技术引论(复习题带术语题答案) 篇1
一、概念与术语
1.对象:(1)从现实世界:问题的概念和抽象的或具有明确边界和意义的事物
(2)从数据世界:一组数据以施加在这组数据上的一组操作
(3)从系统观点:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象是由一组属性和对整个属性进行操作的一组服务构成的。(P19)
2.持久对象:生存期可以超越程序的执行时间而长期存在的对象。(P24)
2.主动对象(3种解释):(1)一个能够启动消息传递的对象。(2)一个能为其他对象提供服务的对象,能被拷贝成代理,并且需要并发控制。(3)其方法(操作)由自身状态的改变而激活。(P25)
3.被动对象:其内部的操作需要通过外部消息驱动才能执行的对象。(P25)
4.类:一组具有相同性质(属性和操作)的对象的抽象。(P20)
5.主动类:主动类的对象至少拥有一个进程或线程,因此它能够自主执行(P65)
6.接口:描述一个类或构件的一个服务的操作集(P64)
7.用况:用况是对业务过程所包含的一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值且可观察的结果。(P42)
8.协作:协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合(P64)
9.构件:构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。(P65)
10.节点:节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。(P65)
11.一般类和12.特殊类:如果类A具有类B的全部属性和服务(操作),而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,B叫做A的一般类。(P22)
13.关联(关系):事物(类)之间的一种结构关系,或者说是对象之间连接的抽象,用来描述对象之间的相互作用(P67)
14.关联类:关联类是一种具有关联特性和类特性的建模元素,可以将其看出是具有类特性的关联,或者具有管理特征的类(P116)
15.依赖(关系):依赖是两个事物之间的一种语义关系,其中的一个事物的改变会影响另一个事物,反之未必(P106)
16.泛化(关系):泛化是一种“特殊/一般”关系,即特殊事物和一般事物之间的关系。(P108)
17.实现(关系):类元之间的语义关系(P16)
18.链和链属性:对象之间的关联或相互作用表现出不同的类的对象的实例之间的实际的或概念上的联系,称为链。链属性:??(P110)
19.聚合:聚合用来表示事物时间的“整体/部分”关系,“整体”事物是一个较大的事物,它是由多个”部分“事物组成的。(P113-114)
20.问题域:是指特定应用系统的应用领域,即在现实世界中由该系统进行处理的业务范围。(P47)
21.系统责任:指系统应该具备的职能。(P47)
22.消息:消息定义为向对象发出的服务请求(P23和P127)
23.交互:交互是发生在对象之间后对象内部的消息传递行为(P66)
24.事件:一个触发行为成为一个事件,换句话说,所谓事件是指特定时刻内发生的动作。(P139)
25.事件流:(P84)
26.状态:指在对象的生命期中的一个条件或状况(通过属性值体现),在此期间,对象将满足某些条件、执行某些活动或等待某些事件。(p141)
27.状态机:状态机描述了一个对象或一个交互在生命期内响应事件所经历的状态序列,即描述其状态变迁。(P66)
28.封装:封装是对拥有结构和行为的一个对象的元素进行划分的过程,封装完成抽象的契约接口和对象实施的分离(P28)
29.继承:特殊类拥有一般类的全部属性和服务(操作),称为特殊类对一般类的继承(P29)多态:在一般类中定义的属性被特殊类继承之后,可以具有不同的数据类型;同理,一般类中定义的操作,可以在特殊类中具有不同的实现方法。(P31)
31.抽象:抽象即指通过思考进行分离的行为。另一种解释:表示某事物的本质特征(P27)
32.角色:当一个类位于关联的某一端时,该类(的某些实例)就在这个关系中扮演了特定的角色。(这个算??)(P111)
33.限定词(修饰关联):限定词是关联的一个特定的属性,它的值划分了一个关联与一个对象相关的对象集。(p116)
34.UML的规则(命名、范围、可见性、完整性、执行):P70-P71太多了~不想打~
35.UML的公共机制(详述、修饰、通用划分、扩展机制(构造型、标记值、约束))
36.OOPL:面向对象的编程语言,OOD:面向对象设计范式,OOA:面向对象分析方法
37.准则包括标准与原则,模块化设计的标准包括:可分解性、组合性、可理解性、连续性、保护性;设计上应遵循的原则为:语言模块单元、接口很少、小接口、显示接口、信息隐蔽等。
38.面向对象的四个基本要素:面向对象系统是由对象组成的、组成系统的对象抽象成类、类之间存在泛化关系,此种关系支持继承、对象之间通过消息获取对方的服务。
39.应用开发过程六个阶段:需求描述、分析、设计、实现、测试、维护。
40.UML对软件密集型系统的制品进行下述工作:可视化、详述、构造、文档化。41.UML三大建模元素:事物、关系、图,事物分为:角色、实现结构。结构事物、行为事物、分组事物、注释事物,结构事10.简述描述类的基本特征(名称、属性等)并举例物分为:类、接口、协作、用况、主动类、构件、节说明之。点。名称:一个字符串;属性:已被命名的类的42.提交一个应用系统的过程包括:计划和细化、构造、特性;操作:一个服务的实现,该服务可以由类的任实施。何对象,甚至其他类的对象所请求,以影响其行为; 职责:类的契约或责任。
二、思考题 11.为什么“继承”可以简化对问题的认识? 这是因为在分析问题时,运用继承手段至少1.为什么应用对象技术可以改变软件制造(生产)可以从数量上减少必须理解和分析的不同情况。方式? 由人工集约方式改变成资源集约方式,由重复性12.列举引起需求变化的主要因素,面向对象方法如何应对需求的不断变化? 的编程劳动变成基于组件的系统组装,从而带来软件生产问题域本身在系统开发过程中发生变化、用户因效率的大幅度提高。素、竞争因素、经费因素、技术支持。2.试述建模的重要性,为什么建模可以降低系统实冻结需求法、以系统中最稳定的部分作为系统的基本单位现的复杂度。(对象)。建模是开发优秀软件所有活动的核心部分,其目的是把所要设计的结构和系统的行为沟通起来,并对系统13.简述软件维护的主要工作,并说明其重要性。主要工作:对系统潜在的错误进行检测和改的体系结构进行可视化和控制。建模是为了更好的理解正正;不断地面对用户的新要求以及为适应新环境对系在构造的系统,并经常提供简化和复用的机会。建模还可统进行改进与增强。以管理风险。一个成功的软件组织有很多成功的因素,其中共同的一点就是对建模的采用。模型可以提高系统的可测试性。提高可交流性。增强开发过程的可视性,使得分析和设计思路、设计过程可视化。降低实现的复杂度。通过将复杂系统的重要部分分解成一次能理解与处理的多个子部分,可以降低实现的复杂性。人对复杂问题的理解能力是有限的,通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,这就是所谓的“分而治之”“各个击破”。3.为什么面向对象方法能较好地管理复杂性并增强伸缩性。管理复杂性的一个好办法就是“分而治之”。“分”就是对应用领域的分解,面向对象方法强调以客观世界的事物为基础,把某一领域分割成各种对象,这显然比自顶向下进行功能分解更自然、合理。“治”的基本方法就是:采用封装技术对被分割的事物进行包装,以简化接口、减少事物之间不必要的联系。利用事物之间的泛化管子构造继承机制以获得重用。可用性和可扩展性意味着复杂系统可以由简单系统组合而成,并且复杂系统可以采用“迭代”方式,逐步增量形成。基于对象的分块技术也有助于解决过程的伸缩性问题。4.何谓“软件复用”,为什么说面向对象技术对“软件复用”提供了卓有成效的支持? 软件重用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。包括分析模型、设计模型、代码以及测试用例、测试信息等等的复用。面向对象技术使软件重用技术更加完善和规范,对象的重要特性。:抽象、封装、继承和多态都从不同角度支持软件重用:抽象使得对象组件更具一般化,也即充分考虑到对象自身的性质、性能和应用环境的复杂性等多方面的要求,以此获得通用化和标准化方面的保证。封装允许开发人员将对象视为“黑匣子”,只需通过界面去理解、引用和操作对象,而不必关心其实现细节。继承使得基于类的抽象层次和泛化结构的代码重用成为可能,也即通过泛化关系使得特殊类可以共享一般类的性质。5.“用况驱动的、迭代式的、增量”的开发方法的要点、优点、时间盒。要点:①软件开发过程要经历若干个开发周期,每个周期都包含:分析、设计、实现和测试等活动。②在经过一个初步的计划和细化阶段后,开发进入由一系列开发周期组成的系统构造阶段,所以迭代主要发生在构造阶段,当然也包含部分实施,因此严格讲,构造发生在构造及实施阶段。③在每个开发周期中,通过增加新的功能使系统得以扩充。④每个开发周期只针对比较小的一部分需求,它要经历分析、设计、实现和测试等活动。每个开发周期完成后,系统都获得一定程度的扩充。开发周期一般是以用况为单位组织的。优点:①因为每个开发周期只针对比较小的一部分需求,所以就可以比较好的解决由于一个开发过程太庞大、复杂使得开发人员无从下手的问题,也即能够比较有效地管理复杂性。②因为每个开发周期只快速实现系统的一小部分,所以在开发过程的早期就能够获得反馈信息。用户的反馈信息越早越好,尽早听到和采纳用户的意见,可以少犯错误。时间盒即给开发周期限定时间,开发周期中的所用工作都必须在这个时间内完成。6.“计划和细化”阶段的主要工作和主要活动。主要工作:初期概念的形成、为做出各种项目选择所进行的调查研究、需求的规格化描述等。主要活动:定义计划草案、编制初步调查报告、定义需求、在术语表中记录术语、实现原型、定义用况、定义概念模型草案、定义系统结构草案、精华计划。7.“构造阶段”的主要工作和主要活动。构造阶段包括一系列重复的开发周期,每个开发周期主要工作:精华计划、同步制品、分析、设计、实现、测试等。在这些开发周期中,系统得到了扩展和完善。构造阶段的最终目标是得到一个能正确符合需求的软件系统。8.何谓链属性,试述链属性不应置入关联两端的某一对象类中作为其属性的理由,请举例说明之。由于关联特性与存在关联关系的两个类有关,因此建模时经常会将这些属性随意地置入某一个类中,当成类的属性。关联的特性是与被关联的两个或多个类有关的那些属性,这些属性不是从属于单个类的,因而不应该随意置入某个类中。9.系统分析阶段如何识别类和排除虚假类?(分别简述语法分析法和现实分析法的要点)。现实分析法:确定问题陈述所涉及的哪些活动是与需求密切相关的,分析这些活动涉及到哪些具体的事物、概念、过程,遵循哪些规则等,它们都可能是系统内部的对象类。语法分析发:在问题陈述中,对象类通常对应于名词或名词词组,因此从问题陈述中找出所有的名词或名词词组,就得到大多数的候选类,运用排除法可以排除虚假的类,就获得确定的类组。虚假类:冗余类、无关类、模糊类、属性、操作、