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

下载本文档

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

文档简介

1、?软件工程?习题参考答案周兵1.1 教材:?软件工程?方木云主编,清华大学出版社,20211.2 参考书目:1 .«Softwareengineering»8thEditionIanSommervile,PearsonEducation,机械工业出版社,20062 .?软件工程?,王忠群主编,中国科学技术大学出版社,20213 .?软件工程导论?第4版,张海藩编著,清华大学出版社,20074 、«Softwareengineering:apractitioner'sapproach»Roger5 .Pressman.6thed.Pressman,

2、RogerS.ChinaMachinePress,20211.3说明:斜体局部是可选讲授内容,带星号的习题为可选.第1章软件工程学概述1.1习题A.1什么是软件?软件可以分为哪些类?p11答:软件是程序、数据及相关文档的完整集合.软件可分为通用软件和定制软件.A.2*什么是软件危机及其表现?p11答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件.具体地说,软件危机主要有以下一些典型表现.(1)对软件开发本钱和进度的估计常常很不准确.(2)用户对“已完成的软件系统不满意的现

3、象经常发生.(3)软件产品的质量往往靠不住.(4)软件常常是不可维护的.(5)软件通常没有适当的文档资料.(6)软件本钱在计算机系统总本钱中所占的比例逐年上升.(7)软件开发生产率提升的速度,远远跟不上计算机应用迅速普及深入的趋势.A.3什么是软件工程?p11答:软件工程是指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证实正确的治理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程.A.4什么是软彳爷过程?p20答:软件过程由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,

4、每个时期又进一步划分成假设干个阶段.第2章软件过程模型2.1习题A.1什么是瀑布型方法?p20答:根据时间顺序依次进行可行性分析、工程方案、需求分析、概要设计、详细设计、编码与单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发.A.2什么是快速原型方法?p28答:所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集.强调过程的屡次反复,对文档的要求不高.A.3什么是增量方法?说说它产生的原因和适用的范围.P43答:增量模型也称为渐增模型,是快速原型法的一种;使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成

5、和测试.使用增量模型可以:在较短时间内向用户提交可完成局部工作的产品;客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验;工程总体性失败的风险比拟低.A.4什么是面向复用方法?说说它产生的原因和适用的范围.P43答:面向复用的方法使用可复用软件组件以及能集成这些组件的框架来构建和开发新的软件;有时,这些组件本身就是一个独立的能满足某种需要的系统.使用这种方法可以节省大量的重复劳动,加快开发速度.存在大量可以重用的构件的时候,可以使用这种方法.A.5什么是形式化方法?说说它产生的原因和适用的范围.P43答:形式化系统开发是一个类似瀑布模型的软件开发方法,但其开发过程基于的是用形式化数

6、学转换来将系统描述转换成一个可执行程序.由于使用这种方法可以大大提升软件的可靠性,以及节省测试本钱;这种方法主要用于可靠性要求很高的软件.第3章可行性研究第4章需求分析4.1习题A.1为什么要进行软件需求分析?请表达软件需求分析的主要过程.P66答:软件需求分析在软件开发过程中具有举足轻重的地位,它是开发出正确的、高质量的软件系统的重要保证.有数据说明,更正需求分析阶段的一个错误所花费的工作量是更正测试阶段的一个错误的一百倍.软件需求分析的主要过程:获取用户需求、分析用户需求、编写需求文档、进行需求评审A.2软件需求规格说明书由哪些局部组成?p66答:软件需求规格说明书由引言、任务概述、需求规

7、定、运行环境规定四个局部组成.第5章概要设计总体5.1习题A.1什么是模块?什么是模块化?.P75答:模块是由边界元素限定的相邻程序元素例如,数据说明,可执行的语句的序列,而且有一个总体标识符代表它.过程、函数、子程序和宏等,都可作为模块.面向对象方法学中的对象是模块,对象内的方法或称为效劳也是模块.模块是构成程序的根本构件.模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.模块化是为了使一个复杂的大型程序能被人的智力所治理.A.2衡量模块独立性的两个标准是什么?它们各表示什么含义?P75答:模块的独立程

8、度可以由两个定性标准度量,这两个标准分别称为内聚和耦合.耦合是对一个软件结构内不同模块之间互连程度的度量.内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展.6.1第6章界面设计习题A.1界面设计的原那么是什么?P88答:用户界面设计原那么原那么描述用户熟悉界面所使用的术语和概念应该是来自于用户的经验,这些用户是使用系统最多的人一致性界面应该是一致的,即尽可能地让相似的操作有同样的触发方式意外最小化永远不要让用户对系统的行为感到吃惊可恢复性界面应该有一种机制来允许用户从错误中恢复用户指南在错误发生时界面应该提供有意义的反响,并有上下文感知水平的用户帮助功能用户差异

9、性界面应该为不同类型用户提供适宜的交互功能第7章详细设计7.1习题A.1*画出以下伪码程序的程序流程图:STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP答:开始nf结束k>A.2*以下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序.(3)在(2)题的设计中你使用附加的标志变量flag了吗?假设没用,请再设计一个使用flag的程序;假设用了,再设计一个不用flag的程序.图一个非结构化程序答:(1)由于它不是单出口的程序.(2)第8章实现8.1 习题A.1p101A.2

10、什么是软件测试,软件测试的根本准那么是什么?答:测试是为了发现程序中的错误而执行程序的过程,测试是保证软件质量的重要手段之一.软件测t那么(经验)(1) 所有测试都应该能追溯到用户需求.(2) 应该远在测试开始之前就制定出测试方案.(3) 把Pareto原理应用到软件测试中.Pareto原理说明,测试发现的错误中的80%艮可能是由程序中20%勺模块造成的.(4) 应该从“小规模测试开始,并逐步进行“大规模测试.(5) 穷举测试是不可能的.(6) 为了到达最正确的测试效果,应该由独立的第三方从事测试工作.A.3软件测试的目的是什么,为什么把软件测试的目的定义为只是发现错误?答:测试的目的是找出整

11、个软件开发周期中各个阶段的错误,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案,从而提升测试效率.A.4黑盒测试方法有哪些?答:黑盒测试方法有等价划分、边界值分析、错误推测法.A.5白盒测试方法有哪些?答:白盒测试方法有逻辑覆盖,逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖.第9章演化(维护)9.1习题A.1P105维护分为哪几类?答:维护分为:改正性维护、适应性维护、完善性维护、预防性维护.第10章面向对象方法学10.1习题A.1P115什么是UML答:UML(UnifiedModelingLanguage)是一种定义良好、易于

12、表达、功能强大且普遍适用的建模语言.它融入了软件工程领域的新思想、新方法和新技术.它的作用域不仅仅限于支持面向对象的分析与设计,而是全面支持从需求分析开始的软件开发的全过程.A.2P115一般从哪几种常用的视角来描述一个系统?答:用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统静态结构的对象模型,描述系统动态行为的动态模型和描述系统功能的功能模型.第11章基于其它粒度的构造方法11.1习题A.1P131什么是软件体系结构?答:HayesRoth认为软件体系结构是一个抽象的系统标准,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系.A.2P131软件体系结构

13、的组成要素是什么?答:软件体系结构包含构件、连接件和约束3个最根本的组成元素.A.3P149Agent概念的几个主要特征是什么?答:与Agent概念相关的几个主要特性:自治性、异构性、动态性、通信、协议、承诺.A.4P149Agent的组织类型有哪些?答:Agent的组织类型有:层次、组合、团队、市场.A.5P171如何理解SOA构?请画图给出面向效劳体系结构中的协作是怎样进行的过程.答:SOA的定义为“客户端/效劳器的软件设计方法,一项应用由软件效劳和软件效劳使用者组成.SO躲构的实质就是将系统模型与系统实现别离.第12章面向云计算方法12.1习题A.1P207从研究现状上看,云计算具有什么

14、特点?答:云计算具有以下特点:超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需效劳、极其廉价.A.2P207Google云计算技术具体包括哪些?答:Google云计算技术具体包括:Google文件系统GFS分布式计算编程模型MapReduce分布式锁效劳Chubby和分布式结构化数据存储系统Bigtable等.其中,GF限供了海量数据的存储和访问的水平,MapReduce使得海量信息的并行处理变得简单易行,Chubby保证了分布式环境下并发操作的同步问题,Bigtable使得海量数据的治理和组织十分方便.第13章CASE:具13.1习题P207CASE勺定义是什么?答:CASE即Compu

15、terAidedSoftwareEngineering,中文意思是计算机辅助软件工程.CAS既一套方法和工具.CASE的一个根本思想就是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具.第14章软件工程14.1习题A.1P233什么是工程,软件工程有哪些特点?答:工程是为完成一个独特的产品、效劳或者任务而进行的一次性努力.软件工程是一种特殊的工程,软件工程除了具有一般工程的根本特征外,还具有以下特征:(l)软件工程是知识密集型工程.(2)软件工程采用以用户为中央的理念.(3)软件工程的风险较大.(4)软件工程的治理严格.(5)软件产品需要屡次完善.(6)软件工程的文档编写量较大.A.2P233软件工程立项的一般过程包括哪些?工程的审核阶答:软件工程立项的一般过程包括:软件工程的发起阶段、工程的论证阶段、段、工程的立项.第15章人员治理15.1习题P245小组协作方式有哪些?答:小组协作方式有两种:民主制程序员组、主程序员组.第16章进度治理16.1习题P250表达工程进度的图形工具有那两种?、Gantt图(条形图)答:表达工程进度的图形工具有两种:工程网络图(活动网络图)第17章本钱治理17.1习题P258软件本钱的组成因素有哪些?答:软件本钱的组成因素有:包括维护在内的硬件

温馨提示

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

评论

0/150

提交评论