2017年辽宁科技大学软件工程(同等学力加试)考研复试核心题库
● 摘要
一、名词解释
1. 多态性
【答案】多态性是指同一消息为不同的对象接受时,可产生完全不同的动作,利用多态性,用户可发送一个通用的消息,而将所有的实现细节都留给接受消息的对象自行决定。另外,多态性也可以指在父类中定义的属性或者 服务被子类集成后,可以具有不用的数据类型或者表现出不同的行为。
二、简答题
2. 提高软件质量和可靠性的技术有哪些?
【答案】(1)避开错误技术
即在开发的过程中不让差错潜入软件的技术;避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术。但是,无论使用多么高明的避开错误技术,也无法做到完美无缺和绝无错误。
(2)容错技术
即对某些无法避开的差错,使其影响减至最小的技术。,容错技术即使错误发生也不影响系统特性,使错误发生时对用户影响限制在某些允许的范围内。
3. 调试的目的是什么?调试有哪些技术手段?
【答案】(1)调试的目的
调试是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错。
(2)调试技术
简单的调试方法
a. 在程序中插入打印语句
该方法的优点是能显示程序的动态过程,较易检查源程序中的有关信息。缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性,同时因插入打印语句要修改程序,这种修改可能会掩盖错误,改变关键的时间 关系或把新的错误引入程序。
b. 运行部分程序
有时为了测试某些被怀疑有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测程序只执行需要检查的程序段,以提高效率。可通过注释程序或开发语言所带的调试工具来查找错误。
②归纳法调试
归纳法调试从调试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。归纳法调试的具体步骤如下:
a. 收集有关数据
列出程序做对了什么,做错了什么的全部信息。
b. 组织数据
整理数据以便发现规律,使用分类法构造一张线索表。
c. 提出假设
分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。
d. 证明假设
假设不是事实,需证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现
(即消除错误 的征兆)或只纠正一部分错误。如果不能证明这个假设成立,需提出下一个假设。
③演绎法调试
演绎法调试是列出所有可能错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因。演绎法调试的具体步骤如下:
a. 列出所有可能错误原因的假设。
b. 排除不适当的假设。
c. 精化余下的假设。
d. 证明余下的假设。
④回溯法调试
该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。该方法是对小型程序寻找错误位置的有效方法。
4. 什么是结构化维护?结构化维护的特点是什么?
【答案】(1)结构化维护的定义
若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。
(2)结构化维护的特点
①有软件工程思想开发的软件具有各个阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
②进行维护活动时,首先从评价需求说明开始,搞清楚功能、性能上的改变,然后对设计说明文档进行评价,对设计说明文档进行修改和复查;根据设计的修改,再进行程序的变动;其后根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费、提高软件维护效率有很大作用。
5. 一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行字符串之后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,请用Jackson 方法设计该程序结构。
【答案】(1)输入数据的Jackson 图如图1所示:
图1输入数据的Jackson 图
(2)输出数据的图如图2所示:
图2 输出数据的Jackson 图
(3) 程序结构的图如图3所示:
图3程序结构的Jackson 图
6. 有哪些主要的软件开发方法?
【答案】主要的软件开发方法有以下几种:
(1)结构化开发方法
结构化开发方法是用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、