收藏 分销(赏)

2024年软件工程自考复习资料总结.doc

上传人:天**** 文档编号:8198941 上传时间:2025-02-07 格式:DOC 页数:34 大小:59.54KB 下载积分:12 金币
下载 相关 举报
2024年软件工程自考复习资料总结.doc_第1页
第1页 / 共34页
2024年软件工程自考复习资料总结.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
第1章 ●软件:计算机程序及阐明程序的各种文档。“程序”是计算任务的处理对象和处理规则的描述;  “文档”是有关计算机程序功效、设计、编制、使用的文字或图形资料。 ●软件的特点:(1)软件是一个逻辑产品,具备无形性,以程序和文档的形式出现 (2) (软件产品)的生产重要是研制(3)~不会用坏,不存在磨损、消耗问题 (4) ~的生产重要靠脑力劳动,尚未挣脱手工开发方式(5)费用不停增加,成本昂贵 ●软件生产的发展:a程序设计时代45~56生产方式是个体手工劳动,机器语言、汇编语言,措施是追求编程技巧,追求程序运行效率 b程序系统时代(56~68)作坊式的小集团合作生产,工具高级语言,措施:个人技巧 开始提出结构化措施 c软件工程时代(68至今) 工程化的生产,使用数据库、开发工具及环境,网络,分布式,面对对象技术来开发软件 ●“软件危机”硬件技术进步 ,软件不能满足发展的要求,在软件开发中遇到的问题找不到处理的措施,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。危机体现a经费预算常常突破,完成时间屡次拖延b开发的软件不能满足用户要求、可维护性差、可靠性差 ●危机原因a软件的规模越来越大,结构越来越复杂b软件开发管理困难而复杂、费用不停增加、技术落后、生产方式落后、开发工具落后,生产率提升迟缓 ●软件工程68北大西洋条约组织用科学知识和技术原理来定义、开发、维护软件的一门学科。  ●~性质:它包括计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而~着重于怎样建造一个软件系统。~要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。~要用管理科学中的措施和原理进行软件生产的管理。~要用数学的措施建立~中的各种模型和各种算法,如可靠性模型,阐明用户需求的形式化模型等。  ●~目标:付出较低的开发成本、达成要求的软件功效、取得很好的软件性能、开发的软件易移植、需要的较低的维护费用、能按时完成开发任务,及时交付使用、开发的软件可靠性高 ●软件工程内容:软件开发技术、~管理。软件开发技术,重要研究软件开发措施、过程、工具和环境。(软件)开发管理中 研究~管理学、~经济学、~心理学。面临问题:~费用~可靠性~维护~生产率~重用  ~工程(过程):获取~供应~开发~操作~维护~管理过程;支持过程 ●软件生存周期:可行性分析和项目开发计划;需求分析;概要设计;详细设计;编码;测试维护。 软件生存周期模型是描述软件开发过程中各种活动怎样执行的模型。 ●瀑布模型是将软件生存周期各个活动要求为依线性次序连接的若干阶段的模型。是一个整体开发的模型  增量模型是一个非整体开发的模型。 ●螺旋模型将瀑布模型与增量模型结合起来,加入了风险分析,用于复杂的大型软件开发;分为几个螺旋周期 一,制定计划二,风险分析三,开发实行四,用户评定。  ●喷泉模型是一个以用户需求为动力,以对象作为驱动的模型,适合于面对对象的开发措施。使开发过程具备迭代性和无间隙性。 基本知识的模型又称智能模型,它把瀑布模型和教授系统结合在一起。  ●变换模型是一个适合于形式化开发措施的模型。从软件需求形式化阐明开始,通过一系列变换,最后得到系统的目标程序。  ●软件开发措施:一个使用早已定义好的技术集及符号的表示习惯来组织软件生产的过程  (结构化)措施由~分析、~设计、~程序设计组成。它是一个面对数据流的开发措施。~措施总的指引思想是自顶向下、逐渐求精。它的基本标准是功效的分解与抽象,它是软件工程中最早出现的开发措施,尤其适合于数据处理领域的问题。 ● Jackson措施是一个面对数据结构的开发措施。 维也纳开发措施(VDM)是一个形式化的开发措施,软件的需求用严格的形式语言描述。 ●  面对对象的开发措施包括面对对象分析、面对对象设计、面对对象实现。面对对象开发措施有 Booch措施、Coad措施  第2章 ●软件(可行性研究)的目标就是用最小的代价在尽也许短的时间内确定该软件项目是否能够开发,是否值得去开发。 ●~的目标不是去开发一个软件项目,而是研究这个软件项目是否值得去开发,其中的问提能否处理。~实质上是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。  ●可行性研究的任务: 技术可行性:对要开发项目标功效、性能、限制条件进行分析,确定在既有的资源条件下,技术风险有多大,项目是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评定技术可行性时,一旦估量错误,将会出现灾难性后果。  经济可行性包括成本――效果分析、企业经营长期方略、开发所需的成本和资源、潜在的市场前景。  社会可行性包括:协议、责任、侵权、用户组织的管理模式及规范,其他某些技术人员常常不了解的陷阱等。  ●可行性研究有步骤:确定项目规模和目标、研究正在运行的系统、建立新系统的高层逻辑模型、导出和评价各种方案、推荐可行的方案、编写可行性研究报告。  ●可行性研究内容:引言、可行性研究前提、对既有系统的分析、所提议系统的技术可行性分析、所提议系统的经济可行性分析、社会原因可行性分析、其他可供选择方案、结论意见。  ●成本――效益分析首先是估算将要开发的系统的开发成本,然后与也许取得的效益进行比较和权衡。效益分有形效益和无形效益两种。有形效益能够用货币的时间价值、投资回收期、纯收入等指标进行度量;无形效益重要从性质上、心理上进行衡量,极难直接进行量的比较。  ●投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。  ●项目标纯收入,也就是在整个生存周期之内的累计经济效益(折合成目前值)与投资之差。  ●项目开发计划:项目概述;实行计划;人员组织及分工;交付期限。  ●在进行可行性研究和软件计划以后,假如确认开发一个新的软件系统是必要的并且是也许的,那么就进入需求分析阶段。 ● 需求分析指,开发人员要准确了解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到对应的形式功效规约(需求规格阐明)的过程。  ●难点:问题的复杂性;交流障碍;不完备性和不一致性;需求易变性。 任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。  本阶段的工作: 问题识别:功效需求;性能需求;环境需求;用户界面需求  分析与综合:导出软件的逻辑模型  编写文档:需求规格阐明书;初步用户使用手册;确认测试计划;修改完善软件开发计划。  ●结构化分析(SA)是面对数据流进行需求分析的措施。  SA措施利用图形等半形式化的描述方式体现需求,简明易懂,用它们形成需求阐明书中的重要部分。 SA描述工具: a数据流图(DFD)描述的分解,即描述系统由哪几部分组成,各部分之间有什么联系等  ●→数据流 数据在系统内传输的途径,因此由一组成份固定的数据项组成。 ○加工 (又称数据处理)。对数据流进行某些操作或变换。  〓数据存储又称文献)指暂时保存的数据,它能够是数据库文献或任何形式的数据组织 □数据的源点或终点 是本软件系统外部环境中的实体,统称外部实体。 b数据字典; DD”定义了数据流图中每一个图形元素。 c描述加工逻辑的结构化语言,判定表、判定树则详细描述数据流图中不能被再分解的每一个加工。 ● 数据字典(DD)就是用来定义数据流图中的各个成份的详细含义的,他以一个准确的、无二义性的阐明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同组成了系统的逻辑模型,是需求规格阐明书的重要组成部分。  ●DD四条目:数据流、数据项(组成数据流和数据存储的最小元素)、数据存储、基本加工 ●加工条目数据字典中的加工逻辑重要描述该加工“做什么”,即实现另工的方略,而不是实现加工的细节,它描述怎样把输入数据流变换为输出数据流的加工规则。  ●加工逻辑也称为“小阐明”,描述加工逻辑一般用如下工具:结构化语言、判定表、判定树。  ●结构化语言是介于自然语言和形式语言之间的一个半形式语言。它的结构可提成外层和内层两层:外层来描述控制结构,采取次序、选择、重复三种基本结构;内层对于次序执行和循环执行的动作,用结构化语言描述。存在多个条件复杂组合的判断问题,用判定表和判定树 IDEF0:用来描述系统的功效活动及其联系,建立系统的功效模型。  IDEF1:用来描述系统的信息及其联系,建立系统的信息模型。  IDEF2:用来进行系统模拟,建立系统的动态模型。  ●建立功效模型的基本措施:1,确定建模的范围、观点及目标 3.建立顶层图 A0图 2..建立系统的内外关系图A--0图 4.建立低层次的图形 ●老式的SA措施重要用于数据处理方面的问题,重要工具DFD体现了系统“做什么”的功效,但它仅是一个静态模型,没有反应处理的次序,即控制流程。  形式化措施是将需求规格阐明用形式规约语言来描述。经典的有基于模型的Z语言及VDM开发措施。  第3章 ●1.设计软件系统结构(简称软件结构)采取某种设计措施,将一个复杂的系统按功效划提成模块;确定每个模块的功效;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。 软件结构设计是以模块为基础的,在需求分析阶段,已经把系统分解为层次结构。设计阶段,以需求分析的成果为依据,从实现的角度深入划分为模块,并组成模块的层次结构。 2.数据结构及数据库设计 数据库的设计指数据存储文献的设计(概念设计、逻辑设计、物理设计) 数据库的“概念设计”、“逻辑设计”分别对应于系统开发中的“需求分析”与“概要设计”,而数据库的“物理设计”与模块的“详细设计”相对应。 3.编写概要设计文档(概要设计阐明书;数据库设计阐明书;用户手册;修订测试计划,对测试方略、措施、步骤提出明确要求。) 4.评审:对设计部分是否完整地实现了需求中要求的功效、性能等要求,设计方案的可 行性,核心的处理及内外部接口定义正确性、有效性,各部分之间的一致性等等都一一进行评审。 ● 模块的基本属性: 接口:指模块的输入与输出; 功效:指模块实现什么功效; 逻辑:描述内部怎样实现要求的功效及所需的数据; 状态:该模块的运行环境,即模块的调用与被调用关系。 功效、状态与接口反应模块的外部特性,逻辑反应它的内部特性。 ● 模块化是指处理一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块完成一个特定的子功效,所有的模块按某种措施组装起来,成为一个整体,完成整个系统所要求的功效。 模块化的依据:开发一个大而复杂的软件系统,将它进行适当的分解,不但可减少其复杂性,还可减少开发工作量,从而减少开发成本,提升软件生产率 ● 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他原因。 通过抽象,能够确定组成软件的过程实体。通过信息隐蔽,能够定义和实行对模块的过程细节和局部数据结构的存取限制。 ●信息隐蔽指在设计和确定模块时,使得一个模块内部包括的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。 ●模块独立性指每个模块只完成系统要求的独立子功效,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。 ●耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一个度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。 ●无直接耦合 数据耦合 标识耦合 控制耦合 公共耦合 内容耦合(低――高) 1无直接耦合 2数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相称于高级语言的值传递。 3标识耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、统计名、文献名等这些名字即标识,其实传递的是这个数据结构的地址。 4控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功效。 5公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合。 公共耦合的复杂程序随耦合模块的个数增加而增加。 6内容耦合:这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。 ●内聚性又称块内联系。指模块的功效强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。 ●偶然内聚 逻辑内聚 时间内聚 通信内聚 次序内聚 功效内聚(低――高) 1偶然内聚指一个模块内的各处理元素之间没有任何联系。 2逻辑内聚指模块内执行几个逻辑上相同的功效,通过参数确定该模块完成哪一个功效。 3时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。 4通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。 5次序内聚指一个模块中各个处理元素都亲密相有关同一功效且必须次序执行,前一功效元素输出就是下一功效元素的输入。 6功效内聚:这是最强的内聚,指模块内所有元素共同完成一个功效,缺一不可。与其他模块的耦合是最弱的。 ●耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽也许做到高内聚低耦合,提升模块的独立性,为设计高质量的软件结构奠定基础。 软件结构图重要内容有:模块、模块的控制关系;模块间的信息传递、两个附加符号 ●构图的形态特性:1深度指结构图控制的层次;2宽度指一层中最大的模块个数;3扇出指一个模块直接下属模块的个数;4扇入指一个模块直接上属模块的个数。 ●软件结构设计优化准则: 1.划分模块时,尽也许做到高内聚,低耦合,保持模块相对独立性,并优化初始软件结构 a 假如若干模块之间耦合强度过高,每个模块内功效不复杂,可将它们合并,以减少信息的传递和公共区的引用。 b 若有多个有关模块,应对它们的功效进行分析,消去重复功效。 2.一个模块的作用范围应在其控制范围这内,且判定所在的模块应与受其影响的模块在层次上尽也许接近。 一个模块的作用范围指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块自身以及其所有下属模块(直接或间接从属于它的模块)的集合。 ● 结构化设计SD面对数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,与结构化分析SA衔接,组成完整的结构化分析与设计技术 数据流图分为变换型和事务型 变换型DFD由输入、变换(或处理)、输出组成 变换型DFD基本思想:取得数据、变换数据和给出数据 ● 面对数据流设计过程: (1)精化DFD (2)确定DFD类型 (3) 分解上层模块,设计中下层模块结构 (4) 依照优化准则对软件结构求精 (5) 描述模块功效、接口及全局数据结构 (6) 复查,入错转到2修善,否则进入详细设计 ●变换分析设计: (1) 确定DFD中的变换中心、逻辑输入和逻辑输出 (2) 设计软件结构的顶层和第一层——变换结构 这一层有3中功效模块:输入、输出和变换模块 (3) 设计中下层模块 ●综合DFD的映射(既有变换流也有事务流)设计措施: (1) 确定DFD整体上的类型 (2) 标出局部的DFD范围,确定其类型 (3) 按整体的局部的DFD特性,设计出软件结构 分层DFD映射(主图变换型和子图事务型或相反) 第5章 ● 详细设计是软件设计的第二阶段,重要确定每个模块详细执行过程,故也称“过程设计” ● 详细设计的基本任务: 1.为每个模块进行详细的算法设计; 2.为模块内的数据结构进行设计; 3.对数据库进行物理设计,即确定数据库的物理结构; 4.其他设计(代码设计、输入输出格式设计、人机对话设计) 5.编写详细设计阐明书 6.评审 ● 处理过程设计中采取的经典措施是结构化程序设计(SP)措施。详细设计的目标不不过逻辑上正确地实现每个模块的功效,还应使设计出的处理过程清楚易读。结构化程序设计是实现该目标的核心技术之一,它指引人们用良好的思想措施开发易于了解、易于验证的程序。 ● 构化程序设计措施的基本要点是: 1采取自顶向下、逐渐求精的程序设计措施 2使用三种基本控制结构结构程序 任何程序都可由次序、选择、重复三种基本控制结构结构。这三种基本结构的共同点是单入口、单出口。 3主程序员组的组织形式。 详细描述处理过程常用三种工具:图形、表格和语言。 ● 程序流程图又称为程序框图,都应由三种基本控制结构次序组合和完整嵌套而成,不能有相互交叉的情况,这么的流程图是结构化的流程图。 ● 程序流程图优点:直观清楚、易于使用,是开发者普遍采取的工具 缺陷:1.能够随心所欲地画控制流程线的流向,轻易导致非结构化的程序结构 2.流程图不易反应逐渐求精的过程,往往反应的是最后的成果 3.不易表示数据结构 ● PAD图指问题分析图,它是一个自左往右展开的二维树型结构。控制流程为自上而下、从左到右的执行。由机器自动通过走树的措施生成对应的源代码,大大提升了软件的生产率。 ● PAD优点:1..清楚的反应了程序的层次结构 2.支持逐渐求精的设计措施,左边层次中 的内容能够抽象,然后由左到右逐渐细化 3.易读易写,使用以便 4.支持结构化的程序设计原理 5.可自动生成程序 ● 过程设计语言(PDL),也称程序描述语言,又称伪码。它是一个用于描述模块算法设计和处理细节的语言。伪码的结构一般分为内外两层,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用某些简单的句子、短语和通用的数学符号,来描述程序应执行的功效,具备严格的核心字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语语法又是灵活自由的,使用自然语言的词汇。 ● PDL程序结构:次序结构、选择结构、重复结构、出口结构、模块定义与调用、模块调用 输入、输出 ● J ACKSON措施是面对数据结构的设计措施,70年代中期出了“面对数据结构”的设计措施,其中有代表性的是由英国M.JACKSON提出的JACKSON措施和由法国人J.WARNIER提出的WARNIER措施。 ● JACKSON在JSP的基础上扩展成了一个系统的开发措施,简称JSD。JSD重要以活动事件为中心,通过由一串活动次序组合组成的进程,建立系统模型,最后实现该模型。JSP措施定义了一组以数据结构为指引的映射过程,它依照输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构,因此该措施适合用于详细设计阶段。 ● JACKSON措施提供了自己的描述工具――-JACKSON结构图。无论数据结构还是程序结构,都限于三种基本结构(次序结构、选择结构、重复结构)及它们的组合。 ● JACKSON结构图的特点: 1能对结构进行自顶向下分解,因此能够表示层次结构。 2结构易读,形象直观。 3既能表示数据结构也能表示程序结构,且表示的是组成关系。 ● JSP措施一般通过如下五个步骤来完成设计: 1分析并确定输入数据和输出数据的逻辑结构,并用JACKson结构图表示这些数据结构。 2找出输入数据结构和输出数据结构中有对应关系的数据单元。“对应关系”指这些数据 单元在数据内容上、数量上和次序上有直接的因果关系,对于重复的数据单元,重复的 次序和次数都相同才有对应关系。 3按一定的规则由输入、输出的数据结构导出程序结构 4列出基本操作与条件,并把它们分派到程序结构图的适当位置。 5用伪码写出程序。 第6章 ●源程序代码:将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序 ● 程序设计语言特性: 1心理特性:指影响程序员心理的语言性能,许多此类特性是作为程序设计的成果而出现 歧义性:有些语法规则轻易使人用不一样的方式来解释语言,这就产生了心理上的二义性。 简洁性:人们必须记住的语言成份的数量越多,简洁性越差。 局部性和次序性:局部性是指语言的联想性,在编码过程中,由语句组合成模块,由模块组装成系统结构,并在组装过程实现模块的高内聚,低耦合,使局部性得到加强。 老式性:老式性轻易影响人们学习新语种的积极性。 2工程特性:可移植性(指程序从一个计算机环境移植到另一个计算机环境的轻易程度)、 开发工具的可利用性、软件的可重用性、可维护性 3技术特性 ● 程序设计语言:为开发一个特定项目选择程序设计语言时,必须从技术特性、工程特性和心理特性几方面考虑。 ● 考虑选用语言的原因有: 1项目标应用领域:a科学工程计算(需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有:FORTRAN Pascal C PL/1)b数据处理与数据库应用(CoBol SQL 4GL);实时处理(汇编语言 Ada);系统软件(汇编语言 C语言 Pascal语言和Ada语言);人工智能(Lisp是一个函数型语言 Prolog是一个逻辑型语言) 2软件开发的措施:有时编程语言的选择依赖于开发的措施,假如要用迅速原形模型来开发,要求能迅速实现原形,宜采取4GL。假如是面对对象措施,宜采取面对对象的语言编程(C++ JAVA) 3软件执行的环境 4算法和数据结构的复杂性 5软件开发人员的知识 ● 程序设计格调指一个编制程序时所体现出来的特点、习惯、逻辑思想等。 语句结构的标准是:简单直接,不能为了追求效率而使代码复杂化。 ● 效率指处理机时间和存储空间的使用(处理时要注意): a效率是一个性能要求,目标在需求分析给出 b追求效率建立在不损害程序可读性或可靠性基础之上 c提升程序效率的根本途径在于选择良好的设计措施、良好的数据结构与算法,而不是靠编程时对程序语句做调整 第7章 ● 软件测试的目标: 1.软件测试是为了发觉错误而执行程序的过程; 2.一个好的测试用例能够发觉至今尚未发觉的错误; 3.一个成功的测试是发觉了至今尚未发觉的错误的测试。 ● 测试阶段的基本任务应当是依照软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。 ● 软件测试中,应注意如下指引标准: 1. 测试用例应由输入数据和预期的输出数据两部分组成 2. 测试用例不但选用合理的输入数据,还要选择不合理的输入数据。这么能更多的发觉错误,提升程序的可靠性。对不合理的输入数据,程序应拒绝接收,并给出对应提示。 3. 除了检查程序是否做了它该做的事,还检查是否做了不应当做的事 4. 应制定测试计划并严格执行,排除随意性 5. 长期保持测试用例 6. 对发觉错误较多的程序段,应进行回归测试 7. 程序员防止测试自己的程序 ● 软件测试措施一般分为两大类:动态测试措施与静态测试措施 静态测试指被测试程序不在机器上运行,而是采取人工检测和计算机辅助静态分析的伎俩对程序进行检测。 动态测试指通过运行程序发觉错误,分为黑盒测试法和白盒测试法。 黑盒法:把被测试对象当作一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格阐明书,检查程序是否满足功效要求。因此,黑盒测试又称为功效测试或数据驱动测试。 ● 黑盒测试重要测试如下错误: (1) 是否有不正确或遗漏了的功效 (2) 在接口上,能否正确的接收输入数据,能否产生正确的输入信息 (3) 访问外部信息是否有错 (4) 性能上是否满足要求等 ● 白盒法:把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽也许多的逻辑途径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 ● 黑盒法和白盒法都不能是测试达成彻底 ● 白盒技术: 因为白盒测试是结构测试,因此被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。 1.逻辑覆盖 a语句覆盖:指设计足够的测试用例,使被测程序中的每个语句最少执行一次,语句覆盖是比较弱的覆盖标准。 b判定覆盖:指设计足够的测试用例,使得被测程序中每个判定体现式最少取得一次“真”值和“假”值,从而使程序的每一个分支最少都通过一次,因此判定覆盖也称分支覆盖。 c条件覆盖:指设计足够的测试用例,使得判定体现式中每个条件的各种也许的值最少出现一次。 d判定/条件覆盖:指设计足够的测试用例,使得判定体现式中的每个条件的所有也许取值最少出现一次,并使每个判定体现式所有也许的成果也最少出现次。 e条件组合覆盖:比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定体现式中条件的各种也许的值的组合最少出现一次,满足条件组合覆盖的测试一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”。 f途径覆盖:指设计足够的测试用例,覆盖被测程序中所有也许的途径。语句覆盖发觉错误能力最弱。判定覆盖包括了语句覆盖,但它也许会使某些条件得不到测试。 发觉错误能力:a——f 由弱到强 2.循环覆盖 ● 黑盒技术(黑盒测试是功效测试): 1 等价类划分:它将输入数据域按有效的或无效的(也称合理的或不合理的)划分为若干 个等价类,测试每个等价类的代表值就等于对该类其他值的测试。 用等价类划分的措施设计测试用例的步骤为: 2 边界值分析 使用边界值分析措施设计测试用例时一般与等价类划分结合起来。但它不是从一个等价 类中任选一个例子作为代表,而将测试边界情况作为重点目标,选用恰好等于、刚才不小于或刚才小于边界值的测试数据。 3错误推测:在测试程序时,人们也许依照经验或直觉推测程序中也许存在的各种错误,从而有针对性地编写检查这些错误的测试用例,这就是错误推测法。 4因果图:因果图能有效地检测输入条件的各种组合也许会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功效阐明转换为判定表,最后为判定表的每一列设计一个测试用例。 5综合方略 ● 软件测试时需要三类信息: 1软件配备:指需求规格阐明书、设计阐明书、源程序等。 2测试配备:指测试方案、测试用例、测试驱动程序等 3测试工具:指计算机辅助测试的有关工具。 ● 软件测试的步骤及与各开发阶段的关系 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现要求的功效,从而发觉模块在编码中或算法中的错误。该阶段包括编码和详细设计的文档。各模块通过单元测试后,将各模块组装起来进行集成测试,以检查与设计有关的软件体系结构的有关问题。确认测试重要检查已实现的软件是否满足需求规格阐明书中确定了的各种需求。系统测试指把已确认的软件与其他系统元素结合在一起进行测试。 单元测试重要针对模块的如下五个基本特性进行测试:模块接口、局部数据结构、重要的执行途径、错误处理、边界条件。 ● 在单元测试时,需要为被测模块设计驱动模块和桩模块。 ● 驱动模块的作用是用来模拟被测模块的上级调用模块,它只完成接收测试数据,以上 模块调用被测模块的格式驱动被测模块,接收被测模块的测试成果并输出。 桩模块用来替代被测试模块所调用的模块。它的作用是返回被测试模块所需的信息。 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统 行的测试,故也称组装测试或联合测试。 ● 集成测试的措施重要有两种:非渐增式测试和渐增式测试。 渐增式测试有如下两种不一样的组装模块的措施:自顶向下结合(深度优先方略、宽度优先方略);自底向上结合 确认测试又称有效性测试。它的任务是检查软件的功效与性能是否与需求规格阐明书中确定的指标相符合,确认测试阶段有两项工作:进行确认测试与软件配备审查。 a确认测试一般是在模拟环境下利用黑盒测试措施,由专门测试人员和用户参加的测试。 b软件配备审查的任务是检查软件的所有文档资料的完整性、正确性。如发觉遗漏和错 应补充和更正 ● 软件测试的目标是尽也许多地发觉程序中的错误,而调试则是在进行了成功的测试之后才开始的工作,因此调试也称为纠错。 ● 调试技术:1.简单的调试措施 2.归纳法调试 3. 演绎法调试 4.回溯法调试 第8章 ● 软件维护的内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。 校正性维护:为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。 适应性维护:为了使应用软件适应硬件和软件环境的变化而修改软件的过程称为适应性维护。 完善性维护:增加软件功效、增强软件性能、提升软件运行效率而进行的维护活动称为完善性维护。 预防性维护:为了提升软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 维护的特点:非结构化维护和结构化维护 维护的流程:制定维护申请报告、审查申请报告并同意、进行维护并做详细统计、覆审 ● 维护技术有两类:面对维护的技术和维护增援技术 维护的副作用:编码副作用、数据副作用、文档副作用 软件可维护性的定义:软件能够被了解、校正、适应及增强功效的轻易程度。 软件的可维护性、可使用性、可靠性是衡量软件质量的几个重要特性。 ● 软件的可维护性可用下面七个质量特性可来衡量,即可了解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对不一样类型的维护,这七种特性的侧重点也不相同。 ● 提升可维护性的措施:建立明确的软件质量目标;利用先进的软件开发技术和工具;建立明确的质量确保工作;选择可维护的程序设计语言;改进程序文档。 为了确保可维护性,如下四类检查是非常有用的:在检查点进行检查;验收检查;周期性的维护检查;对软件包的检查。 第9章 ●老式的瀑布模型本质上是一个线性次序模型,各阶段之间存在着严格的次序性和依赖性, 尤其强调预先定义需求的重要性 瀑布模型的不足:1.需求是可变的 2.需求是含糊的 3.用户和开发者难于沟通 瀑布模型属于整体开发模型,它要求在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。 ● 依照增量的方式和形式的不一样,分为渐增模型和原型模型。 渐增模型是瀑布模型的变种,有两类渐增模型: 1增量结构模型:它在瀑布模型基础上,对某些阶段进行整体开发,对另某些阶段进行增 量开发。前面的开发阶段按瀑布模型进行整体开发,背面的开发阶段按增量方式开发。 2演化提交模型:它在瀑布模型的基础上,所有阶段都进行增量开发,也就是说不不过增 量开发,也是增量提交。 ● 原形模型又称迅速原形模型,它是增量模型的另一个形式。 ● 依照原型的不一样作用,有三类原型模型: 1探索型原型:这种类型的原型模型是把原型用于开发的需求分析阶段,目标是要搞清用户的需求,确定所期望的特性,并探索各种方案的可行性。它重要针对开发目标含糊,用户与开发都对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求 2试验型原型:重要用于设计阶段,考核算现方案是否适宜,能否实现。 3演化型原型:重要用于及早向用户提交一个原型系统,该原型系统或者包括系统的框架,或者包括系统的重要功效,在得到用户的认可后,将原型系统不停扩充演变为最后的软件系统。它将原型的思想扩展到软件开发的全过程。 第10章 ● 老式软件措施存在的问题:1.软件重用性 2.软件可维护性3.开发出的软件不能满足用户需要 对象具备状态。一个对象用数据值来描述它的状态。 对象尚有操作,用于变化对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。 类具备属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具备操作,它是对象的行为的抽象,用操作名和实现该操作的措施来描述。 ● 对象之间进行通信的结构叫做消息 类的实现是核心问题 类中操作的实现过程叫做措施,一个措施有措施名、参数、措施体。当一个对象接收一条消息后,它所包括的措施决定对象怎样动作。 ● 在客观世界中这些类之间有一定的结构关系。一般有两种重要的结构关系,即一般――详细结构关系,整体――部分结构关系。 一般――详细结构称为分类结构,也能够说是“或”关系,或者是“is a”关系。 整体――部分结构称为组装结构,它们之间的关系是一个“与”关系,或者是“has a”关系。 在类的层次结构中,一般上层类称为父类或超类,下层类称为子类。 面对对象的特性:对象惟一性;分类性;继承性;多态性(多形性)。 继承性:子类只继承一个父类的数据结构措施,则称为单重继承。 子类继承了多个父类的数据结构和措施,则称为多重继承。 ● 具备相同或相同性质的对象的抽象就是类。因此,对象的抽象是类,类的详细化就是对象,也能够说类的实例是对象。 ● 面对对象的要素: 1抽象:是指强调实体的本质、内在的属性,忽视某些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,它是对象的共性的抽象。 2封装性:是指所有软件部件内部都有明确的范围以及清楚的外部边界。 3共享性(3个级别):面对对象技术在不一样级别上促进了共享。同一个类中的共享、在同一个应用中共享、在不一样应用中的共享。 ● 面对对象开发措施有Coad措施、Booch措施、OMT措施和Uml措施 Uml语言不公统一了booch措施、omt措施、oose措施的表示措施,并且对其作了深入的发展,最后统一为大众所接收的标准建模语言。 ● 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述。 ● 属性指的是类中对象所具备的性质(数据值)。不一样对象的同一属性能够具备相同或不一样的属性值。类中的各属性名是唯一的。 操作是类中对象所使用的一个功效或变换。类中的各对象能够共享操作。 ● 措施是类的操作的实现步骤。 ● 链表示对象间的物理与概念联结,关联表示类之间的一个关系,就是某些也许的链的集合, 链是关联的实例,关联是链的抽象。两个类之间的关联称为二元关联,三个类之间的关联称为三元关联。 ● 类的层次结构: 1聚集关系。聚集是一个“整体――部分”关系。在这种关系中,有整体类和部分类之分。 聚集最重要的性质是传递性,也具备逆对性。 2一般化关系 。是在保存对象差异的同时共享对象相同性的一个高度抽象措施。它是“一 般--详细”的关系,一般化类又称父类,详细类又称子类。 ● 继承有单重继承和多重继承。单重继承指的是子类只有一个爸爸,在一个类层次结构 若只有单重继承,则该类层次结构是树型层次结构。多重继承指的是子类继承了多个父类的性质,在一个类层次结构中,若有多重继承,则该类层次结构是网状层次结构。 对象模型: 模板是类、关联、一般化结构的逻辑结构组成 对象模型是由一个或若干模板组成 ● 动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬 时的、行为化的系统控制性质,它关心的是系统的控制,操作的执行次序,它从对象的事件 和状态的角度出发,体现了对象的相互行为。该模型描述的系统忏属性是触发事件、事件序 列、状态
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 自考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服