当前位置:文档之家› 面向对象技术引论(复习题)[参考解答]

面向对象技术引论(复习题)[参考解答]

《面向对象技术引论》复习题
一、概念与术语
1. 对象:
在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物;
在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作;
从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。

2.持久对象:
生存期可以超越程序的执行时间而长期存在的对象称为持久对象。

换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。

2.主动对象:
主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。

3.被动对象:
被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。

可以看出被动对象必须工作在消息驱动环境中。

4.类:
定义1 一组具有相同性质(属性和操作)的对象的抽象。

定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。

定义3 具有相同属性和容许操作的一组对象的一般描述称为类。

5.主动类:
主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。

注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。

6.接口:
接口是描述一个类或构件的一个服务的操作集。

因此,接口描述元素的外部可见行为。

接口描述了一组操作的规格,而不是操作的实现。

图形上,用一个带有名称的圆表示接口。

7.用况:
用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。

用况用于对系统语境和系统需求建模。

图形上,用一个包含名称的实线椭圆表示用况。

8.协作:
协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合。

因此协作有结构、行为和维度。

图形上,用一个仅包含名称(协作名)的虚线椭圆表示协作。

9.构件:
构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。

构件是物理的、可替代的部件。

10.节点:
节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。

11.一般类/ 12. 特殊类:
如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,类B叫做的类A的一般类。

两者之间的关系称为“泛化”。

可以看出一般
类具有父类的特征,而特殊类具有子类的特征,特殊类可以共享一般类的性质。

13.关联(关系)
关联是对象之间连接(链)的抽象,用来描述对象之间的相互作用。

14.关联类:
关联类是一种具有关联特性和类特性的建模元素,可以将关联类看成是具有类特性的关联,或是具有关联特性的类。

15.依赖(关系):
依赖是两个事物之间的一种语义关系,其中一个事物(独立事物)的改变会影响另一事物(依赖事物)的语义。

16.泛化(关系):
泛化是事物(类)之间的一种一般/特殊关系,也即一般事物(一般类)和特殊事物(特殊类)之间的关系。

17.实现(关系):
是类元之间的语义关系。

18.链和链属性:
关联或相互作用表现出不同的类的对象实例之间的实际的或概括上的联系,称为“链”;19.聚合:
聚合用来表示事物之间的“整体/部分”关系,“整体”事物是一个较大的事物,它是由多个“部分”事物(较小的事物)组成的。

20.问题域:
问题域是指特定应用系统的应用领域,即在现实世界中由该系统进行处理的业务范围。

21.系统责任:
系统责任是指系统应该具备的职能,通俗地讲,即系统除能做什么之外,还应该作些什么。

22.消息:
在面向对象语境中,消息定义为向对象发出的服务请求(要求对象执行它其中的一个操作的请求)。

23.交互:
交互是发生在对象之间或对象内部的消息传递行为,它由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。

24. 事件:
25. 事件流:
26.状态:
27.状态机:
状态机描述了一个对象或一个交互的生命内响应事件所经历的状态序列,即描述其状态变迁。

28.封装:
封装是对拥有结构和行为的一个抽象(对象)的元素进行划分的过程,封装完成抽象的契约接口和对象实施的分离。

29.继承:
特殊类拥有一般类的全部属性和服务(操作),称作特殊类对一般类的继承。

30 多态:
同一属性或操作在一般类和各个特殊类中具有不同的意义。

31.抽象:
即指通过思考进行分离的行为(CED).思考就是对事物性质进行观察与分析,而分离则是对分析结果中的一些细节的剥离,从而得到事物的最基本的性质。

32.角色:
角色是关联中(靠近它的)一端的类对另一端的类呈现的职责,可以说角色是关联的作用者。

33.限定词(修饰关联)
限定词是关联的一个特定的属性(而不是工作台或工件的属性,其实该属性与工作台及工件都有关,是使二者发生关联的数据之一),它的值划分了通过一个关联与一个对象相关的对象集。

34. UML的规则(命名、范围、可见性等):
1)命名:给事物、关系和图等建模元素命名。

2)范围:给一个名称以特定含义的语境。

3)可见性:表示元素的名称如何被其他元素看到和使用。

4)完整性:保证事物正确、一致地相互联系,体现事物之间的合理性和一致性。

5)执行:运行或模拟动态模型的含义是什么。

35. UML的公共机制(详述、修饰、扩展机制(构造型、标记值、约束)):
1)详述:详述是对UML图形符号的补充,对图形表示法的每一部分(图形符号)都可以附上一个详述,该详述提供了对构造块的语法和语义的文字叙述。

2)修饰:修饰是附加到元素的基本表示法上的文字或图形项,用于对元素规格说明的细节进行可视化。

3)通用划分:方法一:对类和对象的划分;方法二:接口和实现的分离。

4)扩展机制:三种机制来扩展语言的语法和语义,分别是:构造型(表示新的建模元素)、标记值(表示新的额建模元素属性)和约束(表示新的建模元素语言)。

二、思考题
1.为什么应用对象技术可以改变软件制造(生产)方式?
2.试述建模的重要性,为什么建模可以降低系统实现的复杂度。

3. 为什么面向对象方法能较好地管理复杂性并增强伸缩性。

4.何谓“软件复用”,为什么说面向对象技术对“软件复用”提供了卓有成效的支持?
5. “用况驱动的、迭代式的、增量”的开发方法的要点、优点、时间盒。

6. UML的三大建模元素(事物、关系、图)、各种结构事物的定义和用途。

7.“计划和细化”阶段的主要工作和主要活动。

8.“构造阶段”的主要工作和主要活动。

9.面向对象有哪些要素?为什么说“封装”是其最重要的要素?
10.何谓链属性,试述链属性不应置入关联两端的某一对象类中作为其属性的理由,请举例说明之。

11.系统分析阶段如何识别类和排除虚假类?(分别简述语法分析法和现实分析法的要点)。

12.系统分析阶段如何识别关联和排除虚假关联?(分别简述语法分析法和现实分析法的要点)。

13.简述描述类的基本特征(名称、属性等)并举例说明之。

14.软件维护的主要工作是什么,为什么说每一次维护可能又是一个较小的应用开发过程?15.为什么“继承”可以简化对问题的认识?
16. 面向对象系统中通常存在着持久对象、主动对象、和被动对象等三种对象,给出这三种对象的定义,并举例说明之。

17.解释“多态性”的基本含义,为什么“多态性”的实际应用必须建立在类的一般化层次结构上?
18.列举引起需求变化的主要因素,面向对象方法如何应对需求的不断变化?
19.何谓“多态性”,试举例说明“多态性”的应用。

20. 简述软件维护的主要工作,并说明其重要性。

三、设计部分
1. 根据给定的领域和场景写出问题陈述、建立用况模型,针对指定的用况,写出事件流。

2. 设计为词汇建模的类图、为数据库建模的类图、为简单协作建模的类图。

3. 按时间顺序对控制流建模型的步骤,以指定用况作为交互语境设计顺序图。

4. 按对象组织对控制流建模型的步骤,以指定用况作为交互语境设计协作图。

5. 对对象的生命期建模的策略和步骤,为指定类设计状态图。

相关主题