网络工程师考点精要--第3章 系统开发和运行基础知识
【命题要点】•系统分析与设计方案:需求分析与管理、结构化分析与设计、面向对象分析与设计、模块设计、I/O设计、人机界面设计。•软件测试评审方法:测试方法(白盒测试、黑盒测试)、测试步骤(单元测试、集成测试、确认测试、系统测试、回归测试)、评审方法、测试设计和管理(注入故障、系统测试)。•项目管理基础知识:制定项目计划,质量控制计划、管理和评估,过程管理(PERT图、甘特图、工作分解结构、进度控制、关键路径),配置管理,人员计划和管理,文档管理 (文档规范、变更管理),成本组织和风险管理。•系统维护:维护的类型(完善性维护、糾错性维护、适应性维护、预防性维护),维护过 程管理,硬件维护、软件维护。提示:•通过最近8次考试的分析可知,系统分析与设计、项目管理是重点考核的内容,考题基本都出自这两个考点。结构化分析与设计、UML、项目过程管理、质量控制等内容是重中之重。•自2008年起,较少考查软件开发模型,考核重点转移到项目管理上。【考点一】需求分析和设计方法一、软件工程概述1.软件危机(1)主要表现:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件成本不断提高;软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。总之,可以将软件危机归结为成本、质量和生产率等问题。(2)产生原因:一方面是由于软件本身存在着复杂性;另一方面与软件开发所使用的方法和技术相关。2、软件工程(1)为了消除软件危机,通过认真研究解决软件危机的方法,人们认识到软件工程是使计算 机软件走向科学的途径,逐渐形成了软件工程的概念,并开辟工程学的新兴领域,即软件工程学。(2)软件工程的3个要素:·方法:完成软件工程项目的技术手段。·工具:支持软件的开发、管理、文档生成。·过程:支持软件开发的各个环节的控制、管理。3.软件生命周期软件生命周期:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。(1)计划阶段:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。软件计划的主要内容包括所采用的软件生命周期模型、开发员的组织、系统解决方案、管理的目标与级别、所用的技术与工具,以及开发的进度、预算和资 源分配。(2)分析阶段:分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明书和初步的用户手册。通过评审需求规格说明书,确保对用户需求达到共同的理解与认识。软件需求规格说明书明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。(3)设计阶段:决定软件怎么做,设计人员依据软件需求规格说明书,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。(4)实现阶段:将所设计的各个模块编写成计算机可接受的程序代码与相关的文档,也就是实现源程序和合适的注释(5)测试阶段:在设计测试用例的基础上,测试软件的各个组成模块。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足软件需求规格说明书。(6)运行维护阶段:是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考备软件的可维护性。维护阶段需要测试是否正确地实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。4、软件开发模型(1)瀑布模型:将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。其优点是:可以规范化过程,有利于评审。缺点在于过于理想,缺乏灵活性,容易产生需求偏差。(2)快速原型模型:筹一步是緣造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型丧其满足客户的要求,开发人员可以确定客户的真正需求是什么第二步则在第一步的基础上开发客户满意的软件产品。快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。(3)演化模型:也是一种原型化开发,但与快速原型模型不同的是,快速原型模型在获取真实需求后,将抛弃原型。而演化模型则不然,它将在快速开发一个原型的基础上,逐步演化成最终的软件。(4)增量模型:软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看 到所开发的软件,从而降低开发风险。也就是说增量模型有利于快速开发软件。(5)螺旋模型:综合了瀑布模型和演化模型的优点,还增加了风险分析,特别适合于大型复杂的系统。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对风险进行识别和分析,螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。(6)喷泉模型:对软件复用和生存期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。“喷泉”一词本身体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。所谓无间隙,是指在开发活动——分析、设计和编码之间不存在明显的边界。5、软件开发方法(1)结构化软件开发方法(SASD):也称为面向功能的软件开发方法或面向数据流的软件开发方法。首先用结构化分析(SA)方法对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型),使软件开发的成功率大大提高。结构化终件开发方法是采用结构化技术来完成软件的开发的各项任务,它把软件生命周期划分成若干个阶段,依次地完成每个阶段的任务,它与瀑布模型有很好的结合度,是与其最相填应的软件开发方法。(2)面向数据结构的软件开发方法:从目标系统的输入、输出数据结构入手,导出程序框架结构再补充其他细节,从而可得到完整的程序结构图。它有Jackson方法和Warnier方法两种。(3)面向对象的软件开发方法:随着OOP(面向对象编程)向OOD (面向对象设计)和00A(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT (Object Modelling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。(4)基于构件化的开发方法:用预先建立的构件和模板,像“搭积木”一样进行建造。二、需求分析(1)任务:①确定软件系统的功能需求和非功能需求;②分析软件系统的数据要求;③导出系统的逻辑模型;④修正项目开发计划;⑤如有必要,可以开发一个原型。(2)主要工作:①需求获取——确定对目标系统的各方面需求,涉及的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程;②需求分析和综合——对问题进行分析,然后在此基础上整合出解决方案;③编写需求规格说明书——对已确定的需求进行文档化描述,该文档通常称“软件需求规格说明书”;④需求评审——评审需求分析的正确性、完整性和清晰性。(3)软件需求规格说明书:需求分析阶段的最后成果,是软件开发的重要文档之一。其作用有三:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。软件需求规格说明书的内容主要包括概述、数据描述、功能描述、性能描述、参考文献、附录等。 三、结构化分析方法结构化分析方法(StructuredAnalysis, SA)是面向数据流进疗需求分析的方法釆用自观向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。SA方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明。1数据流图数据流图(Data Flow Diagram, DFD)用来描述数据流从输入到输出的变换流程。.它以图形 的方式描绘数据在系统中流动和处理的过程,_它只反映系统必须完成的逻辑功能,所以是一种功能模型。DFD的基本元素如图3-1所示。 (1)数据流:由一组固定成分的数据组成,表示数据的流向。(2)加工:描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。(3)数据存储:用来表示暂时存储的数据,每个数据存储都有一个名字。(4)外部实体:是指存在于软件系统之外的人员或组织。2、数据字典数据流图仅描述了系统的“分解”,但没有对图中各成分进行说明。数据词典就是用来定义数据流图中的各个成分的含义的。数据字典有4类条目,包括数据流、数据项、数据存储和基本加工。3、加工逻辑的描述用来说明DFD中的数据加工的加工细节,表达“做什么”,而不是“怎样做”。描述工具有结构化语言、判定表和判定树。四、软件设计从技术角度上,软件设计分成体系结构设计、数据设计、接口设计、过程设计4方面的工作。从管理角度上,软件设计分为概要设计和详细设计两个阶段。1、软件设计的基本原理(1)模块化:将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题“分而治之”的原则,模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。(2)抽象化:是一种设计技术,抽出事物本质的共同特性而暂不考虑它的细节。(3)信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理,可以提高软件的可修改性、可测试性和可移植性。(4)模块独立:每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量度量标准有两个:模块间的耦合和模块的内聚度。模块独立性强必须做到高内聚低耦合。•耦合:模块之间联系的紧密程度,耦合度越高则模块的独立性越差。耦合度从低到高的次序依次是:非直接搞合、数据耦合、标记搞合、控制耦合、外部耦合、公共耦合、内容搞合。•内聚:指模块内部各元素之间联系的紧密程度,内聚度越低模块的独立性越差,内聚度从低到高依次是:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。2、软件结构设计的优化原则•改进软件结构提高模块独立性,提高模块的内聚度,降低模块间的耦合度;•模块规则不应过大,最好编写在一页纸内(不超过60行语句),模块规模过小,接口复杂;•深度、宽度、扇出和扇入应适中;•模块的作用域应该在控制域之内;•力争降低模块接口的复杂程度;•设计单入口、单出口的模块;•模块功能应该可以预测。3、结构化设计方法结构化设计方法(SD)是一种面向数据流的设计方法,它可以与SA方法链接。(1)信息流的类型在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。 DFD的信息流大体上可以分为两种类型,一种是变换流,另一种是事务流。•变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式,离开系统。•事务流:当信息沿输入通路到达一个处理,这个处理根据输入数据的类型从若干个动作序列中选择出一个来执行。在一个事务流中,事务中心接收数据,分析每个事务以确定它的类型,根据事务类型选取一条活动通路。(2)设计过程①精化DFD;②确定DFD类型;③分解上层模块,设计中下层模块结构;④根据优化准则对软件结构求精;⑤描述模块功能、接口及全局数据结构;⑥复查,如果有错,转向②修改完善,否则进入详细设计阶段。4、软件详细设计详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。(1)结构化程序设计方法结构化程序设计的基本要点是: .•釆用自顶向下、逐步求精的程序设计方法;•使用顺序、选择、重复三种基本控制结构构造程序;•主程序员组的组织形式。(2)处理过程设计处理过程设计的关键是用一种合适的表达方法来描述每个模块的执行过程。这种表示方法应该简明、精确,并因此能直接导出用编程语言表示的程序。程序流程图:流程图即程序框图,是历史最久、流行最广的一种图形表示方法。程序流程 图包括3种基本成分:加工步驟,用方框表示;逻辑条件,用菱形表示;控制流,用箭头 表示。图形表示的优点是直观、形象、容易理解,缺点是表示控制的箭头过于灵活,以及 只描述执行过程而不能描述有关数据。盒图(NS图): 在NS图中,每个处理步骤用一个盒子表示,盒子可以嵌套。盒子只能从上头 进入,从下头走出,除此之外别无其他出入口,所以盒图限制了随意的控制转移,保证了程 序的良好结构。形式语言:用来描述模块具体算法的非正式而比较灵活的语言。形式语言的优点是接近自然 语言,所以易于理解;其次v它可以作为注释嵌套在程序中成为内部文档,提高程序的自我 描述性;第三,因为是语言形式,易于被计算机处理,可用行编辑程序或字处理系统对形式 语言进行编辑修改。决策树:决策树是一种图形工具,适合于描述加工中具有多个策略、每个策略和若干条件有关的逻辑功。决策表:决策表是一种图形工具,呈表形。决策表将比较复杂的决策问题简洁地描述出来。(3)面向数据结构设计: Jackson方法面向数据结构设计是以数据结构作为设计的基®K,它根据输入输出数据结构导出程序的结构,适用于规模不大的数据处理系统,Jackson方法是一种典型的面向数据结构的设计方法。Jackson图如图3-2所示。 (4)用户界面设计用户界面设计是系统与用户之间的接口,也是控制和选择信息输入输出的主要途径。用户界 面设计应坚持友好、简便、实用、易于操作的原则。界面设计包括菜单方式、会话方式、操作提示方式,以及操作权限管理方式等。五、面向对象分析和设计1.面向对象设计基本概念(1)对象:一组属性以及这组属性上的专用操作的封装体,通常由对象名、属性和操作这3个部分组成。属性表示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装目的是使对象的定义和实现分开。(2)类:一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(Instance)。(3)继承:在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子类,这些子类都是父类的特例。父类描述了这些子类的公共属性的操作,子类中还可以定义它自己的属性和操作。一个子类只有唯一的一个父类,这种继承称为单一继承。一个子类有多个父类,可以从多个父类中继承特性,这种继承称为多重继承。(4)消息:对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。消息只告诉接收对象需要完成什么操作,但并不能指示接收者怎样完成操作。.消息完全由接收者解释,接收者独立决定采用什么方法来完成所需的操作。(5)多态性:同一个操作作用不同的对象可以有不同的解释,产生不同的执行结果。(6)继承性是面向对象程序设计语言不同于其他语言的主要特点,是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的重要标志之一。(7)在面向对象的软件工程中,一个组件(component)包含了一些协作的类的集合。2、面向对象分析与设计的基本概念面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统。面向对象分析(Object-Oriented Analysis, OOA)的目标是建立待开发软件系统的模型面向对象设计(Object-Oriented Design, OOD)的目标是定义系统构造蓝图,设计分析模型和实现相应源代码,在目标代码环境中这种源代码可被执行。统一建模语言(UML)是面向对象软件的标准化建模语言。UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制。UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具代表性的成分的抽象,关系把事物结合在一起,图聚集了相关的事物。•事物:包括结构事物、行为事物、分组事物和注释事物。•关系:.包括依赖、.关取、泛化和实现。•图:包每类图、对象图、用例图、序列图、协作图、状态图、活动图、构件图和部署图。.【试题3-1】 2012年5月真题5数据流图(DFD)对系统的功能和功能之间的数据流进行建模,其中顶层数据流图描述了系统的(5)。A处理过程B.输入与输出C.数据存储D.数据实体解析:数据流图用来描述数据流从输入到输出的变换流程。【答案:(5) B】【试题3-2】 2012年5月真题6以下关于类继承的说法中,错误的是(6)。A. 通过类继承,在程序中可以复用基类的代码B. 在继承类中可以增加新代码C. 在继承类中不能定义与被继承类(基类)中的方法同名的方法D. 在继承类中可以覆盖被继承类(基类)中的方法解折:继承类中可以定义与碁类中方法同名的方法。【答案: :(6) C】【试题3-3】 2012年5月真题8软件开发的增景模型(8)。A.最适用于需求被清晰定义的情况 B.是一种能够快速构造可运行产品的好方法C.最适合于大规模团队开发的项目 D.是一种不适用于商业产品的创新模型解析:增量模型有利于快速开发软件。【答案:(8) B】【试题3-4】 2012年5月真题9假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,且客户对交付时间有 严格要求,则该系统的开发最适宜采用(9)。A.瀑布模型B.原型模型C. V-模型D.螺旋模型解析:瀑布模型将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下.、相互衔接的固定次序,如同瀑布流水,逐级下落。本题对交付时间有严格要求,适合用瀑布模型。【答案:.(9)八】【试题3-5】 2012年11月真题5在软件设计阶段,划分模块的原则是:一个模块的(5)。A.作用范围应该在其控制范围之内 B.控制范围应该在作用范围之内C.作用范围与控制范围互不包含 D.作用范围与控制范围不受任何限制解析:划分模块时,一个模块的控制范围应在其作用范围之内。【答案:(5) A】【试题3-6】 2011年5月真题6模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为 (6)。A.数据耦合B.标记耦合C.公共耦合D.内容耦合_解析:一般可将耦合度从弱到强分为以下7级:①非直接耦合:指两个模块中任一个都不依赖对方独立工作。这类耦合度最低。②数据耦合:指两个模块间只是通过参数表传递简单数据。③特征耦合:指两个模块都与同一个数据结构有关。④控制耦合:指两个模块间传递的信息中含有控制信息。⑤外部耦合:指若干模块都与同一个外部环境关联,例如I/O处理使所有I/O模块与特定的设备、格式和 通信协议相关联。⑥公共耦合:指两个或多个模块通过引用一个公共区的数据而发生相互作用。⑦内容耦合:最高耦合度的是内容耦合。出现内容耦合的情形包括:一个模块使用另一模块内部的控制 和控制信息;一个模块直接转移到另一模块内部等。一般说来,尽量使用数据耦合,少用控制耦合,限制外部耦合,完全不用内容耦合。【答案:(6)D】【试题3-7】 2011年11月真题6利用结构化分析模型进行接口设计时,应以(6)为依据。A.数据流图 B.实体一关系图C.数据字典 D.状态一迁移图解析:数据流图用来描述数据流从输入到输出的变换流程。它以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能,所以是一种功能模型。数据流图仅描述了系统的“分解”,但没有对图中各成分进行说明。数据词典就是用来定义数据流图中 的各个成分的含义的。数据字典有4类条目,包括数据流、数据项、数据存储和基本加工。实体一关系(E-R)图在软件设计和数据库设计中经常用到,用于描述数据对象、对象的属性和对象之 间的关系。状态一迁移图通过描述系统的状态以及引起变化的事件来描述系统的行为,并指明特定事件的结构和执 行的动作。此题中要进行接口设计,显然数据流图更为合适。【答案:(6) A】【试题3-8】 2011年11月真题5确定软件的模块划分及模块之间的调用关系是(5)阶段的任务。A.需求分析 B.概要设计C.详细设计 D.编码解析:软件的生命周期可以分为4个活动时期:软件分析、软件设计、编码与测试、运行与维护。其中软件设计又可以分为概要设计和详细设计两个阶段。概要设计是设计软件的结构、组成的模块、模块的层 次结构、模块的调用关系以及每个模块的功能。而详细设计就是为每个模块完成的功能进行具体描述,将功 能描述转换为精确的、结构化的过程描述。【答案:(5) B】【试题3-9】 2010年5月真题7软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到(7)。A.高内聚高耦合 B.高内聚低耦合C.低内聚高耦合 D.低内聚低耦合解析高内聚强调功能实现尽量在模块内部完成;低耦合则是尽量降低模块之间的联系,减少彼此之间的相互影响。这二者的结合是面向过程编程和系统设计的重要特点。【答案:(7) B】【试题3-10】2010年5月真题8程序的三种基本控制结构是(8)。A.过程、子程序和分程序 B.顺序、选择和重复C.递归、堆栈和队列 D.调用、返回和跳转解析:程序的三种基本控制结构是顺序、选择和重复。【答案:(8) B】【试题3-11】 2010年5月真题9栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此(9)必须用栈。A.函数或过程进行递归调用及返回处理 B.将一个元素序列进行逆置C.链表节点的申请和释放 D.可执行程序的装入和卸载解析:栈是一种后进先出的数据结构,对于函数的递归调用与返回,一定是后被调用执行的先返回。【答案:(9) A】【试题3-12】 2010年11月真题6某项目组拟开发一个大规模系统,且具备了相关领域及类似规模系统的开发经验。下列过程模型中, (6) 最适合开发此项目。A.原型模型B.瀑布模型C.V模型D.螺旋模型解析:在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通,则该结果作为下一项 活动的输入,继续进行下一项活动,否则返回修改。瀑布模型要求每个阶段都要仔细验证。本题中项目组具 备了相关领域及类似规模系统的开发经验,掌握类似项目的开发流程,因此采用瀑布模型最适合。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型 进行评价,进一步细化待开发软件的需求。快速原型通过逐步调整原型使其满足客户的要求,开发人员可以 确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。V模型是在快速应用开发模型基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型强 调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复 杂的系统。螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。【答案:(6) B】【考点二】项目管理基础知识一、项目管理和项目计划的制订(1)项目管理:核心内容就是在成本、质量、进度间的平衡。它包括POIM四方面:Plan计划、 Organize组织、Implement实现、Measurement度量。主要活动包括:①启动——确定目标和范围,考虑解决方案,根据方案进行社会、经济、技术可行性分析、成本估算、任务分解、进度安排等;②度量——把握过程的实际情况和产品质量;③估算-人力、时间、成本,要建立历史项目资料库;④风险分析——按发生可能性和影响性排序,制定解决方案和预防措施;⑤进度安排——建立在工作任务分解WBS土,对时间、人员、设备分配,用甘特图、PERT图等Project工具;⑥追踪控制——根据实际进度情况进行有效调整,并处理需求变更引起的项目计划的变更。(2)项目计划的制订:预测未来、确定任务、估计可能碰到的问题并提出完成任务和解决问题的有效方案、方针、措施和手段以及所必需的各种活动和工作成果的过程。项目计划的主要内容包括:①估算所需要的人力(通常以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位);②作出进度安,分配资源,建立项目组织及任用人员(包括人员的地位、作用、职责、规章制度等),根据规模和工作量估算分配任务;③进行风险分析,包括风险识别、风险估计、风险优化、风险驾驭策略、风险解决和风险监督,这些步骤贯穿在软件工程过程中;④制订质量管理指标;⑤编制预算和成本;⑥准客环境和基础设施等。二、质量计划、管理和评估1.软件质量度量模型目前有多种软件质量模型。(1)ISCWEC 9126软件质量模型。该模型由3个层次组成:.第一层是质量特性,第二层是质量子特性,第三层是度量指标。该模型的质量特性和质量子特性如表3-2所示。 表3-2软件质量特性和质量子特性质量特性描述子特性子特性描述功能性与一组功能及其指定的 性质有关的一组属性。 这里的功能是指满足明 确或隐含的需求的那些 功能适应性与规定任务能否提供一组功能以及这组功能的适合程度有关的软件属性准确性与能否得到正确或相符的结果或效果有关的软件属性互用性与其他指定系统进行交互的能力有关的软件属性依从性使软件遵循有关的标准、约定、法规及类似规定的软件属性安全性与防止对程序及数据的非授权的故意或意外访问 的能力有关的软件属性可靠性与在规定的一段时间和 条件下,软件维持其性 能水平的能力有关的一 组属性成熟性与由软件故障引起失效的频度有关的软件属性容错性与在软件故障或违反指定接口的情况下,维持规 定的性能水平的能力有关的软件属性易恢复性与在失效发生后,重建其性能水平并恢复直接受 影响数据的能力以及为达此目的所需的时间和能 力有关的软件属性可用性与一组规定或潜在的用 户为使用软件所需作的 努力和对这样的使用所 作的评价有关的一组属 性易理解性与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性易学习性与用户为学习软件应用所花的努力有关的软件属性易操作性与用户为操作和运行控制所花努力有关的软件属 性效率与在规定的条件下,软 件的性能水平与所使用 资源最之间关系有关的 一组属性时间特性与软件执行其功能时响应和处理时间以及吞吐量有关的软件属性资源特性与在软件执行其功能时所使用的资源数量及其使用时间有关的软件属性可维护性与进行指定的修改所需 的努力宥关的一组属性易分析性与为诊断缺陷或失效原因及为判定待修改的分 所需努力有关的软件属性易改变性与进行修改,排除错误或适应环境变化所需努力 有关的软件属性稳定性与修改所造成的未预料结果的风险有关的软件属性易测试性与确认已修改软件所需的努力有关的软件属性可移植性与软件可从某一环境转 移到另一环境的能力有 关的一组属性适应性与软件无须采用有别于为该软件准备的活动或手段就可能造应不同的规定坏境有关的软件属可安装性与在指定环境下安装软件所需努力有关的软件属性.一致性使软件遵循与可移植性有关的标准或约定的软件可替:换性与软件在该软件环境中用来替代指定的其他较件 的机会和努力有关的软件属性:(2) Me Call软件廣量模型。该模型从软件产品的运行、修正、转移等3个方面确定了11个质量特性。它给出了一个三层模型框架:第一层是质量特性,第二层是评价准则,第三层是度量指标。2、软件质量管理 软件质量會理趣过隹U订质量方针、建立质量目标和标准(Target)并在琐目生命期内持续使用质量计划(Plan)、质量控制(Do)、质量保证(Check)和质量改进(Action)等措施来落实质量方针的执行,确保质量目标的实现,最大限度地使客户满意。 3、软件质量评审 软件质量评审主要包括设计质量评审和程序质量评请。•设计质量评审:在需求分析阶段产生的软件需求规格说明、数据要求规格说明,在软件概要设计阶段产生的软件概要设计说明书等。•程序质量评审:着眼于软件本身的结构、与运行坏境的接口、变更带東的影响而遵行的评审活动。通常它是从开发者的角度进行评审,直接与开发技术有关。主要包括软件的结构 (功能结构:功能的通用性、模块层次、模块结构、处理过程鈞结构),与运行环境的接口 (包括硬件、其他软件和用户).以及变更的影响范围。三、进度管理软件开发项目的进度安排有两种方式:•系统最终交付日期已经确定,软件开发部门必须在规定期限内完成。•系统最终交付日期只确定了大致的年限,;最居交付-日期由软件开发部门确定。进度安排的常用图形描述方法有甘特图(Gantt)和计划评审技术图(PERT)。(1)Gantt图:用水平线段表示任务的工作阶段;线段的起点和终点分别对应着任务的开工时 间和完成时间;线段的长度表示完成任务所需的时间。优点:能清晰地描述每个任务从何时开始,到何时结束,以及各个任务之间的并行性。缺点:不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反 映计划中有潜力的部分。(2)PERT图:一个有向图,图中的有向弧表示任务,它可以标上完成该任务所需的时间;图中的节点表示流入节点的任务的结束,并开始^[出节点的任务,这里把节点称为事件。只有当流入该节点的所有任务都结束时,节点所表示的事件才出现,流出节点的任务才可以开始。事件本身不消耗时间和资源,它仅表示某个时间点。每个事件有一个事件号和出现该事件的最早时刻和最迟时刻。每个任务还有一个松弛时间,表示在不影响整个工期的前提下,完成该任务有多少机动余地。 松弛时间为0的任务构成了完成整个工程的关键路径。PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工程的关键路径。松弛时间则反映了完成某些任务是可以推迟其汗始时间或延长其所霽的完成时阐。但是PERT图不能反映任务乏间的并行关系四、文档管理文档是软件产品的一部分,没有文档的软件就不称其为软件。国家标准《计算机软件产品开发文件编制指南GB 8567—1988》中规定,在一项软件开发过程中,一般地说应该产生14种文件,如表3-3所示。 表3-3软件文档文档与软件生命周期各阶段关系与各类人员的使用关系可行性研究与计划需求分析软件设计编码/ 单元 测试集成/ 确认 测试管理人员开发人员维护人员用户可行性研究报告√√√项目开发计划√√√软件需求说明书√√数据要求说明书√√概要设计说明书√√√详细设计说明书√√√数据库设计说明书√√√用户手册√√√操作手册√√√模块开发卷宗√√√√开发进度月报√√√√√测试计划√√测试分析报告√√√项目开发总结报告√√五、成本组织1、估算策略•自顶向下。对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配。•自底向上。自底向上的方法则正好相反,分别估算各工作单元所需的工作量和开发时间, 然后相加,就得出总的工作量和总的开发时间。2、估算方法•专家估算法(Delphi):依靠一个或多个专家,对要求的项目做出#计。•类推估算法:在自顶向下的策略中,将估算项目的总体参数与类似项目进行直接相比得到 结果。在自底向上的策略中,类推是在两个具有相似条件的工作单元之间进行。•算式估算法:专家估算法和类推估算法的缺点在于,它们依靠带有一定盲目性和主观的猜 .测对项目进行估算。算式估算法则是企图避免主观因素的影响。用于估算的算式方法有两 种基本类型:由理论导出、由经验得出。3、软件规模速算•LOC (代码行数)估算法。LOC是一种自底向上的估算方法,即从模块开始进行估算其优点是容易计算。•FP (功能点)估算法:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。 这种方法用功能点为单位计度量软件规模。功能点有5个信息域特;•正:输入数(Inp)、输出数(Out)、查询数(Inq)、主文件数(Maf)和外部接口数(Inf)。4、工作量估算•工作量可以用人日、人月或人年的数量来表示。知道单位工作量的成本,就可得到估算成本。•工作量估算模型有:IBM模型(在60个项目的基础上进行统计的静态模型)、普特南模型 (是一个动态多变量模型,通过建立一个资源需求曲线模型导出一系列等式)、COCOMO 型(将项目分为组织型、嵌入型、半独立型项目,包括有基本静态、半独立、详细3种不同模型)。六、人员管理可以按软件项目对软件人员分组,如需求分析组、设计组、编码组、测试组、维护组等,为了控制软件的质量还可以有质量保证组。程序设计小组的组织形式可以有多种,如主程序员组、无主程序员组、.层次式程序员组等。软件配置管理(Software Configure Management,SCM),是一组管理整个软件生存期各阶段中变更的活动,它用于整个软件工程过程。其目标是:标识变更、控制变更、确保变更正确实现,并报告有关变更。七、风显管理风险分析在软件项目管理中具有决定性作用,它是贯穿在软件工程中的一些列险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督。(1)风险识别系统地确定对项目计划(估算、进度、资源分配)的威胁,通过识别已知的或可预测的风险,就可能设法避开风险或驾驭风险。从宏观上来看,可将风险分为项目风险、技术风险和商业风险。(2)风险估计:从以下两个方面估价每一种风险。一是估计一个风险发生的可能性,二是估价与风险相关的问题出现后将会产生的结果。通常,由项目计划人员与管理人员、技术人员一起,进行4种风险估计活动:•建立一个尺度来表明风险发生的可能性;•描述风险的后果;•估计风险对项目和产品的影响;•指明风险估计的正确性以便消除误解。 八、软件工具与软件开发环境1.软件工具通常可将软赞工具分为软件开发工具、软件雒护工具和软件管理工具。(1)软件开发工具包括需求分析工具、设计工具和编码与排错工具。(1)软件维护工具包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具。(1)软件管理和支持工具包括项目管理工具、配置管理工具和软件评价工具。(1)软件开发工具的评价和选择可以根据以下标准来衡量软件开发工具的优劣:功能、易用性、稳健性、硬件要求和性能,以及服务和支持。2.软件开发环境软件开发环境是支持软件产品开发的软件系统。它由工具集和环境集成机制两部分组成。工具集中还应该包含支持软件生命周期各阶段活动以及支持各种开发方法和开发模型的工具,能支持软件开发的全过程。而环境集成机制主要包含数据集成机制、控制集成机制和界面集成机制等3方面内容。集成开发环境应具有开放性和可剪裁性。开放性为环境外的工具集成到环境中来提供了方便,可剪裁性可根据不同的应用或不同的用户需求进行剪裁,以形成特定的开发环境。九、能力成熟度模型简介能力成熟度模型(CMM)用于衡量软件企业的开发管理水平,它可作为软件发包方评估承包方执行能力的参考标准,也可以被软件企业作为软件过程改进工作的参考模型。CMM模型将软件过程的成熟度分为5个等级:(1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义儿乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。(2)可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。(3)已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。(4)受管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。【试题3-13】 2013年5月真题8~9在进行进度安排时,PERT图不能清晰的描述(8),但可以给出哪些任务寿成后才能开始写一任务。某项目X包含任务A、B、......、J,其pERT如图3-3所示(A=l表示该任务A的持续时间是1天),则项目X的关键路径是(9)。 (8)A.每个任务从何时开始 B.每个任务到何时结束 C.各任务之间的并行情况 D.各任务之间的依赖关系(9)A. A-D-H-JB. B-E-H-JC. B-F-JD.C-G-I-J解析:本题考查的是PERT图。每个任务可以有一个松弛时间,表示在不影响整个工期的前提下,完整该任务有多少余地。PERT图不能清晰的描述各任务之间的并行情况,但可以给出哪些任务完成后才能开始 另一任务。关键路径是所需时间最长的任务流,贝U本题项目X的关键路径应为B—E—H—J。【答案:(8) C、(9) B]【试题3-14】 2013年11月真题6~7图3-4是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑(6)在关键路径上。若在实际项目进展中,活动AD在活动AC开始3天后才开始,而完成活动DG过程中, 由于有临时事件发生,实际需要15天才能完成,则完成该项目的最短时间比原计划多了 (7)天。 (6) A. B B.C C. D D. I(7) A.8 B.3 C. 5 D. 6解析:本题考查的是PERT图。每个任务可以有一个松弛时间,表示在不影响整个工期的前提下,完成该任务有多少余地。PERT图不能清晰的描述各任务之间的并行情况,但可以给出哪些任务完成后才能开始 另一任务。关键路径是所需时间最长的任务流,则本题项目X的关键路径易知为A?C—G—J—K。因此,(6) 选择答案B。原先完成该项目最短时间为10+10+15+7=42;在实际项目进展中,活动AD在活动AC开始3天 后才开始,而完成活动DG过程中,由于有临时事件发生,实际需要15天才能完成则完成该项目的最短时间 为8+15+15+7=45,贝院成该项目的最短时间&原计划多了3天。【答案:(6) B、(7) B]【试题13-15】 2012年5月真题7图3-5是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的值表 示完成活动所需要的时间,则(7)在关键路径上。 A.B B. C C. D D. H解析:关键路径是时间最长的路径,为A—C—F—G—I。【答案:(7) B】【试题3-16】 2012年11月真题6~7图3-6是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑(6) 在关键路径上,活动FG的松弛时间为(7)。 (6)A. B B.C C. D D. I(7)A. 19 B.20 C. 21 D.24解析:关键路径是所需时间最长的任务流,通过分析可知本题的关键路径为D—F—H,松弛时间表示在不影响整个工期的前提下,完成该任务有多少机动余地。松弛时间为0的任务构成了完成整个工程的关键路 径。从F到完成的关键时间为20+10=30, FG到完成的时间为3+7=10,相差20,故松弛时间为20。【答案:(6) C; (7) B】【试题3-17】 2011年5月真题9图3-7是一个软件项HI的活动图,其中顶点表示项目里程碑,边表示包含的活动,边上的权重表示活动的持续时间,则里程碑(9)在关键路径上。 A. 1 B. 2 C. 3 D. 4解析:本题考查的是PERT图。每个任务可以有一个松弛时间,表示在不影响整个工期的前提下,完成该任务有多少余地。而松弛时间为0的任务是完成整个工程的关键路径。本题中关键路径是:⑨―②—⑤ 一⑦一⑧—⑨。【答案:(9) B】【试题3-18】 2011年5月真题8下列关于项目估算方法的叙述不TF.确的是(8)。A.专家判断方法受到专家经验的主观性影响B.启发式方法(如COCOMO模型)的参数难以确定C.机器学习方法难以描述训练数据的特征和确定其相似性D.结合上述3种方法可以得到精确的估算结果解析:即使将专家判断方法、启发式方法和机器学习方法结合起来,也不可能得到精确的估算结果。 【答案:(8) D】【试题3-19】 2011年5月真题7下列关于风险的叙述不正确的是:(7)。A.可能发生的事件 B.—定会发生的事件C.会带来损失的事件 D.可能对其进行干预,以减少损失的事件解析:一定会发生的事件,就不叫风险了。【答案:(7) B】【试题3-20】2011年11月真题8~9若某文件系统的目录结构如图3-8所示,假设用户要访问文件fl.java,且当前工作目录为Program,则该 文件的全文件名为(8)其相对路径为(9)。 (8) A. fl.java B.DVProgramJava-progf 1 .java C.DocumentJava-progfl .javaD.ProgramJava-progfl.java(9) A. Java-prog B. Java-prog C. ProgramJava-prog D. ProgramJava-prog解析:文件控制块的集合,通常文件目录也被组织成文件,称为目录文件。文件系统一般采用一级目录结构、二级目录结构和多级貝录结构。在多级目录结构的文件系统中,文件的全路径名可能较长,也会涉及多次磁盘访问,为了提高效率,操作系统提供设置工作目录的机制,每个用户都有自己的工作目录,任一 目录节点都可以被缉寘为工作目录。一旦某个目录节点被设置成工作目录,相应的目录文件有关内容就会被 调入主存,这样,汾以工作目录为根的子树内任一文件的查找时间会缩短,从工相目录出发的文件路径名称 为文件的相对路径名。所以全文件名即为D:ProgramJava-progfl.java;而相对路径则为从当前工作目录Program出发的路径名,即为Java-progo【答案:(8) C; (9) A】【试题3-21】 2011年11月真题7图3-9是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶卓的边表示包含的活动,边上的值表示完成活动所需要的时间,则关键路径长度为(7)。 A. 20 B. 19 C. 17 D. 16解析:本题考查的是PERT图。每个任务可以有一个松弛时间,表示在不影响整个工期的前辑下,完 成该任务有多少余地。而松弛时间为0的任务是完成整个工程的关键路径。分析题图中每个任务的工期可知, 关键路径为A—B—D—I—J—L,可计算出其路径长度为20。【答案:(7) A】【试题3-22】 2010年5月真题2~3进度安排的常用图形描述方法有GANTT图和PERT图。GANTT图不能清晰地描述(2) ; PERT图可以给出哪些任务完成后才能开始另一些任务。图3-10所示的PERT图中,事件6的最晚开始时刻是(3)。 (2) A.每个任务从何时开始B.每个任务到何时结束 C.每个任务的进展情况D.各任务之间的依赖关系(3)A. 0 B. 1 C. 10 D. 11解析:甘特图的优点是直观表明各个任务的计划进度和当前进度,能动态地反映软件开发进展的情况, 是小型项目中常用的工具。缺点是不能显式地描绘各个任务间的依赖关系,关键任务也不明确。PERT图中的关键路径是1—2—5—7—9,总共15天。在不影响关键路径,并考虑到5—8这个任务的前提 下,事件6的最晚开始时间为15-5=10。【答案:(2) D; (3) C】【试题3-23】 2010年11月真题4~5使用PERT图进行进度安排,不能清晰地描述(4),但可以给出哪些任务完成后才能开始另一些任务。下面PERT图所示工程从A到K的关键路径是(5)(图3-11中省略了任务的开始和结束时刻)。 (4) A.每个任务从何时开始 B.每个任务到何时结束 C.各任务之间的并行情况 D.各任务之间的依赖关系(5) A. ABEGHIK B. ABEGHJK C. ACEGHIK D. ACEGHJK解析:PERT图给出了每个任务的开始时间、结束时间和完成该任务所需要的时间,同时还给出了任务之间的依赖关系,即哪些任务完成后才能执行另外一些任务。PERT的不足是不能反映任务之间的并行关系。关键路径是松弛时间为0的任务完成过程所经历的路径。本题的图中没有给出松弛时间,因此关键路径 是耗时最长的路径,即A—B—E—G—H—J—K。【答案:(4) C; (5) B】【试题3-24】 2010年11月真题7软件复杂性度量的参数不包括 (7)。A.软件的规模B.开发小组的规模C.软件的难度D.软件的结构解析:软件复杂性度量的参数很多,主要有:•规模,即总共的指令数,或源程序行数。•难度,通常由程序中出现的操作数的数目所决定的量来表示。•结树,通常用与程序结构有关的度量来表示。•智能度,即算法的难易程度。软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开 发费用的多少、开发周期长短和软件内部潜伏错误的多少。【答案:(7) B】【考点三】软件的测试与调试一、软件测试的目的、原则及过程1.软件测试的目的软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。成功的测试是发现了至今未发现的错误的测试。2、软件测试的原则•应尽早并不断地进行测试。•测试工作应该避免由原开发软件的人或小组承担。•设计测试方案的时候,不仅要确定输入数据,而且要根据系统功能确定预期的输出结果。•在设计用例时,不仅要设计有效合理的输入条件,也要包含不合理、失效的输入条件。•在测试程序时,不仅要检验程斤是否做了该做的事,还要检验程序是否做了不该做的事。•严格按照测试计划来进行,避免测试的随意性。•妥善保存测试计划、测试用例,作为软件文档的组成部分,为维护提供方便。•测试用例都是精心设计出来的,可以为重新测试或追加测试提供方便。3、测试过程一个规范的测试过程通常包括:制定测试计划、编制测试大纲、根据测试大纲设计和生成测试用例、实施测试和生成测试报告。二、测试方法测试的关键是测试用例的设计。软件测试的种类大致可以分为人工测试和动态测试。动态测试方法中又根据测试用例的设计方法不同分为白盒测试和黑盒测试。1、白盒测试白盒测试法需要了解程序内部的结构,测试用例是根据程序的内部逻辑来设计的。白盒测试法主要用于软件的单元测试。白盒测试的基本原则是:•保证所测模块中每一个独立路径至少执行一次;•保证所测模块所有判断的每一个分支.至少执行一次;•保证所测模块每一个循环都在边界条件和一般条件至少执行一次;•验证所有内部数据结构的有效性。白盒测试法常用的技术是逻辑覆盖。主要的覆盖标准有6种,强度由低到高依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。2、黑盒测试黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。黑盒测试法主要用于软件的确认测试。测试方法有:•等价类划分:把输入数据划分成若干个有效等价类和若干个无效等价类,然后设计测试用例覆盖这些等价类。•边界值分析:对各种输入、输出范围的边界情况设计测试用例的方法。这是因为程序中在处理边界情况时出错的概率比较大。•错误猜测:根据经验或直觉推测程序中可能存在的各种错误。•因果图:根据输入条件与输出结果之间的因果关系来设计测试用例。三、软件测试步骤(1)单元测试:也称模块测试,主要发现编码和详细设计中产生的错误,通常采用白盒测试。放在编码阶段,由程序员自己来完成,检查它是否实现了详细设计说明书中规定的模块功能和算法。其测试计划是在详细设计阶段完成。单元测试的测试计划是在详细设计阶段完成。(2)集成测试:也称组装测试,对由各模块组装而成的程序进行测试,主要检查模块间的接口和通信。集成测试主要发现设计阶段产生的错误,通常采用黑盒测试或灰盒测试。集成的方式可分成非渐增式集成和渐增式集成。集成测试的测试计划是在概要设计阶段完成。(3)确认测试:检查软件的功能、性能及其他特征是否与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试。确认测试通常采用黑盒测试,其测试计划是在需求分析阶段完成。•Alpha测试:在开发者的现场由客卢来实施的,被测试的软件是在常规设置的环境下运行的。•Beta测试:在一个或多个客户的现场由该软件的最终用户实施的,开发者通常是不在场的。(4)系统测试:把已经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。主要内容包括恢复测试、安全测试、强度测试、性能测试、可靠性测试、安装测试等。四、软件调试调试是在进行了成功的测试之后才开始的工作。其任务是进一步诊断和改正程序中潜在的错误。调试由两部分组成:确定错误的确切性质和位置、修改程序(设计、编码)。目前常用的调试方法有以下5种:•试探法•回湖法•对分查找法•归纳法•演绎法【试题3-25】 2010年5月真题4使用白盒测试方法时,确定测试用例应根据(4)和指定的覆盖标准。A.程序的内部逻辑B.程序结构的复杂性C.使用说明书D.程序的功能解析:白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方 案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。【答案:(4) A】【考点四】系统维护一、系统维护的内容1.硬件维护硬件维护应由专职的硬件维护人员来负责,主要有两种类型的维护活动,一种是定期的设备保养性维护,另一种是突发性的故障维护。2.软件维护软件维护主要是根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改。3.数据维护数据维护主要是由数据库管理员来负责,主要负责数据库的安全性和完整性以及进行并发性控制。二、软件维护的内容软件维护的内容包括:正确性维护、适性维护、完善性维护和预防性维护等。(1)改正性维护在软件交付使用后,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做改正性维护。(2)适应性维护随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、 数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。(3)完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。(4)预防性维护预防性维护是为了提高软件的可维护性和可靠性,为未来的进一步改进打下基础而修改软件的活动。在整个软件维护活动中,改正性维护约占20%,适应性维护约占25%,完善性维护约占50%以上,其他维护约占4%。三、软件可维护性的质量特征软件可维护性可以用以下的7个质量特性来衡量:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。