软件工程导论试题集_第1页
软件工程导论试题集_第2页
软件工程导论试题集_第3页
软件工程导论试题集_第4页
软件工程导论试题集_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章:软件工程学概述一.填空题1.计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于(原理和理论)、而软件工程侧重于(如何建造一个软件系统)2.计算机程序及其说明程序的各种文档称为(文件)。计算任务的处理图像对象和处理规则的描述称为(程序)。有关计算机程序功能、设计、编制、使用的文字或图料称为(文档)。3.软件开发环境是相关一组(软件工具)的集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成的。4.CASE这一术语的英文是(ComputerAidedSoftwareEngineering)。5.(平台集成)是指工具运行在相同的硬件/操作系统平台上。(数据集成)是指工用共享数据模型来操作。(表示集成)是指工具提供相同的用户界面。7.软件危机的主要原因有(软件本身的特点)和(缺乏好的开发方法和手段)。开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。9.结构化方法总得指导思想是(自顶而下逐步求精)。它的基本原则是功能的(分解)与(抽象)。它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。10.面向对象开发方法包括(面向对象分析)、(面向对象设计)、(面向对象实现)、11.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括,如同瀑布流水,逐级下落。12.瀑布模型本质上是一种(线性)顺序模型。13.构造原型时,必须注意(功能性能)取舍,忽略一切暂时不关心的部分。14.属性指的是类中对象所具有的(性质(数据值))。不同对象的同一属性可以具有相同或不同的(属性值)。它们之间的关系表现为(相互补充)。二.判断题3.软件工程学科出现的主要原因是程序设计方法学的影响。(×)5.CASE开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是7.平台集成是指工具运行在相同的硬件/操作系统平台上。(√)8.软件生存周期模型有多种,功能模型是软件生存周期模型。(×)10.软件生存周期中时间最长的阶段是需求分析阶段。(×)期方法将软件生命周期划分成需求分析、功能定义、12.增量模型是一种整体开发模型。(×)13.构造模型时,主要考虑全部功能。(×)14.瀑布模型本质上是一种线性迭代模型。(×)15.快速原型思想是在研究概要设计阶段的方法和技术中产生的。(×)三.名词解释软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。软件生命周期模型是描述软件开发过程中各种活动如何执行的模型。进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。把程序划分成独立运行且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统白盒测试又叫做结构测试,把程序看成装在一个透明的白盒子里,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。耦合是对一个软件结构内各个模块之间互连程度的度量。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的信息流动)情况。独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对。变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说明开始经过一系列变换,最终得到系统的目标程序。此模型必须有严格的数学理论和形式化技术的支持,尚处于研究和实验阶段。1.请简要说明可行性分析的内容。技术可行性:技术分析说明使用现有系统是否能完成本系统的开发。经济可行性:经济分析应着重两个因素“成本和收益”,应向管理层提供有关这两方面足够的信息。如果项目的收益大于成本,则此项目可以说是经济上可行。制度、道德、文化等因素。(1)PowerDesigner(分析设计工具或软件建模工具),(2)RationalRose(分目管理工具),(5)MSVisio(软件开发绘图工具)、(6)VSS(软件配置工具)。3.什么是软件工程软件工程的目标是什么软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。1合理预算开发成本,付出较低的开发费用、2实现预期的软件功能,达到较好的软件性能,满足用户的需求、3提高软件的可维护性,降低维护费用、4提高软件开发生产率,及时交付使用。4.什么是结构化分析方法该方法使用什么描述工具结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止5.软件设计的基本原理包括什么①模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手②抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素。软件工程中每一步都是对软件解决方法的抽象层次的一次细化。③信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。④模块独立性。指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量模块独立性有两个标准耦合性和内聚性,可判断的优劣。6.简述容错技术的四种主要手段,并解释结构冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。7.软件生命周期划分成哪些阶段软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。3.维护时期:主要任务是使软件持久地满足用户的需要。8.简要说明软件危机产生的原因1.软件缺乏可见性,导致对软件开发成本,工作量,速度的估计不准确。2.对用户要求没有完整准确的认识,不能适应用户的需求。3.缺乏对软件产品和开发过程的质量控制,导致软件产品的质量往往靠不住。4.在实践过程中或多或少的采用了错误的方法和技术。5.开发和维护过程中文档化工作做的不好,缺乏配置管五.综合题解答:六.论述题(方案1)1.螺旋模型:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型瀑布模型:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。三要素:方法、工具和过程。3.试论述软件生命周期模型瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验缺点:传统的瀑布模型过于理想化,是由文档驱动的。用原型并收集用户反馈意见的方法,获取用户真正的需要。增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。4.评价软件工具的原则(1)易用性:友好的用户界面,用户乐于使用;(3)稳健性:具备自检测机制,即使在故障情况下也不会导致严重后果;到充分有效的利用;(5)工具结构柔性:工具结构是柔软的、可修改的和可扩充的。5.软件生命周期划分成哪些阶段软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。3.维护时期:主要任务是使软件持久地满足用户的需要。6.什么是软件过程它与软件工程方法学有何关系软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型7.试论述可行性研究的任务1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性:8..试论述需求分析的准则1、必须并描述的信息域,根据这条准则应该建立数据模型。2、必须定义软件应完成的功能,这条准则要求建立功能模型。3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。9.试论述需求分析的任务1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修正系统开发计划。10.试论述应该从哪些方面研究目标系统的可行性技术上的可行性——使用现有的技术能实现这个系统吗经济上的可行性——这个系统的经济效益能超过它的开发成本吗(投资与效操作可行性——系统的操作方式在这个用户组织内行得通吗社会、政策允许的可行性11.在软件开发过程中必须遵循下列软件工程原则。抽象:采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。信息隐蔽:遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的模块化:按模块划分系统的体系结构,使得各模块间有良好的接口。这样有助于信息隐蔽和抽象,有助于表示复杂的系统。局部化:按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解的复杂性。这有助于人们之间的沟通,保证整个开发工作协调一致。一致性:强调软件开发过程的标准化、统一化。包括文档格式的一致,工作流程的一致,内、外部接口的一致,系统规格说明与系统行为的一致等。完备性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能。可验证性:开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。12.软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素试软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工程方法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准。推出了许多软件工具,已经能够支持上述的软件工程方法。特别地,已经有人把诸多的软件工具集成起来,使得一种工具产生的信息可以为其它的工具所使用,这样建立起一种被称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。从学术研究角度讲,CASE是多年来在软件开发管理、软件开发方法、软件开发环开发方法集成到一个统一而一致的框架中,并且吸引了CAD(计算机辅助设计)、系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是支持软件开发过程管理的技术。从CASE系统产生方式来看,还有一种特殊的CASE对CASE工具分类的标准可分为:①功能。功能是对软件进行分类的最常用的标准。②支持的过程。根据支持的过程,工具可分为设计工具、编程工具、维护工窄支持指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是统对软件过程的支持范围,提出CASE系统可分为三类:①支持单个过程任务的工具。工具可能是通用的,或者也可能归组到工作台。②工作台支持某一过程所有活动或某些活动。他们一般以或多或少的集成度组成工具集。③环境支持软件过程所有活动或至少大部分。他们一般包括几个不同的工作台,将这些工作台以某方式集成起来。14.软件工程标准化的意义是什么都有哪些软件工程标准软件工程标准化可以为软件工程各个阶段的活动提供统一的行动规范和衡量准则,使得各种工作都能有章可循。软件工程标准根据其制定机构与适用范围,可分为:2、国家标准3、行业标准4、企业规范15.什么是软件开发环境请列出其发展情况。软件开发环境是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。具体地说,软件开发环境是一组相关工具的集合。这些相关工具按一定的开发方法或一定开发处理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或部分阶段。展阶段:(1)70年代,软件开发与设计方法出现了结构化分析技术的一整套相互衔接的SA-SD的方法学。与此相适应的计算机辅助软件工程技术则主要由开发孤立的软件工具而逐步向程序设计环境的开发和使用方向发展,出现了第一代的基于正文的(2)80年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设其特点是支持使用图形表示的结构化方法,如数据流图与结构图。其开发环境表现在提高环境中工具的集成性方面,如"集成的项目支持环境"。成了用于项目计划、分析、设计、编程、测试和维护的一个工具箱的集合。(4)90年代出现一系列集成的CASE软件产品,用以实现需求管理、应用程序分析设计和建模、编码、软件质量保证和测试、过程和项目管理及文档生成管理等软件开发工作的规范化、工程化和自动化。一.填空题2.(软件可行性研究)的目的就是用最小的代价在尽可能短的时间内确定该软件项是否值得开发。3.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否(值得去开发且其中的问题能否解决)。4.可行性研究实质上是要进行一次简化、压缩了的(需求分析)和(设计)过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。三个方面分析研究每种解决方法的可行性。6.成本-效益分析首先是估算将要开发的系统的(开发成本),然后与可能取得的效益进行(比较和权衡)。7.投资回收期就是使累计的经济效益等于最初的投资费用所需要的时间。项目的 (纯收入)是指在整个生命周期之内的累计经济效益(折合成现在值)与投资之8.软件工程有两种效益,它们是(无形效益)和(有形效益)。9.成本-效益分析的目的是从(经济角度)评价开发一个新的软件项目是否可行。10.研究开发资源的有效性是进行(技术)可行性研究的一方面。11.在软件的可行性研究中,可以从不同的角度对软件进行研究,其中是从软件可行性角度考虑的是(技术可行性)。12.制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是(规划与调度)。13.数据流图是常用的进行软件需求分析的图形工具,其基本符合是(加工)、(数14.决定大型程序模型组织基本原则的两种交替设计策略为(数据分解)和(算法分解)。15.软件系统可行性分析应考虑(经济)、(技术)、(社会环境)和(人)等方面因素。二.判断题1.父图中某个加工的输入输出数据流图应具备对称特点。(×)3.在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是困难。(√)5.研究软硬件资源的有效性是进行操作可行性研究的一方面。(×)6.可行性研究要进行的需求分析和设计应是简化、压缩的。(√)8.软件系统中所有的信息流都可以认为是事物流。(×)9.软件系统中所有的信息流都可以认为是变化流。(×)10.在程序的描述和分析中,用以指明数据来源、数据流向和数据处理的辅助图11.加工是对数据流图中不能再分解的基本加工的精确说明,且加工逻辑是加工12.软件定义期间问题定义阶段涉及的人员有系统分析员、软件开发人员、用户13.系统定义明确之后,应对系统的可行性进行研究。可行性研究包括经济可行性、社会可行性、系统可行性。(×)14.在结构化分析方法中,用状态-迁移图表达系统和对象的行为。在状态-迁移)15.提供严格定义的文档是原型化方法的特征。(×)三.名词解释解答:1.什么是数据字典其作用是什么它有哪些条目数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。数据源点及终点词条。2.什么是数据流图其作用是什么数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功3.可行性研究的任务有哪些可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。把它们清楚地列举出来。然后分析员进行简单的需求分析,经过压缩的设计,探索出若干种可提供选择的主要解决办法。对每种解决办法都要研究它的可行性。主要从经济可行性、技术可行性和社会可行性三方面进行研究。4.什么是软件配置管理软件配置管理,简称SCM(SoftwareConfigurationManagement),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。5.简述文档在软件工程中的作用(1)提高软件开发过程的能见度(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;有关资料;了解软件功能、性能。6.软件开发成本估算方法有哪几种<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。<2>自底向上估算方法。自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。<3>差别估算方法。差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成7.请说明软件文档的作用。软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结、程序维护手册(维护修改建议)。8.简述提高软件质量的主要措施。复审:是在软件生命周期每个阶段结束之前,都采用一定的标准对该段产生的软件配置成分进行严格的正式或非正式的检测。本和进度等方面的情况,以便他们从管理角度对开发工作进行审查。五.综合题。(1)按照GB-8567-88进行可行性分析的书写;(2)重点分析技术与操作可行性。(1)按照国标GB8567-88规范书写相应内容。3.请以农产品购销供应链一体化系统为背景,分析其经济可行性与技术可行性。(1)按照GB-8567-88书写规范的可行性分析报告4.请以城市交通流拥塞与控制为背景,书写该系统的可行性分析报告。(1)重点进行交通流拥塞与控制的技术可行性研究,分析其技术可行性5.请以智能家庭为例,分析其经济可行性与技术可行性。(1)重点进行智能家庭的技术可行性分析;(2)按照国标GB-8567-88规范书写。6.请以“信息尘埃”在现代战争中的应用为背景,进行可行性分析。(1)按照国标GB-8567-88规范书写;(2)重点进行“信息尘埃”技术可行性分析7.请以网络视频社区为背景,按照国标规范书写可行性分析报告。(1)按照国标GB-8567-88规范书写(2)着重进行视频系统的技术可行性分析8.请以社区呼叫中心为背景,进行可行性分析。(1)按照国标GB-8567-88规范书写;(2)重点进行社区管理的操作可行性分析。六.论述题(方案1)解答:一.填空题1.软件需求分析过程应该建立(数据模型)、(功能模型)和(行为模型)三种模型。2.需求分析的基本任务是要准确地定义(新系统的目标),为了满足用户需要,回答系统必须3.数据流图有4个基本成分:(数据流)、(加工(又称数据处理))、(数据存储)和(数据源点和终点)。4.流向数据存储的数据流可理解为(写入)文件或(查询)文件,从数据存储流出的数据可理解为从文件(读)数据或得到(查询)结果。完备性和不一致性)需6.由于数据流是流动中的数据,所以必须有(流向)。除了与(数据存储)之间的数据流不用命名外,数据流应该用名词或名词短语命名。7.结构化分析方法是面向(数据流)进行需求分析的方法。8.经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统数据,描述了处理这些数据的基本策略。将这些共同的理解进行了整理,最后形成文档(需求说明书)。9.在数据流图中,有名字及方向的成分是(数据流)。10.在软件需求分析中,开发人员要从用户那里解决的最重要的问题是(要让软件做什么)。11.需求分析的最终结果是产生(需求规格说明书)。13.SA方法的基本思想是(自顶向下逐步分解)。构化分析方法,(面向对象的分析方法),面向数据结构的15.通过(功能分解)可以完成数据流图的细化。二.判断题1.数据流图(DFD)是软件开发可行性分析阶段经常使用的工具。(×)4.通过功能分解可以完成数据流图的细化。(√)6.数据字典中,一般不包括数据存储条目。(×)物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型。(√)9.每个数据流必须用名词或名词短语命名。(×)10.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准时模块11.数据词典的任务是对于数据流图中出现的所有被命名的数据元素,在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的描述。 12.在需求分析中,开发人员要从用户那里解决的最重要的问题是要让软件做什13.结构化分析方法(SA)是一种面向数据结构需求分析方法。(×)14.软件需求分析的任务包括结构化程序设计。(×)三.名词解释解答:解答:五.综合题1.请以教材购销的内容为应用背景,画出数据流图、写清数据字典、小说明。(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况2.请以小超市销售管理的内容为应用背景,画出数据流图、写清数据字典、小说(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况3.请以校园交友娱乐社区的内容为应用背景,画出数据流图、写清数据字典、小(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况4.请以校园学习交流社区的内容为应用背景,画出数据流图、写清数据字典、小(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况5.请以网络爬虫应用系统为背景,画出数据流图、写清数据字典、小说明。(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况8.请以社区后勤管理为应用背景,画出数据流图、写清数据字典、小说明。(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况六.论述题(方案1)解答:一.填空题1.过程设计语言的重复结构有(for)结构、(while)结构(until)、结构三种。2.结构化程序设计方法的基本要点是:(1)采用(自顶向下)、(逐步求精)、的程序设计方法;(2)使用(三种基本控制结构)构造程序;(3)主程序员组的组织形式。3.在详细设计阶段,为了提高数据的输入、存储、检索等操作的效率并节约存储空间,对某些数据项的值要进行(代码)设计。4.任何程序都可由(顺序)、(选择)和(重复)三种基本控制结构构造。这三种基本5.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的(数据结构)6.在详细设计阶段,经常采用的工具有(程序流程图)、PDL、PAD等。7.在单元测试中,测试一个模块时,需要设计(驱动模块和桩模块)。9.软件测试用例由(测试输入数据)和(对应的预期输出)组成。10.用黑盒技术设计测试用例的方法有(等价类划分)、(边界值分析)、(错误推断)和(因果图)。11.源程序中加注释是帮助理解程序的重要手段,注释分为(序言行注释)、(功能两类。12.近年来,推出了许多面向对象的语言,如(C++)、(JAVA)等。13.汇编语言是面向(机器)的,可以完成(高级)语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。14.语句构造的原则是简单直接,不能为了追求效率而使代码(复杂性)15.(可移植性)是指程序从一个计算机环境移植到另一个计算机环境的容易程度二.判断题1.一般说来,模块大小以三至四页为宜。(√)2.软件设计一般分为总体设计和详细设计,它们之间的关系是全局与局部。(√)3.好的软件结构应该是高内聚、低耦合。(√)4.一个模块把一个数质量作为参数传递给另一个模块。这两个模块之间的耦合是5.在面向数据流的软件设计方法中,一般将信息流分为变换流和事务流。(√)6.首先将系统中得关键部分设计出来,再让系统的其余部分的设计去适应它们,7.划分模块时,一个模块的控制范围应在其作用范围之内。(×)8.结构化设计方法在软件开发中,用于概要设计。(√)9.软件结构图中,模块框之间若有直线连接,表示它们之间存在着组成关系。(×)10.软件概要设计结束后得到初始化的软件结构图。(×)11.偶然内聚是指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成12.设计软件结构一般不确定模块内的局部数据。(√)13.通过抽象,可以确定组成软件的过程实体。(√)14.标记耦合是指两个模块之间的调用关系,传递的是简单的数据值。(×)15.内容耦合是指一个模块直接使用另一个模块的内部数据,或通过非正常入口)三.名词解释数据耦合是指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递2.标记耦合标记耦合是指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址;3.偶然内聚偶然内聚指一个模块内的各处理元素之间没有任何联系。这是内聚程度最差的内4.逻辑内聚逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个5.时间内聚把需要同时执行的动作组合在一起形成的模块称为时间内聚模块6.软件概要设计描述软件的总的体系结构,称为“软件概要设计”;7.软件结构软件结构是软件系统的模块层次结构,反映了整个系统划分模块时,尽量做到高8.面向数据流的设计方法面向数据流的设计方法,也称“结构化设计方法”(SD),它与结构化分析(SA)相衔接,它按一定的设计策略将数据流图转化成软件的模块层次结构;9.耦合性耦合性也称“块间关系”。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差;10.模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系模块是可组合、分解和更换的单元,在程序中它是数据说明、可执行语句等程序对象的集合,或者是单独命名和编制的元素;12.模块的作用范围模块的作用范围是指受该模块内一个判定影响的所有模块的集合;13.模块的控制范围模块的控制范围是指模块本身以及其所有下属模块的集合;14.通信内聚通信内聚指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据;15.顺序内聚顺序内聚指一个模块中各个处理元素都紧密相关与同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。1.请简要说明软件耦合性和内聚性模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。2.什么是概要设计有哪些基本任务概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则制定测试计划、数据设计、书写文档、设计审查和复审。3.系统设计的内容是什么(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。(3)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。(4)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。4.简述软件测试的任务、目的与类型。软件测试是一个为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。5.简述结构化程序设计方法的基本要点(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环口单出口的模块形式。6.简述容错技术的四种主要手段,并解释。结构冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测8.就程序设计语言的工程特性而言,对程序编码有哪些要求就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性9.可行性研究报告的主要内容有哪些一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门。(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、要求。(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的(8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目动等。10.系统设计的内容是什么系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。(7)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。11.什么是软件危机软件危机的表现是什么其产生的原因是什么软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显着的提高,生产成本显着下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开(3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。 (3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。6)开发工具落后,生产率提高缓慢。12.软件质量保证应做好哪几方面的工作软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质13.软件生命周期各阶段的任务是什么问题定义:要解决的问题是什么可行性研究:确定问题是否值得解,技术可行性,经济可行性,操作可行性需求分析:系统必须做什么总体设计:系统如何实现,包括系统设计和结构设计详细设计:具体实现设计的系统实现:编码和测试运行维护:保证软件正常运行14.软件重用的效益是什么1.软件重用可以显着地改善软件的质量和可靠性2.软件重用可以极大地提高软件开发的效率3.节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费15.自顶而下渐增测试与自底向上渐增测试各有何优缺点优点不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主动功能,而且能够尽早发现上层模块的接口错误。缺点:需要存根程序,底层错误发现较晚优点与缺点和自顶而下渐增测试相反五.综合题解答:六.论述题(方案1)1.说明软件内聚的方式(1)偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。(2)逻辑内聚。这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能(3)时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模(4)过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。(5)通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。(6)顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。(7)功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺2.说明软件耦合的方式(1)数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于(2)标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址。(3)控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。(4)公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。(5)内容耦合:这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。3.试论述总体设计的任务划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等设计软件的结构。也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块4.试论述总体设计过程9个步骤1设想供选择的方案2选取合理的方案3推荐最佳方案4功能分解5设计软件结构6设计数据库7制定测试计划8书写文档9审查和审核5.试论述低耦合(5种类型)1.数据耦合:数据传递2.控制耦合:控制信息传递3.特征耦合:传过多的一个模块访问另一个模块内部6.试论述高内聚(7种类型)功能内聚顺序内聚通信内聚过程内聚时间内聚逻辑内聚偶然内聚7.软件开发成本估算方法有哪几种软件开发成本估算的方法主要有:以及专家估算法、类推估算法、算式估算法等几类方法。8.软件项目计划中包括哪些内容9.请说明软件文档的作用软件开发项目生存期各阶段包含哪些文档提高软件开发过程的能见度;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括的文档包括如下:可行性研究报告项目开发计划软件需求说明书数据要求说明书测试计划概要设计说明书详细设计说明书用户手册操作手册测试分析报告开发进度月报项目开发总结程序维护手册10.请叙述软件开发环境的分类。(1)按解决的问题可分为:程序设计环境、系统合成环境、项目管理环境三类。(2)按软件开发环境的演变趋向可分为:以语言为中心的环境、工具箱环境和基于方法的环境三类。(3)按集成化程度有第一代、第二代、第三代的开发环境。11.何谓软件工具通常包含哪几部分软件工具的定义是:可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件。软件工具是一个程序系统。软件工具通常由工具、工具接口和工具用户接口三部分构成。12.当今软件工具发展有何特点软件工具的发展有以下特点:(1)软件工具由单个工具向多个工具集成化方向发展。(4)软件工具的商品化与软件产业的发展形成良性互动。(1)平台集成:工具运行在相同的硬件/操作系统平台上(2)数据集成:工具使用共享数据模型来操作(3)表示集成:工具使用相同的用户界面(4)控制集成:工具激活后能控制其他操作(5)过程集成:工具在一个过程模型和"过程机"的指导下使用CASE工具组装成一个工具台后工具能协同工作,可提供比单一工具更好的支持。(1)程序设计工作台。由支持程序设计的一组工具组成。(2)分析和设计工作台。支持软件过程的分析和设计阶段。(4)交叉开发工作台。这些工作台支持在一种机器上开发软件,而在其他的系统上运行所开发的软件。(5)配置管理(CM)工作台。这些工作台支持配置管理。(6)文档工作台。这些工具支持高质量文档的制作。(7)项目管理工作台。支持项目管理活动。15.13.原型化方法或称快速原型化方法是一种当前常用的软件工程方法,尽管其特征民传统的结构化生命周期法有所不同,但从原型化方法的演变仔细分析,仍可看出它与结构化方法的内在联系,试回顾两种方法的发展特征和演进历史并(1)两种方法的基本特征和内在联系。(2)结构化生命周期方法的优点及其适应对象。原型法的前提和条件。(1)结构化方法的基本特征:是一类预先严格定义需求的方法,它强调用户需求第一,并在需求分析报告中即基本冻结了用户的需求,其开发的阶段划分,文档的规范都基于需求定义的明确。快速原型方法的基本特征:是一类动态定义需求的方法,它强调快速获取用户基本需求,快速建立需求模型,并与用户交互,迭代并修改和完善模型.两种方法间的联系:结构化方法实施的过程,培养了一批熟悉业务,掌握领域知识的人员,他们是实施原型化的理想人员;结构化方法实施中形成了一批软件开发工具.它们使快速开发原型系统成为可能;结构化方法的应用积累了一批原型系统,为原型化方法实施提供了基础;原型化方法是一类需求定主的快速方法,一旦需求定义明确;即可实施严格的结构化方法.(2)结构化生命周期方法的主要优点是:方法强调需求分析的重要性,即体现软件开发中用户至上的原则;开发过程的阶段划分,各阶段的具体任务明确;各阶段有具体的描述工具易于掌握;强调文档的重要性,并给出文档的内容和格式,因此方法具有易操作性,是软件开发人员应该掌握的基本方法.结构化方法更适合于需求能够预先明确定义的软件系统,如系统软件或某些实时控制软件等.(3)实施快速原型法的基本前提条件一般是:有高水平的实施原型化的人员,他们掌握工具,了解业务,能快速获取用户需求;有快速建造模型系统的工具,二者缺一不可.有相应原型系统的积累可加速实施,但不是实施原型化方法的前提一.填空题解答:二.判断题解答:三.名词解释解答:1.什么是编码风格为什么要强调编码风格编码风格又称程序设计风格或编程风格。好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。尤其当多个程序员合作编写一个很大的程序时,需要强凋良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。2.CMM全称是什么分为哪几个级别3.软件产品具有哪些特性1.件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。2.软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。3.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。4.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。5.软件的开发至今尚未完全摆脱手工的开发方式。6.软件的开发费用越来越高,成本相当昂贵。4.简述软件开发过程、每个里程碑的提交物。软件开发的基本过程:(1)可行性研究,做初步的需求分析工作,决定项目可行行为、性能和接口。系统需求和软件需求均需文档化,并与用户一起复审。并提交需求分析报告。(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。(4)编码,把设计转化为机器可执行的程序。提交源程序清单。(5)测试,提交测试报告。(6)维护,提交维护报告。5.在编写输入和输出程序时应考虑哪些原则在编写输入输出程序时应考虑的原则有:(1)步骤和格式尽量简单。(2)应检查输入数据的合法性、有效性,报告必要得输入状态信息及错误信(3)交互式输入时,提供可用的选择和边界值。(4)当程序设计语言有严格的格式要求时,应保持输入格式的一致性。(5)输出数据表格化、图形化。、输入、输出风格还受其他因素影响,如输入、输出设备,用户经验及通信环境6.对效率的追求应明确哪几点追求效率时应注意一下几点:(1)效率时一个性能要求,目标在需求分析阶段给出。(2)追求效率应建立在不损害程序可读性或可靠性的基础上,要先使程序正确、清晰,再提高程序效率。(3)提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调整。总之,在编码阶段,要善于积累编程经验,培养和学习良好的编程风格,使编出的程序清晰易懂,易于测试与维护,从而提高软件的质量。7.为什么软件测试不应该由程序的编写人员来做软件测试的目的是为了发现程序中的错误而执行程序的过程。果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试8.简述软件测试的任务、目的与类型。软件测试是一个为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。一.填空题解答:二.判断题1.黑盒测试是从用户观点出发的测试,白盒测试是从开发人员观点出发的测试。(√)2.因果图方法是根据输入与输出之间的因果关系来设计测试用例的。(√)3.在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中条件覆盖是最强的覆盖准则。(×)4.使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标5.函数就是简化模拟较低层次模块功能的虚拟子程序。(×)6.软件测试可能发现软件中的错误,但不能证明软件没有错误。(√)8.从已经发现故障的存在找到准确地故障位置并确定故障的性质,这一过程称为。(√)10.软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是单元测试。(√)11.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试软件外部功能。()12.软件文档是软件工程实施中得重要成分,它不仅是软件开发各阶段的重要依据而且也影响软件的可维护性。(√)13.回归测试是校正性维护中最常用的方法。(√)14.在模块测试的过程中,采用自底向上的测试比自顶向下的测试好。(√)15.在程序测试中,目前要为成功的测试设计数据,产生这些测试用例主要依赖1.比较负载测试、压力测试,容量测试区别。负载测试:在不同的工作负荷下,系统的负荷及响应时间。分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。2.为建立良好的编程风格应遵循什么原则。(1)简单化(2)模块化(3)结构化(4)文档化(5)格式化3.简述测试计划的目标和内容在测试的项目、要测试的特性,要执行的测试任务、每个任务的负责人,以及与关的风险。恢复的条件、测试的交付件、需要的环境、责任和角色时间计划安排、人员配备和必要的培训、风险和意外处理4.简述编码风格的重要性。阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章。应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间。良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。5.简述静态测试的优点和缺点。优点加深对项目的理解,使测试计划和测试设计质量得到提高;使得测试用例全面、有效,从“撞问题”转变为有目的的“找问题”提前了对项目的理解,减少了测试执行时的摸索时间,从而加快测试进度缺点静态代码检查非常耗费时间,而且代码检查需要丰富的知识和经验积累。计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试7.黑盒测试和白盒测试有什么区别(1)黑盒测试法:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试,包含等价类划分法、边界值法、错误推测法、(2)白盒测试法:是把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试,包含逻辑覆盖法和基本路径测试法。8.程序设计风格是什么程序设计风格一般指人们的编程的习惯特点。培养良好的设计风格可以是程序清晰易读,减少错误,不但提高软件开发效率,还能为以后的软件维护奠定良好的基础(1)程序加注释:注释是编写者与读者之间沟通的手段之一,应该在每一个模块的开头加序言性注释,在程序内部加功能性注释。(2)变量、数量按意取名,增加可理解性;复杂的数据结构也应加注释。(3)语句简单直接,内部要缩进,使用空格、空行以提高程序的清晰度。(4)输入输出提示化、表格化、图形化。六.论述题(方案1)1.软件维护是对交付使用以后的软件系统所做的改变,从某种意义上讲,维护比开发更为困难,更需要计划和经验,也需要工具的辅助并加强管理,它需要进行创造性的工作,试根据你对软件维护的理解,回答并讨论以下问题:护的细节内容)(2).试陈述软件维护管理所涉及的四个方面,并简述各方面所体内容。(1).本题属于软件维护技术的相关内容,在软件维护阶段的任务归类中,将软件维护阶段的任务执行分为三部分:理解现有系统;修改现有系统;重新确认(2).软件维护管理包括四部分内容,它们是:1)控制程序的改变接收所有的改变要求。并应注意:Ⅰ.维持目标中版本的选择方式,是单一版本,还是多用户版本。Ⅱ.近期是否有替换该程序的计划,如有可推迟改变。Ⅲ.是否改变程序的范围和目标,如是,则应慎重决定。②对改变进行控制,除紧急任务外,其改变需按计划执行,改变控制应包括:Ⅱ.向改变申请者提供报告,改变计划或拒绝理由。2)程序质量检查①保证程序设计标准。②对改变过程进行检查。3)安排维护计划①研究改变申请,确定实现改变的可行性和费用。②制定维护计划应考虑的因素:Ⅰ.程序的稳定(持久)性。Ⅲ.申请改变的用户数量。4)建立维护机构①建立专职维护结构--维护小组。②设立专职维护人员。制定维护政策。2.软件工程项目在实施中必须进行科学的管理,以保证工程的进度和质量。软件的配置管理是软件管理的重要内容之一。试述:(1)软件配置和软件配置管理的概念。(3)软件配置管理的基本任务是什么软件配置管理是软件生命周期内管理变化的一组活动.包括:1)标识变化;2)控制变化;3)确保实现了变化;软件在设计,生产和使用中,会产生不同的版本.软件配置管理应对不同的软件版本进行标识和管理.:系统规格说明书项目开发计划软件需求说明书原型系统总体(或概要)设计说明书详细设计说明书源程序清单测试计划测试报告操作手册用户手册软件问题报告维护请求软件变更通知软件工程标准项目开发总结3)软件配置管理的基本任务包括:1)制定文件书写标准和标识方法.2)控制配置变更,记录与评价软件配置的3)实现对已完成文档的存取管理和跟踪版本变化4)对版本进行检查和维护.3..软件测试是软件质量保证的重要措施。测试的目的是在软件投入生产性运行前,应尽可能地发现并排除软件中隐含的各种错误。测试是对软件规格说明、设计和编码的全面和最后的审查。因此,软件测试应贯穿在整个软件开发的全过程。⑴试陈述软件测试的基本任务和方法。⑵简述黑箱测试和白箱测试的内容和方法。⑶陈述软件测试过程的基本组成,并介绍各种测试对象的测试内容和方法(1)软件测试是软件开发过程中的重要阶段,是软件质量保证的重要手段.其1)预防软件发生错误2)发现改正程序错误3)提供错误诊断信息目前,软件测试的方法有三种:动态测试,静态测试和正确性证明.(2)黑箱测试是一种功能测试,测试时完全不考虑程序内部细节,结构和实现方式,仅检验程序结果与说明书的一致性.测试实例设计完全以说明书为准.黑箱测试不关心程序内部的逻辑,而只是根据程序的功能说明来设计测试用例.在使用黑箱法时,手头只需要有程序功能说明就可以了.黑箱法分以下几种:等价分类法.边缘值分析法,因果图法,错误推测法。白箱测试是一种结构测试,它与程序内部结构相关,要利用程序结构的实现细节知识设计测试实例.它将涉及程序设计风格,控制方法,潭语句,数据库设计,编码细节.白箱测试时将包括:1)语句测试——要求程序中每个语句最少检查一次.2)分支测试——要求程序中每个分支路径最少检查一次.3)路径测试——要求程序中每条路径最少检查一次.白箱测试考虑的是测试实例对程序内部逻辑的覆盖程度.为了衡量测试的覆盖程度,需要建立一些标准.覆盖程序从低到高分别为:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组全覆盖.通过测试发现该模块单元的子程序或过程的实际功能与该模块的功能和接口的描述是否相符,以及是否有编码错误存在.2)集成测式集成测试是在组装软件模块的同时,进行测试以查找与接口有关的错误.组装模块的过程可以分为自顶向下组装法和自底向上组装法.3)有效性测试有效性测试是指:当软件的运行达到了用户的期望时,则认为软件是有效的.4)系统测试系统测试是指将软件系统与硬件,外设或其他系统元素结合在一起,对整个软件系统进行测试.5)验收测试系统测试通过后,用户根据合同进行验收测试,确定系统功能和性能的可接受性.4.原型化方法或称快速原型化方法是一种当前常用的软件工程方法,尽管其特征民传统的结构化生命周期法有所不同,但从原型化方法的演变仔细分析,仍可看出它与结构化方法的内在联系,试回顾两种方法的发展特征和演进历史并论述下(1)两种方法的基本特征和内在联系。(2)结构化生命周期方法的优点及其适应对象。原型法的前提和条件。(1)结构化方法的基本特征:是一类预先严格定义需求的方法,它强调用户需求第一,并在需求分析报告中即基本冻结了用户的需求,其开发的阶段划分,文档的规范都基于需求定义的明确。快速原型方法的基本特征:是一类动态定义需求的方法,它强调快速获取用户基本需求,快速建立需求模型,并与用户交互,迭代并修改和完善模型.两种方法间的联系:结构化方法实施的过程,培养了一批熟悉业务,掌握领域知识的人员,他们是实施原型化的理想人员;结构化方法实施中形成了一批软件开发工具.它们使快速开发原型系统成为可能;结构化方法的应用积累了一批原型系统,为原型化方法实施提供了基础;原型化方法是一类需求定主的快速方法,一旦需求定义明确;即可实施严格的结构化方法.(2)结构化生命周期方法的主要优点是:方法强调需求分析的重要性,即体现软件开发中用户至上的原则;开发过程的阶段划分,各阶段的具体任务明确;各阶段有具体的描述工具易于掌握;强调文档的重要性,并给出文档的内容和格式,因此方法具有易操作性,是软件开发人员应该掌握的基本方法.结构化方法更适合于需求能够预先明确定义的软件系统,如系统软件或某些实时控制软件等.(3)实施快速原型法的基本前提条件一般是:有高水平的实施原型化的人员,他们掌握工具,了解业务,能快速获取用户需求;有快速建造模型系统的工具,二者缺一不可.有相应原型系统的积累可加速实施,但不是实施原型化方法的前提5.软件产品生产周期长、耗资巨大,必须特别注意保证质量,而通常保证软件质量的措施可归为四方面,即复审、复查、管理复审和测试,不同的方面反映了软件质量保证措施中的不同需要,试回答以下问题并适当加以阐述:(1)、复审、复查、管理复审和测试各自包括的具体内容是什么,它在哪些方面对软件质量的保证产生了作用(2)、软件复审和软件测试之间有什么联系,又有什么差别各自有什么侧重(3)、软件测试的目的是什么,对其具体的内容和实现过程做—扼要陈述,无需对测试方法做出介绍、本题主要考查考生对软件质量保证措施的全面了解程度。软件质量保证措施除了常规的对编码进行测试外,还有软件生命周期阶段成果的复审,对各阶段文档和材料的复查,从管理的角度对软件开发工作的复审以及对编码的测试,要求学生建立软件质量保证的整体概念。系统性的错误或缺点。2)复查是指对阶段产生的文档和材料的检查,以保证下阶段工作的开始。3)管理复查是指从项目管理的角度,从总体、成本和进度等方面进行检查。4)测试是指对编码的查错和排错,应说测试的内容和过程,如单元测试、集成测试、系统测试等。(2)、软件复审是软件在编码前对分析文档和设计文档的审查,其目的是发展和纠正在分析和设计阶段中可能产生的系统性错误,它是软件测试的固有和重要内容和步骤。软件测试是对基于正确设计基础上所开发的程序的测试。二者是从不同方面对软件质量的保证。(3)、软件测试的目的从编码阶段来说是发现程序中可能出现的错误并排除错误。测试的具体内容是从不同范围和对象中来发现可能存在的错误并排除之,包括:单元测试即对模块进行测试,再对由模块集成的子系统进行测试,再将子系统集成起来进行系统测试,测试中将应用到测试实例和测试数据。技术因素和管理因素外,还有程序自身的因素,具体影响因素可归纳为:1)软件系统的规模;2)软件系统的年龄;3)软件系统的结构;可能减少维护工作量的因素。(3).简单叙述软件可维护性度量的含义。(1).系统的规模。指软件系统规模的大小,系统规模越大,维护困难越大。系统的年龄。系统运行时间越长,可能经过多次修改,从而造成维护的困难。结构。系统结构合理与否,会给维护带来困难。(2).增加维护工作量软件系统的年龄和规模、结构合理性、程序复杂性、用户的数量、应用的变化工作量的因素有:结构化技术的使用,自动化工具使用,数据库技术应用,高性能软件使用,新了度量可维护性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论