软件工程教材习题答案 联系客服

发布时间 : 星期五 文章软件工程教材习题答案更新完毕开始阅读

《软件工程——理论与实践》(第2版)习题答案

法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

⑸ 需求管理。在整个需求工程过程中,贯穿了需求管理活动。需求管理主要包括跟踪和管理需求变化,支持系统的需求演进。由于客户的需要总是不断(连续)增长的,但一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件管理的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。进化需求是十分必要的。

2.简述抽取需求的主要方法,并比较它们的特点。 ⑴面谈法。这是一种重要而直接简单,随时可使用的发现和获取需求的方法。面谈的对象主要有用户和领域专家:与用户面谈主要了解和提取需求,与领域专家面谈,是一个对领域知识的学习和转换过程。使用该方法时应注意面谈前要充分准备,面谈后认真分析总结,同时注意掌握面谈的人际交流技巧,才能取得好的效果。

⑵问卷法调查法。通过采用向用户发问卷调查表的方式,达到彻底弄清项目需求的一种需求获取方法。这是一种从多个用户处收集需求信息的有效方式,是对面谈法的补充。

⑶会议讨论法。所谓会议讨论法,是指开发方和用户方召开若干次需求讨论会议,达到彻底弄清项目需求的一种需求获取方法。这种方法适合于开发方不清楚项目需求的情况。

⑷原型法。对于某些试验性、探索性的项目,更是难于得到一个准确、无二义性的需求。而原型化方法(Prototyping Method)是获取这一类项目需求的有效方法。

⑸面向用例的方法。分析建立“用例”的过程,也就是提取需求的过程。 在实际应用中,常常将以上方法进行综合应用。 3. 客户的需要总是不断地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化就成为软件进化的首要问题。请说明需求变更的管理过程。

答:需求变更的管理是需求管理的核心内容。其主要任务是对系统需求变更进行跟踪和控制。对传统的变化管理过程来说,其基本内容包括软件配置、软件基线和变更审查等。目前推出的新的管理方法有软件家族法,即软件产品线方法及多视点方法等。下图描述了需求变更的管理过程。

识别出 的问题 修正后 的需求

问题分析和 变更描述 变更分析和 成本计算 变更实现

4. M公司的软件产品以实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理人员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由。切记:副总裁不喜欢报告长度超过一页。 参考答案提示:

应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特别适合于开发探索型、实验型的软件。

5. 如何画分层数据流图?有哪些基本原则?

答:总的原则是:至顶而下,逐层分解(画分层数据流图)。逐层分解的画法可以控制每一层的复杂度。

顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。

中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解。 底层:由不再进行分解的基本加工组成。

5

《软件工程——理论与实践》(第2版)习题答案

画分层数据流图的基本原则有:① 数据守恒与数据封闭原则。② 加工分解的原则。③ 子图与父图“平衡”的原则。④ 合理使用文件的原则。

6. 加工小说明有哪些描述方法?它们各有何优缺点?为什么不采用自然语言进行描述? 答:主要的描述方法有三种;结构化语言、判定表和判定树。

● 结构化语言:介于自然语言和形式语言(如谓词逻辑)之间的的一种半形式语言,它是自然语言的一个受限制的子集。是在自然语言的基础上加上一些约束,一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环);内层较灵活,表达“做什么”。

常用结构化英语或结构化汉语表示,精确、简明扼要、文体灵活。结构化语言特点:简单,易学,少二义性,但不好处理组合条件。

● 判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。判定表是一种二维的表格,常用于较复杂的组合条件。通常由四部分组成,如教材表2-2所示。对用结构化语言不易处理的较复杂的组合条件问题,可使用判定表。

● 判定树:本质上与判定表相同,图形表示更易于理解。描述一般组合条件较清晰,但不易输入计算机。

7. 考察下图中子图、父图的平衡关系。

图1

图2

参考答案:

⑴ 显然,图1中子图与父图不平衡。 ⑵ 图2中,如果有如下数据条目:

订货单=客户+账号+数量 则子、父图平衡。

8. 画出银行取款过程的用例图。问题描述为:储户用存折取款,首先填写取款单,根据“ 银行卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“银行卡”,同时发出付款通知,出纳向储户付款。

参考答案:

分析所给出的需求,确定角色为:储户、存款数据库、存折、出纳。用例为:填写取款单、验证取款单与存折、银行卡管理、数据库管理、付款。

6

《软件工程——理论与实践》(第2版)习题答案

付款 填写取款单 储户 <> 验证取款单与存折 <>存折 <> 出纳 数据库管理 <存款数据库

银行卡管理 银行取款系统的高层用例图

习题三答案

一、 选择题

1. 模块的基本特征是(A C)。

A) 外部特征(输入/输出、功能) 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. 从工程管理的角度来看,软件设计分(D)两步完成。

A) 系统分析、模块设计 B) 详细设计、总体设计 C) 模块设计、详细设计 D) 总体设计、详细设计 6. 模块独立性准则定性指标(B D)来衡量。

A) 分解度 B) 耦合度 C) 屏蔽性 D) 内聚性 7. 用户界面设计的任务包括(A B C)。

A) 确定用户界面类型 B) 建立任务模型 C) 建立用户模型 D) 建立功能模型

7

《软件工程——理论与实践》(第2版)习题答案

二、判断题

1. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。 (×) 2. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用。(×) 3. 信息隐蔽原则有利于提高模块的内聚性。(√)

4. 中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。(×)

5. SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。 (×) 6. 当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。(×) 三、简答题

1. 请解释为什么需要体系结构设计。

答:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、元素间的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。良好的体系结构是普遍适用的,它可以高效地处理各种各样的个体需求。 2. 集中式模型和分布式模型相比各有什么优缺点? 答:以集中式的仓库模型为例。其主要优点:

(1) 数据由某个子系统产生,并且被存储到仓库中,以便为另外一些子系统共享;

(2) 由于中央集中控制的缘故,共享数据能得到有效的管理,各子系统之间不需要通过复杂的

机制来传递共享数据;

(3) 一个子系统不必关心其他的子系统是怎么使用它产生的数据;

(4) 所有的子系统都拥有一致的基于中央数据仓库的数据视图。如果新子系统也采用相同的规

范,则将它集成于系统中是容易的。

但这种系统也有明显的缺陷:

(1) 虽然共享数据得到了有效的管理,但随之而来的问题是各子系统必须有一致的数据视图以

便能共享数据,换句话说,就是各子系统之间为了能共享数据必须走一条折中的路线,这不可避免地会影响整个系统的性能。

(2) 一个子系统发生了改变,它产生的数据也可能发生结构上的改变。问题随之而来,其他的

子系统如何能正确解析这些数据呢?所以为了达到共享的目的,数据翻译系统会被引入到整个系统当中。但这种翻译的代价是很高的,并且有时是不可能完成的。

(3) 中央数据仓库和各子系统的私有数据库必须有相同的关于备份、安全、访问控制和恢复的

策略,这可能会影响子系统的效率。

(4) 集中式的控制使数据和子系统的分布变得非常困难甚至成为不可能。这里分布指的是将数

据或子系统分散到不同的机器上。

分布式结构有这样的一些优势:

(1) 资源共享:系统中每个服务节点上的资源都可以被系统中的其他节点访问; (2) 开放性高:系统可以方便地增删不同软硬结构的节点;

(3) 可伸缩性好:系统可以方便地增删新的服务资源以满足需要;

(4) 容错能力强:分布式系统中的信息冗余可以容忍一定程度的软硬故障; (5) 透明性高:系统中的节点一般只需知道服务的位置而不必清楚系统的结构。

但分布式结构也存在着一些不足:

(1) 复杂性:分布式系统比集中式系统要复杂得多。集中式系统的性能主要依赖于主机的处理

8