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

2018年天津大学软件学院902软件工程考研基础五套测试题

  摘要

一、简答题

1. 面向对象实现应该选用哪种程序设计语言?为什么?

【答案】(1)面向对象实现应该尽量选用面向对象语言来实现面向对象分析、设计的结果。

(2)原因

①一致的表示方法。面向对象开发基于不随时间变化的、一致的表示方法。既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。

②可重用性。既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果。

③可维护性。程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。

2. 什么是α测试和β测试?

【答案】(1)α (Alpha )测试

α测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,且开发者负责记录发现的错误和遇到的问题。即α测试是在受控的环境中进行的。

(2)β (Beta )测试

β测试由软件的最终用户们在一个或多个客户场所进行。开发者通常不在β测试的现场,即(β测试是软件在 开发者不能控制的环境中的“真实”应用。主要的实现步骤是:

①用户记录在β测试过程中遇到的问题,并且定期把这些问题报告给开发者;

②开发者在接收到在β测试期间报告的问题之后,对软件产品进行必要的修改;

③开发者向全体客户发布最终的软件产品。

3. 维护技术有哪些?

【答案】(1)面向维护的技术

面向维护的技术是在软件开发阶段用来减少错误,提高软件可维护性的技术,面向维护的技术涉及软件开发的所有阶段。

①在需求分析阶段,对用户的需求进行严格的分析定义,使之没有矛盾和易于理解,可以减少软件中的错误。

②在设计阶段,划分模块时充分考虑将来改动或扩充的可能性。使用结构化分析和结构化设计方法,采用容 易变更的、不依赖于特定硬件和特定操作系统的设计。

③在编码阶段,采用灵活的数据结构,是程序相对独立于数据的物理结构,养成良好的程序

设计风格。

④在测试阶段,尽可能多地发现错误,保存测试用例和测试数据等。

(2)维护支援技术

维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术,维护支援技术包括下列各方面的技术:信息收集、错误原因分析、软件分析与理解、维护方案评价、代码与文档修改、修改后的确认、远距离的维护。

4. 简述文档在软件工程中的作用。

【答案】文档是软件开发使用和维护中的必备资料,在软件工程中的作用如下:

(1)提高软件开发过程的能见度。

(2)提高软件开发的效率。

(3)作为开发人员阶段工作成果和结束标志。

(4)记录开发过程的有关信息,便于使用和维护。

(5)提供软件运行、维护和培训的相关说明性参考资料。

(6)便于用户了解软件功能、性能和相关配置信息。

一、简答题

1. 试说明主动服务与被动服务的区别。

【答案】(1)主动服务

主动服务是不需要接收消息就能主动执行的服务,它在程序实现中是一个主动的程序成分,例如用于定义进程或线程的程序单位。

(2)被动服务

被动服务是只有接收到消息才执行的服务,它在编程实现中是一个被动的程序成分,例如函数、过程、例程等。

(3)区别

被动对象的服务都是被动服务,主动对象应该有至少一个主动服务。在定义服务的过程中,对于主动对象应指出它的主动服务。

2. 说明McCall 软件质量度量模型。

【答案】McCall 质量度量模型是McCall 等人于1979年提出的软件质量模型。针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下。

(1)面向软件产品操作

①正确性:软件满足设计规格说明及用户预期目标的程度。

②可靠性:软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。

③效率:为了完成预定功能,软件系统所需的计算机资源和程序代码数量。

④完整性:对非授权人访问软件或数据行为的控制程度。

⑤可使用性:用户熟悉、使用及准备输入和解释输出所需工作量的大小。

(2)面向软件产品修改

①可维护性:找到并改正程序中的一个错误所需代价。

②可测试性:测试软件以确保其能够执行预定功能所需工作量。

③灵活性:修改可运行程序所需要付出的努力。

(3)面向软件产品适应

①可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行所需的工作量。

②可重用性:一个软件(或软件的部件)能再次用于其他相关应用的程度。

③连接性:将一个系统耦合到另一个系统所需的工作量。