1、精编软件工程期末考试总复习题及答案(精编)软件工程期末考试总复习题及答案复习题填空题1. 在信息处理和计算机领域内,一般认为软件是_程序_、_文档_和_数据_。2. 数据流图的基本组成部分有_数据的源点与终点_、数据流_、加工_、数据文件_。3. 数据流图和数据字典共同构成了系统的_逻辑_模型,是需求规格说明书的主要组成部分。4. 划分模块时尽量做到_高内聚、低耦合_,保持模块的独立性,尽量使用公共模块。5. 类的实例化是_对象_。6. 人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可7. 靠性的两个指标是_成功地运行的概率_和_平均故障时间_。8. 将待开发的软件
2、细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,9. 将得到软件的总开发量。这种成本估算方法称为_自底向上_。10. 如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(m1,B=0,A=2,B=0,执行S1,A1,B0或A1,B=0或A1,B0,A=2,B=1或A=1,B=0或A=1,B=1,执行S2条件覆盖,以下四种情况各出现一次,A1,B=0,A=2,B=0,执行S1,A1,B0,A=1,B=1,执行S2条件组合覆盖,A1,B=0,A=2,B=0,执行S1,A1,B0,A=2,B=1,执行S2,A1,B=0,A=1,B=0,执行S2,A1,B0,A=1,B=1,执
3、行S228.某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字;前缀:非0或1的三位数字;后缀:4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。划分等价类输入条件,有效等价类,无效等价类地区码,1.空白;2.三位数;,1.有非数字字符;2.少于三位数字;3.多于三位数字。前缀,3.从200到999之间的三位,4.有非数字字符;5.起始位为0;6.起始位为1;7.少于三位数字;8.多于三位数字。后缀,4.四位数字。,9.有非数字字符;10.少于四位数字;11.多于四位数字。设计测试
4、方案方案,内容,输入,预期输出,地区码,前缀,后缀,1,空白,200999之间的三位数字,四位数字,()276-2345,有效2,三位数字,四位数字,(635)805-9321,有效3,有非数字字符,(20A)723-4567,无效4,少于三位数字,(33)234-5678,无效5,多于三位数字,(5555)345-6789,无效6,有非数字字符,(345)5A2-3456,无效7,起始位为0,(345)012-3456,无效8,起始位为1,(345)132-3456,无效9,少于三位数字,(345)92-3456,无效10,多于三位数字,(345)4562-3456,无效11,有非数字字符,
5、(345)342-3A56,无效12,少于四位数字,(345)342-356,无效13,多于四位数字,(345)562-34567,无效29.为什么说软件的维护是不可避免的?因为软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的修改或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的维护是不可避免的。22.试由程序流程图导出程序图FTTFTFTF(a)程序流程图(b)导出程序图30.软件的维护一般分为哪几类?完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能,以满足用户日益增长的需要而进行的工作;适应性维护:是软件
6、适应新的运行环境而进行的工作;纠错性维护:纠正开发期间未发现的遗留错误,即在程序使用期间发现的程序错误进行诊断和改正的过程;预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。31.决定软件可维护性的因素?(1)软件的可理解性、可测试性、可修改性;(2)文档描述符合要求、用户文档简洁明确、系统文档完整并且标准。32.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加1个要点1分,只要答上5个要点得5分!33.说明结构化程序设计的主要思想是
7、什么?答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。(3分)34、软件测试的基本任务是什么?测试与纠错有什么区别?答:软件测试的基本任务是通过在计算机上执行程序,暴露程序中潜在的错误。测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而消除软件故障,保证程序的可靠运行。35.软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?答:(1)单元测试,目的是代码达到模块说明书的要求(2)集成测试,目的是将经过单元测试的模块逐步组装成具有良好一致性的完整的程序(3)确认测试,目的是确认程序系统是否满足软件需
8、求规格说明书的要求(4)系统测试,目的是检查能否与系统的其余部分协调运行,并且完成SRS对他的要求。36.需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软件的用户需求,即定义待开发软件能做什么(2.5分)软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。(2.5分)37.说明软件测试和调试的目的有何区别?答:测试的目的是判断和发现软件是否有错误(2。5分)调试的目的是定位软件错误并纠38.根据以下被测试的流程图,选择相应的答案。(8分)(1)A=2,B=0,X=4(2)A=2,B=1,X=1(3)A=2,B=0,X=1A=1,B=1,X=1A=3,B=0,X=3A
9、=1,B=1,X=2在1-3的答案中满足判定覆盖的测试用例是_1_(2分)在1-3的答案中满足条件覆盖的测试用例是_3_(2分)在1-3的答案中满足判定/条件覆盖的测试用例是_2_(2分)39工资计算系统中的一个子系统有如下功能:(1)计算扣除部分由基本工资计算出应扣除(比如水电费、缺勤)的部分;(2)计算奖金部分根据职工的出勤情况计算出奖励金;(3)计算工资总额部分根据输入的扣除额及奖金计算出总额;(4)计算税金部分由工资总额中计算出应扣除各种税金;(5)生成工资表根据计算总额部分和计算税金部分传递来的有关职工工资的详细信息生成工资表。试根据要求画出该问题的数据流程图。40用自顶向下结构化程
10、序设计方法编写直接选择排序从小到大排列的程序。要求保持良好的程序风格,加上必要的注释()。用C语言编写:/*程序名称:直接选择排序;*/*作者*/*完成日期:2006年6月9日;*/*过程头:selectsort(int*A;intN)*/*输入参数:N为元素个数(N=1000);A整型数组,从1到N存放待排序元素;*/*返回结果:数组A为指针,由它返回排序结果;*/voidselectsort(int*A;intN)inti,j,k,x;for(i=1;iN;i+)/*求第I个最小值*/k=i;/*先假设I位置上的值最小*/for(j+=i;j=N;j+)/*求I到N位置上的最小值*/if(
11、A(j)A(k))k=j;if(ki)/*需要交换A(K)和A(I)的值*/*交换A(K)和A(I)*/x=A(i);A(i)=A(k);A(k)=x/*结束交换*/*求出了第I个最小值*/*SELECTSORT*/41.把事务型数据流图映射成软件结构图:42.把变换型数据流图映射成软件结构图:43、什么是软件复用?简述软件复用和软件共享、软件移植的差别。答:软件复用是指在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。如果是在一个系统中多次使用一个相同的软件成分,这叫软件共享;对一个软件进行修改,使它能运行于新的软、硬件平台这称作软件移植。44、什么是软件再工程?软件再工程的主要活动有哪些?答:软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合,并重新构建软件,用以提高软件的可理解性、可维护性、可复用性或演化性。主要活动:信息库分析、文档重构、逆向工程、代码重构、数据重构、正向工程。选择题1.软件工程的概念是哪年提出的()。A.1988B.1968C.1948D.19282.瀑布模型的关键不足在于()。A.过于简单B.各个阶段需要进行评审C.过于灵活D.不能适应需求的动态变更3.以下哪一项不是软件危机的表现形式()。A.开发的软件不满足用户需要B.开发的