最新电大《软件工程》考试答案精品小抄(完整版) .doc_第1页
最新电大《软件工程》考试答案精品小抄(完整版) .doc_第2页
最新电大《软件工程》考试答案精品小抄(完整版) .doc_第3页
最新电大《软件工程》考试答案精品小抄(完整版) .doc_第4页
最新电大《软件工程》考试答案精品小抄(完整版) .doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1什么是软件危机,有哪些具体表现形式?简单地讲,软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:1) 软件发展速度跟不上硬件的发展和用户的需求2) 对软件成本和进度估计不准确,用户不满意3) 软件产品质量差,可靠性不能保证4) 软件产品可维护性差5) 软件没有合适的文档资料2为什么会产生软件危机?概况来说,产生软件危机的原因可以归结于以下两个方面:一方面与软件本身的特点有关。软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。另一方面与软件开发的方式、方法、技术和软件开发人员本身有关。随着软件规模越来越大,软件复杂程度越来越高,原有软件开发方式、方法与技术远远满足不了软件发展的需求,给软件开发、维护带来了一系列严重的问题;同时,软件开发人员缺乏对软件产品正确认识,造成制定计划盲目、编程草率等问题。3解决软件危机的途径?1) 应该加强软件开发过程的管理。2) 推广使用开发软件的成功技术与方法,并且不断探索更好的技术与方法。3) 开发和使用好的软件工具,建立软件工程支持环境。总之,为了解决软件危机,既要有技术措施(好的方法和工具),又要有必要的组织管理措施。4 软件工程的定义及目标?从不同的角度,软件工程有各种不同的定义: 1) fritz bauer认为:“软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。”2) ieee认为:“软件工程是开发、运行、维护和修复软件的系统方法”,其中,“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。3) 中华人民共和国国家标准gb/t114571995软件工程术语的定义是:“软件工程是软件开发、运行、维护和引退的系统方法”。软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户要求的软件产品。5 软件工程的基本原理软件工程的7条基本原理:1) 用分阶段的生命周期计划严格管理2) 坚持进行阶段评审3) 实行严格的产品控制4) 采用现代程序设计技术5) 软件工程结果应能清楚地审查6) 开发小组的人员应该少而精7) 承认不断改进软件工程实践的必要性6 什么是软件生存周期,包含哪些阶段?软件生存周期是指从设计软件产品开始到产品不能使用为止的时间周期。概括地说,软件生命周期由软件定义、软件开发和软件维护3个时期组成。划分为问题定义、可行性研究、需求分析、软件设计(含:总体设计与详细设计两个阶段)、编码和单元测试、综合测试、运行/维护7个阶段。7 常用的软件生存周期模型有哪些?1) 瀑布模型:也称线性顺序模型或软件生存周期模型,遵循软件生存期的划分,明确规定各个阶段的任务,各个阶段的工作自上而下、顺序展开。2) 快速原型模型:快速建立一个能反映用户主要需求的原型系统,降低了由于软件需求不明确带来的开发风险。3) 增量模型:将整个产品分解成若干个构件进行逐步交付,使得软件开发可以较好地适应需求的变化。4) 螺旋模型:将瀑布模型与增量模型结合起来,并且加入两种模型均忽略了的风险分析。1. 问题定义是什么,必须明确哪些问题?问题定义即是明确该软件开发项目要解决什么问题。必须明确以下问题:1) 软件系统要完成的总体目标是什么?2) 要开发软件的功能和性能是什么?3) 软件系统在可靠性和质量上有何具体要求?4) 开发该软件系统是否具备可行的技术?5) 当前市场和竞争对手的情况怎样?6) 开发该软件系统是否有成本和进度约束?7) 该软件系统将来可能进行哪些扩充?2. 可行性研究的主要目的是什么?可行性研究的主要目的是用极少的代价在最短的时间内决定被开发的软件是否能开发成功。3. 可行性研究包括哪几方面的内容?1) 经济可行性:通过对被开发软件系统的成本效益的分析,估算系统的开发成本,估计系统可能取得的效益,确定待开发系统是否值得投资开发。2) 技术可行性:从问题定义规格说明书提出的系统功能、性能以及实际系统的各种约束来分析,确定当前的技术及条件是否能实现整个系统。3) 法律可行性:分析在系统开发的全部过程中可能出现和涉及的法律问题,如合同、责任、知识产权、专利等问题。4) 运行可行性:判断新系统的运行方式是否可行。4. 可行性研究的主要工具是什么,有何作用?在进行可行性研究时,使用的主要工具为系统流程图。系统流程图的基本作用是:以黑盒方式描述系统各部件(如人工处理、程序、数据库、图表等),它只描述了信息在系统各部件中的流动情况,不对信息在系统中的加工细节进行描述,所以它不同于程序流程图。5. 需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。6. 常用的需求获取方法?1) 访谈和会议2) 市场调查3) 访问用户和用户领域的专家4) 考察现场,跟踪现场业务流程5) 开发人员和用户共同组成联合小组7. 需求分析的描述工具有哪些?实体-关系图(er)、数据流图(dfd)、数据字典(dd)、判定表、判定树、结构化语言、层次方框图、warnier图、ipo图和需求描述语言等。8. 结构化分析方法的定义?结构化分析就是使用dfd、dd、结构化语言、判定表和判定树等工具,来建立一种新的称为结构化说明书的目标文档。9. 什么是实体联系图,具有哪些基本成分?实体联系图简称为e-r图。e-r图中包含了实体(即数据对象)、联系和属性等3种基本成分。1) 数据对象:可以由一组属性来定义的实体都可以被认为是数据对象。在e-r图中用矩形框表示。2) 属性:属性定义了数据对象的特征。它可用来:为数据对象的实例命名;描述这个实例;建立对另一个数据对象的另一个实例的引用。在e-r图中用圆角矩形框表示。3) 联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。实体与实体之间的关系,在e-r图中用连接两个实体的菱形框表示。联系可分有3种类型:一对一(1:1)、一对多(1:m)、多对多(n:m)。10. 为什么数据流图要分层?画分层的dfd要遵循哪些原则?分层的目的:便于逐步细化、结构清晰。画分层的dfd要遵循哪些原则:1) 父图与子图之间数据要平衡。2) 分解的深度和层次达到使加工足够简单、易于理解的基本加工为止。3) 区分局部文件和局部外部项(局限于数据流中某一层或某几层的文件和外部项)。4) 不要把控制流作为数据流。5) 忽略琐碎的枝节。6) 每个数据流要有一个合适的名字,尽量使用现实系统中有具体意义的名字。11. 系统流程图与数据流程图有什么区别?系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具;系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况;数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。12. 数据字典包括哪些内容?它的作用是什么?数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。4. 什么是模块?模块具有哪些基本属性、特性?模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。模块具有3个基本属性:1) 功能:模块实现的功能(含该模块调用的子模块的功能)。2) 逻辑:描述模块内部怎么做。3) 状态:模块使用时的环境和条件。模块具有内部和外部两个特性:1) 外部特性:模块的名字、参数表等。2) 内部特性:完成模块功能的程序代码和模块内部数据。5. 什么是模块化?模块设计的准则?模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。模块设计的准则:1) 改进软件结构,提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块合并到上级模块中。3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。4) 尽量降低模块接口的复杂程度;5) 设计单入口、单出口的模块。6) 模块的作用域应在控制域之内。7. 变换分析设计的步骤?1) 区分传入、传出和变换中心三部分,划分dfd图的分界线;2) 完成第一级分解:建立初始sc图的框架;3) 完成第二级分解:分解sc图的各个分支;4) 对初始结构图按照设计准则进行精化与改进。8. 事务型数据流由哪几部分组成?事务型数据流图由接受事务、事务中心和若干处理单元输出结果部分组成。9. 事务分析设计的步骤?1) 在dfd图中确定事务中心、接收部分和发送部分; 2) 画出sc图框架,把dfd图的三部分分别映射为事务控制模块、接收模块和动作发送模块。一般得到sc图的顶层和第一层; 3) 分解和细化接收分支和动作分支,完成初始的sc图; 4) 对初始结构图按照设计准则进行精化与改进。 10. 比较层次图和结构图的异同?层次方框图描绘数据的层次结构,结构图描绘的是软件结构。二者都采用多层次矩形框树形结构。层次方框图的顶层矩形框代表完整的数据结构,下面各层矩形框依次代表上个框数据的子集;结构图是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递的信息。1. 选择编码语言通常需要考虑的因素有哪些?1) 系统的应用领域2) 系统用户的要求3) 软件的执行环境4) 目标系统的性能要求5) 程序员的知识水平6) 软件的可移植性要求7) 算法和数据结构的复杂性2. 编码风格的指导原则?源程序文档化:适当的标识符、适当的注解、程序清单的合理布局与清晰。数据说明:数据结构或数据类型的说明次序标准化;变量名称尽量有意义。对复杂的数据结构在注解中要说明在程序设计中实现这个数据结构的方法。语句结果:语句的构造简单明了:不要为节省空间将多个语句写在同一行;尽量避免复杂的条件及“非”条件的测试;避免大量使用循环嵌套和条件嵌套;括号的使用是为了使逻辑表达式和算术表达式的运算顺序清晰直观。效率:考虑程序运行的时间存储器效率、输入/输出的效率;在处理程序正确性、清晰与效率之间的关系时先求程序正确后求快;先求清楚后求快;保持程序简单以求快;书写清楚,不为“效率”牺牲清晰。3. 什么是软件测试?软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。 4. 软件测试与软件调试的主要区别?1) 测试从一个侧面证明程序员的失败;调试证明程序员的正确;2) 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;3) 测试有计划并且要进行测试设计;调试不受时间约束;4) 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;5) 测试执行是有规程的;调试执行要求程序员进行必要的推理;6) 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;7) 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。5. 软件测试的方法有哪些?按照测试过程是否执行程序来分,有静态分析和动态测试。1) 静态分析不执行被测软件,通常对需求分析说明书、软件设计说明书与源程序作结构检查、流程图分析、编码分析等来发现软件错误,这是十分有效的软件质量控制方法。2) 动态测试以执行程序并分析程序来查错。需要事先准备好测试数据:输入数据和预期的输出结果。把输入数据和与之对应的预期输出结果称为测试用例。怎样设计测试用例是动态测试的关键。按照测试数据的设计依据,可分为黑盒法与白盒法。1) 黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。2) 白盒测试把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。6. 软件测试的步骤?测试过程按5个步骤进行:即模块测试、子系统测试、系统测试、验收测试、平行运行。 1) 模块测试也称为单元测试。在设计比较好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能和同级模块之间没有相互依赖关系。2) 子系统测试是把已测试过的模块组装起来,形成一个子系统进行测试。着重测试模块间的接口。这个阶段所发现的往往是概要设计阶段的错误。3) 系统测试是把经过测试的子系统装配成一个完整的系统来测试。4) 验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。5) 平行运行同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。7. 人工测试有哪些方法?人工测试的主要方法有桌前检查、代码审查和走查。桌前检查由程序员自己检查自己编写的程序。代码会审由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。走查:先把材料先发给走查小组每个成员,让他们认真研究程序,后再开会;首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。8. 黑盒测试主要采用的技术有哪些?黑盒测试主要采用的技术有:等价类划分、边界值分析、错误推测、因果图和功能图。所谓等价划分就是把所有可能的输入数据划分为若干等价类,即子集,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用例。边界值分析就是要把测试的重点放在各个等价类的边界上,选取刚好等于、大于和小于边界值的数据为测试数据,并据此设计出测试用例。错误推测法是指人们可以通过经验或直觉推测程序中可能存在的各种错误, 从而有针对性设计测试用例。9. 白盒测试主要采用的技术有哪些?白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。10. 路径测试技术中几种主要覆盖的含义?语句覆盖:至少执行程序中所有语句一次。判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。条件覆盖:执行所有可能的穿过程序的控制路流程。判定-条件覆盖:即是要求各个判断的所有可能的条件取值组合至少执行一次。条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。1. 软件的维护一般分为哪几类?改正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的。适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。2. 影响软件维护的因素有哪些?开发方法:采用模块化详细设计文档有助于理解软件的结构、界面功能和内部流程;开发过程中严格而科学的管理规划及清晰可靠的文档资料对发生错误后的理解与纠错是至关重要的;开发过程中模块的独立程度越高,对软件修改越容易,对软件的改进和移植越方便。开发条件:软件开发及维护人员的水平决定了软件开发的质量和维护的效率;开发过程中使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性;在测试过程中用例的有效性,可极大地减少软件存在的错误;其次使用规范化的文档资料可为维护提供更好的依据。3. 决定软件可维护性的因素?1) 软件的可理解性、可测试性、可修改性;2) 文档描述符合要求、用户文档简洁明确、系统文档完整并且标准。4. 软件价格应该计入维护成本吗?为什么?在软件的生命周期中,软件维护的工作量非常大,不同应用领域的维护成本差别也很大。一般大型软件的维护成本远远高于开发成本若干倍。因此软件价格中应该计入维护成本。1.渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?答:非渐增式是将所有的模块一次连接起来,简单、易行,节省机时,但测试过程中难于查错,发现错误也很难定位,测试效率低。渐增式是将模块一个一个的连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位,有利于查出模块接口部分的错误,因此测试效率高。因此通常采用渐增式。2.自顶而下渐增与自底而上渐增各有何优、缺点?答:自顶而下渐增优点:能够尽早发现系统主控方面的问题。缺点:无法验证桩模块是否完全模拟了下属模块的功能。自底而上渐增优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的i/o模块中的错误。3.等价分类法的基本思想是什么? 答:根据程序的输入特性,将程序的定义域划分为有限个等价区段“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其它值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,也即是该等价类中的其它值也会查出同样的错误。4.一般,驱动模块比桩模块容易设计,为什么?答:因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数

温馨提示

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

评论

0/150

提交评论