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

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

  摘要

一、名词解释

1. 数据字典

【答案】数据字典(DD )是用来定义数据流图中的各个成分具体含义的。它以一种准确的、无二义性的说明方 式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

二、简答题

2. 试述软件危机产生的原因。

【答案】软件危机产生的原因有:

(1)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。

(2)软件开发管理困难。由于软件规模大,结构复杂,又具有无形性的特点,因此导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。

(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多、周期长,费用上升很快。

(4)生产方式落后。仍然采用个体手工方式开发,根据个人习惯爱好工作,无章可循,无规范可依据,仅靠言传身教方式工作。

(5)软件开发技术落后。

(6)软件开发工具落后,生产率的提高速度缓慢。

3. 瀑布模型有哪些局限性?

【答案】(1)各阶段之间存在着严格的顺序性,特别强调预先定义需求的重要性,在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地实现这些需求。但是实际项目很少是遵循着这种线性顺序进行的。

(2)虽然瀑布模型也允许迭代,但这种改变往往给项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。

(3)传统的瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种思想的、线性的开发过程,缺乏灵活性,不适应实际的开发过程。

4. 试述软件项目计划内容。

【答案】(1)范围

对该软件项目的综合描述,定义其所要做的工作以及性能限制,它包括项目目标、主要功能、

性能限制、系统接口、特殊要求、开发概述等。

(2)资源

包括人力资源、硬件资源、软件资源及其他资源。

(3)进度安排

进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大的区别,其主要的方法有:工程网络图、Gantt 图、任务资源表等。

(4)成本估算

为使开发项目能在规定的时间内完成,且不超过预算,成本估算是很重要的。软件成本估算是一门不成熟的技术,国外已有的技术只能作为我们的借鉴。

(5)培训计划

为用户各级人员制定培训计划。

5. 有哪些主要的软件开发方法?

【答案】主要的软件开发方法有以下几种:

(1)结构化开发方法

结构化开发方法是用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析和设计的方法。它是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

(2)Jackson (JSP 、JSD )方法

Jackson 方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整 的程序结构图。它是一种面向数据结构的软件设计方法,对输入、输出结构明确的中小型系统特别有效。

(3)原型化开发方法

原型化开发是软件开发的一种常用方法。开发人员对用户提出的问题进行总结,就系统的主要需求取得一致 意见后,开发出一个原型并运行之,然后反复对原型进行修改,使之逐步完善,直到用户对系统完全满意为止。

(4)维也纳开发方法(VDM )

VDM 是一个基于模型的方法,它的主要思想是将软件系统当作模型来给予描述,具体说就是把软件的输入 /输出看作模型对象,而这些对象在计算机内的状态可看作为该模型在对象上的操作。

(5)面向对象的开发方法

面向对象方法(Object-Oriented Method )是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系 统方法,简称OO (Object-Oriented )方法,是建立在“对象”概念基础上的方法学。

6. 需求分析方法应遵循的原则是什么?

【答案】(1)必须能够表达和理解问题的数据域及功能域

数据域包括数据流(即数据通过一个系统时的变化方式)、数据内容和数据结构,而功能域反映上述三方面的控制信息。

(2)可以把一个复杂问题按功能进行分解并可逐层细化

通常软件要处理的问题如果太大、太复杂就很难理解,划分成几部分,并确定各部分间的接口,就可完成整体功能。在需求分析过程中,软件领域中的数据、功能、行为都可以划分。

(3)建模

建立模型可以帮助分析人员更好地理解软件系统的信息、功能、行为,这些模型也是软件设计的基础。

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

【答案】(1)系统定义

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

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

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

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

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

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

(4)设计方案

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

(5)推荐可行的方案

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

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

将上述可行性研究过程的结果写成相应的文档,即可行性研究报告,提请用户和使用部门仔