2017年湖南师范大学软件工程之软件工程导论考研复试核心题库
● 摘要
一、名词解释
1. 问题分析图PAD
【答案】问题分析图(PAD )是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将其翻译成 程序代码比较容易。它既可以用来表示程序逻辑,也可以用来描述数据结构,支持结构化程序设计(SP )方法, 仅具有顺序、选择、循环三类基本成分。
二、简答题
2. 试述软件项目计划内容。
【答案】(1)范围
对该软件项目的综合描述,定义其所要做的工作以及性能限制,它包括项目目标、主要功能、性能限制、系统接口、特殊要求、开发概述等。
(2)资源
包括人力资源、硬件资源、软件资源及其他资源。
(3)进度安排
进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大的区别,其主要的方法有:工程网络图、Gantt 图、任务资源表等。
(4)成本估算
为使开发项目能在规定的时间内完成,且不超过预算,成本估算是很重要的。软件成本估算是一门不成熟的技术,国外已有的技术只能作为我们的借鉴。
(5)培训计划
为用户各级人员制定培训计划。
3. 软件开发成本估算方法有哪些?
【答案】(1)自顶向下估算方法
①定义
估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作 量),然后把它们按阶段、步骤和工作单元进行分配。
②优点
自顶向下估算方法的主要优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和配置管理之类的事务成本估算,且估算工作量小、速度快。
③缺点
它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难会使成本増加。
(2)自底向上估算方法
①定义
自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发工作量。
②优点
这种方法的优点是对每一部分的估算工作交给负责该部分工作的人员来做,所以估算较为准确。
③缺点
其缺点是其估算往往缺少如软件开发有关的系统级工作量,如集成、配置管理、质量管理、项目管理等,所以估算往往偏低。
(3)差别估算方法
①定义
差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。
②优点
该方法的优点是可以提高估算的准确度。
③缺点
该方法的缺点是不容易明确“差别”的界限。
4. 什么是软件生存周期模型?有哪些主要模型?
【答案】(1)软件生存周期模型的定义
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
(2)软件生存周期模型的分类
主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
5. 什么是软件危机?软件危机表现在哪些方面?
【答案】(1)软件危机的定义
在计算机软件的开发和维护过程中所遇到的一系列严重问题,长期找不到解决这些问题的办法,使问题逐渐积累起来,形成了尖锐的矛盾,从而导致了软件危机。
(2)软件危机的表现
①对于软件开发的成本和进度的估计很不准确。由于缺乏软件开发的经验和软件开发数据的积累,使得很难制定出合理有效的开发工作计划。
②开发的软件产品不能完全满足用户要求,用户对已完成开发的软件系统不满意的现象常常
发生。
③开发的软件可靠性差。
④软件的可维护性差。
⑤软件通常没有适当的文档。
⑥软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
6. 什么是事件?
【答案】事件是发生在某一个时问点的一件事,例如,用户单击左边按钮,或者某次航班从北京出发。
7. 简要叙述软件工程目标和内容。
【答案】(1)软件工程的目标
软件工程的目的是成功地建造一个大型软件系统,该软件系统具有如下特点:
①付出的开发成本较低;
②达到了要求的软件功能;
③取得了较好的软件性能;
④开发的软件易于移植;
⑤需要较低的维护费用;
⑥能够按时完成开发任务;
⑦及时交付使用;
⑧开发的软件可靠性高。
(2)软件工程的内容
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
①在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具和环境。 ②在软件开发管理方面,主要是研究软件管理学、软件经济学、软件心理学等。
三、综合应用题
8. 对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h; 经过两个月测试后,,MTTF=15h 总共改正了25个错误(第二个月改正了10个错误)。
要求:
(1)根据上述数据确定MTTF 与测试时间之间的函数关系,画出MTTF 与测试时间t 的关系曲线。在画这 条曲线时做了什么假设?
(2)为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有 多少个错误潜伏在程序中?
【答案】(l )MTTF 与测试时间t 的关系曲线,如图所示。