收藏 分享(赏)

软件工程—方法与实践(许家珆).doc

上传人:cjc2202537 文档编号:275748 上传时间:2018-03-25 格式:DOC 页数:56 大小:171.50KB
下载 相关 举报
软件工程—方法与实践(许家珆).doc_第1页
第1页 / 共56页
软件工程—方法与实践(许家珆).doc_第2页
第2页 / 共56页
软件工程—方法与实践(许家珆).doc_第3页
第3页 / 共56页
软件工程—方法与实践(许家珆).doc_第4页
第4页 / 共56页
软件工程—方法与实践(许家珆).doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、 软件工程理论与实践(第 2 版) 习题答案 习题 答 案 习题一答案 一、选择题 1. 软件的主要特性是(A B C)。 A) 无形 B) 高成本 C) 包括程序和文档 D) 可独立构成计算机系统 2. 软件工程三要素是(B)。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 3. 包含风险分析的软件工程模型是(A)。 A) 螺旋模型 B) 瀑布模型 C) 增量模型 D) 喷泉模型 4. 软件工程的主要目标是(C)。 A) 软件需求 B) 软件设计 C) 风险分析 D) 软件实现 5. 下列属于面向对象开发方法的是(A B C D)。 A) Bo

2、och B) UML C) Coad D) OMT 6. 软件危机的主要表现是(B D)。 A) 软件成本太高 B) 软件产品的质量低劣 C) 软件开发人员明显不足 D) 软件生产率低下 7. 软件开发方法的主要工作模型有(A B C) A) 螺旋模型 B) 循环模型 C) 瀑布模型 D) 专家模型 8. 软件工程的目标有(A B C)。 A) 易于维护 B) 低的开发成本 C) 高性能 D) 短的开发期 9. 软件工程学的目的和意义是(A D) 。 A) 应用科学的方法和工程化的规范管理来指导软件开发 B) 克服软件危机 C) 作好软件开发的培训工作 D) 以较低的成本开发出高质量的软件 二

3、、 判断题 1. 软件就是程序,编写软件就是编写程序。() 2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。() 3. 结构化方法的工作模型是使用螺旋模型进行开发。() 4. 结构化方法和 OO 方法都是一种面向过程的软件开发方法。 () 5. 原型化开发方法包括生成原型和实现原型两个步骤。() 6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( ) 7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。() 8. 软件工具的作用是为了延长软件产品的寿命。() 9. 软件工程过程应该以软件设计为中心,关键是编写程序。() 10. RCP 法

4、与 RSP 法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而 后者原型将被废弃。() 软件工程理论与实践(第 2 版) 习题答案 三、简答题 1. 软件产品的特性是什么? 答:软件是一种逻辑产品,具有无形性; 软件产品的生产主要是研制;主要是脑力劳动; 软件不存在磨损和老化问题,但存在退化问题; 软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; 软件具有 “复杂性”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答: 程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方

5、法。 程序系统阶段。 硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。 软件特征:程序员数量猛增,开发人员素质低。 软件工程阶段。 硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱 软件危机。 3. 什么是软件危机?其产生的原因是什么? 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需 求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展 的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财

6、力,而在开发过程中就夭折。 软件危机主要表现在两个方面: (1) 软件产品质量低劣,甚至开发过程就夭折。 (2) 软件生产率低,不能满足需要。 4. 什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点? 答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。软件过程模 型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又 称为软件开发模型。 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。 瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若 干阶段,它简单易用,在消除非结构

7、化软件、降低软件的复杂性、促进软件开发工程化方面起了很 大的作用。但在软件开发实践中也逐渐暴露出它的缺点。它将一个充满回溯的软件开发过程硬性分 割为几个阶段,无法解决软件需求不明确或者变动的问题。 增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐 增模型和基于原型的快速原型模型。该模型具有较大的灵活性,适合于软件需求不明确、设计方案 有一定风险的软件项目。 螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几 个螺旋周期,每个螺旋周期可分为 4 个工作步骤:制定计划、风险分析、实施工程、客户评估。 喷泉模型用于采用对象技术的软件开发项

8、目。它克服了瀑布模型不支持软件重用和多项开发 活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有 4 个阶段,即分 析、系统设计、软件设计和实现。各阶段相互重叠,以分析为基础,资源消耗成塔形,从高层返回 低层无资源消耗。强调增量开发,是对象驱动的过程,反映了对象的开发和重用过程。 基于知识的模型也称为智能模型。通过领域的专家系统,可使需求说明更加完整、准确和无 二义性。通过软件工程知识和特定应用领域的知识和规则的应用来提供开发的帮助。 软件工程理论与实践(第 2 版) 习题答案 5. 有哪些主要的软件开发方法? 答:主要的软件开发方法有:结构化开发方法、原型化开发方法和面

9、向对象的开发方法。6. 软件生存周期各阶段的主要任务是什么? 答:软件生存周期按瀑布模型分为 6 个阶段: 可行性研究与计划 (确定系统的目标和规模,分析项目的可行性); 需求分析与规格说明 (明确系统的规格和要求 ); 设计(包括概要设计和详细设计,将系统分解为模块); 编程(用程序语言实现每个模块,简单容易); 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级); 运行维护 (扩充功能、纠错等 )。 7. 原型化方法的核心是什么?它具有哪些特点? 答:原型化方法的核心是,花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。 强调软件开发人员与用户的不断交互,通过原型的演进

10、不断适应用户任务改变的需求。它是一个循 环的模型。速成原型法按以下步骤循环执行: 快速分析。 构造原型。 运行和评价原型。 修改与改进。 习题二答案 一、 选择题 1. 需求分析的主要目的是(B C)。 A) 系统开发的具体方案 B) 进一步确定用户的需求 C) 解决系统是 “做什么 ”的问题 D) 解决系统是 “如何做 ”的问题 2. 需求分析的主要方法有(C D) 。 A) 形式化分析方法 B) PAD 图描述 C) 结构化分析 (SA)方法 D) OOA 法 3. 面向对象的分析方法主要是建立三类模型,即(D)。 A) 系统模型、 E-R 模型、应用模型 B) 对象模型、动态模型、应用模

11、型 C) - 模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 4. SA 法的主要描述手段有(B) 。 A) 系统流程图和模块图 B) DFD 图、数据词典、加工说明 C) 软件结构图、加工说明 D) 功能结构图、加工说明 5. 画分层 DFD 图的基本原则有 (A C D)。 A) 数据守恒原则 B) 分解的可靠性原则 C) 子、父图平衡的原则 D) 数据流封闭的原则 6. 在 E-R 模型中,包含的基本成分是 (C)。 A) 数据、对象、实体 B) 控制、联系、对象 软件工程理论与实践(第 2 版) 习题答案 C) 实体、联系、属性 D) 实体、属性、联系 7. 画 DFD

12、图的主要目的是 (A D)。 A) 作为需求分析阶段用户与开发者之间交流信息的工具 B) 对系统的数据结构进行描述 C) 对目标系统的层次结构进行描述 D) 作为分析和设计的工具 8. 数据字典是数据流图中所有元素的定义的集合,一般由 (C) 四类条目组成。 A) 数据说明条目、控制流条目、加工条目、数据存储条目 B) 数据流条目、数据项条目、文件条目、加工条目 C) 数据源条目、数据流条目、数据处理条目、数据文件条目 D) 数据流条目、数据文件条目、数据池条目、加工条目 9. 在需求分析阶段主要采用图形工具来描述的原因是(B C)。 A) 图形的信息量大,便于描述规模大的软件系统 B) 图形

13、工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节 C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达 成一致的需求 D) 图形比文字描述简单、形象 二、 判断题 1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。 () 2. SA 法是面向数据流,建立在数据封闭原则上的需求分析方法。 () 3. 需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化。 () 4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务。 () 5. 加工小说明是对系统流程图中的加工进行说明。 () 6. 判定表的优点是容易转换为

14、计算机实现,缺点是不能够描述组合条件。 () 7. 需求分析的主要方法有 SD 法、OOA 法及 HIPO 法等。 () 8. 分层的 DFD 图可以用于可行性分析阶段,描述系统的物理结构。 () 9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。 () 10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、 现实性和有效性。 () 三、 简答题 1. 需求工程包括哪些基本活动?各项基本活动的主要任务是什么? 答:需求工程过程包括如下主要活动: 获取需求。深入实际,在充分理解用户需求的基础上,获取足够多的问题领域的知识,积

15、极与 用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求。需求 获取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等。 需求分析与建模。对已获取的需求进行分析和提炼,进行抽象描述,建立目标系统的概念模型, 需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模 拟、功能需求模拟和非功能需求模拟等。进一步对所建立的模型(原型)进行分析。需求模型的表现 形式有自然语言、半形式化(如图、表、结构化英语等) 和形式化表示等三种。 需求规格说明。对需求模型进行精确的、形式化的描述,为计算机系统的实现提供基础

16、。 确认需求。以需求规格说明为基础输入,通过符号执行、模拟或快速原型等方法,分析和验证 需求规格说明的正确性和可行性,确保需求说明准确、完整地表达系统的主要特性,就是对需求规格 说明与用户达成一致。其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方 软件工程理论与实践(第 2 版) 习题答案 法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。 需求管理。在整个需求工程过程中,贯穿了需求管理活动。需求管理主要包括跟踪和管理需求 变化,支持系统的需求演进。由于客户的需要总是不断(连续)增长的,但一般的软件开发又总是落 后于客户需求的增长,如何管理需求的进化(变化

17、) 就成为软件管理的首要问题。对于传统的变化管理 过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品 线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的 推理。进化需求是十分必要的。 2简述抽取需求的主要方法,并比较它们的特点。 面谈法。这是一种重要而直接简单,随时可使用的发现和获取需求的方法。面谈的对象主要 有用户和领域专家:与用户面谈主要了解和提取需求,与领域专家面谈,是一个对领域知识的学习 和转换过程。使用该方法时应注意面谈前要充分准备,面谈后认真分析总结,同时注意掌握面谈的人 际交流技巧,才能取得好的效果。 问

18、卷法调查法。通过采用向用户发问卷调查表的方式,达到彻底弄清项目需求的一种需求获 取方法。这是一种从多个用户处收集需求信息的有效方式,是对面谈法的补充。 会议讨论法。所谓会议讨论法,是指开发方和用户方召开若干次需求讨论会议,达到彻底弄 清项目需求的一种需求获取方法。这种方法适合于开发方不清楚项目需求的情况。 原型法。对于某些试验性、探索性的项目,更是难于得到一个准确、无二义性的需求。而原 型化方法 (Prototyping Method )是获取这一类项目需求的有效方法。 面向用例的方法。分析建立“用例”的过程,也就是提取需求的过程。 在实际应用中,常常将以上方法进行综合应用。 3. 客户的需要

19、总是不断地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理 需求的进化就成为软件进化的首要问题。请说明需求变更的管理过程。 答:需求变更的管理是需求管理的核心内容。其主要任务是对系统需求变更进行跟踪和控制。 对传统的变化管理过程来说,其基本内容包括软件配置、软件基线和变更审查等。目前推出的新的 管理方法有软件家族法,即软件产品线方法及多视点方法等。下图描述了需求变更的管理过程。 识别出 修正后 的问题 问题分析和 变更分析和 的需求 变更实现 变更描述 成本计算 4. M 公司的软件产品以实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取 得了一些成功。若你作为一名管理

20、人员刚加入 M 公司,你认为快速原型法对公司的软件开发更加优 越,请向公司副总裁写一份报告阐明你的理由。切记:副总裁不喜欢报告长度超过一页。 参考答案提示: 应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特 别适合于开发探索型、实验型的软件。 5. 如何画分层数据流图?有哪些基本原则? 答:总的原则是:至顶而下,逐层分解(画分层数据流图) 。逐层分解的画法可以控制每一层的 复杂度。 顶层:将整个系统作为一个加工,描述系统边界(输入与输出) 。 中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解。 底层:由不再进行分解的基本加工组成。 软件工程理论与

21、实践(第 2 版) 习题答案 画分层数据流图的基本原则有: 数据守恒与数据封闭原则。 加工分解的原则。 子图与 父图“平衡”的原则。 合理使用文件的原则。 6. 加工小说明有哪些描述方法?它们各有何优缺点?为什么不采用自然语言进行描述?答:主要的描述方法有三种;结构化语言、判定表和判定树。 结构化语言:介于自然语言和形式语言(如谓词逻辑 )之间的的一种半形式语言,它是自然语 言的一个受限制的子集。是在自然语言的基础上加上一些约束,一般分为两层结构:外层语法较具 体,为控制结构(顺序、选择、循环) ;内层较灵活,表达“做什么”。 常用结构化英语或结构化汉语表示,精确、简明扼要、文体灵活。结构化语

22、言特点:简单,易 学,少二义性,但不好处理组合条件。 判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。判定表是一种二维 的表格,常用于较复杂的组合条件。通常由四部分组成,如教材表 2-2 所示。对用结构化语言不易 处理的较复杂的组合条件问题,可使用判定表。 判定树:本质上与判定表相同,图形表示更易于理解。描述一般组合条件较清晰,但不易输 入计算机。 7. 考察下图中子图、父图的平衡关系。 图 1 图 2 参考答案: 显然,图 1 中子图与父图不平衡。 图 2 中,如果有如下数据条目: 订货单=客户+账号+数量 则子、父图平衡。 8. 画出银行取款过程的用例图。问题描述为:储户用

23、存折取款,首先填写取款单,根据“ 银 行卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”, 修改相应数据,并更新“银行卡”,同时发出付款通知,出纳向储户付款。 参考答案: 分析所给出的需求,确定角色为:储户、存款数据库、存折、出纳。用例为:填写取款单、验 证取款单与存折、银行卡管理、数据库管理、付款。 软件工程理论与实践(第 2 版) 习题答案 付款 填写取款单 储户 出纳 验证取款单与存折 数据库管理 存款数据库 存折 银行卡管理 银行取款系统的高层用例图 习题三答案 一、 选择题 1. 模块的基本特征是(A C) 。 A) 外部特征(输入/输出、功能)

24、 B) 内部特征(输入/输出、功能) C) 内部特征(局部数据、代码) D) 外部特征( 局部数据、代码 ) 2. SD 方法的设计总则是(C D)。 A) 程序简洁、操作方便 B) 结构清晰、合理 C) 模块内聚性强 D) 模块之间耦合度低 3. 软件设计的主要任务是(A B D)。 A) 将分析阶段获得的需求说明转换为计算机中可实现的系统; B) 完成系统的数据结构和程序结构设计 C) 完成模块的编码和测试 D) 对模块内部的过程进行设计 4. 设计阶段应达到的目标有(A D) 。 A) 提高可靠性和可维护性 B) 提高应用范围 C) 结构清晰 D) 提高可理解性和效率 5. 从工程管理的

25、角度来看,软件设计分(D)两步完成。 A) 系统分析、模块设计 B) 详细设计、总体设计 C) 模块设计、详细设计 D) 总体设计、详细设计 6. 模块独立性准则定性指标(B D)来衡量。 A) 分解度 B) 耦合度 C) 屏蔽性 D) 内聚性 7. 用户界面设计的任务包括(A B C)。 A) 确定用户界面类型 B) 建立任务模型 C) 建立用户模型 D) 建立功能模型 软件工程理论与实践(第 2 版) 习题答案 二、判断题 1. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。 () 2. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用。

26、() 3. 信息隐蔽原则有利于提高模块的内聚性。() 4. 中心变换型的 DFD 图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务 分析技术得到初始的模块结构图。() 5. SD 法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。 () 6. 当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。() 三、简答题 1. 请解释为什么需要体系结构设计。 答:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的 描述、元素间的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定 了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一 些设计决策的基本原理。良好的体系结构是普遍适用的,它可以高效地处理各种各样的个体需求。 2. 集中式模型和分布式模型相比各有什么优缺点? 答:以集中式的仓库模型为例。其主要优点: (1) 数据由某个子系统产生,并且被存储到仓库中,以便为另外一些子系统共享; (2) 由于中央集中控制的缘故,共享数据能得到有效的管理,各子系统之间不需要通过复杂的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报