面向对象技术试题

2018-12-17 13:03

1、请将传统方法和面向对象方法进行比较。

答: 2、为什么要有设计模式,谈谈你对设计模式的理解。 3、设计类测试用例时需要考虑哪些方面?

4、你能想到模板方法模式在代码编写中或者生活实践中的那些应用?试举1个例子,用模式图加文字说明。

5、你能想到状态模式在生活实践中的有哪些应用?试举1个例子,用模式图加文字说明。第七章7.7

6、请比对CORBA、EJB和COM技术的优缺点,以及三种技术方案的选择方式和各自的应用环境。

第一题:答:(1)传统的面向过程方法:是结构化设计与分析吗?如是,在第一章绪论

PPT 11页开始,到17页左右。有些直接抄标题,像类型的。

(2)面向对象,就是以对象观点来分析现实世界中的问题。从普通人认识世界的观点出发,把事物归类、综合,提取其共性并加以描述。其基本思想是从现实世界中客观存在的事物(即对象)出发来构造系统并在系统中尽可能运用人类的自然思维方式。

面向对象方法的主要特点: (a)从问题域中存在的客观事物来抽象对象,并以此作为构造软件系统的基本构成单位。(b)事物的静态特征由对象的属性来表示;事物的动态特征由对象的方法来表示。(c)对象的属性和方法结合为一体,成为一个独立的实体,对外屏蔽其内部细节,也即封装。(d)对事物分类,具有相同属性和方法的对象归为一类,类是这些对象的抽象描述,每个对象是它所属类的一个实例。

(e)通过较多或较少地忽略事物之间的差异,来实现不同程度上的抽象,以得到较一般的类和较特殊的类,特殊类继承一般类的属性和方法。(f)复杂的对象可以把简单对象作为其构造成分,也即聚合。(g)对象之间通过消息进行通信。(h)用关联来表达对象之间的静态关系。 面向对象的优势:(a)生产效率高,(b)优良的可复用性(c)面向对象方法对软件复用的支持。

与传统的面向过程方法相比:(a)面向对象方法是从现实世界中客观存在的事物(即对象)出发来构造软件系统;(b)在系统构造中尽可能运用人类的自然思维方式;(c)强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;(d)根据事物本质特点,将其抽象为对象,作为系统的基本构成单位;(e)这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

第二题:答:也许有人会问:“为什么要学习设计模式呢?”原因有很多,一些非常明显,

而另一些则不那么明显。

学习模式最常见的理由是因为我们可以借其:

● 复用解决方案——通过复用已经公认的设计,我能够在解决问题时取得先发优势,而且避免重蹈前人覆辙。我可以从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案了。

● 确立通用术语——开发中的交流和协作都需要共同的词汇基础和对问题的共识。设计模式在项目的分析和设计阶段提供了共同的基准点。

模式还为我们提供了观察问题、设计过程和面向对象的更高层次的视角,这将使我们从“过早处理细节”的桎梏中解放出来。

等你读完本书的时候,我希望你将同意这是学习设计模式的最重要的原因之一。它将改变你的思维定式,使你成为更加高效的分析人员。

为了说明这一优点,我想引述一段两个木匠之间关于“如何为橱柜制作抽屉”的谈话。 想像一下,有两个木匠在讨论怎样为橱柜制作抽屉。 木匠甲:你认为我们应该怎样制作这些抽屉?

木匠乙:这个嘛,我想榫子应该这样做:在木料上直着锯下去,然后向回转45°再锯,接着再直着锯,然后换一个方向45°往回锯,接着再直着锯下去,然后…… 现在,你要做的就是搞清楚他们说的是什么意思!

这段描述是不是让人不知所云?木匠乙到底给出了什么建议?细节往往就是如此!让我们试着将他的叙述画出来。

这听上去像不像似曾相识的代码评审?在评审中有一位程序员这样描述自己的代码: 然后,我在这里用一个WHILE 循环来……接着是一系列IF语句执行……这里我用一条SWITCH语句处理……

你获得的是对代码细节的描述,而对“程序到底要做什么”、“为什么这么做”,你却毫无头绪! 当然,正经的职业木匠可不会这样说话。真实的情形应该是这样: 木匠甲:我们应该用鸠尾榫还是斜榫?

看到这里的本质区别没有?木匠们现在讨论的是一个问题的解决方案上的本质差异,他们的讨论层次更高、也更抽象了,从而避免了陷入具体解决方案的细节泥沼中。 当木匠谈到“斜榫”时,他的脑子里已经对这个解决方案浮现出如下特征:

● 它是一个更简单的解决方案——斜榫更容易制作。只需将制作榫的木料锯出45°斜面,然后用钉子或者木胶接合起来即可。

● 它更轻型——斜榫比鸠尾榫强度低。在重压下,将无法保持榫接。

● 它不太引人注目——斜榫的一个锯面,与鸠尾榫的多个锯面相比,更不显眼。

当木匠谈到“鸠尾榫”时,他的脑子里浮现出另一些特征。这些特征对外行来说可能并不明显,但任何一位木匠都会明白如故:

● 它是一个更复杂的解决方案——制作鸠尾榫涉及的问题更多。因此,它的成本也更高。 ● 它不容易受温度和湿度影响——当温度和湿度变化时,木材会膨胀或收缩,但是,鸠尾榫仍然能够保持坚固。

● 它与紧固系统无关——事实上,鸠尾榫甚至不需要依赖胶水。 ● 它看上去更赏心悦目——如果制作精良,会很美观。

也就是说,鸠尾榫是一个坚固、可靠、美观的榫,但制作复杂(所以成本也比较高)。 所以,当木匠甲这样问的时候: 我们应该用鸠尾榫还是斜榫? 他真正要问的问题是:

我们是应该用一个制作昂贵但美观耐用的榫,还是应该只用一个制作快速而且不美观的榫,能坚持到检查结束就行?

我们应该说,木匠们的讨论其实是在两个层次上进行的:他们话语表面上的层次,和谈话真正的内容,层次更高,外行听不出来,而其中含义却非常丰富。这种更高的层次就是“木匠模式”的层次,它反映了木匠眼中的真正的设计问题。

在第1种情形中,木匠乙讨论的是榫的实现细节,反而使真正的问题模糊不清。在第2种情形中,木匠甲要根据榫的成本和接合性质来决定使用哪种榫。 谁更有效率呢?你更愿意与谁一起工作?

当我说“模式有助于提高思考层次”时,其中就蕴涵着这一层含义。从本书后面的内容中你将了解到,如果能够这样提高自己的思考层次,新的设计方法也将浮现出来。这正是模式真正的威力所在。

第三题:目前,面向对象软件测试用例设计方法,还处于研究和发展阶段。与传统的软件测试不同的是。面向对象测试更关注于设计适当的操作序列以检查类的状态。设计测试用例有以下几个要点:

(1) 应该唯一标识每一个测试案例, 并且与被测试的类明显地建立关联; (2) 陈述测试对象的一组特定状态;

(3) 对每一个测试建立一组测试步骤,要思考或确定的问题包括:对被测试对象的一组特定状态,一组消息和操作,考虑当对象测试时可能产生的一组异常,一组外部条件,辅助理解和实现测试的补充信息。设计类测试用例1.类级随机测试2. 类级划分测试测试类间测试用例:1. 基于场景的测试2. 行为测试。 第四题:PPT 第四章

28页 模版方法(Template Method):定义了一个算

法的步骤,并允许子类别为一个或多个步骤提供其实现方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤 。

第五题:PPT 第七章 7.7 120页,例子不会举,和同学讨论一下吧。

第六题:请比对CORBA、EJB和COM技术的优缺点,以及三种技术方案的选择方式

和各自的应用环境。

(1)各自优缺点:(A) CORBA具有如下突出特点:

对象类较之于传统软件的功能模块而另具有的优点是:

(a) 易于理解,具有完整的语义特征;

(b) 易于扩充和修改,具有较高的通用性和适应性; (c) 易于构造组装,具有规范的外部接口。 CORBA具有如下突出特点:

(a)分布计算技术和面向对象编程技术(Object Oriented Programming,OOP)相融合。

(b)引入了“代理”的概念。

(c)客户端程序与服务器端程序的完全分离。 (d)提供了“软件总线”的功能。

(e)设计原则和设计方式的层次化。 (B)EJB具有以下特点:

(a) EJB以构件的形式组织服务器:EJB构件是直接用Java语言编写的服 务器构件,Java语言编写的跨平台特性使得EJB构件可以方便地移植到各 种操作系统平台和EJB服务器上;

(b) EJB构件实现仅需考虑应用需求,其系统级服务诸如事务管理、安全 性、构件生命周期和线程等,都通过EJB服务器自动进行管理的; (c) EJB体系结构具有面向对象、分布式、跨平台、可扩充性、安全性以 及便于开发等优点,同时它还是以协议为中心的,任何协议都可以被利

用。

(C)COM有以下好处:(a)即插即用(b)二进制重用(c)分布式应用(d)COM与

语言无关(e)与平台无关。

COM有以下特性:(a)COM是一种规范。COM规范描述了为创建能共同操作的组件而必须遵守的标准。这个标准描述了COM是什么和它们是如何运转的,以及说明了如何可动态交替更新组件。(b)COM是一套服务。(c)COM是面向对象的。(d)COM能够容易的用户化和升级你的应用程序。。(e)COM能够分布式应用。(f)COM组件可以用任何语言编写。

(2)选择方式?(A) ?

(B) EJB构件模型给开发者提供了以下的支持:1. 构件包含应用程序逻辑 2. 可重用的构件 3. 可伸缩性 4. 资源管理 5. 事务支持 6. 并发性管理

(C)?

(3)使用环境:(A)CORBA用于在不同进程(程序)之间,甚至是不同物理机器上的进程之间通讯。(B)EJB详细地定义了一个可以方便地部署Java构件的服务框架模型,用于创建可伸缩、多层次、跨平台、分布式的应用,并可创建具有动态扩展性的服务器端的应用(C)COM是一种以组件为发布单元的对象模型,这种对象模型使各软件组件可以用一种统一的方式进行交互。COM不仅定义了组件程序之间进行交互的标准,也提供了组件程序运行所需的环境。


面向对象技术试题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:西南科大网络英语A1_习题集(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: