软件工程习题及答案:一、选择题:D1.为了提高测试的效率,应该。A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据D2.与设计测试数据无关的文档是。A、需求说明书B、设计说明书C、源程序D、项目开发设计B3.结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。A、数据流B、数据流图C、数据库D、数据结构A4.概要设计的结果是提供一份。A、模块说明书B、框图C、程序D、数据结构B5.需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档D6.注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。A、1/6B、1/5C、1/4D、1/3A7.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。A、变换型B、事务型B8.PAD(ProblemAnalysisDiagram)图是一种工具。A、系统描述B、详细设计C、测试D、编程辅助A9.排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的。A、95%B、5%C、50%D、20%A10.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。A、总貌B、细节C、抽象D、软件的作者B11.数据流图中,当数据流向或流自文件时,。A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出B12.分析员是。A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导A13.在软件开发中,有利于发挥集体智慧的一种做法是。A、设计评审B、模块化C、主程序员制D、进度控制A14.在开发软件时,可用来提高程序员的工作效率。A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机C15.软件测试中设计测试实例(testcase)主要由输入数据和两部分组成。A、测试规则B、测试计划C、预期输出结果D、以往测试记录分析C16.结构化程序设计主要强调程序的。A、效率B、速度C、可读性D、大小B17.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作。A、软件投机B、软件危机C、软件工程D、软件产生B18.成功的测试是指。A、运行测试实例后未发现错误项B、发现程序的错误C、证明程序正确D、改正程序的错误E,I,B,G,H19.数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。①②③④A、消息B、文书C、父母D、数据流E、加工流F、文件G、数据字典H、结构化语言I、加工J、测试B,E,F20.文档是软件开发人员、软件管理人员、维护人员、用户以及计算机之间的①,软件开发人员在各个阶段以文档作为前段工作成果的②和后段工作的③。A、接口B、桥梁C、科学D、继续E、体现F、基础B,D21.单独测试一个模块时,有时需要一个①程序①被测试的模块。有时还要有一个或几个②模块模拟由被测试模块调用的模块。①A、理解B、驱动C、管理D、传递②A、子(Sub)B、仿真(Initation)C、栈(Stack)D、桩(Stub)F,E22.在结构化程序设计思想提出以前,在程序设计中曾强调程序的①。现在,与程序的①相比,人们更重视程序的②。①②A、安全性B、专用性C、一致性D、合理性E、可理解性F、效率B,B,C,D23.软件测试中,白箱方法是通过分析程序的①来设计测试实例的方法,除了测试程序外,还适用于对②阶段的软件文档进行测试。黑箱方法是根据程序的③来设计测试实例的方法,除了测试程序外,它也适用于④阶段的软件文档进行测试。①③A、应用范围B、内部逻辑C、功能D、输入数据②④A、编码B、软件详细设计C、软件概要设计D、需求分析E,B,B,B,C24.(1)在软件生命期中,①阶段所需工作量最大,约占70%;(2)结构化分析方法产生的系统说明书由一套②、一本数据字典和一组小说明及补充材料组成;(3)软件的③一般由两次故障平均间隔时间和故障平均恢复时间来度;(4)采用④且编写程序,可提高程序的可移植性:(5)仅依据规格说明书描述的程序功能来设计测试实例的方法称为⑤。①A、分析B、设计C、编码D、测试E、维护②A、因果图B、分层数据流图C、PAD图D、程序流程图③A、可维护性B、可靠性C、效率D、互理解性④A、机器语言B、宏指令C、汇编语言D、高级语言⑤A、白箱法B、静态分析法C、黑箱法D、人工分析法A,B25.①是以发现错误为目的的,而②是以定位、分析和改正错误为目的的。A、测试B、排序C、维护D、开发F,D,C,E,B,A26.请按顺序写出软件生命期的几个阶段、、、、、。A、维护B、测试C、详细设计D、概要设计E、编码F、需求分析B,D,E,HE,D,A27.软件发展过程中,第一阶段(50年代)称为“程序设计的原始时期”,这时既没有①也没有②,程序员只能用汇编语言编写程序。第二阶段(50年代末—60年代末)称为“基本软件期”,出现了①并逐渐普及,随之②编译技术也有较大发展。第三阶段(60年代末—70年代中)称为“程序设计方法的时代”。此时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了③和④等程序设计方法,设法降低软件开发的费用。第四阶段(70年代中至今)称为“软件工程时期”,软件开发技术不再仅仅是程序设计技术,而是同软件开发的各阶段(⑤、⑥、编码、测试、⑦)及整体和管理有关。①②③④A、汇编语言B、操作系统C、虚拟存储器概念D、高级语言E、结构化程序设计F、数据库概念G、固件H、模块化程序设计⑤⑥⑦A、使用和维护B、兼容性的确认C、完整性的确定D、设计E、需求定义F、图像处理C,B28.软件危机出现于①,为了解决软件危机,人们提出了用②的原理来设计软件,这就是软件工程诞生的基础。①A、50年代末B、60年代初C、60年代末D、70年代初②A、运筹学B、工程学C、软件学D、数字D,A,C,J,I29.结构化分析方法(SA)、结构化设计方法(SD)和Jackson方法是软件开发过程中常用的方法。人们使用SA方法时可以得到①,该方法采用的基本手段是②;使用SD方法可以得到③,并可以实现④;而使用Jackson方法可以实现⑤。①②③④⑤A、程序流程图B、具体的语言程序C、模块结构图和模块的功能说明书D、分层数据流图和数据字典E、分解与抽象F、分解与综合G、归纳与推导H、试探与回溯I、从数据结构导出程序结构J、从数据流图导出初始结构图K、从模块结构导出数据结构L、从模块结构导出程序结构D,B,C,A,C30.1960年Dijkstra提倡的①是一种有效的提高程序设计效率的方法,把程序的基本控制结构限于顺序、②和③三种,同时避免使用④,这样使程序结构易于理解,①不仅提高程序设计的生产率,同时也容易进行程序的⑤。①A、标准化程序设计B、模块化程序设计C、多道程序设计D、结构化程序设计②③A、分支B、选择C、重复D、计算E、输入输出④A、GOTO语句B、DO语句C、IF语句D、REPEAT语句⑤A、设计B、调试C、维护D、编码C,B,A,A,B,A31.块间联系和块内联系是评价程序结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和界面的①等因素决定了联系的大小;在块内联系中,②系最强。结构设计方法的总则是使每个模块执行③功能,模块间传递④参数,模块通过⑤语句调用其他模块,而且模块间传递的参数应尽量⑥①A、友好地B、坚固性C、清晰性D、安全性②A、偶然性B、功能性C、通讯性D、顺序性③A、一个B、多个C、尽量多D、尽量少④A、数据性B、控制性C、混合性⑤A、直接调用B、Call语句C、中断D、宏调用⑥A、少B、多A,B32.结构设计方法中提出了判定作用范围和模块的控制范围两个概念,二者的正确关系应该是:①是②的子集。①②A、作用范围B、控制范围F,D,C,C33.软件设计阶段可划分为①设计阶段和②设计阶段,用结构化设计方法的最终目的是使③,用于表示模块间调用关系的图叫④①②A、逻辑B、程序C、特殊D、详细E、物理F、概要③A、块间联系大,块内联系大B、块间联系大,块内联系小C、块间联系小,块内联系大D、块间联系小,块内联系小④A、PADB、HCPC、SCD、SADTE、HIPOF、NSC,D,F34.需求阶段的文档主要有①、②、③等。A、结构图B、用户手册C、数据字典D、数据流图E、数据结构图F、一组小说明B,A35.软件工程学的目的是以①的成本,研制②质量的软件。A、较高B、较低C、可靠D、优秀A,D36.概要设计的任务是决定系统中各个模块的①,即其②。A、外部特性B、内部特性C、算法和使用数据D、功能和输入输出数据B,C37.详细设计的任务是决定每个模块的①,即模块②。①②A、外部特性B、内部特性C、算法和使用数据D、功能和输入输出数据A,B,C,D38.模块具有①、②、③、④四个特性,其中①、②是外部特性,③、④是内部特性。①②③④A、功能B、接口C、代码D、数据E、框图F、文档B,D,D,B,A39.程序的三种基本控制结构是①,它们的共同点是②。结构程序设计的一种基本方法是③。软件测试的目的是④。软件排错的目的是⑤。①A、过程、子程序和分程序B、顺序、条件和重复C、递归、堆栈和队列D、调用、返回和转移②A、不能嵌套使用B、只能用来写简单的程序C、已经用硬件实现D、只有一个入口和一个出口③A、筛选法B、递归法C、归纳法D、逐步求精法④A、证明程序中没有错误B、发现程序中的语法错误C、测量程序的动态特性D、检查程序中语法错误⑤A、找出错误所在并改正之B、排除存在错误的可能性C、对错误性质进行分类D、统计出错的次数B,C,D,G,H40.在下列关于模块化设计的叙述中,①、②、③、④、⑤是正确的。A、程序设计比较方便,但比较难以维护B、便于由多个人分工编制大型程序C、软件的功能便于扩充D、程序易理解,也便于排错E、在主存储器能容纳的前提下,使模块尽可能大,以便减小模块的个数F、模块之间的接口叫做数据文件G、只要模块之间的接口关系不变,由模块内部实现细节H、模块间的单向调用关系叫做模块的层次结构I、模块越小,模块化的优点越明显,一般来讲,模块的大小都在10行以下J、一个模块实际上就是一个进程A,C,G,H,J41.下列叙述中,正确的是①、②、③、④、⑤。A、在进行需求分析时需同时考虑维护问题B、完成测试作业后,为了缩短源程序的长度应删去源程序的注解C、尽可能在软件生产过程中保证各阶段文档的正确性D、编码时应尽可能使用全局变量E、择时间效率和空间效率尽可能高的算法F、尽可能使用硬件的特点G、重视程序结构的设计,使程序具有较好的层次结构H、使用维护工具或支撑环境I、在进行概要设计时应加强模块间的联系J、为了提高程序的易读性,尽可能使用高级语言编写程序K、为了加快软件维护作业的进度,尽可能增加维护人员的数目D,E,F,C,G42.选择符合以下定义的名称。①软件从一个计算机系统或环境转换到另一个计算机和环境的容易程度。②软件在需要它投入使用时能实现其指定的功能的概率。③软件使不同的系统约束条件和用户需求得到满足的容易程度。④在规定的条件下和规定期间内,实现所指定功能的概率。⑤尽管有非法输入,软件仍能继续正常工作的能力。①②③④⑤A、可测试性B、可理解性C、可靠性D、可移植性E、可用性F、兼容性G、坚固性H、可修改性I、可接近性J、一致性A,C,D43.软件维护大体上可分为三种类型:①、②和③维护。①②③A、纠正性B、可靠性C、适应性D、完善性G,H,I,A,C44.软件设计的常用方法有SA方法、Jackson方法、Parnas方法等。Jackson方法是一种面向数据结构的设计方法。一般在