当前位置:问答库>考研试题

2017年哈尔滨师范大学软件工程复试实战预测五套卷

  摘要

一、名词解释

1. 数据流图

【答案】数据流图(DFD )是结构化分析方法中用于表示系统逻辑模型的一种工具,是一种

功能模型。它以图形 的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。

二、简答题

2. 根据瀑布模型为下列任务排序:验收测试、项目计划、单元测试、需求复审、成本估计、总体设计、设计复审、市场调研、详细设计、系统测试、实现、编制需求规格说明书。

【答案】根据题意可以把上述任务分为:

A. 市场调研

B. 项目计划、成本估计、编制需求规格说明书(同时进行)

C. 需求复审

D. 总体设计

E. 详细设计

F. 设计复审

G. 实现

H. 单元测试

I. 系统测试

J. 验收测试

根据瀑布模型的要求,上述任务正确的排序应为ABCDEFGHIJ 。

3. 在软件测试中,应注意哪些原则?

【答案】(1)测试用例应由输入数据和预期的输出数据两部分组成。这样便于对照检查,做到“有的放矢”。

(2)测试用例不仅用合理的输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接收,并给出相应提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。例如程序正确打印出用户并不需要的多余信息。

(4)应定制测试计划并严格执行,排除随意性。

(5)长期保留测试用例。测试用例的设计耗费很大的工作量,必须作为文档保存。因为修改后的程序可能有新的错误,需要进行回归测试。同时,为以后的维护提供方便。

(6)对发现错误较多的程序段,应进行更深入的测试。有统计数字表明,一段程序中已发现

的错误越多,其中存在的错误概率也越大。因为发现错误数越多的程序段,其质量较差。同时在修改错误过程中又容易引入新 的错误。

(7)程序员避免测试自己的程序。测试是一种“挑剔性”的行为,心理状态是测试自己程序的障碍。另外,对需求规格说明的理解而引入的错误则更难发现。因此由别的人或另外的机构来测试程序员编写的程序会更客观、更有效。

4. 非渐増式测试与渐増式测试有什么区别?

【答案】(1)渐增式测试和非渐增式测试的定义

集成测试的方法主要有两种:非渐増式测试和渐増式测试。

①非渐增式测试

首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。 ②渐增式测试

逐个把未经过测试的模块组装成到已经测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。

(2)渐增式测试和非渐増式测试的区别

①非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试把单元测试与集成测试合在一起,同时完成。

②非渐增式测试需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。

③渐增式可以较早地发现进口之间的错误,非渐增式最后组装时才发现。

④渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐増式发现进口错误推迟到最后,很难判断是哪一部分接口出错。

⑤渐增式比较彻底,已测试的模块和新的模块再测试。

⑥渐增式占用的时间较多,但非渐增式需更多地驱动模块。桩模块也占用一些时间。

⑦非渐増式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。

5. 说明对象模型的特征。

【答案】(1)对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系。

(2)模型主要关心系统中对象的结构、属性和操作使用对象图来描述。

6. 面向对象建模的三种模型是什么,各自的主要功能有哪些,分别可用UML 的哪些图来描述?

【答案】(1)面向对象建模的三种模型是对象模型、动态模型、功能模型。

(2)三种模型的主要功能

①对象模型

表示静态的、结构化的系统的数据性质。它是对模拟客观世界实体的对象以及对象彼此间的

关系的映射,描述了系统的静态结构。.

②动态模型

表示瞬时的、行为化的系统的控制性质,它规定了对象模型中对象的合法变化序列。

③功能模型

表示软件系统的功能性质,它指明了系统应该“做什么”,更直接地反映了用户对目标系统的需求。

(3)UML 图描述

①在UML 中,使用类图来建立对象模型。

②在UML 中,使用状态图和事件追踪图来建立动态模型。

③在UML 中,使用用例图来建立功能模型。

7. 软件项目管理包括哪些内容?

【答案】软件项目管理具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。

(1)开发人员

软件开发人员一般分为:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员。软件生存期各个阶段的活动既要有分工又要互相联系。因此,要求各类人员既能胜任工作,又要相互很好地配合,没有一个和谐的工作环境很难完成一个复杂的软件项目。

(2)组织机构

组织机构要求好的组织机构、合理的人员分工、有效的通信。软件开发的组织机构没有统一的模式。主要有主程序员、专家组、民主组织三种组织机构。

(3)用户

软件是为用户而开发的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目

负责人,要特别注意与用户保持联系,掌握用户的心理和动态,防止来自用户的各种干扰和阻力。

(4)控制

控制包括进度控制、人员控制、经费控制和质量控制。为保证软件开发按预定的计划进行,对开发过程要实施以计划为基础。

(5)文档资料

软件工程管理很大程度上是通过对文档资料管理来实现的。因此,要把开发过程中的一切初步设计、中间过程、最后结果建立成一套完整的文档资料。文档标准化是文档管理的重要方面。

三、综合应用题

8. 假设自己被指派为一个软件公司的项目负责人,任务是开发一个技术上具有创新性的产品,该产品把虚拟现实硬件和最先进的软件结合在一起。由于家庭娱乐市场的竞争非常激烈,这项工作的压力很大。应选择哪种项目组结构?为什么?打算采用哪种(些)软件过程模型?为什么?

【答案】(1)由于是技术上具有创新性的产品,所以需要采用民主制程序员组,大家可以集思广益,共同攻关技术难题。