第一章概述一、名词解释1、计算机软件:与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。2、软件危机:指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和困难。3、软件工程:用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。4、软件生存周期:软件从形成概念开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。5、瀑布模型:严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。二、单项选择题1、下面不属于软件工程的3个要素的是(D)。A、工具B、过程C、方法D、环境2、软件开发的结构化生命周期方法将软件生命周期划分成(A)。A、计划阶段、开发阶段、运行阶段。B、计划阶段、编程阶段、测试阶段。C、总体设计、详细设计、编程调试。D、需求分析、功能定义、系统设计。3、(D)引入了“风险驱动”的思想,适用于大规模的内部开发项目。A.增量模型B.喷泉模型C.原型模型D.螺旋模型4、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。A、需求不确定的B、需求确定的C、管理信息D、决策支持5、软件是一种(C)A、程序B、数据C、逻辑产品D、物理产品6、瀑布模型的关键不足在于(B)A、过于简单B、不能适应需求的动态变更C、过于灵活D、各个阶段需要进行评审7、具有风险分析的软件生存周期模型是(C)。A、瀑布模型B、喷泉模型C、螺旋模型D、增量模型8、以下哪一项不是软件危机的表现形式(C)A、成本高B、生产率低C、技术发展快D、质量得不到保证9、软件是一种(B)性工业产品。A、理论B、知识C、消耗D、体力10、软件定义期间的问题定义阶段涉及的人员有(D)。A、用户、使用部门负责人B、软件开发人员、用户、使用部门负责人C、系统分析员、软件开发人员D、系统分析员、软件开发人员、用户与使用部门负责人11、(A)是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。A软件过程B、软件工具C、质量保证D、软件工程12.分析员是(B)。A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导13开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作(B)。A、软件投机B、软件危机C、软件工程D、软件产生14、文档是软件开发人员、软件管理人员、维护人员、用户以及计算机之间的(B),软件开发人员在各个阶段以文档作为前段工作成果的(E)和后段工作的(F)。A、接口B、桥梁C、科学D、继续E、体现F、基础15、软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是(B)。A、引入新技术提高空间利用率B、用较少的投资获得高质量的软件C、缩短研制周期扩大软件功能D、硬软件结合使系统面向应用16.软件危机出现于(C)①,为了解决软件危机,人们提出了用(B)②的原理来设计软件,这就是软件工程诞生的基础。①A、50年代末B、60年代初C、60年代末D、70年代初②A、运筹学B、工程学C、软件学D、数字17、软件工程学的目的是以(B)的成本,研制(A)质量的软件。A、较高B、较低C、可靠D、优秀18、瀑布模型把软件生存周期划分为软件定义、软件开发和(C)三个阶段,而每一阶段又可细分为若干更小的阶段。A、详细设计B、可行性分析C、运行及维护D、测试与排错19、软件生存周期是指(D)阶段。A、软件开始使用到用户要求修改为止B、软件开始使用到被淘汰为止C、从开始编写程序到不能再使用为止D、从立项制定计划,进行需求分析到不能再使用为止20、件工程中描述生存周期的瀑布模型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。(A)A、需求分析B、需求调查C、可行性分析D、问题定义三、填空题1、软件工程的3个要素的是工具、过程和方法2、软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和困难。3、在软件开发过程中必须遵循的软件工程原则有抽象、信息隐藏、模块化、局部化和一致性等。4、软件开发的结构化生命周期方法将软件生命周期划分成定义阶段、开发阶段和运行阶段。5、螺旋模型综合了瀑布模型和原型模型的优点,即将两者结合,并加入了风险分析机制四、判断题1、文档是软件产品的一部分,没有文档的软件就不称其为软件(对)。2、在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。(×)3、螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。[√]4、快速原型模型可以有效地适应用户需求的动态变化。[√]5、软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码[×]。五、问答题1、产生软件危机的主要原因有哪些?缓解软件危机的途径是什么答:(1)主要原因:1)需求描述不精确。2)对需求的理解有偏差,导致软件与需求不一致。3)缺乏处理大型软件项目的开发和管理经验。4)开发大型软件易产生疏漏和错误。5)缺乏有力的方法学的指导和有效的开发工具的支持。6)解决供求矛盾将是一个永恒的主题。(2)缓解软件危机的途径:用软件工程的思想指导软件的开发2、瀑布模型有哪些优点和缺点?适用于哪些场合?答:(1)优点:提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用。(2)缺点:1)在开发初期就要求做出正确、全面、完整的需求分析是极其困难的。2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。3)由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使产品难以维护。(3)瀑布模型适用场合:一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。3、什么是软件工程?它的目标和内容是什么?答:(1)软件工程:用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。(2)目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。第二章项目管理一、单选题1、软件复杂性度量的参数,不包括(D)A、规模B、难度C、智能度D、成本2、在软件开发的各种资源中,(D)是最重要的资源。A、开发工具B、方法C、硬件环境D、人员3、(D)是以追求更高的效益和效率为目标的持续性活动。A、质量策划B、质量控制C、质量保证D、质量改进4、下列模型属于成本估算方法的有(A)。A、COCOMO模型B、McCall模型C、McCabe度量法D、CMM模型5、软件项目计划一般不包括以下哪项内容(D)A、培训计划B、人员安排C、进度安排D、软件开发标准的选择和制定6、软件按照设计的要求,在规定的时间和条件下达到不出故障、持续运行要求的质量特性称为(A)A、可靠性B、可用性C、正确性D、完整性7、软件复杂性主要体现在(C)。A、数据的复杂性B、程序的复杂性C、控制的复杂性D、问题的复杂性8、在McCALL软件质量度量模型中,(A)属于面向软件产品操作的质量因素A、可用性B、可维护性C、适用性D、互操作性9、软件复杂性度量的参数包括(B)A.效率B.规模C.完整性D.容错性10、(C)是指在规定的条件下和规定期间内,实现所指定功能的概率。A、可测试性B、可理解性C、可靠性D、可移植性11、在软件工程中,当前用于保证软件质量的主要技术手段还是(B)。A、正确性证明B、测试C、自动程序设计D、符号证明12、在软件工程中,高质量的文档标准是完整性、一致性和(C)。A、统一性B、安全性C、无二义性D、组合性13、软件的可移植性是衡量软件质量的重要标准之一。它指的是(D)。A、一个软件版本升级的容易程度B、一个软件与其他软件交换信息的容易程度C、一个软件对软硬件环境要求得到满足的容易程度D、一个软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度14、Putnam成本估算模型是一个(D)模型。A.静态单变量B.动态单变量C.静态多变量D.动态多变量15、在McCall软件质量度量模型中,(C)属于面向软件产品修改。A.可靠性B.可重用性C.适应性D.可移植性二、填空题1、软件项目管理的对象:主要包括产品、过程和资源2、McCall等人提出的三层次度量模型由软件质量要素、评价准则、定量度量三个层次组成的。3、风险按影响的范围可分为项目风险、技术风险和商业风险三类。4、McCall提出的软件质量模型包括11个软件质量特性。三、名词解释1、软件质量:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。2、风险分析:贯穿在软件工程上的一系列风险管理步骤,中包括风险识别、风险估计、风险管理策略、风险解决和风险监督等。3、软件可靠性:在某个给定时间间隔内,程序按照规格说明成功运行的概率。四、应用题1、已知有一个国外典型的软件项目的记录,开发人员M=6人,其代码行数L=20.2KLOC,工作量E=43PM,成本S=314000美元,错误数N=64,文档页数Pd=1050页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。解:根据给出的已知数据,可得:P=L/E=20.2KLOC/43PM=0.47KLOC/PM=470LOC/PMC=S/L=314000美元/20.2KLOC=15.54美元/LOCEQR=N/L=64个/20.2KLOC=3.17个/KLOCD=Pd/L=1050页/20.2KLOC=51.98页/KLOC2、已知某软件项目的特征为:用户输入数为30,用户输出数为60,用户查询数为24,共有8个文件,有2个外部界面。如果每个信息量的加权因子都取“一般”值,所有的技术复杂性调节因子都取“普通”值,(1)用功能点度量方法计算该软件项目的功能点。(2)其代码行数=20.2KLOC,工作量E=43PM,成本S=314000美元,错误数N=64,文档页数Pd=1050页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D解:(1)基本功能点CT为:CT=用户输入数×4+用户输出数×5++用户查询数×4+文件数×10+外部接口数×7=30×4+60×5+24×4+8×10+2×7=610FP=CT×TCF=CT[0.65+0.01∑Fi]=610×[0.65+0.01×3×14]=652.7功能点答:该软件项目共有652.7功能点。(2)解:1)生产率P(平均每人月开发的功能点数,以功能点/PM为单位):P=FP/E=652.7/432)平均成本C(以美元/功能点或元/功能点为单位):C=S/FP=314000/652.73)代码出错率EQR(即每功能点的平均错误数,以个/功能点为单位)为:EQR=N/FP=64/652.74)软件的文档率D(即平均每功能点的文档页数,以页/功能点为单位)为:D=Pd/FP=105/652.7五、判断题1、当软件开发项目的进度有可能拖延时,增加开发人员并不一定能加快进度。(√)第三章可行性分析一、单选题1、软件可行性研究一般不考虑(D)A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上是否合算D、待开发的软件是否会有质量问题2、可行性研究要进行一次(C)需求分析。A、详细的B、全面的C、简化的、压缩的D.彻底的设计3、经济可行性研究的范围包括(C)。A、资源有效性B、管理制度C、效益分析D、开发风险4、在可行性研究阶段,对系统所要求的功能、性能以及限制条件进行分析,确定是否能够构成一个满足要求的系统,这称为(B)可行性。A.经济可行性B.技术可行性C.社会可行性D.法律可行性5、为保证软件质量,