预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件工程复习题 ——考试时间地点:19周周三E204、E2035,6节 1.软件的定义? 软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 2.软件危机的定义,表现、原因是什么? 软件危机: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机的表现: (1)对软件开发成本和进度的估计常常很不准确。 (2)经常出现用户对“已完成的”软件系统功能不满意的现象。 (3)软件产品的质量往往达不到要求。 (4)软件通常不可维护。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件危机的原因: 客观原因:与软件本身的特点有关 1、软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。软件缺乏“可见性”。 2、软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。软件缺乏“可插拔性”。 3、如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,必须有严格而科学的管理。 主观原因:与软件开发与维护的方法不正确也有关 目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,这可能是使软件问题发展成软件危机的主要原因。 4、忽视需求分析只重视编码与运行。 1)编写程序所需的工作量只占软件开发全部工作量的10%~20%。 2)在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。 5、忽视文档只重视程序 必须认识到一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。必须清除只重视程序而忽视软件配置其余成分的糊涂观念。 6、轻视维护是一个最大的错误。 统计数据表明,实际上用于软件维护的费用占软件总费用的55%~70%。 3.软件工程的定义、软件工程方法学三要素是什么? 软件工程定义: 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,用于经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程方法学的3个要素:方法、工具和过程 方法是:完成软件开发的各项任务的技术方法,回答“怎样做”的问题; 工具是:为运用方法而提供的自动的或半自动的软件工程支撑环境;(用什么做) 过程是:为了达到给定目标所实施的一系列步骤,是人们使用相应的规程、方法、工具和设备将原材料转化成面向客户的产品所做的事情。简单的说:就是什么时间做什么。 4.软件工程有哪七大原理? (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 *(8)二八定律 5.软件生命周期有哪三大阶段八小阶段? 软件生命周期由软件定义、软件开发和软件维护3个时期组成。 (1)问题定义 (2)可行性研究 (3)需求分析 (4)总体设计 (5)详细设计 (6)编码和单元测试 (7)综合测试 (8)软件维护 6.常见的软件开发模型有哪些?各有什么特点、优缺点? 瀑布模型 特点: (1)阶段间具有顺序性和依赖性 (2)推迟实现的观点 (3)质量保证的观点 优点: (1)可强迫开发人员采用规范的方法(例如,结构化技术); (2)严格地规定了每个阶段必须提交的文档; (3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点: “瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点。事实上,要求用户不经过实践就提出完整准确的需求,在许多情况下都是不切实际的。总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。 快速原型模型 特点: 快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。 优点: 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。 缺点: (1)所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。 (2)使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。 增量模型 特点: 使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成