1.软件工程自测题(一)一、单项选择题1.软件危机具有下列表现(D)。I.对软件开发成本估计不准确II.软件产品的质量往往靠不住III.软件常常不可维护IV.软件成本逐年上升A.I、II和IIIB.I、III和IVC.II、III和IVD.以上都正确2.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是()。A.运行和维护阶段B.设计阶段C.代码实现阶段D.测试阶段3.下列属于软件的特点的是(D)。A.软件是一种逻辑实体,具有抽象性B.软件在使用过程中没有磨损、老化的问题C.软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高D.以上都正确4.软件工程的出现是由于()。A.软件危机的出现B.计算机硬件技术的发展C.软件社会化的需要D.计算机软件技术的发展5.软件开发技术不包含()。A.软件开发方法学B.软件工程环境C.软件工具D.软件质量度度量6.软件工程的课程特点(B)。I.学科理论及其知识应用的多维性II.工程化III.浓厚的方法学色彩IV.实践性、指导性强A.I、II和IIIB.I、III和IVC.II、III和IVD.以上都正确7.下列属于应用软件的是(B)。I.计算机辅助教学软件II.软件测试工具III.办公自动化软件IV.工程与科学计算软件A.I、II和IIIB.I、III和IVC.II、III和IVD.以上都正确8.需求分析阶段最重要的技术文档是()。A.设计说明书B.需求规格说明书C.可行性分析报告D.用户手册9.以下关于数据流图的说法错误的是()。A.数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B.数据流图是用作结构化分析的一种工具2C.传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D.数据流图的绘制采用自上向下、逐层分解的方法10.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()。A.数据库设计B.数据通信C.数据定义D.数据维护11.需求分析阶段的研究对象是()。A.系统分析员要求B.用户要求C.软硬件要求D.系统要求12.结构化方法的基本原则是()。A.模块化B.抽象与分解C.信息隐蔽D.逐步求精13.耦合度最高的是()耦合。A.环境B.内容C.控制D.数据14.内聚程度较低的是()内聚。A.偶然B.通讯C.顺序D.时间15.对一个程序来说,组成系统的模块数目(),则开发成本越小。A.越多B.越少C.顺序D.时间16.画软件结构图时应注意调用关系只能是()。A.从下到上B.从上到下C.从左到右D.从右到左17.程序流程图中的箭头代表()。A.数据流B.控制流C.顺序流D.调用18.软件测试是软件质量保证的重要手段,下述()是软件测试的最基础环节。A.功能测试B.单元测试C.结构测试D.确认测试19.软件测试方法中,黑盒测试法主要用于测试()。A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑20.软件测试是软件质量保证的主要手段之一,测试的目标是()。A.证明软件符合设计要求B.发展软件的潜在能力C.发现软件中的错误和缺陷D.判定软件是否合格21.选择程度设计语言的关键因素是()。A.软件应用领域B.软件执行环境C.软件开发方法D.算法和数据结构二、填空题1.计算机软件不仅仅是程序,还应该有一整套文档。2.传统的软件生存期模型是瀑布模型。3.软件按照功能的不同可以划分为3大类型系统软件、支持软件和应用软件。4.与程序流程图相比,盒图没有箭头,因此不允许随意转移控制。5.好的测试方案是极可能发现了迄今为止尚未发现的错误的测试方案。三、判断题(正确的划“√”,不正确的划“×”)1.在软件的开发过程中,工作量最大的一个阶段就是编写程序。(1.错误。在软件的开发过程中,工作量最大的一个阶段应是测试阶段。)2.一般说来,模块的内聚程度越高,它们之间的耦合程度也就越高。3(2.错误。一般说来,模块的内聚程度越高,它们之间的耦合程度也就越低。)3.软件测试只能证明程序有错误,不能证明程序没有错误。4.结构化程度设计方法能改善程序结构,提高程序的运行效率。(4.错误。结构化程度设计方法能改善程序结构,但往往会降低程序的运行效率。)5.如果测试数据满足条件覆盖,则必然满足判定覆盖。(5.错误。对于特定的程序而言,满足条件覆盖的测试数据不一定必然满足判定覆盖。)四、综合题1.求100~1000间的素数。请画出描述该问题的N-S图。2.将下列数据流图转换为控制结构图。3.已知有如下程序段:beginp1;ifC1thenwhileC2dop2elsep3;whileC3dobeginp4;4ifC4thenp5elsep6end;p7;ifC5thenrepeatp8untilc6elsep9;end(1)请用PAD图描述;(2)请用程序流程图描述。(1)PAD图描述是:5(2)程序流程图描述是:67软件工程自测题(二)一、填空题1.软件是计算机程序及其说明程序的各种文档。程序是计算机任务的处理对象和处理规则的描述;文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。2.软件生产的发展,到现在为止,经过三个阶段,即程序设计时代,程序系统时代,软件工程时代。3.软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。4.结构化方法由结构化分析、结构化设计、结构化程序设计构成。它是一种面向数据流的开发方法。5.Jackson方法是一种面向数据结构的开发方法。6.软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。7.可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、操作可行性。8.效益分析有形效益和无形效益两种。有形效益可以用货币的时间价格、投资回收期、纯收入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。9.结构化分析方法是面向数据流进行需求分析的方法。10.在SA方法的需求描述工具中,数据流图描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等。数据字典定义了数据流图中每一个图形元素。结构化语言、判定表或判定树则详细描述数据流图中不能被再分解为每一个加工。11.数据流图有四种基本成分:数据流、加工(又称为数据处理)、文件、数据的源点或终点。12.数据字典有以下四类条目:数据流、数据项、文件、基本加工。数据项是组成数据流和数据存储的最小元素。13.数据字典中的加工逻辑主要描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加工规则。14.加工逻辑也称为“小说明”,常用的加工逻辑的描述工具有:结构化语言、判定表、判定树。15.结构化语言是介于自然语言(英语或汉语)和形式语言之间的一种半形式语言。它的结构可分成外层和内层两层,外层用来描述控制结构,采用顺序、选择、重复三种基本结构。16.三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用结构化语言描述。对于存在多个条件复杂组合的判断问题,用判定表和判定树。17.在软件需求分析阶段,已经搞清楚了软件做什么的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。18.软件结构的设计是以模块为基础的,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。19.在一个模块中,功能反映模块的外部特性,程序及数据反映它的内部特性。20.衡量模拟独立性的两个定性的度量标准是耦合性和内聚性。21.耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。22.内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)的联系越紧密,则它的内聚性就越高。23.内聚性有六种类型:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。24.偶然内聚指一个模块内的各处理元素之间没有任何联系。这是内聚程度最差的内聚。825.逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。把需要同时执行的动作组合在一起形成的模块为时间内聚模块。26.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。27.结构图的主要内容有:模块、模块调用、参数传递。28.模块的扇出指一个模块直接下属模块的个数,扇入指一个模块直接上属模块的个数。29.要把数据流图(DFD)转换成软件结构,首先必须研究DFD的类型。各种软件系统,一般可分为变换型和事务型两类。30.变换型的DFD是由输入、变换(或称处理)和输出三部分组成。31.变换型数据处理的工作过程一般分为三步:取得数据、变换数据和输出数据,这三步体现了变换型DFD的基本思想。32.在变换型DFD中,变换是系统的主加工,变换输入端的数据流称为系统的逻辑输入,输出端的数据流为逻辑输出。而直接从外部设备输入数据称为物理输入,直接从外部设备上的输出数据称为物理输出。33.若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为事务型的数据流图,这个加工称为事务处理中心。34.任何程序都可由顺序、选择、重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出口。35.详细描述处理过程常用三种描述工作:图形、表格和语言。36.程序流程图又称为程序框图,应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。37.伪码的结构一般分为内外两层,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。38.Jackson方法是面向数据结构的设计方法。39.汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。40.近年来,推出了许多面向对象的语言,如C++、Java等41.软件测试是为了发现错误而执行程序的过程。一个好的测试用例能够发现至今尚未发现的错误。一个成功的测试是发现了至今尚未发现的错误的测试。42.软件测试方法一般分为两大类:动态测试方法与静态测试方法。43.动态测试方法中根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。44.动态测试指通过运行程序发现错误。对软件产品进行动态测试时,使用黑盒测试法和白盒测试法。45.黑盒法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程。只在软件的接口处进行测试。46.白盒法把测试对象看作一个打开的盒子,测试人员需了解程序的内部结构和处理过程。47.语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次。语句覆盖是比较弱的覆盖标准。48.用墨盒技术设计测试用例的方法有四种等价类划分、边界值分析、错误推测法和因果图。49.等价类划分是将输入数据域按有效的(合理的)或无效的(不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。50.软件产品在交付使用之前要经过哪些测试呢?一般要经过以下四步测试:单元测试、集成测试、确认测试和系统测试。9二、单项选择题1.()是计算机程序及其说明程序的各种文档。A.软件B.数据C.文档D.程序2.()是有关计算机程序功能、设计、编制使用的文字或图形资料。A.程序B.文档C.软件D.数据3.软件工程中描述生存周期模型的瀑布模型一般包括计划、()、设计、编码、测试、维护等几个阶段。A.需求分析B.需求调查C.可行性分析D.问题定义4.系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括()。A.软件环境可行性、技术可行性、经济可行性、社会可行性B.经济可行性、技术可行性、操作可行性C.经济可行性、可行性、系统可行性D.经济可行性、实用性、可行性5