二、填空题1.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性_____。5.数据流图(DFD)一般可分为变换型和__事务性_____两类。6.软件维护的内容包括校正性维护、适应性维护、__完善性维护__和预防性维护。7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代___。8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和__演化提交模型__。9.状态图反映了_事件与状态____的关系。10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。11.组成软件的两个部分是:____程序和文档________。14.变换型数据流图是由输入、__变换(或处理)_____和输出三部分组成的。15.Jackson方法是一种面向___数据结构_____的开发方法。16.结构化语言是介于___自然语言_____和形式语言之间的一种半形式语言。17.软件产品在交付使用之前一般要经过___单元测试___、集成测试、确认测试和系统测试。18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__结构化______的维护。19.子类自动共享父类数据结构和方法的机制是___继承性_____,这是类之间的一种关系。21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程____时代。22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和__技术可行性____。23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的____调用_____关系。24.数据流图描绘数据在系统中___流动和处理___的过程。25.为了便于对照检查,测试用例应由输入数据和预期的___输出结果(输出数据)____两部分组成。26.软件详细设计阶段常采用的工具有图、表和____语言_______。28.实现容错技术的主要手段是__冗余_____。29.软件开发环境的目标是提高软件开发的生产率和__降低软件的费用__。32.软件工程管理中的控制包括进度控制、人员控制、经费控制和_____质量控制______。33.软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和_演化型原型34.软件复杂性主要表现在程序的复杂性。程序的复杂性主要指___模块内___程序的复杂性。35.白盒法中,__基本路径测试_______首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。36.在软件的详细设计中,根据控制流程从上到下,从左到右展开的设计工具是__PAD图。37.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是__控制耦合______。38.结构化分析是面向__数据流_____进行需求分析的方法。41.开发软件工具的主要目的是为了提高软件生产率和_改善软件的质量__。42.确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动称为__软件质量管理。44.在软件测试的所有覆盖方法中发现错误能力最弱的覆盖是_语句覆盖_____。45.黑盒测试又被称为数据驱动测试或_基于规格说明的测试__。46.PDL具有严格的关键字外层语法,用于定义__控制结构____、数据结构和模块接口。47.如果一个模块可调用n个模块,其中直接的下属模块的个数是m个(m=n),那么该模块的扇出数是___n_____个。48.在概要设计阶段,形成软件结构并经过优化改进后,还应为每个模块写一份处理说明和提供一份__接口说明____。49.描述加工逻辑的三种工具是结构化语言、判定表、__判定树_____。三、名词解释题1.软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。2.耦合性用于衡量不同模块彼此间互相依赖(连接)的紧密程度。4.软件质量保证是指在软件开发过程中,为了保证产品满足指定标准而进行的各种活动。5.确认测试确认组装完毕的程序是否满足软件需求规格说明书(SRS)的要求。6.软件生存周期一个软件从提出开发要求直到该软件报废为止的整个时期。7.需求分析需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求成熟转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。8.程序设计风格程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。11.软件开发方法用早就定义好的技术集合和符号表示习惯来组织软件生产的过程。主要有:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法13.完善性维护增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动。15.软件工具软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。16.软件开发环境指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。18.黑盒测试法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程。20.瀑布模型将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型。它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。21.软件可靠性在规定的环境下和时间里软件按要求的功能执行的概率。23.白盒测试法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。25.模块化模块化指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。四、简答题2.什么是模块化?软件结构设计的优化准则是什么?答:模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。模块设计的准则:(1)改进软件结构,提高模块独立性。(2)模块大小要适中。(3)软件结构图的深度、宽度、扇入和扇出要适当。(4)尽量降低模块接口的复杂程度。(5)设计单入口、单出口的模块。(6)模块的作用域应在控制域之内。3.简述详细设计的基本任务。答:(1)为每个模块确定采用的算法;(2)确定每一模块使用的数据结构;(3)确定模块接口的细节;(4)过程设计说明书;(5)设计每一模块的测试用例。7.简述结构化程序设计方法的基本要点。答:(1)采用自顶向下,逐步求精的程序设计方法(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式(4)采用单入口单出口的模块形式。11.就程序设计语言的工程特性而言,对程序编码有哪些要求?答:(1)可移植性;(2)开发工具的可利用性;(3)软件的可重用性;(4)可维护性。12.简述提高软件可维护性的方法。答:(1)建立明确的软件质量目标。(2)利用先进的软件开发技术和工具。(3)建立明确的质量保证工作。(4)选择可维护的程序设计语言。(5)改进程序文档。15.软件测试要经过哪些步骤?简述这些测试的基本任务。答:(1)单元测试、集成测试、确认测试、系统测试。(2)单元测试:对源程序中的每个程序单元进行测试,检查各模块是否正确实现现定的功能,从而发现模块在编码中或算法中的错误。(3)集成测试:检查与设计相关的软件结构的有关问题。(4)确认测试:主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求。(5)系统测试:把已确认的软件与其它系统元素结合在一起进行测试。16.简述需求分析方法应遵循的基本原则。答:应遵循的基本原则:(1)必须能够表达和理解问题的数据域和功能域。(2)可以把一个复杂问题按功能进行分解并可逐层细化。(3)建模。17.模块间的耦合性包括哪些类型?答:模块的耦合性包括:(1)无直接耦合(2)数据耦合(3)标记耦合(4)控制耦合(5)公共耦合(6)内容耦合18.软件维护的困难性表现在哪几个方面?答:(1)读懂别人的程序是困难的(2)文档的不一致性(3)软件开发和软件维护在人员和时间上的差异(4)软件维护不是一项吸引人的工作五、应用题2.某服装贸易公司的销售子系统功能如下:(1)公司提供多种类别服装,所有类别的服装通过各个地区的分公司进行销售;(2)公司接收分公司的订单,检验订单,若有库存就供货,则修改库存,给仓库开备货单,并且将订单留底;若库存不足,则进行缺货登记。(3)根据缺货记录将缺货通知单发给采购部,以便采购。(4)根据采购部门的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。试采用SA方法画出该公司销售管理系统的分层DFD(画出顶层、0层、1层图)。答:顶层结构图:0层:分公司销售子系统仓库订单进货通知单备货单缺货通知单采购部1层:根据供货单修改库存2.1开备货单2.2可供货单备货单已留底的订单(或登记过的订单)库存记录订单记录检验订单1.1查阅库存1.2订单可供货单库存记录缺货记录确定能否供货1.3合格订单库存单订货单缺货订单处理订单1供货处理2订单原缺货现可供货订单库存记录订单记录缺货统计3处理进货4缺货订单备货单可供货单缺货通知单进货通知单缺货记录3.根据下列对某种人寿保险问题的描述画出决策表。某保险公司的一种人寿保险的参保类型划分原则如下:(1)如果年龄不满25岁,男性适用保险类型A,女性适用保险类型B。(2)如果年龄满25岁但不满50岁,已婚男性适用保险类型A,未婚男性适用保险类型B,已婚女性适用保险类型B,未婚女性适用保险类型C。(3)年龄在50岁以上者,已婚女性适用保险类型B,其余适用保险类型C。答:4.测试题:函数Find(array,L,R,value)的功能是在一个整数数组array中搜索第一个值为value的整数,搜索的范围在数组下标L到R范围内。如搜索到有这个数,则函数值为第1进货通知单核对后的进货单库存记录缺货记录处理缺货订单4.2订单变更信息根据进货单修改库存4.1修改缺货记录4.3原缺货现可供货订单汇总各项缺货量3.1缺货量缺货通知单打印缺货通知单3.2缺货记录个等于该数的下标,否则函数值等于-1。假设数组非空,数组长度可由一内置函数得知,数组第一个元素的下标为1。请根据题意采用等价分类法设计测试用例。答:(1)依题意可以将数据划分以下等价类:输入数据合理等价类不合理等价类L①L1且L=R且L=array长度②L1③L4④Larray长度R⑤R=1且L=R且R=array长度⑥R1⑦RL⑧Rarray长度value⑨数值,值可被搜索到⑩数值,值搜索不到○11非数值(1)用例:(参考)先设计一个数组:a1={10,6,6,9,5,8}①为合理等价类设计测试用例:对于表中编号为①⑤⑨⑩对应的等价类,用以下两个测试用例覆盖:array=a1,L=1.R=7,value=62输入预期的输出:array=a1,L=1.R=7,value=7-1输入预期的输出:②为每一个不合理等价类设计一个测试用例:测试数据期望结果覆盖范围array=a1,L=6R=4,value=9,-1③、⑦array=a1,L=0R=0,value=9,-1②、⑥array=a1,L=8R=9,value=6,-1④、⑧array=a1,L=1R=4,value=8dfs4f,“-1○116.下列是某程序的NS图(1)请将其转换成PAD图(2)请将其转换成程序流程图。8.有一个处理单价为5角钱的饮料的自动售货机软件,其规格说明如下:(1)若投入5角钱或1元钱的硬币,按下饮料的按钮,则相应的饮料就送出来。(2)若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来并且1元硬币也退出来;(3)若有零钱找