面向对象软件编程技术试题
(工程硕士)
年级:姓名:成绩:
一、选择填空题(答案写在每题后面的括号内)(每题5分,共50分)
1.在面向对象方法中,对象可看成是属性(数据)以及这些属性上专用操作的封装体。
封装是一种 A 技术,封装的目的是使对象的 B 分离。
类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个 C 。
类之间共享属性和操作的机制成为 D 。
一个对象通过发送 E 来请求另一对象为其服务。
A:①组装②产品化③固化④信息隐蔽()
B:①定义和实现②设计和测试③设计和实现④分析和定义() C:①例证②用例③实例④例外()
D:①多态性②动态绑定③静态绑定④继承()
E:①调用语句②消息③命令④口令()
2.软件设计的常用方法有SADT方法、Jackson方法、快速原形方法和 OO设计方法等。
其中,Jackson方法是一种面向数据结构的设计方法,其数据结构一般有 A 、 B 、 C 三类,并根据 D 来导出程序结构。
OO方法的核心是 E ,这是提高可维护性的重要措施。
A: ①记录结构②顺序结构③指针④树() B: ①表结构②选择结构③数组④线性表()
C: ①链表结构②列表③重复结构④队列结构()
D:①数据结构②数据间的控制结构③数据流图④图()
E:①结构化②继承性③信息隐藏④对象()
3.面向对象建模通常定义了三种模型,它们分别是对象模型、动态模型和功能模型。
其中, A 模型描述系统中与时间和操作顺序有关的系统特征,表示瞬时的行为上的系统的“控制”特征; B 模型描述了系统中对象的静态结构,以及对象之间的联系; C 模型描述了系统的功能“性质”,它指出了系统应该做什么。
在建立动态模型中,通常先画出 D ,然后再画出 E 。
A:①对象②功能③动态④静态()
B:①对象②时序③动态④实时()
C:①对象②功能③变换④计算()
D:①类图②状态图③事件跟踪图④数据流图()
E:①类图②状态图③事件跟踪图④数据流图()
4.在编制程序时,应采纳的原则之一是 A 。
开发软件时对提高开发人员工作效率至关重要的是 B 。
软件工程中描述生命周期的瀑布模型一般包括计划、 C 、设计、编码、测试、维护等几个阶段,其中设计阶段通常又可依次分成 D 和 E 两步。
A:①不限制goto 语句的使用②减少或取消注解行 ( )
③程序越短越好④程序结构应有助于读者理解
B:①操作系统的资源管理功能②程序开发环境 ( )
③程序人员数量④计算机的并行处理能力
C:①需求分析②需求调查③可行性分④问题定义 ( )
D: ①数据结构设计②总体设计③数据库设计④代码设计 ( )
E: ①方案设计②详细设计③代码设计④菜单设计 ( )
5.软件测试的目的是 A 。
为了提高测试的效率,应该 B 。
用面向对象方法开发的系统测试与其他方法开发的系统测试没有什么不同,在所有开发系统中都是根据规范说明来验证系统设计的正确性。
程序验证应尽可能早地开始。
程序测试步骤是从最底层开始,从 C 、 D 、 E 。
A:①评价软件的质量②发现软件的错误()
③发现数据的错误④证明软件是正确的
B:①随机地选取测试数据②将一切可能的输入数据作为测试数据()
③在完成编码以后制定软件的测试计划④选择发现错误的可能性大的数据作为测试数据
C:①模块测试②综合测试③系统测试④单元测试()
D:①模块测试②综合测试③系统测试④单元测试()
E:①模块测试②综合测试③系统测试④单元测试()
6. 我们认为,瀑布模型的缺欠并不来源于模型本身,而是来源于人们的认识论。
因为人类对复杂的问题的认识是一种循环渐进的过程,而瀑布模型过分强调软件开发的 A 、完整性和 B ,在许多情况下难以作到,特别是在大型软件系统的 C ,用户很难说清楚所要做的全部工作,更谈不上 D 和 E 。
A:①正确性②阶段性③可靠性④合理性()
B:①正确性②可靠性③顺序性④一致性()
C:①设计阶段②实现阶段③分析阶段④功能设计阶段() D:①软件的可使用性②软件的正确性③软件的可靠性④软件易维护性()
E:①软件的可维护性②软件的合理性③软件的完善性④软件健壮性()
7.面向对象的软件工程是采用面向对象的方法、设计技术和实现工具,更接近于工业化生产方式来实施软件生产的全过程,这是因为面向对象的软件工程有利于解决多年来软件工程中所提出的软件的可靠性、安全性、健壮性等问题。
其中: A 是指对软件系统的合理输入,系统能给出正确的结果,并能拒绝对用户的不合理输入; B 是指软件系统对环境的适应性; C 是指软件系统能否在即定的环境下运行并达到所预期的结果。
而面向对象程序设计所追求的主要目标是 D 和 E 。
A:①可靠性②安全性③健壮性④可扩充性⑤易维护性() B:①可靠性②安全性③健壮性④可扩充性⑤易维护性()
C: ①可靠性②安全性③健壮性④可扩充性⑤易维护性()
D: ①提高可扩充性②可再用性③安全性④①和②⑤①和③()
E: ①提高可扩充性②可再用性③易维护性④①和②⑤①和③()
8.设计高质量的软件是软件设计追求的一个重要目标。
其中,可移植性、可维护性、可靠性、效率、可理解性和可使用性等都是评价软件质量的重要方面。
为了提高软件的可移植性,应注意提高软件的 A 。
可维护性通常包括 B 。
通常认为软件维护工作主要包括完善性维护、 C 维护和 D 维护。
其中 E 维护是指当系统万一遇到未预料的情况时,能够按照预定的方式作合适的处理。
A:①使用的方便性②简洁性③可靠性④设备不依赖性 ( )
B:①可用性和可理解性②可修改性、数据独立性和数据一致性 ( )
③可测试性和稳定性④可理解性、可修改性和可测试性
C:①功能性②合理性③正确性④可靠性 ( )
D:①功能性②合法性③适应性④实用性 ( )
E:①可用性②正确性③稳定性④健壮性 ( )
9.软件的易维护性是指理解、更正、改进软件的难易程度。
通常影响软件易维护性的因素有易理解性、易修改性和 A 。
在软件开发过程中往往采取各种措施来提高软件的易维护性。
如采用 B 有助于提高软件的易理解性; C 有助于提高软件的易修改性;利用 D 和 E 有
助于提高软件的开发效率。
A:①易使用性②易恢复性③易替换性④易测试性()
B:①增强健壮性②信息隐藏原则③良好的编程风格④高效的算法()
C:①高效的算法②信息隐藏原则③增强健壮性④身份验证()
D:①好的开发方法②好的开发工具③继承性④模块独立性()
E:①可重用性②用户对象③好的开发环境④模块独立性()
10.目前的软件开发技术和方法远远落后于硬件的发展水平,其主要原因是受两大问题的困扰,一是我们采用的软件开发的 A 和人类 B 一个系统的过程不一致,其二是软件的 C 和 D 不能直接影响问题空间。
解决的途径只有完善软件本身,使软件 E 与问题空间保持一致,以次来改善软件的开发过程。
A:①过程②技术③方法④思路()
B:①分析②设计③实现④认识()
C:①成分②开发技术③实现方法④实现技术()
D:①成分②结构③实现方法④实现技术()
E:①分析模型②设计模型③软件结构④软件空间()
二、简答题(每题4分,共20分)
1.请你从认识论和方法论的角度论述一下,为什么说长久以来,人们在软件开发中发现认识一个系统的过程和方法同我们用于分析、设计和实现一个系统的过程和方法很不一致?在软件设计中,面向对象方法学的出发点和所追求的基本原则是什么?
2.软件工程是按工程化的方法组织和管理软件的生产,自70年代以来,虽已提出过多种软件开发方法和软件开发模型,但使用最广泛的是“瀑布式生命期”模型。
瀑布式生命期把软件开发分为计划、需求分析、设计、编码、测试和维护六个阶段,请你说明每个阶段的主要任务是什么?
3.用面向对象方法开发软件通常需要建立对象模型、动态模型和功能模型,这三种模型从三个不同的,但又密切相关的角度来模拟目标系统。
请你说明每种模型的主要任务是什么?
4.无论采用何种分析方法,它的主要任务就是通过对问题空间的分析、研究,以获得对应用问题的理解。
请你给出几个(三个以上)理由,为什么说“面向对象分析方法”优越于传统的“功能/数据分析方法”?
5.面向对象分析的主要任务是什么?分析工作主要包括哪三项内容?
三、阐述题(每题15分,共30分)
1. 通过对本课程的学习,结合你在软件开发中的经验,阐述在软件开发过程中使用面向对象软件开发的基本思想和方法。
2. 试说明面向对象技术的软件开发方法与传统的软件开发方法的思维方式、分析问题、解决问题有何主要差别?采用面向对象技术的软件开发方法有
何易处?。