《软件工程(第五版) 习题及答案》由会员分享,可在线阅读,更多相关《软件工程(第五版) 习题及答案(43页珍藏版)》请在金锄头文库上搜索。
1、1 软件工程 第五版 习题参考答案 第 1 章 一 判断题 1 软件的维护与硬件维护本质上是相同的 2 软件在运行和使用中也存在退化问题 3 软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言 4 软件同其他事物一样 有孕育 诞生 成长 成熟和衰亡的生存过程 5 文字处理软件 Word 属于系统软件 应用软件 6 原型是软件的一个早期可运行的版本 它反映最终系统的部分重要特性 7 软件开发过程中 一个错误发现得越晚 为改正它所付出的代价就越大 8 快速原型模型对软件开发人员的水平要求不高 9 喷泉模型适合于面向对象的软件开发 10 面向对象开发方法的主要缺点是在适应需求变化方面不够
2、灵活 二 选择题 1 软件是一种 C C A 程序B 数据C 逻辑产品D 物理产品 2 软件开发方法是 A A A 指导软件开发的一系列规则和约定B 软件开发的步骤 C 软件开发的技术D 软件开发的思想 3 软件生存周期中花费最多的阶段是 D D A 详细设计B 软件编码 最少 C 软件测试D 软件维护 4 软件工程的三要素不包括 D D A 工具B 过程C 方法D 环境 5 在软件生存周期中 能准确地确定 软件系统必须做什么 的阶段是 D D A 总体设计B 详细设计 怎么做 C 可行性研究 能不能做 D 需求分析 6 瀑布模型本质上是一种 A A 模型 A 线性顺序B 顺序迭代 C 线性迭
3、代D 能及早见到产品的 7 瀑布模型突出的缺点是不适应 D D 的变动 A 算法B 程序语言C 平台D 用户需求 8 在软件开发模型中 提出最早 应用最广泛的模型是 A A A 瀑布模型B 喷泉模型 C 快速原型模型D 螺旋模型 9 瀑布模型不适合用于 A A 的软件开发 A 需求模糊不清B 用户不能参与开发 C 用户对计算机不了解D 开发人员对业务知识不熟悉 10 快速原型的主要优点不包括 D D A 能让用户参与开发 给出反馈 B 尽早把需求分析清楚 以降低风险 2 C 尽早地发现问题 纠正错误 D 对软件分析设计人员的素质要求不高 11 快速原型的主要问题在于 A A A 缺乏支持原型开
4、发的工具B 要严格控制原型构造的迭代 C 终端用户对原型不能理解D 软件的测试和文档更新困难 12 螺旋模型是一种将瀑布模型和 A A 结合起来的软件开发模型 A 增量模型B 专家系统 C 喷泉模型D 变换模型 13 在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导 致了 A A A 软件危机B 软件工程 C 程序设计革命D 结构化程序设计 14 集成化开发环境中的环境集成机制不包括 D D A 数据集成B 控制集成 C 界面集成D 服务集成 15 软件工程的出现是由于 A A A 软件危机的出现B 计算机硬件技术的发展 C 软件社会化的需要D 计算机软件技术的发展 三 简答
5、题 1 软件通过你自己使用计算机的经历和对计算机的认识分辨软件和程序的差别 指出区别 的关键点 答 软件包括程序 数据及其相关文档的完整集合 其中 程序是按事先设计的功能和性 能要求执行的指令序列 数据是使程序能够正确地处理信息的数据结构 文档是与程序开发 维护和使用有关的图文资料 软件包括程序 程序只是软件的一部分 2 简述软件危机产生的原因以及避免的方法 答 软件危机的产生有两方面因素 一方面与软件本身的抽象性和复杂性有关 另一方面 则与软件开发和维护过程中使用的技术和方法有关 这是主观原因 为了解决软件危机 既要有技术措施 好的方法和工具 也要有组织管理措施 1 使用好的软件开发技术和方
6、法 2 使用好的软件开发工具 提高软件生产率 3 有良好 的组织 严密的管理 各方面人员相互配合共同完成任务 3 简述软件工程在软件开发中的作用和意义 答 软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性 软件工程的目 标是实现软件的优质高产 软件工程的目的是在经费的预算范围内 按期交付出用户满意的 质量合格的软件产品 4 软件生命周期概念对软件的开发有哪些指导作用 3 答 软件生命周期是软件工程的一个重要的概念 把整个软件生命周期划分为若干个较小 的阶段 每个阶段都有相对独立的任务和完成任务的步骤和方法 然后逐步完成各个阶段的 任务 这有利于软件开发过程的组织和管理 从而降低了整
7、个软件开发过程的困难程度 从 而使规模庞大 结构复杂和管理复杂的软件开发变得容易控制和管理 5 分析瀑布模型和螺旋模型的异同 比较它们的适用场合 答 瀑布模型是线性模型 是整体开发模型 文档驱动的模型 每一阶段必须完成指定的 文档 需求明确的中 小型软件开发 不适宜需求模糊或多变的应用软件开发 螺旋模型 是典型迭代模型 是风险驱动模型 可用于面向对象开发 适宜风险较大的大型软件开发 第 2 章 一 选择题 1 系统流程图是一种传统工具 用于描绘 D D A 逻辑模型B 程序结构 C 体系结构D 物理系统 2 软件可行性研究的目的是 C C A 证明软件开发项目可行 B 证明软件开发项目不可行
8、C 阐述软件开发项目值得或不值得做 D 为了确定软件开发项目要不要做 3 技术可行性研究要解决的问题是 A A A 从技术方面说明项目是否可行 B 从技术上定义项目要解决的问题 C 给出项目开发可行的技术路线 D 给出精简的项目需求设计报告 4 可行性研究的步骤首先是 A A A 确定项目目标 即对要解决的问题进行定义 B 研究项目要求 C 对项目目标进行可行性分析 D 给出可行的解决方案 5 可行性研究的任务不包括 D D A 技术可行性B 经济可行性 C 法律可行性D 政治可行性 6 系统流程图是描述 A A 的工具 A 物理系统B 逻辑系统 C 体系系统D 程序系统 7 可行性研究实质上
9、是要进行一次 A A 需求分析 设计过程 A 简化 压缩的B 详细的 C 彻底的D 深入的 8 系统流程图的符号不包括 D D A B C D 4 二 简答题 1 软件开发的早期 为什么要进行可行性研究 目标的可行性研究有几个方面 答 许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决 如果开发人员 没有尽早停止没有可行解决方案的开发项目 就会造成时间 资金 人力 物力的浪费 为 了降低软件开发失败的可能性 需要进行软件可行性研究 可行性研究要从经济可行性 技 术可行性 运行可行性和法律可行性四方面进行 2 简述可行性研究的步骤 答 1 审核系统的规模和目标 2 分析研究现行系统 3
10、 设计新系统的高层逻辑模 型 4 获得并比较可行的方案 5 撰写可行性研究报告 3 某航空公司为了方便旅客 拟开发一个机票预订系统 将旅客的信息 姓名 性别 工 作单位 身份证号 旅行时间 旅行目的地等 输入该系统后 系统自动为旅客安排航班 打印出取票通知和票务账单 旅客可在航班的前一天凭取票通知和票务账单交款取票 系统 校对无误后即打印出机票给旅客 要求 1 提出问题定义 2 分析此系统的可行性 3 画出系统流程图 答 1 问题定义 航运公司机票预订系统问题定义 系统目标和范围说明书 1 项目名称 X 航运公司机票预订系统 2 背景 目前 由旅客人工到航运公司排队购票 费时 费力 管理工作量
11、大 手续 繁琐效率低 制约了公司业务的发展 3 项目目标 建立一个网络化的机票预订系统 4 项目范围 软件开发费用不超过 X 万元 5 初步设想 建议在系统中完成安排航班 打印取票通知 打印票务账单 打印机票 等主要功能 6 可行性研究 建议进行大约 X 周的可行性研究 研究费用不超过 X 元 2 可行性分析 技术可行性 使用现有的技术能够实现此系统 在现有资源 包括硬件资源 软件资源 技术人员的技术水平和已有的工作基础 条件下 技术风险不大 项目可以实现 经济可行性 此系统能够方便旅客订票 具有一定的经济效益和社会效益 法律可行性 此项目开发要符合航运系统相关要求 操作可行性 现有制度 人员
12、素质 操作方式可行 3 系统流程图 5 第 3 章 一 判断题 1 软件需求分析阶段要确定软件系统要 做什么 2 软件需求规格说明书可作为可行性研究的依据 3 需求分析员可以参加最后的需求评审工作 4 画数据流图时可以加少量的控制流 使加工之间有时序的关系 5 结构化分析模型的核心是数据词典 6 在数据流图中 带有箭头的线段表示的是控制流 数据流 7 在软件生产过程中 需求信息的来源是项目经理 用户 8 需求分析阶段的任务是确定软件的功能 做什么 二 选择题 1 需求分析最终结果是产生 B B 6 A 项目开发计划B 需求规格说明书 C 设计说明书D 可行性分析报告 2 数据流图 DFD 是
13、A A 方法中用于表示系统的逻辑模型的一种图形工具 A SAB SDC SPD SC 3 需求规格说明书的作用不包括 C C A 软件验收的依据 B 用户与开发人员对软件要做什么的共同理解 C 软件可行性研究的依据 D 软件设计的依据 4 数据词典是用来定义 D D 中的各个成分的具体含义 A 流程图B 功能结构图 C 结构图D 数据流图 5 结构化分析方法 SA 是一种面向 B B 的分析方法 A 数据结构B 数据流 C 结构化数据系统D 对象 6 在数据词典中 以下哪一项表示允许重复 0 至任意次 A A A B 0 C 0 nD n 7 以下数据流图符号中哪一个表示加工 B B A B
14、C D 8 软件开发的需求活动 其主要任务是 D D A 给出软件解决方案B 给出系统模块结构 7 C 定义模块算法D 定义需求并建立系统模型 9 结构化分析的核心是 A A A 自顶向下的分解B 用 DFD 建模 C 用 DD 描述数据需求D 自底向上的抽象 10 需求分析的任务是 A A A 正确说明让软件 做什么 B 用 DFD 建模 C 用 DD 建立数学模型D 给出需求规格说明书 11 对于分层的 DFD 父图与子图的平衡是指 B B A 父图与子图的输入输出数据流必须相同 B 子图必须继承父图的输入与输出流 C 父图与子图相应的输入输出数据流名字保持一致 D 子图可以自己的输入输出
15、数据流 12 DFD 的每个加工都必须有 A A A 一个输入和输出数据流B 一个输入数据流 C 一个输出数据流D 一个输入或输出数据流 13 需求分析是分析员经了解用户的要求 认真细致地调研 分析 最终建立目 标系统的逻辑模型并写出 B B 的过程 A 模块说明书B 软件规格说明书 C 项目开发计划D 合同文档 14 结构化分析方法是以数据流图 D D 和加工说明等描述工具 即用直观的图和简 洁的语言来描述软件系统模型 A DFD 图B PAD 图C IPO 图D DD 8 15 软件需求分析阶段的工作 可以分为四个方面 需求获取 需求分析 编写需 求规格说明书以及 B B A 阶段性报告B
16、 需求评估 C 总结D 都不正确 16 数据流图用于抽象描述一个软件的逻辑模型 数据流图由一些特定的图符构 成 下面图符名称标识的图符不属于数据流图合法图符的是 A A A 控制流B 加工 C 数据存储D 源点和终点 17 DFD 用于描述系统的 D D A 数据结构B 控制流程 C 基本加工D 软件功能 18 数据词典不包括的条目是 C C A 数据项B 数据流 C 数据类型D 数据加工 19 软件需求分析一般应确定的是用户对软件的 D D A 功能需求B 非功能需求 C 性能需求D 功能需求和非功能需求 20 在数据流图中 有名字和方向的成分是 B B A 信息流B 数据流 C 控制流D 信号流 三 简答题 1 需求分析的任务是什么 怎样理解 做什么 和 怎么做 答 需求分析的基本任务是要准确地理解旧系统 定义新系统的目标 为了满足用户需要 回答 系统必须做什么 的问题 即确定系统必须完成哪些工作 对新系统提出完整 准确 清晰 具体的要求 9 具体任务是 明确问题定义 导出软件的逻辑模型 编写软件需求规格说明书 做什么 即深入描述软件的功能和性能 确定软件设计的限制和软件与其他系统