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

2017年吉林农业大学软件工程(同等学力加试)复试仿真模拟三套题

  摘要

一、名词解释

1. 增量模型

【答案】增量模型也称为渐增模型,是一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成 部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。

二、简答题

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

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

(1)开发人员

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

(2)组织机构

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

(3)用户

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

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

(4)控制

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

(5)文档资料

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

3. 可行性研究包括哪些步骤?

【答案】(1)系统定义

为了定义好一个系统,需要分析人员对有关人员进行调查访问,仔细阅读和分析有关的材料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和约束,确保分析人员正在解决的问题确实是要解决的问题。

(2)研究正在运行的系统

①正在运行的系统可能是一个人工操作的系统,也可能是旧的计算机系统,要开发一个新的计算机系统来代替旧的系统。因此,现有的系统是信息的重要来源,要研究它的基本功能,存在什么问题,运行现有系统需要多少费用,对新系统有什么新的功能要求,新系统运行时能否减少使用费用等。

②收集、研究、分析现有系统的文档资料,实地考察现有系统,在考察的基础上,访问有关人员,然后描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。这个系统流程图反映了现有系统的基本功能和处理流程。

(3)导出新系统的逻辑模型

根据对现有系统的分析研究,逐渐明确了新系统的功能、处理流程以及所受的约束,然后使用建立逻辑模型的工具一数据流图和数据字典来描述数据在系统中的流动和处理情况。

(4)设计方案

分析人员建立了新系统的高层逻辑模型之后,要从技术角度出发,提出实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。根据技术可行性、经济可行性、社会可行性对各种方案进行评估,去掉行不通的解法,就得到了可行的解法。

(5)推荐可行的方案

根据上述可行性研究的结果,应该决定该项目是否值得去开发。若值得开发,那么可行性的解决方案是什么,并且说明该方案可行的原因和理由。

(6)编写可行性研究报告

将上述可行性研究过程的结果写成相应的文档,即可行性研究报告,提请用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。

4. 列举出几种情况下运用整体一部分结构而实现或支持的复用。

【答案】(1)在两个或更多的对象类中都有一组属性和服务描述这些对象的一个相同的组成部分。把它们分离出来作为部分对象,建立整体一部分结构,这些属性和服务就被多个类复用,从而简化了它们的描述。

(2)系统中已经定义了某类对象,在定义其他对象时,发现其中一组属性和服务与这个已定义的对象是相同的,那就不必再重复地定义这些属性与服务,只需建立它与前一类对象之间的整体一部分结构。

(3)通过整体一部分结构提取可复用构件,以支持领域范围的复用问题。如果一个对象类中有一组属性和服务描述了该对象的一个独立部分,即使从本系统看并不需这样一个部分对象,只要它是一种在本领域经常使用的对象,就可把它从整体中分离出来作为部分对象,使它的类定义成为一个应用范围较广的可复用构件。

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

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

到“有的放矢”。

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

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

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

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

(6)对发现错误较多的程序段,应进行更深入的测试。有统计数字表明,一段程序中已发现的错误越多,其中存在的错误概率也越大。因为发现错误数越多的程序段,其质量较差。同时在修改错误过程中又容易引入新 的错误。

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

6. 功能模型的特征有哪些?

【答案】(1)功能模型描述了系统的所有计算。

(2)功能模型指出发生了什么,对动态模型确定什么时候发生,而对象模型确定发生的客体。

(3)功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。

(4)功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。

(5)功能模型包括对象模型中值的约束条件。

7. 需求分析有哪些特点?

【答案】(1)用户与开发人员很难进行交流

需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。但是在开始时,开发人员和用户双方都不能准确地提出系统要“做什么?”。由于用户和开发人员互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。

(2)用户的需求是动态变化的

对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和需求分析性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚 者,到开发后期还在提新的要求。

(3)系统变更的代价呈非线性增长

需求分析是软件开发的基础。在该阶段发现一个错误,解决它需要的代价要比等到设计、编程、测试和维护阶段解决小非常多。