软件工程习题答案_第1页
软件工程习题答案_第2页
软件工程习题答案_第3页
软件工程习题答案_第4页
软件工程习题答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程》习题参考答案

周兵

1.1教材:《软件工程》方木云主编,清华大学出版社,2016

1.2参考书目:

1.^Softwareengineering^8thEditionIanSommervile,Pearson

Education,机械工业出版社,2006

2.《软件工程》,王忠群主编,中国科学技术大学出版社,2009

3.《软件工程导论》(第4版),张海藩编著,清华大学出版社,2007

4、Softwareengineering:apractitioner'sapproachRoger

S.Pressman.6thed.Pressman,RogerS.ChinaMachine

Press,2008

1.3说明:

斜体部分是可选讲授内容,带星号的习题为可选。

第1章软件工程学概述

1.1习题

A.1什么是软件?软件可以分为哪些类?pll

答:软件是程序、数据及相关文档的完整集合。软件可分为通用软件和定制软件。

A.2*什么是软件危机及其表现?pll

答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含下

述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数最不断膨胀

的己有软件。

具体地说,软件危机主要有以下一些典型表现。

(1)对软件开发成本和进度的估计常常很不准确。

(2)用户对“已完成的”软件系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。

(4)软件常常是不可维护的。

(5)软件通常没有适当的文档资料。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

A.3什么是软件工程?pll

答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术

和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的

技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

A.4什么是软件过程?p20

答:软件过程由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期

又进一步划分成若干个阶段。

第2章软件过程模型

2.1习题

A.1什么是瀑布型方法?p20

答:按照时间顺序依次进行可行性分析、项目计划、需求分析、概要设计、详细设计、编码与

单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发。

A.2什么是快速原型方法?p28

答:所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终

产品能完成的功能的一个子集。强调过程的多次反复,对文档的要求不高。

A.3什么是增量方法?说说它产生的原因和适用的范围。P43

答:增量模型也称为渐增模型,是快速原型法的一种;使用增量模型开发软件时,把软件产品

作为一系列的增量构件来设计、编码、集成和测试。

使用增量模型可以:在较短时间内向用户提交可完成部分工作的产品;客户可以将早期的增量作

为原型,从中获得对后面系统增量的需求经验:项目总体性失败的风险比较低。

A.4什么是面向复用方法?说说它产生的原因和适用的范围。P43

答:面向复用的方法使用可复用软件组件以及能集成这些组件的框架来构建和开发新的软

件;有时,这些组件本身就是一个独立的能满足某种需要的系统。

使用这种方法可以节省大量的重复劳动,加快开发速度。存在大量可以重用的构件的时候,

可以使用这种方法。

A.5什么是形式化方法?说说它产生的原因和适用的范围。P43

答:形式化系统开发是一个类似瀑布模型的软件开发方法,但其开发过程基于的是用形式化数学

转换来将系统描述转换成一个可执行程序。

因为使用这种方法可以大大提高软件的可靠性,以及节省测试成本;这种方法主要用于可靠性

要求很高的软件。

第3章可行性研究

第4章需求分析

4.1习题

A.1为什么要进行软件需求分析?请叙述软件需求分析的主要过

程。P66

答:软件需求分析在软件开发过程中具有举足轻重的地位,它是开发出正确的、高质量的软

件系统的重要保证。有数据表明,更正需求分析阶段的一个错误所花费的工作量是更正测试

阶段的一个错误的一百倍。

软件需求分析的主要过程:获取用户需求、分析用户需求、编写需求文档、进行需求评审

A.2软件需求规格说明书由哪些部分组成?p66

答:软件需求规格说明书由引言、任务概述、需求规定、运行环境规定四个部分组成.

第5章概要设计(总体)

5.1习题

A.1什么是模块?什么是模块化?。P75

答:模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而

且有一个总体标识符代表它。过程、函数、子程序和宏等,都可作为模块。面向对象方法

学中的对象是模块,对象内的方法(或称为服务)也是模块。模块是构成程序的基本构

件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模

块集成起来构成一个整体,可以完成指定的功能满足用户的需求。模块化是为了使一个复杂

的大型程序能被人的智力所管理。

A.2衡量模块独立性的两个标准是什么?它们各表示什么含义?

P75

答:模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合是对

一个软件结构内不同模块之间互连程度的度量。内聚标志一个模块内各个元素彼此结合的

紧密程度,它是信息隐藏和局部化概念的自然扩展。

第6章界面设计

6.1习题

A.1界面设计的原则是什么?P88

答:

用户界面设计原则

原则描述

用户熟悉界面所使用的术语和概念应该是来自于用户的经验,这些用户是使用系统最多的人

一致性界面应该是一致的,即尽可能地让相似的操作有同样的触发方式

意外最小化永远不要让用户对系统的行为感到吃惊

可恢且性界面应该有一种机制来允许用户从错误中恢复

用户指南在错误发生时界面应该提供有意义的反馈,并有上下文感知能力的用户帮助功能

用户差异性界面应该为不同类型用户提供合适的交互功能

第7章详细设计

7.1习题

A.1*画出下列伪码程序的程序流程图:

START

IFpTHEN

WHILEqDO

f

ENDDO

ELSE

BLOCK

g

n

ENDBLOCK

ENDIF

STOP

答:

A.2*下图给出的程序流程图代表一个非结构化的程序,请问:

(1)为什么说它是非结构化的?

(2)设计一个等价的结构化程序。

(3)在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag

的程序:若用了,再设计一个不用flag的程序。

图一个非结构化程序

答:

(1)因为它不是单出口的程序。

(2)

(3)

第8章实现

8.1习题

A.1plOl

A.2什么是软件测试,软件测试的基本准则是什么?

答:测试是为了发现程序中的错误而执行程序的过程,测试是保证软件质量的重要手段之一。软

件测试准则(经验)

(1)所有测试都应该能追溯到用户需求。

(2)应该远在测试开始之前就制定出测试计划。

(3)把Pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误中的80%很

可能是由程序中20%的模块造成的。

(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。

(5)穷举测试是不可能的。

(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。。

A.3软件测试的目的是什么,为什么把软件测试的目的定义为只是发

现错误?

答:测试的目的是找出整个软件开发周期中各个阶段的错误,如果测试是为了发现程序中的

错误,就会力求设计出最能暴露错误的测试方案,从而提高测试效率。

A.4黑盒测试方法有哪些?

答:黑盒测试方法有等价划分、边界值分析、错误推测法。

A.5白盒测试方法有哪些?

答:白盒测试方法有逻辑覆盖,逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定

/条件覆盖、条件组合覆盖、路径覆盖。

第9章演化(维护)

9.1习题

A.1P105

维护分为哪几类?

答:维护分为:改正性维护、适应性维护、完善性维护、预防性维护。

第10章面向对象方法学

10.1习题

A.1P115

什么是UML?

答:UML(UnifiedModelingLanguage)是一种定义良好、易于表达、功能强大且普遍适用的

建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不仅仅限于支持面向

对象的分析与设计,而是全面支持从需求分析开始的软件开发的全过程。

A.2P115

一般从哪几种常用的视角来描述一个系统?

答:用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统静态结

构的对象模型,描述系统动态行为的动态模型和描述系统功能的功能模型。

第11章基于其它粒度的构造方法

11.1习题

A.1P131

什么是软件体系结构?

答:HayesRoth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功

能构件和构件之间的相互连接、接口和关系。

A.2P131

软件休系结构的组成要素是什么?

答:软件体系结构包含构件、连接件和约束3个最基本的组成元素。

A.3P149

Agent概念的几个主要特征是什么?

答:与Agent概念相关的几个主要特性:

自治性、异构性、动态性、通信、协议、承诺。

A.4P149

Agent的组织类型有哪些?

答:Agent的组织类型有:层次、组合、团队、市场。

A.5P171

如何理解S0A架构?请画图给出面向服务体系结构中的协作是怎样进行的过程。

答:S0A的定义为“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用

者组成。S0A架构的实质就是将系统模型与系统实现分离。

第12章面向云计算方法

12.1习题

A.1P207

从研究现状上看,云计算具有什么特点?

答:云计算具有以下特点:超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需服务、极

其廉价。

A.2P207

Google云计算技术具休包括哪些?

答:Google云计算技术具体包括:Google文件系统GFS、分布式计算编程模型MapReduce、

分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。其中,GPS提供了海量数据

的存储和访问的能力,MapReduce使得海量信息的并行处理变得简单易行,Chubby保证了分布

式环境下并发操作的同步问题,Bigtable使得海量数据的管理和组织十分方便。

第13章CASE工具

13.1习题

P207

CASE的定义是什么?

答:CASE即ComputerAidedSoftwareEngineering,中文意思是计算机辅助软件工程。

CASE是一套方法和工具。

CASE的一个基本思想就是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少

劳动力的工具。

第14章软件项目

14.1习题

A.1P233

什么是项目,软件项目有哪些特点?

答:项目是为完成一个独特的产品、服务或者任务而进行的一次性努力。软件项目是一种特殊的项

目,软件项目除了具有〜般项目的基本特征外,还具有以下特征:

(1)软件项目是知识密集型项目。

(2)软件项目采用以用户为中心的理念。

(3)软件项目的风险较大。

⑷软件项目的管理严格。

⑸软件产品需要多次完善。

(6)软件项口的文档编写量较大。

A.2P233

软件项目立项的一般过程包括哪些?

答:软件项目立项的•般过程包括:软件项目的发起阶段、项目的论证阶段、项目的审核阶段、

项目的立项。

第15章人员管理

15.1习题

P245

小组协作方式有哪些?

答:小组协作方式有两种:民主制程序员组、主程序员组。

第16章进度管理

16.1习题

P250

表达项目进度的图形工具有那两种?

答:表达项目进度的图形工具有两种:工程网络图(活动网络图)、G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论