软件工程复习题—选择、判断、填空、简答.doc_第1页
软件工程复习题—选择、判断、填空、简答.doc_第2页
软件工程复习题—选择、判断、填空、简答.doc_第3页
软件工程复习题—选择、判断、填空、简答.doc_第4页
软件工程复习题—选择、判断、填空、简答.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

一 选择题:1 软件危机出现于_C_,为了解决软件危机,人们提出了用_B_的原理来设计软件,这是软件工程诞生的基础。 A50年代末 B60年代初 C60年代末 D70年代初 A运筹学 B工程学 C软件学 D软件学 E数字2开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作_B_。A.软件投机 B软件危机C软件工程D软件产生3产生软件危机的原因有如下几点,除了_D_。A、 软件开发过程未经审查 B、 软件开发不分阶段,开发人员没有明确的分工C、 所开发的软件,除了程序清单外,没有其他文档D、 采用工程设计的方法开发软件,不符合软件本身的特点4软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是_B_。A引入新技术提高空间利用率B用较少的投资获得高质量的软件C缩短研制周期扩大软件功能D硬软件结合使系统面向应用5请按顺序写出软件生命期的几个阶段_F_,_D_ ,_C_,_E_,_B_,_A_。A维护 B测试 C详细设计 D概要设计 E编码 F需求分析6 瀑布模型把软件生存周期划分为软件定义、软件开发和_C_三个阶段,而每一阶段又可细分为若干个更小的阶段。A详细设计B可行性分析C运行及维护D测试与排错7划分软件生存周期的阶段时所应遵循的基本原则是_B_。A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立8一个软件项目是否进行开发的结论是在_B_文档中作出的。A、 软件开发计划B、可行性报告C、需求分析说明书D、测试报告9分析员是_B_。A 用户中系统的直接使用者B用户和软件人员的中间人C软件的编程人员 D。用户和软件人员的领导 10下列叙述中,_A_不属于数据字典的作用。A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识C、作为概要设计的依据 D、为需求分析阶段定义各类条目11使用结构化分析方法时,采用的基本手段是_A_。A分解和抽象B分解和综合C归纳与推导D试探与回溯12结构化系统分析主要是通过_D_进行分析的。A算法分解B控制结构分解C数据结构分解D处理功能分解13分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的_A_。A.总貌B细节C抽象D软件的作者 13变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于_A_。 A变换型 B 事务型 14需求分析说明书不能作为_A_。A、 可行性研究的依据B、用户和开发人员之间的合同C、 系统概要设计的依据 D、软件验收测试的依据15结构化分析方法以数据流图、_D_和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。ADFD图BPAD图CIPO图D数据字典16不适于作为数据流图处理(加工)框名称的是_B_。A人工校核工资数据B工资支票数据C打印工资支票D计算职工工资17系统开发人员使用系统流程图或其他工具描述系统,估计每种方案的成本和效益的工作是在_B_阶段进行的。A、需求分析 B、总体设计 C、详细设计 D、编码阶段18软件的_A_设计又称为总体设计,其主要任务是建立软件系统的总体结构。A概要B抽象C逻辑D规划19结构化设计方法采用变换分析和事务分析技术实现_D_。A从数据结构导出程序结构B从模块结构导出程序结构C从模块结构导出数据结构D从数据流图导出初始化结构图20结构化设计方法是面向_C_的设计方法。A过程B对象C数据流D数据结构 41Jackson程序设计方法是一种面向 _A_ 的设计方法。A、数据结构 B、数据流图 C、IPO图 D、系统流程图20Jackson设计方法由英国的M. Jackson提出的,它是一种面向_C_的设计方法。A对象B数据流C数据结构D控制结构21结构化设计采用模块化方法的主要出发点是_D_。A、 增加内聚性 B、减少耦合度 C、提高有效性 D、降低复杂度22下列_D_不是模块化设计的目的。 A、可采用结构化设计方法 B、降低复杂度C、有利于信息隐蔽 D、描述系统的功能与性能23一个模块直接控制(调用)的下层模块的数目称为模块的_B_。A、扇入数 B、扇出数 C、宽度 D、作用域24某个模块的作用域是指_D_。 A、被该模块调用的所用模块 B、调用该模块的所有模块C、与该模块相关联的所有模块 D、受该模块内的判定影响的所有模块25模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是_D_。A顺序性内聚B过程性内聚C逻辑性内聚D功能性内聚26如果模块中所有成分引用共同的数据,该模块内的联系类型是_C_。A顺序内聚B功能内聚C通信内聚D过程内聚27初始化模块和结束模块从块内联系看,被称为_C_模块。A过程内聚B功能内聚C时间内聚D逻辑内聚28若一模块内部的处理动作为:成分A的输出是成分B的输入,则该模块的聚合性称为_A_。A、顺序内聚 B、功能内聚 C、过程内聚 D、通信内聚29某模块的功能是打印录取通知书或不录取通知书,调用模块可通过向此模块传递布尔标志信息决定本次调用哪种通知书的打印,这种模块之间的耦合称为_D_。A数据耦合B混合耦合C公共耦合D控制耦合30要减少两个模块之间的耦合,则必须_D_。A两个模块间的调用次数要少B模块间传递的参数要少C模块间传递的参数要少且布传递开关型参数D模块间传递的参数要少且不传递开关型参数以及两模块不引用同样的全局变量31下列耦合度表示中,最弱的耦合形式是_C_。 A、特征耦合 B、公共耦合 C、数据耦合 D、数据结构32一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于_A_耦合。A、 数据型B、复合型C、内容型D、公共型34PAD(Problem Analysis Diagram)图是一种_B_工具。 A系统描述 B。详细设计 C。测试 D。编程辅助35下列系统设计工具中,_B_不属于详细设计工具。 A、NS图 B、数据流图 C、程序流程图 D、PAD36程序流程图、N-S图和PAD图是_B_使用的表达工具。A设计阶段的概要设计B设计阶段的详细设计C编码阶段D测试阶段37模块内部的算法设计在结构化方法的_C_阶段进行。A、系统分析 B、概要设计 C、详细设计 D 编码(实现)38源程序的版面文档要求应有变量说明、适当注释和_B_。A框图B统一书写格式C修改记录D编程日期39提高程序可读性的有力手段是_D_。A、 选好一种程序设计语言 B、显式说明一切变量C、使用三种标准控制语句 D、给程序加注释40文档是软件开发人员.维护人员.用户以及计算机之间的_B_, 软件开发人员在各个阶段以文档作为前段工作成果的_E_和后段工作的_F_。A. 接口B.桥梁C.科学D.继续E.体现F.基础41软件工程中_C_不属于用户文档的内容。A、 功能描述 B、安装手册C、系统设计D、使用手册42在软件工程中,高质量的文档标准是完整性、一致性和_C_。A统一性B安全性C无二义性D组合性43一般来说,在管理软件中,软件生存周期各个阶段的工作量以_D_所占的比例最大。 A、需求分析与设计阶段 B、编码实现阶段 C、测试阶段 D、维护阶段44软件的_B_一般由两次故障平均间隔时间和故障平均恢复时间来度量;A可维护性 B可靠性 C效率 D可理解性45采用_D_且编写程序,可提高程序的可移植性;A机器语言 B宏指令 C汇编语言 D高级语言46. 软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是_B_。A引入新技术提高空间利用率B用较少的投资获得高质量的软件C缩短研制周期扩大软件功能D硬软件结合使系统面向应用47. 划分软件生存周期的阶段时所应遵循的基本原则是_B_。A各阶段的任务尽可能相关性 B各阶段的任务尽可能相对独立C各阶段的任务在时间上连续 D各阶段的任务在时间上相对独立48. 结构化设计方法采用变换分析和事务分析技术实现_D_。A从数据结构导出程序结构B从模块结构导出程序结构C从模块结构导出数据结构D从数据流图导出初始化结构图49. 需求分析说明书不能作为_A_。A可行性研究的依据 B用户和开发人员之间的合同C系统概要设计的依据 D软件验收测试的依据50. 瀑布模型把软件生存周期划分为软件定义、软件开发和_C_三个阶段,而每一阶段又可细分为若干个更小的阶段。A详细设计B可行性分析C运行及维护D测试与排错51. Jackson设计方法由英国的M. Jackson提出的,它是一种面向_C_的设计方法。A对象 B数据流C数据结构 D控制结构52. 一个模块直接控制(调用)的下层模块的数目称为模块的_B_。A扇入数 B扇出数 C宽度 D作用域53. 模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是_D_。A顺序性内聚 B过程性内聚C逻辑性内聚D功能性内聚54. 某模块的功能是打印录取通知书或不录取通知书,调用模块可通过向此模块传递布尔标志信息决定本次调用哪种通知书的打印,这种模块之间的耦合称为_D_。A数据耦合 B混合耦合C公共耦合 D控制耦合55. 程序流程图、N-S图和PAD图是_B_使用的表达工具。A设计阶段的概要设计 B设计阶段的详细设计C编码阶段 D测试阶段56. 分析员是_B_。A用户中系统的直接使用者 B用户和软件人员的中间人C软件的编程人员 D用户和软件人员的领导57. 下列_D_不是模块化设计的目的。A可采用结构化设计方法 B降低复杂度C有利于信息隐蔽 D描述系统的功能与性能58. 软件工程中_C_不属于用户文档的内容。A功能描述 B安装手册C系统设计手册D使用手册59. 软件的_B_一般由两次故障平均间隔时间和故障平均恢复时间来度量。A可维护性 B可靠性 C效率 D可理解性60. 一般来说,在管理软件中,软件生存周期各个阶段的工作量以_D_所占的比例最大。A需求分析与设计阶段 B编码实现阶段C测试阶段 D维护阶段61在下列工具与环境中( )属于较早期的CASE。A基于信息工程CASE B人工智能CASE C结构的基于图形CASE D集成的CASE环境62Putnam成本估算模型是一个( )模型。 A静态单变量 B动态单变量 C静态多变量 D动态多变量63在McCall软件质量度量模型中,( )属于面向软件产品修改。 A可靠性 B可重用性 C适应性 D可移植性64ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( ) ASQIC BSQMC CSQRC DSQDC65软件复杂性度量的参数包括( ) A效率 B规模 C完整性 D容错性66对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。 A结合 B隐藏 C封装 D抽象67软件调试技术包括( ) A边界值分析 B演绎法 C循环覆盖 D集成测试68瀑布模型的存在问题是( ) A用户容易参与开发 B缺乏灵活性 C用户与开发者易沟通 D适用可变需求69软件测试方法中的静态测试方法之一为( ) A计算机辅助静态分析 B黑盒法 C路径覆盖 D边界值分析70软件生命周期中所花费用最多的阶段是( ) A详细设计 B软件编码 C软件测试 D软件维护71第一个体现结构化编程思想的程序设计语言是( ) AFORTRAN语言 BPascal语言 CC语言 DPL/1语言72程序的三种基本控制结构是( ) A过程、子程序和分程序 B顺序、选择和重复 C递归、堆栈和队列 D调用、返回和转移73在详细设计阶段,经常采用的工具有( ) APAD BSA CSC DDFD74详细设计的结果基本决定了最终程序的( ) A代码的规模 B运行速度 C质量 D可维护性75需求分析中开发人员要从用户那里了解( ) A软件做什么 B用户使用界面 C输入的信息 D软件的规模76结构化程序设计主要强调的是( )A程序的规模 B程序的效率 C程序设计语言的先进性 D程序易读性77IDEF。图反映系统( )A怎么做 B对谁做 C何时做 D做什么78经济可行性研究的范围包括( ) A资源有效性 B管理制度 C效益分析 D开发风险79可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开 发的决策依据,因必须给出( )的回答。 A确定 B行或不行 C正确 D无二义80需求分析阶段的任务是确定( )A软件开发方法 B. 软件开发工具 C软件开发费 D软件系统的功能81. 面向对象程序设计中的数据隐藏指的是( D )。A输入数据必须输入保密口令B数据经过加密处理C对象内部数据结构上建有防火墙D对象内部数据结构的不可访问性82. 与设计测试数据无关的文档是( D )。A需求说明书 B设计说明书 C源程序 D项目开发设计83. 结构化分析SA 方法以数据流图、( B )和加工说明等描述工具,即用直观的图和简洁的语言来描述软系统模型。ADFD 图 B数据字典 CIPO 图 DPAD 图84. ( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。A增量模型 B喷泉模型 C原型模型 D螺旋模型85. 瀑布模型把软件生存周期划分为软件定义、软件开发和( C )三个阶段,而每一阶段又可细分为若干个更小的阶段。A详细设计 B可行性分析 C运行及维护D测试与排错86. 若有一个计算类型的程序,它的输入量只有一个X,其范围是-1.0, 1.0,现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001。设计这组测试用例的方法是( C )。A条件覆盖法 B等价分类法 C边界值分析法 D错误推测法87. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C )。A数据库设计 B数据通信 C数据定义 D数据维护88. 模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是( D )。A顺序性内聚 B过程性内聚 C逻辑性内聚D功能性内聚89. 下面几种白箱测试技术,( D )是最强的覆盖准则。A语句覆盖 B条件覆盖 C判定覆盖 D条件组合覆盖90. 软件需求规格说明的内容不应包括( B )。A主要功能 B算法的详细描述C用户界面及运行环境 D软件的性能91. 面向对象的分析方法主要是建立三类模型,即( D )。A系统模型、E-R 模型、应用模型 B对象模型、动态模型、应用模型CE-R模型、对象模型、功能模型 D对象模型、动态模型、功能模型92. 下列( D )不是模块化设计的目的。A可采用结构化设计方法 B降低复杂度C有利于信息隐蔽 D描述系统的功能与性能93. 面向数据流的设计方法把( A )映射成软件结构。A数据流 B系统结构C控制结构 D信息流94. 下面关于面向对象方法中消息的叙述,不正确的是( B )。A键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C应用程序之间可以相互发送消息D发送与接收消息的通信机制与传统的子程序调用机制不同95. 提高测试的有效性非常重要,成功的测试是指( D ) 。A证明了被测试程序正确无误 B说明了被测试程序符合相应的要求C未发现被测程序的错误 D发现了至今为止尚未发现的错误二、填空题:1、 在结构化分析中,_数据字典_用于详细地定义数据流图中的成分。2、 耦合性和内聚性是衡量_模块独立性_的两个定性的标准。3、 结构化程序设计是一种程序设计技术,它采用_自顶向下、逐步求精_的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。4、 结构化分析方法中,数据流图的四种基本成分为:处理、源点或终点_数据存储和数据流_。5、 从模块内外的联系来看,结构化设计的要求是_高内聚低耦合_。6、 在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。通常问题简述中的动词短语将成为数据流图中的_处理_成分。7、 如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为_数据_耦合。8、 模块内部的算法设计在结构化方法的_详细设计_阶段进行。9、 定性度量模块独立性的两个标准是内聚性和_耦合性_。10、 在模块结构图中,直接调用某一模块的其他模块数称为该模块的_扇入数_。11系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。12成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。13自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略) 。14独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。15汇编语言是面向(机器) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。16在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。17详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。18所有软件维护申请报告要按规定方式提出,该报告也称( 软件问题)报告。19有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。20科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。21在软件开发过程中要产生大量的信息,要进行大量的修改, 软件配置管理 能协调软件开发,并使混乱减到最低程度。22规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有 容错功能 的软件。23McCall提出的软件质量模型包括11 个软件质量特性。24软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、 可使用性和效率。25为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。26程序设计语言的心理特性主要表现在 歧义性 、简洁性、传统性、局部性和顺序性。27软件结构是以 模块 为基础而组成的一种控制层次结构。28在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树 。29结构化语言是介于自然语言和形式语言之间的一种半形式语言。30若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=F/(1+(n*i)。31. 在结构化分析中,( 数据字典 )用于详细地定义数据流图中的成分。32. 耦合性和内聚性是衡量( 模块独立性 )的两个定性的标准。33. 结构化程序设计是一种程序设计技术,它采用(自顶向下、逐步求精 )的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。34. 结构化分析方法中,数据流图的四种基本成分为:处理、源点或终点、数据存储和( 数据存储和数据流 )。35. 从模块内外的联系来看,结构化设计的要求是( 高内聚低耦合 )。36. 在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。通常问题简述中的动词短语将成为数据流图中的( 处理 )成分。37. 如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为( 数据 )耦合。38. 模块内部的算法设计在结构化方法的( 详细设计 )阶段进行。39. 系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。40. 在模块结构图中,直接调用某一模块的其他模块数称为该模块的( 扇入数 )。41. ( 数据流图 )和数据字典共同构成了系统的逻辑模型。42. ( 等价划分 )是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。43. 成本效益分析的目的是从(经济 )角度评价开发一个项目是否可行。44. 为了便于对照检查,测试用例应由输入数据和预期的( 输出结果 )两部分组成。45. 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、( 判定树 ) 。46. 若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=( F/(1+(n*i) )。47. 定性度量模块独立性的两个标准是内聚性和( 耦合性 )。48. 自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略) 。49. 独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径未有过 )的边的路径。50. 软件工程中的结构化分析SA是一种面向( 结构化 )的分析方法。三判断1软件的开发与运行经常受到硬件的限制和制约。()2模块内的高内聚往往意味着模块间的松耦合。( )3Jackson图只能表达程序结构,不能表达数据结构。(X)4. 上述数据流图表示数据A和B同时输入变换成C。(X )5软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(X )6判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。() 7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(X)8UML只能应用于软件系统模型的建立。(X)9容错就是每个程序采用两种不同的算法编写。(X)10软件测试的目的是为了无一遗漏的找出所有的错误。(X)1软件工程学只有理论意义,没有实际用途。 ( X )2软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。( X )3可行性研究进一步研究问题分析阶段所确定的问题是否有可行的解。 ( )4代码审查方法没有计算机测试方法好。 ( X )5验证软件需求的方法主要靠人工审查的方法。 ( )6并发系统中遇到的一个主要问题是定时问题。 ( )7编码风格由个人喜好决定,没有固定格式。 ( X )8面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。( )9软件重用是提高软件开发生产率和目标系统质量的重要途径。 ( )10判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。 ( )11Power Designer是一个CASE工具。 ( )12软件是指用程序设计语言(如Pascal,C,Visual Basic等)编写的程序,软件开发实际上就是编写程序代码。( X )13在进行需求分析时需同时考虑维护问题。 ( X )14UML是一种面向对象的分析设计方法,即OOA/OOD方法。 (X )15在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类是生成对象的模板。( X )16快速原型模型可以有效地适应用户需求的动态变化。 ( T )17统一的建模语言,是一种软件工程设计语言。 ( F )18模块化使程序设计比较方便,但比较难以维护。 ( F )19一个模块实际上就是一个进程。 ( F )20过程描述语言可以用于描述软件的系统结构。 ( F )21编程语言应该在软件概要设计时选择。 ( F )22如果通过软件测试没有发现错误,则说明软件是正确的。 ( F )23在进行概要设计时应加强模块间联系。 ( F )24一般人为,软件开发阶段是由设计、编码和测试三个基本活动组成。( F )25软件概要设计包括软件系统结构设计以及数据结构和数据库设计。 ( T )26为了提高程序的易读性,尽可能使用高级语言或4GL编写程序。 ( T )27为了加强软件维护作业的进度,应尽可能增加维护人员的数目。( F )28模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( T )29确认测试计划应该在可行性研究阶段制定。 ( F )30数据字典是对数据流图中的数据流,处理过程、数据存储、数据的源和终点进行详细定义。( F )1. 软件工程学只有理论意义,没有实际用途。 ( F )2. 软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。 ( F )3. 可行性研究进一步研究问题分析阶段所确定的问题是否有可行的解。 ( T )4. 代码审查方法没有计算机测试方法好。 ( F )5. 编码风格由个人喜好决定,没有固定格式。 ( F )6. 面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。 ( T)7. 软件重用是提高软件开发生产率和目标系统质量的重要途径。( T ) 8. 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。( T )9. 软件是指用程序设计语言编写的程序,软件开发实际上就是编写程序代码。( F )10.在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类是生成对象的模板。( T)1 .螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。( T )2. 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。( F )3. 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。( T )4. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( T )5. 软件模块之间的耦合性越弱越好。( T )6. 数据库设计说明书是一个软件配置项。 ( T )7. 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。 ( F)8. 过程描述语言可以用于描述软件的系统结构。 ( F )9. 如果通过软件测试没有发现错误,则说明软件是正确的。( F )10.快速原型模型可以有效地适应用户需求的动态变化。 ( T )四、简答题1. 什么是软件危机?它的具体表现有哪些?解决途径是什么?答:“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。解决途径:(1)正确的认识软件,摈弃“软件就是程序”的错误观念。充分理解到软件是程序、数据、文档等的完整集合。(2)充分认识到软件开发不是个别人的神秘劳动技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。(3)推广开发软件成功的技术和方法,并且探索研究更好的技术和方法。(4)开发和使用更好的软件工具提高软件开发的效率。归结上述各条,可以看到,克服软件危机的途径在于既要有技术措施(方法、工具),又要有组织管理措施。将两者结合起来以现代工程的开发方法来开发软件。2. 软件工程的定义。答:软件工程是指导计算机软件开发和维护的工程学科。(1) 它采用工程的概念、原理、技术和方法来开发和维护软件;(2) 它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;(3) 它强调使用生存周期方法学和结构分析和结构技术;(4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了软件工程学这一新的学科。3. 软件生命周期包括哪些阶段?每一阶段的具体任务是什么?答:软件有孕育,诞生,成长,成熟,衰亡的生存过程,称其为计算机的生存周期。(1)问题定义:必须回答的关键问题是:“要解决的问题是什么?”。通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到用户的确认。(2)可行性研究:要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。(3)需求分析:这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。(4)总体设计:必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。首先,应该设计出实现目标系统的几种可能的方案。此外,还应该制定出实现最佳方案的详细计划。另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。(5)详细设计:把解法具体化,也就是回答“应该怎样具体地实现这个系统呢?”,设计出程序的详细规格说明。(6)编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。(7)综合测试:关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。(8)软件维护:关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。4. 简述瀑布模型、快速原型模型、增量模型、螺旋模型和喷泉模型的特点(优缺点)。答:传统瀑布模型的特点:阶段间具有顺序性和依赖性;推迟实现的观点;质量保证的观点。瀑布模型优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。快速原型模型:优点:不带反馈环。增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开放的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所 带来的风险;在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没本质区别。螺旋模型的主要优势在于,它是风险驱动的,这也可能是它的一个弱点。喷泉模型,与传统的结构化生存期比较,具有更多的增量和迭代性质,生存周期的各个阶段可以相互重叠和多次反复,而且在项目的珍格格生存期中还可以嵌入子生存期。就像谁可以喷上去又可以落下来,可以落在中间,也可以落在最底部。5. 可行性研究过程的步骤。答:(1)复查系统的规模和目标;(2)研究目前正在使用的系统;(3)导出新系统的高层逻辑模型;(4)进一步定义问题; (5)导出和评价供选择的解法;(6)推荐行动方针; (7)草拟开发计划;(8)书写文档提交审查。6. 常用的成本分析方法有哪些?答:答:三种成本估算技术:代码行技术、任务分解技术、自动估计成本技术。7. 需求分析的具体任务是什么?答:1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修正系统开发计划。8. 怎样与用户有效地沟通以获取用户的真实需求?答:访谈;从可行性研究阶段得到的数据流图出发,在用户的协助下面向数据流自顶向下逐步求精;简易的应用规格说明技术;快速建立软件原型。9. 结构化设计中的模块化、逐步求精、模块独立等原理。答:模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了,这就是模块化的根据。采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。模块化使软件容易测试和调试,因而有助于提高软件的可靠性。模块化能提高软件的可修改性,有助于软件开发工程的组织管理。逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。事实上,可以把逐步求精看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。逐步求精方法确保每个问题都将被解决,而且每个问题都将在适当的时候被解决。模块独立:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。模块独立性重要的理由:(1)有效的模块化(即具有独立的模块)的软件比较容易开发出来。(2)独立的模块比较容易测试和维护。度量模块独立程度的两个定性标准:内聚和耦合。10. 耦合的概念,常见耦合的含义及其耦合度高低排序。答:耦合是对一个软件结构内不同模块之间互连程度的度量。如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),则这种耦合称为控制耦合。当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,就出现了特征耦合。当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。最高程度的耦合是内容耦合。应坚决避免使用内容耦合。如果出现下列情况之一,两个模块间就发生了内容耦合:(1)一个模块访问另一个模块的内部数据(2)一个模块不通过正常入口而转到另一个模块的内部(3)两个模块有一部分程序代码重叠(只可能出现在汇编程序中)(4)一个模块有多个入口(这意味着一个模块有几种功能)。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。11. 内聚的概念,常见内聚的含义及其内聚度高低排序。答:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。低内聚有如下几类:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。如果一个模块完成的任务在逻辑上属于相同或相似的一类,称为逻辑内聚。如果一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。高内聚也有两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚。如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚,功能内聚是最高程度的内聚。12. 为提高软件的质量,常用的启发规则有哪些?答:(1)改进软件结构提高模块独立性;(2)模块规模应该适中;(3)深度、宽度、扇出和扇入都应适当;(4)模块的作用域应该在控制域之内;(5)力争降低模块接口的复杂程度;(6)设计单入口单出口的模块;(7)模块功能应该可以预测。13. 人机界面设计一般指导原则有哪些?答:一般交互指南;信息显示指南;数据输入指南。14. PFD、N_S、PAD、PDL各有什么优缺点?答:程序流程图(程序框图)优点:对控制流程的描绘很直观,便于初学者掌握。缺点:(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。(3)程序流程图不易表示数据结构。N_S图又称盒图,特点:(1)功能域明确,可以从盒图上一眼就看出来(2)不可能任意转移控制(3)很容易满足确定局部和全程数据的作用域(4)很容易表现嵌套关系,也可以表示模块的层次结构。PAD图优点:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序(2)PAD图所描绘的程序结构十分清晰(3)用PAD图表现程序逻辑,易读,易懂,易记(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率(5)即可用于表示程序逻辑,也可用于描绘数据结构(6)PAD图的符

温馨提示

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

评论

0/150

提交评论