判断题1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)2.软件是指用程序设计语言编写的程序,软件开发实际上就是编写程序代码。(错)3.过程描述语言可以用于描述软件的系统结构。(错)4.数据库设计说明书是一个软件配置项(对)5.软件模块之间的耦合性越弱越好。(对)6.如果通过软件测试没有发现错误,则说明软件是正确的。(错)7.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)8.数据流图(DFD)和程序流程图没有区别。(错)9.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对)10.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)11.软件危机是指在软件开发和维护过程中遇到的一系列严重问题。(对)12.结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。(对)13.程序设计语言中应绝对禁止使用GOTO语句。(错)14.模块越小,模块的优点越大。(错)15.集成测试主要由用户来完成。(错)16.确认测试计划应该在可行性研究阶段制定(错)17.快速原型模型可以有效地适应用户需求的动态变化。(对)18.需求规格说明书不是一个软件配置项(错)19.黑盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(对)20.UML只能应用于软件系统模型的建立。(错)名词解释1.软件工程:软件工程是一门研究如何将完善的科学与工程原理,先进高效的管理技术以及完整、规范的设计方法应用于经济的开发既可靠,又能在实际计算机上有效运行的软件的一门工程学科。2.软件宽度:是软件结构中同一层次上的模块总数的最大值。3.软件测试:在精心控制的系统环境下,采用相应的技术手段,利用一组事先构造好的测试实例执行程序以发现程序中存在的问题,并确认系统功能、性能符合需求的一个综合过程。4.软件维护5.软件质量保证6.软件危机:软件危机就是软件在开发和维护过程中存在的一系列严重问题的总称。7.软件生存周期8.白盒法9.数据字典10.内聚性:指模块的功能强度的度量,即一个模块按照设计要求组装成为子系统或系统,进行集成测试。11.集成测试12.软件:是计算机系统中与硬件系统相互依存的另一部份,是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。13.数据流图14.黑盒测试:测试是在软件接口上进行;也叫功能测试、输入/输出驱动测试。15.软件深度:表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。16.数据字典:是结构化分析方法中采用的表达数据元素的工具。是对数据流图中所有的数据元素、数据结构、数据文件、数据流等的格式与内容进行定义的数据集合。17.白盒测试:是对软件实现的过程性细节做认真的运行检查;也叫结构测试、逻辑驱动测试。31.经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。[解析]对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。32.社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。[解析]社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。33.投资回收期:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。34.对应关系:即有直接因果关系在程序中可以同时处理。[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。35.结构冲突:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。填空题21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/1、FORTRAN语言都是工程计算中常用的语言。第一章软件与软件工程1.计算机软件是与操作系统有关的程序、规则、规程及其有关的文档和数据;由两部分组成:一、机器可执行的程序及有关数据;二、机器不可执行的,与软件运行、维护有关的相关文档2.软件是逻辑产品不是物理产品,特点是不会磨损和老化3.软件分为系统软件与应用软件4.软件危机:软件功能要求变得更强、更复杂,代码量大,不仅需要编程人员技艺高超,更需要人员间的组织和合作;在这种情况下,完成软件往往质量差、维护困难、难以重用等等。软件危机的表现形式是成本高、生产率低、质量难保证5.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法6.软件工程由方法、工具和过程三部分组成软件工程的目标:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性、可互操作性7.软件工程原则:抽象、信息隐藏、模块化、局部化、完整性、一致性、可验证性8.软件生存周期包括:软件定义、软件开发、软件使用和维护9.软件定义分为软件系统的可行性研究和需求分析两个阶段10.可行性研究包括技术可行性、操作可行性和经济可行性11.软件开发模型:软件需求完全确定采用瀑布模型;初始阶段只提供基本需求时采用渐进式开发模型,如原型模型和螺旋模型12.软件开发周期一般步骤:可行性研究、需求分析、概要设计、详细设计、编码与实现、单元测试、组装测试、确认测试、运行与维护、退役13.螺旋模型是生存周期模型与原型模型的结合,增加了新的成分——风险分析,有需求定义、风险分析、工程实现、评审四部分组成14.CASE(计算机辅助软件工程)第二章软件项目管理1.软件工程的定量描述离不开度量、测量和估算三个概念2.度量具有数字特征,测量和估算是简单属性度量的函数3.测量用于事后或实时状态,可分为直接测量和间接测量软件工程的产品、过程、资源都具有外部属性和内部属性,外部属性可以说是面向管理者和用户的属性,是由内部属性决定的4.面向规模的度量,直接(自然直观);面向功能的度量,间接5.经验估算模型:CoCoMo模型是静态、单变量模型;Putnam模型是动态多变量模型6.软件质量的定义是软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。1978年Walters和McCall提出包括质量要素、准则和度量的三层次软件质量度量模型,质量要素分为产品修正性、产品转移性和产品运行性7.T.J把程序看成是有一个入口节点和一个出口节点的有向图8.程序结构复杂性的度量:V(G)=e-n+2,e为边数,n为节点数9.软件工程的风险分析包括风险标识、风险估算、风险评价和风险管理四个部分10.软件开发人员的组织和分工可按树形结构组织、主程序员和无我程序设计原则建立11.CMM的能力成熟度共分为5级:L1初始级、L2可重复级、L3已定义级、L4已管理级、L5优化级12.软件质量保证活动有8条:第三章计算机系统工程1.计算机系统工程包括硬件工程、软件工程、人机工程和数据库工程第四章需求分析基础1.需求分析分为问题分析、需求描述和需求评审三个阶段2.问题分析方法:问题抽象、问题分解和多视点分析,还有需求建模3.需求规格说明书衡量标准:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性第五章面向数据流的分析方法1.面向数据流的分析方法是结构化分析方法2.数据流图有外部实体、转换、数据流和数据源组成3.数据字典的作用是:重组数据条目4.在逐层精化过程中,初始输入流和最终输出流必须严格一致5.数据字典可以对数据流图中的数据流、数据源及外部实体进行描述、组织和管理6.数据流图精化的原则是“强内聚,松耦合”第六章面向对象的需求分析1.面向对象=对象+类+继承+聚集+消息2.UML四类视图:用例图、静态图(类图、对象图、包图)、行为图(交互图、状态图、活动图)、实现图(构件图、部署图)3.迭代的渐进式软件开发过程,包含初启、细化、构造和移交四个阶段,重点在细化4.软件顶层架构设计:流程处理模式、客户/服务器模式、模型-视图-控制器(MVC)模式、分层模式5.UML的用例和用例之间有:使用关