2017年南昌大学软件工程考研复试核心题库
● 摘要
一、名词解释
1. 问题分析图PAD
【答案】问题分析图(PAD )是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将其翻译成 程序代码比较容易。它既可以用来表示程序逻辑,也可以用来描述数据结构,支持结构化程序设计(SP )方法, 仅具有顺序、选择、循环三类基本成分。
二、简答题
2. 软件配置管理有哪些内容?
【答案】软件配置管理的内容有:
(1)基线
基线是软件生存期中各开发阶段的一个特点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。因此基线可以作为一个检查点,在开发过程中,当采用的基线发生错误时,我们可以知道处于的位置,返回到最近和最恰当的基线上。
(2)软件配置项
软件配置项(SCI )是软件工程中产生的信息项,它是配置管理的基本单位。
(3)版本控制管理
版本控制管理是对系统不同版本进行标识与跟踪的过程。版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。
(4)变更控制
变更控制包括建立控制点和建立报告与审查制度。对于一个大型软件来说,不加控制地变更很快就会引起混 乱。因此变更控制是一项最重要的软件配置任务。
3. 根据瀑布模型为下列任务排序:验收测试、项目计划、单元测试、需求复审、成本估计、总体设计、设计复审、市场调研、详细设计、系统测试、实现、编制需求规格说明书。
【答案】根据题意可以把上述任务分为:
A. 市场调研
B. 项目计划、成本估计、编制需求规格说明书(同时进行)
C. 需求复审
D. 总体设计
E. 详细设计
F. 设计复审
G. 实现
H. 单元测试
I. 系统测试
J. 验收测试
根据瀑布模型的要求,上述任务正确的排序应为ABCDEFGHIJ 。
4. 调试的目的是什么?调试有哪些技术手段?
【答案】(1)调试的目的
调试是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错。
(2)调试技术
简单的调试方法
a. 在程序中插入打印语句
该方法的优点是能显示程序的动态过程,较易检查源程序中的有关信息。缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性,同时因插入打印语句要修改程序,这种修改可能会掩盖错误,改变关键的时间 关系或把新的错误引入程序。
b. 运行部分程序
有时为了测试某些被怀疑有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测程序只执行需要检查的程序段,以提高效率。可通过注释程序或开发语言所带的调试工具来查找错误。
②归纳法调试
归纳法调试从调试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。归纳法调试的具体步骤如下:
a. 收集有关数据
列出程序做对了什么,做错了什么的全部信息。
b. 组织数据
整理数据以便发现规律,使用分类法构造一张线索表。
c. 提出假设
分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。
d. 证明假设
假设不是事实,需证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现
(即消除错误 的征兆)或只纠正一部分错误。如果不能证明这个假设成立,需提出下一个假设。
③演绎法调试
演绎法调试是列出所有可能错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因。演绎法调试的具体步骤如下:
a. 列出所有可能错误原因的假设。
b. 排除不适当的假设。
c. 精化余下的假设。
d. 证明余下的假设。
④回溯法调试
该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。该方法是对小型程序寻找错误位置的有效方法。
5. 简述事件如何触发操作。
【答案】(1)如果仅描述事件的模式,那状态图就会失去意义。一个对象的行为描述必须指出在事件的响应中该对象做些什么。在响应所对应的状态和事件过程中,完全依附于状态和变迁的操作。
(2)活动是需要花费时间来完成的操作
①活动与状态有关,一个活动可以是连续的操作,例如在电视机屏幕上显示一幅画面。
②一个活动也可以包括经过一段时间间隔之后的自动终结顺序操作,例如关闭阀门,或者执行一次计算。
③一个状态可以控制一个连续性活动,这种控制可以持续到一个事件使该状态发生变迁时才结束,例如电话铃响。在状态框中用 表示活动A 开始进入该状态并在退出该状态时结束。
表示时序活动A 开始进④一个状态也可以控制时序的活动,例如机器人移动一个零件,这种控制持续到完成该行动,或因另一个事件被中断而提前停止该活动时才结束。相同的记号
入该状态,当完成时停止。
(3)如果一个事件在行动完成之前发生状态的变迀,则该活动被提前终止。例如机器人遇到阻碍而停止移动。这两种使用没有本质的区别:连续性活动可以被看成延续时间不确定的时序活动。
6. 什么是结构化维护?结构化维护的特点是什么?
【答案】(1)结构化维护的定义
若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。
(2)结构化维护的特点
①有软件工程思想开发的软件具有各个阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
②进行维护活动时,首先从评价需求说明开始,搞清楚功能、性能上的改变,然后对设计说明文档进行评价,对设计说明文档进行修改和复查;根据设计的修改,再进行程序的变动;其后根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费、提高软件维护效率有很大作用。
相关内容
相关标签