精心整理一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________。2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。4.系统流程图是描绘的传统工具。它的基本思想是用图形符号以描绘系统里面的每个部件。5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。6.结构化分析方法是面向________________进行需求分析的方法。结构化分析方法使用________________与________________来描述。7.是自动地共享类、子类和对象中的方法和数据的机制。8.软件详细设计工具可分为3类,即________________、________________和________________。9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。10.大型软件测试包括、、确认测试和四个步骤。1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试二、单项选择题(每小题2分,共20分)12345CCCAC678910DDACB1.软件设计中划分模块的一个准则是()。A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M.Jackson提出的,它是一种面向()的软件设计方法。A、对象B、数据流精心整理C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的(??)。a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、a?B、b??C、cD、b和c4.()是用户和设计交换最频繁的方法。A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(?)。A、硬件环境???????????????????????B、软件开发的环境C、软件开发工具和软件开发的环境??D、开发人员的素质6.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(?)。A、PASCAL????????????B、VISUALBASICC、C++????????????????D、汇编语言7.软件测试的目的是?(?)A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误8.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能9.软件维护工作的最主要部分是(?)。A、校正性维护???????????B、适应性维护C、完善性维护????????????D、预防性维护10.PDL是()语言。A、高级程序设计语言B、伪码式???????C、中级程序设计语言D、低级程序设计语言三、判断题(正确的在括号内打上“√”,错误的打上“×”。每题2分,共20分)1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(X)2.发现错误多的程序模块,残留在模块中的错误也多。(V)3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目。(X)4.软件维护就是改正软件中的错误。(X)5.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。(V)6.软件开发的主要任务是写程序。(X)7.测试只能证明程序有错误,不能证明程序没有错误。(V)8.模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。(X)9.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。(X)10.程序设计风格指导原则提出,尽量多使用临时变量。(X)精心整理四、简答题(每题5分,共20分)1.什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。2.耦合性和内聚性有几种类型?其耦合度、内聚强度的顺序如何?低:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合:高强:功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚:弱3.简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。4.什么是黑盒测试法?黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。五、程序设计与算法描述题(共15分)1.根据下面的伪代码程序,完成相应要求。(8分)STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图(4分)2)用N—S图描述(4分)2.有下列伪码程序:STARTINPUT(M,N)IFM=10精心整理THENX=10ELSEX=lENDIFIFN=20THENY=20ELSEY=2ENDIFPRINT(X,Y)STOP设计该程序的语句覆盖和路径覆盖测试用例。(7分)M=9(或l0),N=l9(或20);M=l0(或=10),N=20(或=20)路径覆盖的测试用例为M=9,N=19;M=9、N=20;M=l0,N=l9;M=10,N=20要目标是提高软件质量,减少软件维护代价。软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型)可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。2、四个方面:技术、经济、操作可行性3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N)总体设计:任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构)模块独立:内聚和耦合问题定义(确定题目)可行性研究需求分析概要设计详细设计编码和单元测试综合测试系统设计系统实现软件定义软件开发运行维护:主要任务是使软件持久地满足用户的需要软件生命周期:精心整理耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统内聚(Cohesion):一个模块内各元素结合的紧密程度面向数据流的设计方法:变换流和事务流详细设计:任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树)面向数据结构的设计方法(jackson方法):程序复杂程度的定量(McCabe方法):1、V(G)=E-N+2(E是流图中边的条数,N是结点数)2、V(G)=P+1(P是流图中判定结点的个数)3、流图中的区域数等于环形复杂度。编码单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。白盒测试技术(逻辑覆盖、基本路经测试)白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次。判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。判定/条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次。基本路经测试:黑盒测试技术(等价划分)黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。1、黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息(如数据文件)的完整性等。用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出2、等价类划分等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则:(1)如果输入条件规定了取值范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值、输入值大于最大值)。(2)如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类(输入数据的个数等于给定的个数要求)和两个无效的等价类(输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求)。精心整理(3)如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类。(4)如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类(所有不允许值的集合)。(5)如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类(符合规则)和若干个无效的等价类(从各种角度违反规则)。维护(改正性维护、适应性维护、完善性维护、预防性维护)决定软件可维护性因素(可理解性、可测试性、可修改性、可移植性、可重用性)面向对象方法学优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好对象模型1、关联2、聚集3、泛化4、依赖和细化贰软件工程1.1软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(熟记)2、了解软件危机主要的一些典型表现。(P2)3、出现软件危机的原因:4、消除软件危机的途径:首先,我们要对计算机软件有一个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严格、各类人员协同配合、共同完成的工程项目;最后,应该开发和使用更好的软件工具。总之