软件开发技术一、填空题1、软件工程学的内容可包括()、结构、()、()、环境、管理、规范等。2、软件生存周期一般可分为问题定义、()、()、设计、()、测试、运行与维护阶段。3、系统流程图是()的传统工具。4、结构化语言是介于自然语言和()之间的一种半形式语言。5、数据字典的内容包括六项:()、()、()、数据存储、处理逻辑、外部实体。6、UML的定义包括()和()两个部分。7、按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和()。8、瀑布模型是以文档为驱动、适合于()的软件项目的模型。9、对象具有标识唯一性、分类性、多态性、()和()等基本特性。10、消息关联指的是对象()的一种依赖关系。11、对象的规格说明包括对对象()的说明及对对象()的说明。12、在需求分析阶段常用的图形工具有()、()、()。13、模块独立的概念是()、()、()和局部化概念的直接结果。14、基于计算机系统的系统元素包括:软件、硬件、人、()、()和过程等几个部分。15、软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、()、可使用性和效率。16、为了便于对照检查,测试用例应由输入数据和预期的()两部分组成。17、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、()。18、需求分析的基本任务是准确的回答()。19、常用的系统分析方法有四类,包括:()、数据流方法、信息造型方法以及()。20、面向对象设计中,主要存在两种耦合,交互耦合和()。21、UML是一种标准的图形化(即可视化)建模语言,它由()和()组成。其中,前者是UML的表示法(语法),而后者给出前者的含义,是UML的语义。二、选择题1、下列关于瀑布模型的描述正确的是()。A.瀑布模型的核心是按照软件开发的时间顺序将问题简化。B.瀑布模型具有良好的灵活性。C.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。D.利用瀑布模型,如果发现问题修改的代价很低。2、下列各方法中()不是软件测试方法。A.白盒法B.黑盒法C.动态测试D.盒法3、UML的基本建筑块不包括()。A.框架B.事物C.关系D.图4、软件复杂性度量的参数包括()A.效率B.规模C.完整性D.容错性5、软件调试技术包括()A.边界值分析B.演绎法C.循环覆盖D.集成测试6、软件维护产生的副作用,是指()A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作7、程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移8、需求分析中开发人员要从用户那里了解()A.软件做什么B.用户使用界面C.输入的信息D.软件的规模9、结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性10、经济可行性研究的范围包括()A.资源有效性B.管理制度C.效益分析D.开发风险11、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。A.确定B.行或不行C.正确D.无二义12、需求分析阶段的任务是确定()A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能13、下图说明的是模块A、B之间的关系,对下图说明正确的是()A、模块A调用模块BB、模块B调用模块AC、模块A和模块B相互调用D、模块A和模块B之间不存在调用关系14、以实体、联系和属性等基本概念为基础的实体联系图是基本实体联系图。为了满足新的应用需求和表达更多的语义,实体联系图可以进行扩充;通过引入()概念而形成的实体联系图即为扩充的实体联系图。()A、分类B、聚集C、分类和聚集D、实体和联系15、需求分析最终结果是产生()A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告16、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生17、研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。A.技术可行性B.经济可行性C.社会可行性D.法律可行性18、在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性19、不适合作为科学工程计算的语言是()A.PascalB.CC.FortranD.Prolog20、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法21、下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告22、快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件23、因计算机硬件和软件环境的变化而作出的修改软件的过程称为()A.校正性维护B.适应性维护C.完善性维护D.预防性维护24、类库这种机制是()级别的信息共享。A.同一类B.不同类C.同一应用D.不同应用25、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()A.可用性B.可靠性C.正确性D.完整性26、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()A、探索型模型B、演化型模型C、实验型模型D、提交型模型27、软件可维护性的特性中相互矛盾的是()A、可修改性和可理解性B、可测试性和可理解性C、效率和可修改性D、可理解性和可读性28、瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求29、软件结构图的形态特征能反映程序重用率的是()A、深度B、宽度C、扇入D、扇出30、用黑盒技术设计测试用例的方法之一为()A、因果图B、逻辑覆盖C、循环覆盖D、基本路径测试三、名词解释1、数据字典2、内聚性3、JSP方法4、多态性5、重用性6、软件工程过程7、信息隐蔽8、集成测试9、系统流程图10、软件维护四、简要回答下列问题1、什么是模块、模块化、模块独立性?2、何谓黑盒测试?何谓白盒测试?3、以G.J.Myers的观点,简述对软件测试的目的。4、简述结构化程序设计方法的基本要点。5、简述文档在软件工程中的作用。6、何谓是软件危机,软件危机有哪几种表现?五、综合说明及应用题1、某公司为本科以上学历的人重新分配工作,分配原则如下:1).如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;2).如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;3).如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。要求:画出分析过程,得出判定表,并进行化简。2、执行下列语句后,inti,s;for(i=s=0;i12;i++)s+=i;while(--i5)s+=i;求S的值(写出必要的中间值)。3、分别举例说明C++中对象操作的两种调用方式。4、采用对象联系矩阵表示下面的问题:1个“A”“使用”0到m个“B”,1个“B”只能被1个“A”所“使用”;1个“B”上只能“选用”1个“C”,1个“C”可以被0到m个“B”来“选用”。5、给出下面程序的运行结果。#include“iostream.h”intmain(){inti=1;while(i=25)if(++i%7!=3)continue;elsecout”i=”iendl;}6、别举例说明C++中的两种对象创建方式。7、用判定树描述下例:在铁路货运票价系统中,如果里程数大于1千km(含),且货运量超过500吨(含),则货运价为0.05元/公里.吨;500吨以下,货运价为0.06元/公里.吨。如果里程数小于1千km,且货运量超过500吨(含),则货运价为0.07元/公里.吨;500吨以下,货运价为0.08元/公里.吨。参考答案一、填空题1、理论、方法、工具2、可行性研究、需求分析、编码3、描述物理系统4、形式语言5、数据流、数据项、数据结构6、UML语义、UML表示法7、事务分析设计8、软件需求明确9、继承性,封装性10、行为之间11、属性,行为12、层次方框图、Warnier图、IPO图13、模块化、抽象、信息隐蔽14、数据库、文档15、可移植性16、输出结果17、判定树18、系统必须做什么19、功能分解方法,面向对象方法20、继承耦合21、图,元模型二、选择题1~15:CDABB;CCADC;BDACB16~30:CBDDC;CDBDB;ACBCA三、名词解释1、数据字典:数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。2、内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。3、JSP方法:JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。4、多态性:多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果,或不同的对象,收到同一消息可以产生不同的结果。5、重用性:重用性指的是软件的某些部分重复使用的性能。软件重用是提高软件生产率的重要手段,重用性越高,则软件生产率越高。按重用性的程度从低至高可以分为代码重用、设计结果重用和分析结果重用几种类型。6、软件工程过程:在软件生产中,软件工程过程规定了获取、供应、开发、操作和维护软件时,要实现的过程、活动和任务,它包括7个主要过程:获取过程、供应过程、开发过程操作过程、维护过程、管理过程和支持过程。7、信息隐蔽:信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。8、集成测试:集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。9、系统流程图:系统流程图是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表示系统中各元素之间的信息流动的情况。10、软件维护:软件维护是指在软件已交付用户使用后,为了改正错误,或者满足用户新的需求而修改软件的过程。四、简答题1、答:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。2、答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。3、答:软件测试的目的:(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试;(3)一个成功的测试是发现至今尚未发现的错误的测试。4、结构化程序设计方法的要点包括:(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环