文档库 最新最全的文档下载
当前位置:文档库 › 2020年扬州大学1301软件工程考研复试核心题库之简答题精编

2020年扬州大学1301软件工程考研复试核心题库之简答题精编

特别说明

本书根据最新复试要求并结合历年复试经验对该题型进行了整理编写,涵盖了这一复试科目该题型常考及重点复试试题并给出了参考答案,针对性强,由于复试复习时间短,时间紧张建议直接背诵记忆,考研复试首选资料。

版权声明

青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料,均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源等,因而有部分未注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任何异议请直接联系我们,我们会在第一时间与您沟通处理。

因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广大考生读者批评指正。

重要提示

本书由本机构编写组多位高分在读研究生按照考试大纲、真题、指定参考书等公开信息潜心整理编写,仅供考研复试复习参考,与目标学校及研究生院官方无关,如有侵权请联系我们立即处理。

一、2020年扬州大学1301软件工程考研复试核心题库之简答题精编

1.面向对象程序设计有哪些优点?

【答案】开发时间短、效率高、可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短开发时间,这样程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。

2.一本书的组成有一个封面,一个目录,一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,每节有0个或多个插图,还有0个或多个表格,最后有一个附录。试建立该书的对象模型。

【答案】书的对象模型如图所示。

3.软件需求分析是软件工程过程中交换意见最频繁的步骤。为什么交换意见的途径会经常阻塞?

【答案】软件需求分析过程中,由于最初分析员对要解决的问题了解很少,用户对问题的描述、对目标软件的要求也很凌乱、模糊,再加上分析员和用户共同的知识领域不多,导致相互间通信的需求。首先,由于分析员和用户之间需要通信的内容相当多,业务知识上的不足,表达方式的不足,可能对某些需求存在错误解释或误解的可能性,造成需求的模糊性。其次,用户和分析员之间经常存在无意识的“我们和他们”的界限,不能按工作需要组成统一的、精干的队伍,而是各自定义自己的“版图”,并通过一系列备忘录、正式的意见书、文档,以及提问和回答来相互通信。

实践已经证明,这样会产生大量误解,忽略重要信息,无法建立成功的工作关系。

4.软件工程标准化的等级有哪些?

【答案】根据软件工程标准制定的机构与适用的范围,软件工程标准化分为国际标准、国家.标准、行业标准、企业规范及项目规范等5个等级。

(1)国际标准。

由国际标准化组织ISO制定和公布,供世界各国参考的标准。该组织有很大的代表性和权威性,它所公布的标准有很大权威性。

(2)国家标准。

由政府或国家级的机构制定或批准,适合于全国范围的标准。主要有:GB(国标)、ANSI(美国国家标准协会)。

(3)行业标准。

由行业机构、学术团体或国防机构制定的适合某个行业的标准。主要有:IEEE(美国电气与电子工程师学会)、GJB(中华人民共和国国家军用标准)。

(4)企业规范。

大型企业或公司所制定的适用于本部门的规范。

(5)项目规范。

某组织为某项目制定的专用的软件工程规范。

5.在类的实现中,如何利用既存类的途径?

【答案】在类的实现中,利用既存类的途径有三种:

(1)“原封不动”重用。寻找“原封不动”使用的既存类,提供所需要的特性。此时,所需要的类已经存在,建立它的一个实例,用以提供所需要的特性。这个实例可直接为软件利用,或者它可以用来作为另一个类的实现部分。通过重用一个既存类,可得到不加修改就能工作的已测试的代码。

由于大多数面向对象语言的两个特性,即类的规格说明与实现的分离(信息隐蔽)和封装,这种重用一般是成功的。

(2)进化性重用。此时,一个能够完全符合要求特性的类可能并不存在。但是,如果具有类似功能的类存在,则可以通过继承,由既存的类渐进式地设计新类。还可以将几个既存类的特性混合起来开发出新的类。每个既存类是某些概念的模型。混合起来则产生了一个为特定应用所用的具有多重概念的类。一个既存的类可能会提供某些在我们的新类中需要的特性以及某些新类不需要的特性。因此,可以先建立一个新的更抽象的类,使之成为我们要设计的类的父类,然后,修改既存类以继承新的父类。

(3)“废弃性”开发。不用任何重用来开发一个新类。虽然不需要使用既存类来演变成新类,但还是有重用的可能。在新类实现时,通过说明一些既存类的实例,可以加快一个类的实现。像表格、硬件接口等都可以用来作为一个新类的局部。

6.二维整数表是由整数对构成的数组,可以认为表中左列的整数被映射成右列的整数,因此,可以把二维整数表看做是把整数映射成整数的函数。该函数的定义域是表中左列整数的集合,例如,若表,则g的定义域。

查表(Lookup)操作在一张二维整数表中查找一个给定的表项(即整数)。如果在表的定义域中有这个给定的整数,则查找结果为该整数所映射成的整数,否则查找结果为零。例如,若在上述的

表g中查找整数7,则得到的结果为6;若查找整数5,则得到的结果为0。

试用Z语言写出查表操作的规格说明。

【答案】Lookup操作的Z规格说明如图1所示。

图1

上面给出的Z规格说明指出:t是二维整数表,是执行查表操作后的二维整数表;l?是输入(即要查找的整数),r!是查表操作得到的结果,它也是整数。

图1所示Z规格的下半部分准确地说明了查表操作应该得到的结果:

?若输入l?不在表t的定义域中,则输出r!是0,而且表t保持不变。

?若输入l?在表t的定义域中,则输出r!是表t中l?所映射成的那个整数,而且表t保持不变。

为什么需要在Z规格说明中指出,查表结果保持表t不变呢?试想,如果在Z规格说明中没有提出这项要求,则在查找过程中修改了表t的实现方案(可能这样做编程更方便些),也是符合规格说明的。但是,这样的实现方案是用户不能接受的。

7.在类的设计中需要遵循的方针是什么?3个主要的设计准则——抽象、信息隐蔽和模块化如何才能做到?

【答案】在设计类时需要遵循的方针是:

(1)信息隐蔽:通过信息隐蔽可保护类的存储表示不被其他类的实例直接存取。

(2)消息限制:该类实例的用户应当只能使用界面提供的操作。

(3)狭窄界面:只有对其他类的实例是必要的操作才放到界面上。

(4)强内聚:模块内部各个部分之间应有较强的关系,它们不能分别标识。

(5)弱耦合:一个单独模块应尽量不依赖于其他模块。

(6)显式信息传递:两个类之间的交互应当仅涉及显式信息传递。

(7)派生类当做派生类型:每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集。

(8)抽象类:某些语言提供了一个类,用它作为继承结构的开始点,所有用户定义的类都直接或间接以这个类为基类。

为了在类的设计中做到抽象、信息隐蔽和模块化:

(1)以类作为系统的基本模块单元,通过一般化——特殊化关系和整体——部分关系,搭建整个系统的类层次结构,实现数据抽象和过程抽象。

(2)将数据和相关的操作封装在类内部,建立共有、私有和子类型等存取级别,将数据表示定义成为类的私有成员,实现信息隐蔽。

(3)通过建立类属性(类模板),将某些有可复用要求的类设计成在数据类型上通用的可复用的

相关文档
相关文档 最新文档