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

2017年吉林农业大学软件工程(同等学力加试)复试实战预测五套卷

  摘要

一、名词解释

1. 信息隐藏

【答案】信息隐藏在信息安全保障体系的诸多方面发挥着重要作用,它指的是在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对不需要这些信息的其他模块来说,是不能访问的,也是不可见的。

二、简答题

2. 什么是软件可维护性?可维护性度量的特性是什么?

【答案】(1)软件可维护性的定义

软件可维护性是指软件能够被理解、校正、适应及增强功能的容易程度;是软件开发阶段的关键目标。

(2)可维护性度量的特性

影响软件可维护性的因素较多,设计、编码及测试中的疏忽和低劣的软件配置、缺少文档等都对软件的可维护性产生不良的影响。软件可维护性可用可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率这七个质量特性来衡量。对于不同类型的维护,这七种特性的侧重点也不相同。这些质量特性通常体现在软件产品的许多方面。为使每一个相应的措施加以保证,即这些质量要求要渗透到各开发阶段的各个步骤中。因此,软件的可维护性是产品投入运行以前各阶段针对上述各质量特性要求进行开发的最终结果。

3. 好文档的作用和意义是什么?

【答案】(1)好文档的作用

①好的文档能提高程序的可阅读性,但坏的文档比没有文档更坏。

②好的文档意味着简明性,风格的一致性,容易修改。

③程序编码中应该有必要的注释以提高程序的可理解性。

④程序越长、越复杂,则它对文档的需求也越迫切。

(2)好文档的意义

程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。

4. 简述事件如何触发操作。

【答案】(1)如果仅描述事件的模式,那状态图就会失去意义。一个对象的行为描述必须指出在事件的响应中该对象做些什么。在响应所对应的状态和事件过程中,完全依附于状态和变迁的操作。

(2)活动是需要花费时间来完成的操作

①活动与状态有关,一个活动可以是连续的操作,例如在电视机屏幕上显示一幅画面。

②一个活动也可以包括经过一段时间间隔之后的自动终结顺序操作,例如关闭阀门,或者执行一次计算。

③一个状态可以控制一个连续性活动,这种控制可以持续到一个事件使该状态发生变迁时才结束,例如电话铃响。在状态框中用 表示活动A 开始进入该状态并在退出该状态时结束。

表示时序活动A 开始进④一个状态也可以控制时序的活动,例如机器人移动一个零件,这种控制持续到完成该行动,或因另一个事件被中断而提前停止该活动时才结束。相同的记号

入该状态,当完成时停止。

(3)如果一个事件在行动完成之前发生状态的变迀,则该活动被提前终止。例如机器人遇到阻碍而停止移动。这两种使用没有本质的区别:连续性活动可以被看成延续时间不确定的时序活动。

5. 什么是软件工程过程?它包含哪些过程?

【答案】(1)软件工程过程的定义

软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 (2)软件工程过程包含的过程

①获取过程

定义需求方按合同获取一个系统、软件产品或服务的活动。

②供应过程

定义供方向需求方提供合同中的系统、软件产品或服务所需的活动。

③开发过程

定义开发者和机构为了定义和开发软件或提供服务所需的活动。此过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。

④操作过程

定义操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。 ⑤维护过程

定义维护者和机构为了修改和管理软件,使它处于良好运行状态所需要的活动。

⑥管理过程

定义软件工程过程中各项管理活动,包括:项目开始和范围定义、项目管理计划、实施和控制、评审和评价、项目完成等。

⑦支持过程

支持过程对项目的生存周期过程给予支持。它有助于项目的成功并能提高项目的质量。

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

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

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

(2)β (Beta )测试

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

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

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

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

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

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

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

①非渐增式测试

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

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

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

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

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

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

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

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

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

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

三、综合应用题

8. 假设自己被指定为项目负责人,任务是开发一个应用系统,该系统类似于自己的小组以前做过的那些系统,但是规模更大且更复杂一些。客户已经写出了完整的需求文档。应选用哪种项目组结构?为什么?打算采用哪种(些)软件过程模型?为什么?

【答案】(1)由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。