软件工程(自编教材) 习题答案_第1页
软件工程(自编教材) 习题答案_第2页
软件工程(自编教材) 习题答案_第3页
软件工程(自编教材) 习题答案_第4页
软件工程(自编教材) 习题答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

。软件工程练习参考答案周冰1.1教材:软件工程方牧云主编,清华大学出版社,20161.2参考书目:1.Software engineering第8版IAN SOMMERVILE,皮尔森教育,机械工业出版社,20062.软件工程,王忠群主编,中国科技大学出版社,20093.软件工程导论(第四版),张主编,清华大学出版社,20074、Software engineering : a practitioners approach罗杰普雷斯曼。第六版。记者,罗杰s中国机械出版社,20081.3描述:斜体字是选修课,标有星号的练习是选修课。第1章软件工程概述1.1练习A.1什么是软件?什么样的软件可以分为?p11答:软件是程序、数据和相关文档的完整集合。软件可分为通用软件和定制软件。什么是软件危机及其表现形式?p11答:软件危机是指在计算机软件的开发和维护中遇到的一系列严重问题。软件危机包括以下两个问题:如何开发软件以满足日益增长的软件需求;如何保持现有软件不断增长的数量。具体来说,软件危机有以下典型表现。(1)对软件开发成本和进度的估计通常是不准确的。(2)用户对“完整”软件系统的不满经常发生。(3)软件产品的质量往往不可靠。(4)软件通常不可维护。(5)软件通常没有适当的文档。(6)软件成本在计算机系统总成本中的比重逐年增加。(7)软件开发生产率的提高远远落后于计算机应用的快速普及和深化趋势。什么是软件工程?p11软件工程是一门指导计算机软件开发和维护的工程学科。软件工程是采用工程的概念、原理、技术和方法来开发和维护软件,并将经过时间测试证明正确的管理技术与最佳的可用技术和方法相结合,经济地开发高质量的软件并有效地维护它。A.4什么是软件过程?p20答:软件过程包括三个阶段:软件定义、软件开发和操作维护(也称为软件维护)。每个阶段进一步分为几个阶段。第二章软件过程模型2.1练习A.1什么是瀑布法?p20答:按照时间顺序,软件开发将分几个阶段进行,包括可行性分析、项目计划、需求分析、概要设计、详细设计、编码和单元测试、集成测试、确认和验证、运行和维护等。A.2什么是快速原型?p28答:所谓的快速原型是一种可以在计算机上快速构建和运行的程序。它可以执行的功能通常是最终产品可以执行的功能的子集。强调该过程重复多次,并且对文档的要求不高。A.3什么是增量方法?请告诉我它产生的原因和适用范围。P43答:增量模型也叫增量模型,是一种快速原型方法。当使用增量模型开发软件时,软件产品被设计、编码、集成和测试为一系列的增量组件。增量模型可用于向用户提交能够在短时间内完成部分工作的产品。客户可以以早期增量为原型,获得对后期系统增量的需求体验。整个项目失败的风险相对较低。什么是面向重用的方法?请告诉我它产生的原因和适用范围。P43回答:面向重用的方法使用可重用的软件组件和框架,它们集成这些组件来构建和开发新的软件。有时,这些组件本身是一个独立的系统,可以满足某些需求。使用这种方法可以节省大量的重复劳动,加快开发速度。当有大量可重用组件时,可以使用此方法。A.5什么是正式方法?请告诉我它产生的原因和适用范围。P43答:正式的系统开发是一种类似于瀑布模型的软件开发方法,但是它的开发过程是基于使用正式的数学转换将系统描述转换成可执行程序。因为使用这种方法可以大大提高软件的可靠性,节约测试成本;该方法主要用于可靠性要求高的软件。第三章可行性研究第四章需求分析4.1练习为什么要进行软件需求分析?请描述软件需求分析的主要过程。P66答:软件需求分析在软件开发过程中起着重要的作用。它是开发一个正确的高质量软件系统的重要保证。根据数据表,在需求分析阶段纠正一个错误的工作量是在测试阶段纠正一个错误的工作量的100倍。软件需求分析的主要过程是获取用户需求、分析用户需求、编写需求文档和进行需求评审。软件需求规范的组成部分是什么?p66答:软件需求规范由四部分组成:介绍、任务总结、需求规范和运行环境规范。第五章概要设计(总体)5.1练习A.1什么是模块?什么是模块化?P75答:模块是由边界元素定义的相邻程序元素(例如,数据描述、可执行语句)的序列,并有一个总体标识符来表示它。程序、函数、子程序和宏可以作为模块使用。面向对象方法中的对象是模块,对象中的方法(或服务)也是模块。模块是程序的基本组成部分。模块化是将程序划分为独立命名和独立访问的模块,每个模块完成一个子功能,这些模块集成为一个整体,可以完成指定的功能,满足用户的需求。模块化是为了使复杂的大规模程序能够由人类智能来管理。衡量模块独立性的两个标准是什么?它们都是什么意思?P75答:一个模块的独立性可以用两个定性标准来衡量,这两个标准分别称为内聚和耦合。耦合是软件结构中不同模块之间互连程度的度量。内聚性标志着模块中每个元素彼此紧密结合的程度。这是信息隐藏和定位概念的自然延伸。第6章界面设计6.1练习接口设计的原则是什么?P88回答:用户界面设计原则原则形容用户熟悉界面中使用的术语和概念应该来自用户的经验,他们使用系统最多。一致性接口应该是一致的,即类似的操作应该以尽可能相同的方式触发。事故最小化永远不要让用户对系统的行为感到惊讶。可恢复性界面应该有一个机制,允许用户从错误中恢复。用户指南当出现错误时,界面应该提供有意义的反馈,并具有上下文感知的用户帮助功能。用户多样性界面应该为不同类型的用户提供适当的交互功能。第七章详细设计7.1练习答:1 *画出下列伪代码程序的程序流程图:开始如果是的话同时问f结束其他街区gn终点挡板结束中频停止回答:TnFF开始gpfqT目标下图所示的程序流程图代表了一个非结构化程序。请询问:(1)为什么它是非结构化的?(2)设计一个等价的结构化程序。(3)您是否在(2)的设计中使用了额外的标志变量?如果没有,请使用标志设计另一个程序。如果使用,设计另一个没有标志的程序。图1非结构化程序回答:(1)因为这不是一个单一的出口程序。(2)(3)第八章实施8.1练习A.1 p101什么是软件测试?软件测试的基本原则是什么?答:测试是为了发现程序中的错误而执行程序的过程。测试是保证软件质量的重要手段之一。软件测试标准(经验)(1)所有测试应可追溯到用户要求。(2)应在测试开始前制定测试计划。(3)将帕累托原理应用于软件测试。帕累托原理表明,测试中发现的80%的错误可能是由程序中20%的模块引起的。(4)从“小规模”试验开始,逐步开展“大规模”试验。(5)彻底测试是不可能的。(6)为了达到最佳的测试效果,应该有独立的第三方参与测试工作。软件测试的目的是什么?为什么软件测试的目的被定义为仅仅寻找错误?答:测试的目的是找出整个软件开发周期中每个阶段的错误。如果测试是为了发现程序中的错误,它会尝试设计出最能暴露错误的测试方案,从而提高测试效率。A.4什么是黑盒测试方法?答:黑盒测试方法包括等价划分、边界值分析和误差估计。A.5什么是白盒测试方法?答:白盒测试方法具有逻辑覆盖,可分为语句覆盖、决策覆盖、条件覆盖、决策/条件覆盖、条件组合覆盖和路径覆盖。第九章进化(维护)9.1练习A.1 P105维护的类别是什么?答:维护包括:纠正性维护、适应性维护、完善性维护和预防性维护。第十章面向对象的方法10.1练习A.1 P115什么是统一建模语言?答:统一建模语言是一种定义明确、易于表达、功能强大且普遍适用的建模语言。它融合了软件工程领域的新思想、新方法和新技术。它的范围不仅局限于支持面向对象的分析和设计,而且完全支持从需求分析开始的软件开发的整个过程。A.2 P115描述一个系统通常使用哪些共同的视角?答:用面向对象的方法开发软件,通常需要建立三种模型,分别是描述系统静态结构的对象模型、描述系统动态行为的动态模型和描述系统功能的功能模型。第十一章基于其他粒度的构造方法11.1练习A.1 P131什么是软件架构?答:海斯罗斯认为软件体系结构是一个抽象的系统规范,主要包括由行为描述的功能组件以及组件之间的互连、接口和关系。A.2 P131软件架构的组成部分是什么?答:软件架构包括三个基本组件:组件、连接器和约束。A.3 P149代理概念的主要特征是什么?答:与代理概念相关的几个主要特征:自主性、异质性、动态性、沟通、协议、承诺。A.4 P149代理的组织类型是什么?答:代理的组织类型有:层级、组合、团队和市场。A.5 P171如何理解SOA架构?请画一张图片来展示面向服务架构中的协作是如何进行的。答:SOA被定义为“客户机/服务器软件设计方法”。应用程序由软件服务和软件服务用户组成。SOA架构的本质是将系统模型与系统实现分开。第十二章面向云的计算方法12.1练习A.1 P207从目前的研究情况来看,云计算的特点是什么?答:云计算具有以下特点:超大规模、虚拟化、高可靠性、多功能性、高可扩展性、按需服务和极低成本。A.2 P207谷歌云计算技术具体包括什么?答:谷歌云计算技术具体包括:谷歌文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable。其中,GFS提供了存储和访问海量数据的能力,MapReduce使海量信息的并行处理变得简单易行,Chubby保证了分布式环境中并发操作的同步,Bigtable使海量数据的管理和组织变得非常方便。第十三章案例工具13.1练习P207CASE的定义是什么?案例是指计算机辅助软件工程,中文意思是计算机辅助软件工程。CASE是一套方法和工具。CASE的基本思想之一是提供一套集成的、省力的工具,可以自动覆盖软件开发生命周期的所有阶段。第十四章软件项目14.1练习A.1 P233什么是项目,软件项目的特征是什么?答:一个项目是完成一个独特的产品、服务或任务的一次性努力。软件项目是一种特殊的项目。除了一般项目的基本特征之外,软件项目还具有以下特征:软件项目是知识密集型的(2)软件项目采用以用户为中心的理念。(3)软件项目的风险更大。(4)严格软件项目管理。(5)软件产品需要多次改进。(6)软件项目有大量的文档。A.2 P233软件项目启动的一般过程是什么?答:建立软件项目的一般过程包括:软件项目的启动阶段、演示阶段、审核阶段和建立阶段。第十五章人事管理15.1练习P245小组合作的方法是什么?团队合作有两种方式:民主程序员团队和主程序员团队。第十六章进度管理16.1练习P250用来表达项目进度的两个图形工具是什么?答:有两种图形工具来表示项目的进度:工程网络图(活动网络图)和甘特图(条形图)。第十七章成本管理17.1练习P258软件成本的组成部分是什么?答:软件成本包括33,360个硬件和软件费用,包括维护、差旅费和培训费,以

温馨提示

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

评论

0/150

提交评论