1软件工程一、填空题(每小题4分,共20分)1、软件工程学的内容可包括、、、、环境、管理、规范等。2、N-S图中的顺序结构在PAD图中表示为,PAD图设置五种基本控制结构,并允许使用。3、面向对象方法是一种运用、、、、聚合、消息传递、多态性等概念来构造系统的软件开发方法。4、模块的独立程度可以由两个定性标准度量,这两个标准分别为和。耦合衡量;内聚衡量。5、软件测试方法按测试过程是否在实际应用环境中分为和。二、单项选择(将一个正确的答案代码填入括号中,每小题4分,共20分)1、模块在同一段时间内完成各种初始化工作,这属于()。A、偶然内聚B、逻辑内聚C、时间内聚D、过程内聚2、在编程安全方面,一般来说无法做到()。A、避开错误B、完美无缺,绝无错误C、冗余D、涉及防错程序3、在衡量软件质量时,最重要的标准是()。A、成本低B、可维护性好C、符合要求D、界面友好4、下列工具中,不属于详细设计工具的是()。A、测试工具B、图形工具C、表格工具D、语言工具5、下列哪个做法会导致不利的语句结构()。A、避免使用ELSEGOTO结构B、对递归定义的数据结构尽量不再使用递归过程C、模块功能尽可能单一化,模块间的耦合能够清晰可见D、利用信息隐蔽,确保每一个模块的独立性三、判断题(正确的在括号内打上“√”,错误的打上“×”。每小题3分,共21分)1、Jackson系统开发方法是一种典型的面向对象的分析设计方法。()2、HIPO图是由一组IPO图加一张HC图组成。是美国IBM公司在软件设计中使用的主要表达工具。3、在软件开发中采用原型系统策略的主要困难是成本问题。()4、软件开发所需的资源可以画成一个金字塔,塔的高层最基本的资源是人。()5、下图表示的是WHILE型循环。()6、数据流图与程序流程图的主要区别是程序流程图中各处理框之间有严格的时间上的顺序。而数据流图只反映数据的流向,不反映处理逻辑的先后。()7、UML是面向对象技术领域的建模语言。()四、问答题(每小题5分,共20分)1、什么是软件?2、简述面向数据流的需求分析方法。3、模块独立性的重要性是什么?4、简述在编码风格上需要注意的四个问题?BABASPSP2五、分析题(第一小题10分,第二小题9分,共19分)1、根据伪码程序画出程序流程图,盒图(N-S图)。STARTaIFx1THENREPEATUNTILx2bENDREPEATELSEBLOCKcdENDBLOCKENDIFSTOP2、用Jackson图表示下图所示的二维表格:该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任意行组成,每行包括学生的姓名、性别、年龄和学号。参考答案及评分标准一、填空题(每小题4分,共20分)1、理论结构方法工具2、递归3、对象类继承封装4、内聚耦合不同模块彼此之间互相依赖的紧密程度一个模块内部各个元素彼此结合的紧密程度5、静态分析动态测试二、单项选择(每小题4分,共20分)1、C2、B3、C4、A5、B三、判断题(每小题3分,共21分)1、×2、√3、√4、√5、×6、√7、√四、问答题(每小题5分,共20分)1、答:软件是一种产品。包含下面三个方面的含义:⑴在运行中能提供所希望的功能和性能的指令集(即程序);⑵使程序能够正确运行的数据结构;⑶描述程序研制过程、方法所用的文档。……………………学号年龄性别姓名学生名册表头表体……………………学号年龄性别姓名学生名册表头表体ABAB32、答:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。3、答:具有独立的模块软件比较容易开发出来。独立的模块比较容易测试和维护。4、答:⑴源程序文档化;⑵数据说明的方法:⑶语句结构;⑷输入/输出方法。五、分析题(第一小题10分,第二小题9分,共19分)1、答:2、答:abcdx1x2STARTSTOPyesyesnonoabcdx1x2STARTSTOPyesyesnonox1TFbUNTILx2cdax1TFbUNTILx2cda学生名册字段名表头表名表体行*姓名性别年龄学号学生名册字段名表头表名表体行*姓名性别年龄学号4第四部分综合练习(含参考答案)一、填空题1.软件是一种产品,同时又是开发和运行产品的载体。2.软件危机指的是软件开发和维护过程中遇到的一系列严重问题。3.软件危机包括下面两方面的问题:如何开发软件,满足对软件的日益增长的需求和如何维护数量不断膨胀的已有软件。4.软件工程学的内容可包括:理论、结构、方法、工具、环境、管理、规范等。(全部加下划线表示考查其中某1-2个空,下同)5.软件生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护。6.软件生存周期也可分为三个大阶段:计划阶段、开发阶段、维护阶段。7.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。8.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。9.一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性、开发可行性等方面研究可行性。10.只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明。11.需求分析的基本任务是准确的回答系统必须做什么这个问题。12.需求分析所要做的工作是深入描述软件的功能和性能。13.需求分析阶段研究的对象是软件项目的用户要求。14.需求分析结束时交出的文档中应该包括详细的数据流图DFD,数据字典DD,一组简明的算法描述。15.对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。16.任何信息处理系统的基本功能都是把输入数据变成需要的输出信息。17.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。18.数据域具有三种属性:数据流、数据内容和数据结构。19.数据流图是描述数据处理过程的工具。20.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。21.数据流图的特性有:抽象性、概括性、层次性。22.数据字典的作用是在软件分析和设计的过程中提供关于数据的描述信息。23.数据流图和数据字典共同构成系统的逻辑模型。24.必须从一致性、完整性、现实性、有效性等四个不同角度验证软件需求的正确性。25.信息隐蔽原理是指每一个模块的实现细节对其它模块来说是隐蔽的。26.耦合是对一个软件结构内各个模块之间互连程度的度量。27.模块间耦合程度强弱的种类有:非直接耦合、数据耦合、控制耦合、公共环境耦合、内容耦合、标记耦合、外部耦合。28.内聚标志着一个模块内各个元素彼此结合的紧密程度。29.Jackson图有三种逻辑数据结构:顺序结构、选择结构、重复结构。30.Warnier程序设计方法是一种面向数据结构的设计方法。31.详细设计又称过程设计。32.面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。533.面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。34.面向对象的软件工程学方法是面向对象方法在软件工程领域的全面运用。35.面向对象的软件工程学方法包括:面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。36.OO方法中把组成客观世界的实体称为问题空间的对象。37.所谓的方法,它们实际上是类对象上的各种操作。38.类有方法和数据集成,它是关于对象性质的描述,包括外部特性和内部实现两个方面。39.UML即:标准建模语言。40.UML包括:UML语义和UML表示法两个部分。41.标准UML的重要内容可以由五类图来定义:用例图、静态图、行为图、交互图、实现图。42.所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。43.从应用特点看,高级语言可以分为基础语言、现代语言、专用语言三类。44.程序的注释一般分为:序言性注释和功能性注释。45.程序效率是指程序的执行速度及程序占用的存储空间。46.源程序的效率与详细设计阶段确定的(算法)的效率直接有关。47.冗余是改善系统(可靠性)的一种重要技术。48.防错程序设计可以分为主动式和被动式两种49.按照测试过程是否在实际应用环境中来分,有静态分析和动态测试。50.大型软件系统的测试基本上由下述四个步骤组成:单元测试、集成测试、确认测试、系统测试。51.在软件运行维护阶段对软件产品所进行的修改就是维护。二、判断题52.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,软件维护比硬件维护要复杂得多。(对)53.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。(对)54.软件的开发至今尚未完全摆脱手工的开发方式。(对)55.软件的开发费用越来越高,成本相当昂贵。(对)56.软件的开发费用越来越低,但成本仍然相当昂贵。(错)57.在需求分析阶段,所有的用户要求都是合理的,必须满足。(错)58.在需求分析阶段,不是所有的用户要求都是合理的,没有必要全部满足。(对)59.任何一个软件系统本质上都是信息处理系统。(对)60.数据流图中可以带有控制流。(错)61.数据流图中不可以带有控制流。(对)62.模块是数据说明、可执行语句等程序对象的集合。(对)63.Jackson系统开发方法是一种典型的面向数据结构的分析设计方法。(对)64.Jackson系统开发方法是一种典型的面向对象的分析设计方法。(错)65.Warnier程序设计方法是一种面向数据结构的设计方法。(对)66.Warnier程序设计方法是一种面向对象的设计方法。(错)67.详细设计是编码的前奏。(对)68.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内的数据结构。(对)69.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量和机器执行的速度。(错)70.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量,但不影响机器执行程序的速度。(对)71.源程序的效率与详细设计阶段确定的算法的效率直接有关。(对)72.冗余是改善系统可靠性的一种重要技术。(对)673.冗余是改善系统速度的一种重要技术。(错)74.判定覆盖比语句覆盖强有效。(对)75.语句覆盖比判定覆盖强有效。(错)76.软件开发所需的资源可以画成一个金字塔,塔的最基本的资源是人。(对)三、简答分析题77.软件的发展经过哪几个阶段?程序设计阶段、程序系统阶段、软件工程阶段、第四阶段。78.软件的定义是什么?在运行中能够提供所希望的功能和性能的指令集(程序);使程序能够正确运行的数据结构;描述程序研制过程、方法所用的文档。79.基于软件的功能,软件分为哪几种?系统软件、支撑软件、应用软件。80.基于软件的工作方式分,软件分为哪几种?实时处理软件、分时软件、交互式软件、批处理软件。81.基于软件的规模分,软件分为哪几种?微型软件、小型软件、中型软件、大型软件、甚大型软件、极大型软件。82.基于软件的服务对象的范围分,软件分为哪几种?定制软件、产品软件。83.软件危机包括哪两方面的问题?(1)如何开发软件,满足对软件的日益增长的需求。(2)如何维护数量不断膨胀的已有软件。84.产生软件危机的原因是什么?(1)软件是计算机系统中的逻辑部件而不是物理部件。(2)软件本身独有的特点确实给开发和维护带来一些客观困难。(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量规范。(5)在软