ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:27.97KB ,
资源ID:3638425      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3638425.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程习题答案参考.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程习题答案参考.docx

1、软件工程习题答案参考软件工程绪论1. 什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

2、3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。 (2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。4. 试从你的亲身实践,谈谈软件工具在软件

3、开发中的作用。答:用C+开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送

4、入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。答:以面向对象程序设计为基础。7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规

5、的复审制度,才能避免或减少混乱,真正开发出大型的软件。8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。软件开发模型1 什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。2 传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件

6、开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。3 说明文档和复审对于软件质量的控制的作用。答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件质量,降低开发成本的重要措施。4 什么是快速原型法?其快速表现在哪里?答:首先建立一个能够反映用户主要需求

7、的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型改进,最终建立完全符合用户要求的新系统。它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。5实现快速原型法的最终系统可以有几种方法?请说明并加以比较。答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。方法一不包括系统的细节。后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不

8、高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。6比较增量模型和螺旋模型的特点,有什么不同和相似的地方?答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具有高内聚低耦合,高度的独立性。而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。7为什么利用转换模型开发软件有一定难度?什么是净室软件工程?答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同

9、时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。8哪些开发模型适用于面向对象的软件开发?答:构件集成模型9比较螺旋模型和构件集成模型的异同。答:构件集成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。软件需求分析1 需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用

10、户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。2 需求分析要经过哪些步骤?答:需求获取、需求提炼、需求描述、需求验证。3 有哪两种主要的分析模型,它们有什么联系?答:面向对象分析模型、结构化分析模型。前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。4 什么是结构化分析?它的“结构化”体现在哪里?答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、

11、称为结构化说明书的目标文档。5 什么是面向对象分析?其主要思想是什么?答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。5. 需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等

12、。行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。6. 为什么DFD要分层?画分层DFD要遵循哪些原则?答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。原则:由顶向下,逐步细化。7. D

13、FD和CFD有什么区别?8. 什么是系统的行为模型,如何建立?答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件-系统的行为模型。建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。9. 选一个系统(例如工资处理系统、飞机订票系统、图书馆管理系统等),分别用SA方法和OOA方法对它进行分析,并给出分析模型。答: 软件设计概述1.传统软件工程把设计过程分成2步:概要设计与详细设计。10. 试述这2个阶段个字主要完成的任务。答:概要设计,

14、包括结构设计和接口设计,并编写设计文档。详细设计,其任务是确定各个软件组件的数据结构和操作,产生描述个软件组件的详细设计文档。为什么大型软件设计必须分成两步走?答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细设计细分模块、数据结构等;大型系统中分两步走是必要的,概要设计确定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比较合理的,能提高效率,做到合理分工。2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。答:模块是一个拥有明确定义的 、输出和特性的程序实体。模块化是指解决一个复杂问题时自顶向下逐层把软件系

15、统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。但又相互关联的模块。3.什么是模块独立性?用什么度量?答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。4.具体说明“一个模块,一个功能”的含义,并试讨论这类模块的优点。 5.什么是自顶向

16、下设计?为什么说它尤其适用于大型软件的开发?答:设计时首先对所设计的系统有一个全面的理解。然后从顶层开始,连续的逐层向下分解,直至系统的所有模块都笑道便于掌握为止。自底向上设计反映了软件规模较小的设计思想,随着软件规模的增长,这种方法的缺点逐渐暴露出来。而自顶向下的设计需要进行详细的可行性论证,易于修改和扩展,整体测试较易通过。6.自顶向下逐步细化的方法也适用于编写教材。使用这种方法说明编写一本教材的过程。7.输入三角形的3条边长(假定这些边确实能组成一个三角形),用它们来鉴别三角形的性质(等腰、等边、任意或者直角),并输出结果。试用逐步细化的方法设计这一程序,并用结构化语言(汉语或英语)写出

17、细化过程中每一步的过程描述。8.比较概要设计复审和过程设计复审的评审内容,并说明他们采取的复审方式有何异同。答:概要设计复审的重点放在系统的总体结构、模块划分、内外结构等方面。例如软件结构是否满足需求?结构形态是否合理?层次是否清晰?模块的划分是不是符合优化原则?系统的人机界面、内外部接口、以及出错处理是不是合理等。过程设计复审的重点放在模块的具体设计上。例如模块设计能否满足其功能与性能要求?选择算法与数据结构是否合理,是否符合编程语言的特点?设计描述简单、清晰等。概要设计复审常用的复审方式是正式复审。传统的设计方法1. 简释事务、事务型结构和变换型结构。答:一次动作、时间或状态变化也可以成为

18、一次事务。事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。变换型结构由至少一条传入路径、变换中心和传出路径组成。2. 简述从DFD图到SC图的映射规则。答:(1)复审DFD图,必要时可再次进行修改或细化;(2)鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型。(3)按照SD方法规定一组规则,把DFD图转换为初始的SC图;(4)按照优化设计的指导原则改进初始的SC图,获得最终SC图。5.某事务系统具有下列功能:(1)读入用户命令,并检查其有效性;(2)按照命令的编号(1-4号)进行分类处理(3)1号命令计算产品共识,能根据用户给出的各种产品数量

19、,计算出各工种的需要工时和缺额工时;(4)2号命令计算材料消耗,根据产品的材料定额和用户给出的生产数量,计算各种材料的需求量(5)3号命令编制材料订货计划(6)4号命令计算产品成品试用结构化分析和设计方法画出该系统的DFD图并据此到处系统的SC图。对动作分支中的1号和2号命令要详细描述和设计,3号命令和4号命令允许从略,可仅用示意图表示。7.简述过程(详细)设计说明书的主要内容,怎样对它进行复审?答:(1)为每个模块确定采用的算法。选择某种适当的工具表达算法的过程,写出模块的详细过程描述;(2)确定每一模块使用的数据结构;(3)确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它

20、模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节。8.简化比较本章讲解的几种过程设计表达工具的优缺点。答:流程图和N-S图,伪代码和PDL语言。流程图具有能随意表达任何程序逻辑的有点,随着结构化程序设计方法的普及,流程图在描述程序逻辑时的随意性与灵活性恰恰变成了它的缺点。N-S图所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可见。容易养成良好的程序设计风格。缺点是当程序内嵌的层数增多时,内层的方块越画越小,不仅增加画图的困难,也使图形的清晰性受到影响。伪代码工作量比画图小,又容易转换为真正的代码,PDL具有很强的描述功能,是一种十分灵活和有用的过程表达工具。9.任

21、选一种排序(从小到大)算法,分别用流程图、N-S图和PDL语言描述其详细过程。 11. 试将下列用PDL伪代码表示的某种模块的过程性描述改用N-S图表示。Execute process aREPEAT UNTIL condition X8Execute process bIF condition X1 THEN BEGIN Execute process fIF condition X6 THEN REPEAT UNTIL condition X7 Execute process i ENDREPELSE BEGIN Execute process gExecute process hENDE

22、NDIFELSE CASE OF XiWHEN contdition X2 SELECT DO WHILE contition X5execute process CENDDOWHEN condition X3 SELECT process dWHEN condition X4 SELECT process eENDCASEENDIFENDREPExecute process jENDexecute process a execute process b TX1Fexecute process fTX3 F TX4 F TX6F execute process d execute proces

23、s e execute process iexecute process gREPEAT UNTILX7execute process hexecute process jREPEAT UNTIL condition X812. 图5-63显示了某仓库零件收发管理程序的数据结构,用Jackson图表示。图中Part表示零件,Issue和Recept分别表示零件的出库量和入库量。现要求:(1)找出输入结构与输出结构之间的对应单元(2)画出用Jackson图表示的程序结构(3)列出程序所需要的操作,并加到第(2)步画出的程序结构图上(4)用伪代码写出收发管理程序的过程性表示Inputfilepar

24、t group*receptMovement record*issueNet movement line*bodyheadingOutput report 13.某工资管理程序的输入/输出数据中包括:输入数据:职工姓名,日工资率,工作天数,加班天数,病事假天数,补贴变更,扣款变更等;输出数据:职工姓名,基本工资,各项补贴,各项扣款,事发工资等;试用Jackson方法设计这一程序。 软件测试1.软件测试的基本任务是什么?测试与纠错有什么不同?测试的目的是发现程序错误;测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误。纠错的目的是定位和纠正错误;纠错的任务是软件故障,保证程序的可靠运行。通

25、常把一次程序执行需要的测试数据成为一个测试用例,每个测试用例产生一个相应的测试结果,如果它与期望结果不符,便说明程序中存在错误,需要用纠错来改正。2.怎样理解下面的话所蕴含的意义:“程序测试只能证明错误的存在,但不能证明错误不存在”、“测试是为了证明程序有错,而不是证明程序无错”揭示了测试固有的一个重要性质不彻底性。彻底测试就是让被测程序在一切可能的输入情况下全部执行一遍,又称穷举测试。在实际情况中是根本无法实现的。这就注定了一切实际测试都是不彻底的,当然也就不能保证测试后的程序不存在遗留的错误。测试的分类测试方法测试用例和测试结果测试用例=测试数据+期望结果测试结果=测试数据+期望结果+实际

26、结果 黑盒测试 等价测试把输入数据的可能值划分为若干个等价类,使每类中的任何一个测试用例,都能代表同一等价类中的其它测试用例。采用等价测试注意以下两点:划分等价类不仅要考虑代表“有效”输入值的有效等价类,还要考虑代表“无效”输入值得无效等价类;每一无效等价类至少要用一个测试用例,不然可能漏掉某一类错误,但允许若干个有效等价类合用一个测试用例,以便进一步减少测试的次数。 【例】某工厂公开招工,规定报名者年龄在16周岁至35周岁(在1967年2月到1986年3月)。如果出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。试用等价分类法设计这一程序功能的测试用例。第一步:划分等价类输

27、入数据有效等价类无效等价类出生年月(1)6位数字字符(2)有非数字字符(3)少于6个数字字符(4)多于6个数字字符对应数值(5)在196702-198603之间(6)198603月份对应数值(8)在1-12之间(9)等于“0”(10)12第二步:设计有效等价类需要的测试用例测试数据期望结果测试范围197011输入有效(1)、(5)、(8)第三步:为每一无效等价类设计一个测试用例测试数据期望结果测试范围MAY,70输入无效(2)19705输入无效(3)1968011输入无效(4)195512年龄不合格(6)196006年龄不合格(7)196200输入无效(9)197222输入无效(10) 边界测

28、试程序员在处理边界情况时,很容易因忽略或考虑不周发生编码错误。例如,数组容量、循环次数以及输入数据与输出数据在边界值附近程序出错概率往往较大。采用边界值分析法就是要这样来选择测试用例,使得被测试程序能在边界值及其附近运行,从而更有效地暴露程序中潜在的错误。例如程序可能设有语句If(196702=value(birthdate)=198603)then read(birthdate)else write “invalid age”将上式=写成35周岁16周岁196701198604不合格年龄恰大于合格年龄恰小于合格年龄月份对应数值月份为1月份为12196801198512输入有效最小月份最大月份

29、月份12196800197413输入无效恰小于最小月份恰大于最大月份 错误猜测法猜错就是猜测被测程序放在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。一般先用等价分类法和边界值分析法设计测试用例,然后用猜错法补充一些例子作为辅助的手段。白盒测试 逻辑覆盖测试:用流程图来设计测计用例。主要考察的重点是图中的判定框(选择或循环)。按照被测试程序所作测试的有效程度,逻辑测试可由弱到强区分5种覆盖标准:语句覆盖:每条语句至少执行一次。判定覆盖:每一判定的每个分支至少执行一次。条件覆盖:每一判定中的每个条件,分别按“真”、“假”至少各执行一次。判定/条件覆盖:同时满足判定覆盖和条件覆盖的要求。

30、条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件子和至少执行一次。覆盖标准程序结构举例测试用例应满足的条件语句覆盖AÙB=.T.判定覆盖AÙB=.T.,AÙB=.F.条件覆盖A=.T.,A=.F.B=.T.,B=.F.判定/条件覆盖AÙB=.T.,AÙB=.F.A=.T.,A=.F.B=.T.,B=.F. 条件组合覆盖A=.T. Ù B=.T.A=.T. Ù B=.F.A=.F. Ù B=.T.A=.F. Ù B=.F.路径测试法程序图:是一种简化的流程

31、图。对程序图中每一条可能的程序执行路径至少测试一次。如果程序中含有循环(在程序中表现为环),则每个循环至少执行一次。路径测试具有如下特征:满足结构测试的最低要求。语句覆盖加判定覆盖是对白盒测试的最低要求,同时满足这两种标准的覆盖为“完全覆盖”。从对路径测试的要求可见,它本身就包含了语句覆盖和判定覆盖(在程序图上分别为点覆盖与边覆盖)。 软件复用 1. 什么是软件复用?答:在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。2. 什么是领域工程?简述其活动内容。答: 领域工程是指通过领域分析找出最优复用,把它们设计和构造为可复用构件,进而建立大规模的软件构件仓库的过程。答:按复用活动所应用的领域范围,复用可划分为横向复用和纵向复用。横向复用是指复用不同应用领域中的软件元素

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1