2017年河南大学软件工程(同等学力加试)复试仿真模拟三套题
● 摘要
一、名词解释
1. 问题分析图PAD
【答案】问题分析图(PAD )是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将其翻译成 程序代码比较容易。它既可以用来表示程序逻辑,也可以用来描述数据结构,支持结构化程序设计(SP )方法, 仅具有顺序、选择、循环三类基本成分。
二、简答题
2. 需求分析有哪些特点?
【答案】(1)用户与开发人员很难进行交流
需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。但是在开始时,开发人员和用户双方都不能准确地提出系统要“做什么?”。由于用户和开发人员互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。
(2)用户的需求是动态变化的
对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和需求分析性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚 者,到开发后期还在提新的要求。
(3)系统变更的代价呈非线性增长
需求分析是软件开发的基础。在该阶段发现一个错误,解决它需要的代价要比等到设计、编程、测试和维护阶段解决小非常多。
3. 软件工程的净室方法为什么没有得到广泛的使用?
【答案】(1)净室方法学太理论、太数学化,以至难于在真实的软件开发中使用。
(2)不需要进行单元测试,而是进行正确性验证和统计质量控制,与当前大多数软件开发方式背离。
(3)软件开发产业的成熟度。净室过程的使用需要在整个生命周期阶段定义的过程中严格的应用,因为大多数软件企业的运作还处于特定的阶段(级别),因此,还没有准备好应用哪些技术。
4. 测试面向对象软件时,主要有哪些设计确认测试用例的方法?
【答案】设计确认测试用例的方法主要有传统的黑盒方法、基于情景的方法。
(1)黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能
适当地就收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
(2)基于情景的方法:场景,是一种有假设条件的故事,可以辅助测试人员把一个复杂的问题或系统通过电影那样地过一遍。测试人员通过把整个场景都设想出来,在设想中的场景中进行的测试就是基于场景的测试。
5. 什么是软件的可靠性?它们能否定量计算?
【答案】(1)软件可靠性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的概率。
(2)软件可靠性可以进行定量计算,常用指标是平均失效等待时间MTTF 与平均失效间隔时间MTBF 。
假如对n 个相同的系统(硬件或软件)进行测试,它们的失效时间分别是
均失效等待时间MTTF 定义为:
MTBF 是平均失效间隔时间,它是指两次相继失效之间的平均时间。MTBF 在实际使用时通常是指当n 很大时,系统第n 次失效与第次失效之间的平均时间。
6. 什么是结构化维护?结构化维护的特点是什么?
【答案】(1)结构化维护的定义
若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。
(2)结构化维护的特点
①有软件工程思想开发的软件具有各个阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
②进行维护活动时,首先从评价需求说明开始,搞清楚功能、性能上的改变,然后对设计说明文档进行评价,对设计说明文档进行修改和复查;根据设计的修改,再进行程序的变动;其后根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费、提高软件维护效率有很大作用。
7. 列举出几种情况下运用整体一部分结构而实现或支持的复用。
【答案】(1)在两个或更多的对象类中都有一组属性和服务描述这些对象的一个相同的组成部分。把它们分离出来作为部分对象,建立整体一部分结构,这些属性和服务就被多个类复用,从而简化了它们的描述。
(2)系统中已经定义了某类对象,在定义其他对象时,发现其中一组属性和服务与这个已定义的对象是相同的,那就不必再重复地定义这些属性与服务,只需建立它与前一类对象之间的整
则平
体一部分结构。
(3)通过整体一部分结构提取可复用构件,以支持领域范围的复用问题。如果一个对象类中有一组属性和服务描述了该对象的一个独立部分,即使从本系统看并不需这样一个部分对象,只要它是一种在本领域经常使用的对象,就可把它从整体中分离出来作为部分对象,使它的类定义成为一个应用范围较广的可复用构件。
三、综合应用题
8. 什么是“继承”?
【答案】继承是指能够直接获得己有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子 类自动地共享基类中定义的数据和方法的机制。
9. 为每种类型的模块内聚举一个具体例子。
【答案】(1)逻辑内聚
一个子程序将打印季度开支报告、月份开支报告和日开支报告. 具体打印哪一个,将由传入的控制标志决定,这个子程序具有逻辑内聚性,因为它的内部逻辑是由输进去的外部控制标志决定的。
(2)时间内聚
若一个模块包含了需要在同一时间段中执行的多个任务,则称该模块的内聚为时间内聚。例如,将多个变量 的初始化放在同一个模块中实现,或将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内聚的模块。
(3)过程内聚
一个子程序,它产生读取雇员的名字,然后是地址,最后是它的电话号码。这种顺序之所以重要,仅仅是因为它符合用户的要求,用户希望按这种顺序进行屏幕输入。另外一个子程序将读取关于雇员的其它信息。这个子程序是过程内聚性,因为是由一个特定顺序而不是其它任何原因,把这些操作组合在一起的。
(4)顺序内聚
一个按给出的生日计算雇员年龄、退休时间的子程序,如果它是利用所计算的年龄来确定雇员将要退休的时间,那么它就具有顺序内聚性。而如果它是分别计算年龄和退休时间的,但使用相同生日数据,那它就只具有通 讯内聚性。
(5)功能内聚
计算雇员年龄并给出生日的子程序就是功能内聚性的,因为它只完成一项工作,而且完成得很好。
(6)偶然内聚
一个模块完成一组任务,这些任务彼此间即使有关系,关系也比较松散,就叫做偶然内聚。
相关内容
相关标签