软件工程导论简答题大全_第1页
软件工程导论简答题大全_第2页
软件工程导论简答题大全_第3页
软件工程导论简答题大全_第4页
软件工程导论简答题大全_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

(完满版)软件工程导论简答题大全(完满版)软件工程导论简答题大全/(完满版)软件工程导论简答题大全1.软件工程的七条基根源理是什么?答:软件工程的七条基根源理是:用分阶段的是的生计周期计划严格管理;坚持进行阶段评审;严格推行的产品控制;采用现代程序技术;结果应能清楚地审查;开发小组的成员应该少而精;认同千锤百炼软件工程的必要性。2.优异的编码风格应具备哪些条件?答:应具备以下条件:1)使用标准的控制构造;2)有限制地使用GOTO语句;3)源程序的文档化(应具备以下内容)①有意义的变量名称——“匈牙利命名规则”。②适合的说明——“说明规范”。③标准的书写格式:——用分层缩进的写法显示嵌套构造的层次(锯齿形风格);——在说明段的周围加上边框;——在说明段与程序段、以及不相同程序段之间插入空行;——每行只写一条语句;——书写表达式时,适合使用空格或圆括号等作隔断符。(4)满足运行工程学的输入输出风格。3.简述文档在软件工程中的作用。答:提高软件开发过程的能见度提高开发效率作为开发人员阶段工作成就和结束标志记录开发过程的相关信息便于使用与保护;供应软件运行、保护和培训相关资料;便于用户认识软件功能、性能。4.可行性研究包括哪几方面的内容?答:(1)经济可行性:可否有经济效益,多长时间可以回收成本;(2)技术可行性:现有技术可否实现本系统,现有技术人员可否胜任,开发系统的资源可否满足;(3)运行可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发可否会入侵他人、集体或国家利益,可否违反国家法律。5.构造化的需求解析描述工拥有哪些?答:有数据流图(DFD)、数据字典(DD)、判断表、判断树、构造化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态变换图(STD)和实体—关系图(E—R)等。6.一般面向对象解析建模的工具(图形)有哪些?1答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态变换图(STD)等7.UML一致建模语言有哪几种图形?用例图、类图、对象图、构件(组件)图、部署(配置)图、状态图、活动图、序次(时序)图、合作(协作)图等九种图。8.在面向对象解析时类和对象的静态关系主要有哪几种?答:类和对象的静态关系主要相关系、齐聚、泛化、依赖等四种关系。什么是模块化?模块设计的准则?模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。模块设计的准则:改进软件构造,提高模块独立性:在对初步模块进行合并、分解和搬动的解析、精化过程中力争提高模块的内聚,降低藕合。模块大小要适中:大体50行语句的代码,过大的模块应分解以提高理解性和可保护性;过小的模块,合并到上级模块中。软件构造图的深度、宽度、扇入和扇出要适合。一般模块的调用个数不要高出5个。尽量降低模块接口的复杂程度;设计单入口、单出口的模块。模块的作用域应在控制域之内。10.什么是模块独立性?用什么胸襟?答:模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造可否是合理的标准。独立性可以从两个方面来胸襟:即模块自己的内聚和模块之间的耦合。变换型数据流由哪几部分组成?变换型构造由三部分组成:传入路径、变换(加工)中心和传出路径。变换解析设计的步骤?划分传入、传出和变换中心三部分,划分DFD图的分界线;完成第一级分解:成立初始SC图的框架;完成第二级分解:分解SC图的各个分支;对初始构造图依据设计准则进行精化与改进。事务型数据流由哪几部分组成?事务型构造由最少一条接受路径、一个事务中心与若干条动作路径组成。事务解析设计的步骤?在DFD图中确定事务中心、接收部分(包括全部接收路径)和发送部分(包括全部动作路径);画出SC图框架,把DFD图的三部分,分别照射"为事务控制模块,接收模块和动作发送模块.一般获取SC图的顶层和第一层(若是第一层简单可以并入顶层);分解和细化接收分支和动作分支,完成初始的SC图;对初始构造图依据设计准则进行精化与改进。15.数据字典包括哪些内容?数据字典是描述数据流图中数据的信息的会集。它对数据流图上每一个成分:数据项、文件(数据构造)、数据流、数据储藏、加工和外面项等赐予定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。218.什么是软件生计周期?把生计周期划分为阶段的目的是什么?答:一个软件从开始计划起,到荒弃不用止,成为软件的生计周期。把整个生计周期划分为较小的阶段,给每个阶段赐予确定而有限的任务,可以简化每一步的工作内容,使因为软件规模增加而大大增加了的软件复杂性变得较易控制和管理。19.详细设计的目的?为软件构造图(SC图或HC图)中的每一个模块确定采用的算法和块内数据构造,用某种选定的表达工具给出清楚的描述.20.详细设计的任务是什么?为每个模块确定采用的算法;确定每一模块使用的数据构造;确定模块接口的细节;编写过程设计说明书;设计每一模块的测试用例。编码的任务?使用选定的程序设计语言,把模块的过程性描述翻译为用语言书写的源程序(源代码)。22.软件测试的基本任务?软件测试是依据特定的规则,发现软件错误的过程;好的测试方案是尽可能发现迄今还没有发现错误的测试;成功的测试方案是发现迄今还没有发现错误的测试;23.什么是黑盒测试?黑盒测试主要采用的技术有哪些?黑盒测试也称为功能测试,它着眼于程序的外面特色,而不考虑程序的内部逻辑构造。测试者把被测程序看作一个黑盒,不用关心程序的内部构造。黑盒测试是在程序接口处进行测试,它只检查程序功能可否能依据规格说明书的规定正常使用,程序可否能适合地接收输入数据产生正确的输出信息,并且保持外面信息(如数据库或文件)的完满性。黑盒测试主要采用的技术有:等价分类法、界线值解析法、错误推测法和因果图等技术。24.什么是白盒测试?白盒测试主要采用的技术有哪些?白盒测试是测试者认识被测程序的内部构造和办理过程,对程序的全部逻辑路径进行测试,在不相同点检查程序状态,确定实质状态与预期状态可否一致。白盒测试主要采用的技术有:路径测试技术和事务办理流程技术,对包括有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。25.路径测试技术中几种主要覆盖的含义?举例说明?语句覆盖:最少执行程序中全部语句一次。判断覆盖:使被测程序中的每一个分支最少执行一次。故也称为分支覆盖。条件覆盖:执行全部可能的穿过程序的控制路流程。条件组合测试:设计足够的测试用例,使每个判断中的全部可能条件取值组合最少执行一次。(例略)26.等价分类法的测试技术采用的一般方法?举例说明?(1)为每个等价类编号;(2)设计一个新的测试方案,以尽可能多的覆盖还没有被覆盖的有效等价类,重复这一步骤,直到全部有效等价类被覆盖为止。3(3)设计一个新的测试方案,使它覆盖一个还没有被覆盖的无效等价类,重复这一步骤,直到全部无效等价类被覆盖为止。29.为什么说软件的保护是不可以防备的?因为软件的开发过程中,一般很难检测到全部的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的改正或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的保护是不可以防备的。30.软件的保护一般分为哪几类?完满性保护:满足用户在使用过程中提出增加新的功能或改正已有功能,以满足用户日益增加的需要而进行的工作;适应性保护:是软件适应新的运行环境而进行的工作;纠错性保护:纠正开发时期未发现的遗留错误,即在程序使用时期发现的程序错误进行诊断和改正的过程;预防性保护:为了改进未来的可保护性或可靠性而改正软件的工作。31.决定软件可保护性的因素?软件的可理解性、可测试性、可改正性;文档描述吻合要求、用户文档简洁明确、系统文档完满并且标准。32.解析软件危机产生的主要原因有哪些?答:以致软件危机的主要原因有:1)软件日益复杂和弘大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发花销不断增加1个要点1分,只要答上5个要点得5分!33.说明构造化程序设计的主要思想是什么?答:(1)自顶向下、渐渐求精的程序设计方法(2分)(2)使用3种基本控制构造、单入口、单出口来构造程序。(3分)34、软件测试的基本任务是什么?测试与纠错有什么差别?答:软件测试的基本任务是经过在计算机上执行程序,裸露程序中潜藏的错误。测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而除掉软件故障,保证程序的可靠运行。35.软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?答:(1)单元测试,目的是代码达到模块说明书的要求(2)集成测试,目的是将经过单元测试的模块渐渐组装成拥有优异一致性的完满的程序(3)确认测试,目的是确认程序系统可否满足软件需求规格说明书的要求(4)系统测试,目的是检查可否与系统的其余部分协调运行,并且完成SRS对他的要求。36.需求解析与软件设计二个阶段任务的主要差别是什么?答:需求解析定义软件的用户需求,即定义待开发软件能做什么(2.5分)软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。(2.5分)37.说明软件测试和调试的目的有何差别?答:测试的目的是判断和发现软件可否有错误(2。5分)调试的目的是定位软件错误并纠43、什么是软件复用?简述软件复用和软件共享、软件移植的差别。答:软件复用是指在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。若是是在一个系统中多次使用一个相同的软件成分,这叫软件共享;对一个软件进行改正,使它能运行于新的软、硬件平台这称作软件移植。44、什么是软件再工程?软件再工程的主要活动有哪些?4答:软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合,并重新成立软件,用以提高软件的可理解性、可保护性、可复用性或演化性。主要活动:信息库解析、文档重构、逆向工程、代码重构、数据重构、正向工程。四、简答题每题5分,共20分。36.简述容错技术的四种主要手段,并讲解。构造冗余:包括静态冗余、动向冗余和混杂冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执行指令或程序来除掉瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。37.以G.J.Myers的见解,简述对软件测试的目的。软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例可以发现到此刻还没有发现的错误的测试。(3)一个成功的测试是发现到此刻还没有发现的错误的测试。38.就程序设计语言的工程特色而言,对程序编码有哪些要求?1)可移植性2)开发工具的可利用性3)软件的可重用性4)可保护性39.模块的内聚性包括哪些种类?1)有时内聚2)逻辑内聚3)时间内聚4)通信内聚5)序次内聚6)功能内聚1、简述软件测试的任务、目的与种类。软件测试是一个为了搜寻软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止还没有发现的错误的用例。一个成功的测试是指揭穿了迄今为止还没有发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。2、简述软件工程目标和面对的主要问题。软件工程的目标就是建筑高质量的软件。但是目前的软件开发面对着好多问题:1)对软件开发成本和进度的估计常常很不正确。(2)用户常对“已完成的”软件系统不满意。(3)软件产品的质量常常靠不住。(4)软件常常很难保护。(5)软件常常缺乏适合的文档资料。(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。(7)软件成本在计算机系统总成本中所占的比率逐年上升。3、简述软件开发过程、每个里程碑的提交物。软件开发的基本过程:(1)可行性研究,做初步的需求解析工作,决定项目可行与否(2)软件需求解析,软件工程师必定认识软件的信息领域,以及需求的功能、行为、性能和接口。系统需求和软件需求均需文档化,并与用户一起复审。并提交需求解析报告。(3)设计,包括大纲设计和详细设计,软件设计是一个多步骤的过程,主若是对软件的数据构造、软件系统构造、界面表示及过程细节进5行设计。设计过程将需求变换为软件表示,在编码从前可以评估其质量,全部设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的大纲设计和详细设计报告。(4)编码,把设计转变成机器可执行的程序。提交源程序清单。(5)测试,提交测试报告。(6)保护,提交保护报告。4、简述软件工程的七条基根源理。1)用分阶段的生命的生命周期计划严格管理;2)坚持进行阶段评审;3)推行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组的人员应该少而精;7)认同千锤百炼软件工程实践的必要性。四、论述题1、试论面向对象方法较之构造化方法的先进性。1)面向对象方法更吻合人的思想方式,更简单抓住问题的骨干。2)所开发出的软件更吻合“高内聚、松耦合”的原则。所设计出的类模块独立性更强。3)更适合于开发大型的软件,更适合于迅速原型法开发方法。使软件生产率大大提高。4)使用面向对象技术开发出的软件的可测试性和可保护性都较强。5)面向对象方法和技术可以贯彻软件开发的全过程。从解析、设计、编码到测试保护,采用面向对象的方法不存在语义断层,令人的思想连续,减少各阶段之间所采用方法的不向融性。6)使得软件的可重用性大幅度提高。2、试述软件开发工具对软件开发的影响。软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量。方便软件管理,便于软件重用,减少初级重复劳动,支持迅速原型设计,便于用户和开发人员的交流。降低大型复杂软件的开发难度。3、试论文档在软件开发过程中的重要性。在软件的生产过程中,总是陪同着大量的信息要记录、要使用。因此,软件文档在软件产品的开发过程中起着举足轻重的作用。(1)提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中,管理人员可把这些记录下来的资料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。(2)提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都进行周密思虑、全盘权衡、从而减少返工。并且可在开发早期发现错误和不一致性,便于及时纠正。(3)作为软件开发人员在必然阶段的工作成就和结束标志。(4)记录开发过程中的相关信息,便于协调今后的软件、开发、使用和保护。(5)供应对软件的运行、保护和培训的相关信息,便于开发人员之间的协作、交流和认识,使软件开发活动更科学、更有见效。便于潜藏用户认识软件的功能、性能等各项指标。三、简答题1、简述软件构造设计的启示式原则。1)改进软件构造提高模块独立性;2)模块规模要适中;63)深度、宽度、扇出和扇入都应适合;4)模块的作用域应该在控制域内;5)力争降低模块接口的复杂度;6)设计单入口单出口的模块;8)模块功能应该可以展望。2、简述构造化程序设计方法的基本要点(1)采用自顶向下,渐渐求精的程序设计方法。(2)使用三种基本控制构造构造程序,分别是序次,选择和循环(3)采用主程序员组的组织形式。(4)采用单入口单出口的模块形式。3、简述需求解析的原则。需求解析阶段的基本过程包括四个方面:对问题的鉴别,解析与综合,拟定规格说明以及评审。(1)问题鉴别,系统解析人员要研究计划阶段产生的可行性解析报告和软件项目推行计划。尔后进行功能需求、性能需求、环境需求、可靠性需求安全保密需求、用户界面需求、资源使用需求等方面的工作。(2)解析与综合,解析员需从数据流和数据构造出发,渐渐细化全部的软件功能,找出系统各元素之间的联系、接口特色和设计上的限制,解析他们可否满足功能需求,可否合理。3)拟定规格说明,编写需求解析的文档。(4)需求解析评审。为保证软件需求定义的质量,评审应以特地指定的人员负责,并按规程严格执行。4、简述软件生命周期开发方法的基本过程及每个阶段的任务。1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;2)可行性研究阶段,主若是确定待解的问题可否有可行的解决方法。需要做经济可行性解析、技术可行性解析、操作可行性解析和法律可行性解析;3)需求解析阶段,主若是确定目标系统必定具备的功能。平时用数据流图、数据字典和简要的算法表示系统的逻辑模型。4)整体设计阶段,从整体上解决问题,确定可实现的方案,并设计出软件的层次构造图;5)详细设计,把解法详细化,确定如何详细地实现这个系统。针对每个模块设计相应的算法;6)编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。7)测试阶段,系统地设计测试用例

温馨提示

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

评论

0/150

提交评论