当前位置:文档之家› 软件工程 习题参考答案

软件工程 习题参考答案

1.3 什么是软件危机?它有哪些主要表现?为什么会产生软件危机?
答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重 问题。 (2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费 预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了 解以及开发人员和用户又未能及时交换意见,导致已完成的软件不能满足用 户的需要;软件产品质量差,可靠性得不到保证;软件产品可维护性差;软 件成本在计算机系统总成本中所占的比例逐年上升,软件的发展跟不上硬件 的发展;软件开发生产率提高的速度远远跟不上计算机应用速度普及深入趋 势,软件发展跟不上用户的要求。 (3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也 与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是 计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开 发和维护带来客观的困难;软件开发的管理困难。由于软件规模大、结构复 杂、又具有无形性,导致管理困难,进度控制困难,可靠性无法保证;软件 开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大;软件 开发技术落后;生产方式落后;开发工具落后,生产效率提高缓慢。另外软 件开发人员忽视需求分析的重要性,轻视软件维护也是造成软件危机的原 因。
哪些方面需要改进。 符合主流的发展;快速
反复改进,最终建立 建 立 起 来 的 系 统 结 构
完全符合用户需求 加上连续的修改可能
的新系统。克服瀑布 会导致产品质量低下。
模型的缺点,减少由
于软件需求不明确
带来的开发风险。这
种模型适合预先不
能确切定义需求的
软件系统的开发。
有较大的灵活性。能 够在较短的时间内 向用户提交一些有 用的工作产品。开发 出一部分,向用户展 示一部分,可让用户
各个构件是逐渐并入 已有的软件体系结构 中的,所以加入构件必 须不破坏已构造好的 系统部分,冒所有构件 集成不到一起的风险。
及早看到部分软件,
及早发现问题。整个
系统是由一个个构
件集成在一起的,当
需求变更时只变更
部分部件,而不必影
响整个系统。
加入了瀑布模型与 增量模型都忽略了 的风险分析,使用原 型及其他方法来尽 量降低风险
只有当分析员能够做 出准确的需求分析时, 才能得到预期的正确 结果。它是一种理想的 线性开发模式,缺乏灵 活性,特别是无法解决 软件需求不明确或不 准确的问题。
通过实践让用户了 在实际中开发原型系
解未来目标系统的 统使用的语言效率有
概貌,以便判断哪些 时会很低,所选用的开
功能是符合需要的, 发 技 术 和 工 具 不 一 定
1.5 何谓面向对象软件工程?简述它和传统软件工程的区别与联系?
答:(1)以面向对象程序设计为基础的软件工程。 (2)传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面
向对象程序设计为基础。与面向过程的软件工程的开发思想相比,面向对象开发 方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心,围绕对象 展开系统的分析与设计工作。在开发过程方面,面向对象软件工程和传统软件工 程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段 的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开 发软件确定“类与对象”一般在需求分析阶段进行,设计阶段则主要完成对象内 部的详细设计;而在传统软件工程中,将软件设计划分为“总体设计”和“详细 设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即: 传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和 测试;面向对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面 向对象的编码和测试。
1.4 什么是软件工程?怎样利用软件工程消除软件危机?
答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”
的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技 术和方法;要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务, 充分认识软件开发不是某种个体劳动的神秘技巧;应该开发和使用好的软件工 具,从而有效提高软件生产率。采用“工程化”的思想做指导来解决软件研究中 面临的困难和混乱。
该模型需要有相当丰 富的风险评估经验和 这方面的专门技术,这 使该模型的应用受到 一定限制。
适用范围 适合于需求很明 确的软件项目开 发的模型,对 于 经常变化的项 目而言,瀑布模 型毫无价值。
适合于一些需求 可变、模糊不定 的软件系统的开 发
适合于软件要求 不明确,设计方 案有一定风险的 软件项目。
第一章
1.1 什么是软件?软件和程序的区别是什么?
答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运 行程序时所必须的数据。 ⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程 序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编 码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文 档,仅有程序是不能称之为软件产品的。
1.6 什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种
模型的使用范围
答:(1) 软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活 动如何执行的模型,是软件过程、活动、任务的结构框架。
瀑布模型 快速原型 模型
增量模型
螺旋模型Biblioteka 优点缺点能清晰直观地表达 软件开发全过程,明 确规定要完成的主 要活动和任务,用来 作为软件项目工作 的基础。
1.2 什么是软件生存周期?划分生存周期的主要原则是什么?
答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软 件报废或停止使用为止所经历的时间。 (2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务 的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的 联系,有利于软件开发过程的组织管理。
相关主题