欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件工程自考复习资料.docx

    • 资源ID:35548015       资源大小:37.51KB        全文页数:28页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程自考复习资料.docx

    软件工程自考复习资料 第章 软件:计算机程序及说明程序的各种文档。“程序”是计算任务的处理对象和处理规则的描绘; “文档”是有关计算机程序功能、设计、编制、运用的文字或图形资料。 软件消费的开展:程序设计时代,程序系统时代,软件工程时代。 软件工程:用科学学问和技术原理来定义、开发、维护软件的一门学科。 软件工程性质:它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而软件工程着重于如何建立一个软件系统。软件工程要用工程科学中的观点来进展费用估算、制定进度、制定安排和方案。软件工程要用管理科学中的方法和原理进展软件消费的管理。软件工程要用数学的方法建立软件开发中的各种模型和各种算法,如牢靠性模型,说明用户需求的形式化模型等。 软件工程探讨的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术中,主要探讨软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中, 主要是探讨软件管理学、软件经济学、软件心理学等。 软件工程面临的问题:软件费用;软件牢靠性;软件维护;软件消费率;软件重用。 软件工程过程:获得过程;供给过程;开发过程;操作过程;维护过程;管理过程;支持过程。 软件生存周期:可行性分析和工程开发安排;需求分析;概要设计;具体设计;编码;测试;维护。 软件生存周期模型是描绘软件开发过程中各种活动如何执行的模型。 瀑布模型是将软件生存周期各个活动规定为依线性依次连接的若干阶段的模型。 增量模型是一种非整体开发的模型。瀑布模型是一种整体开发的模型 螺旋模型将瀑布模型及增量模型结合起来,参加了风险分析,用于困难的大型软件开发;分为几个螺旋周期:第一,制定安排;第二,风险分析;第三,开发施行;第四,用户评估。 喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,合适于面对对象的开发方法。喷泉模型使开发过程具有迭代性和无间隙性。 根本学问的模型又称智能模型,它把瀑布模型和专家系统结合在一起。 变换模型是一种合适于形式化开发方法的模型。从软件需求形式化说明开场,经过一系列变换,最终得到系统的目的程序。 软件开发方法: 构造化方法由构造化分析、构造化设计、构造化程序设计构成。它是一种面对数据流的开发方法。构造化方法总的指导思想是自顶向下、逐步求精。它的根本原则是功能的分解及抽象,它是软件工程中最早出现的开发方法,特殊合适于数据处理领域的问题。 方法是一种面对数据构造的开发方法。 维也纳开发方法()是一种形式化的开发方法,软件的需求用严格的形式语言描绘。 面对对象的开发方法包括面对对象分析、面对对象设计、面对对象实现。面对对象开发方法有 方法、方法 第章 软件可行性探讨的目的就是用最小的代价在尽可能短的时间内确定该软件工程是否可以开发,是否值得去开发。留意,可行性探讨的目的不是去开发一个软件工程,而是探讨这个软件工程是否值得去开发,其中的问提能否解决。可行性探讨本质上是要进展一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进展需求分析和设计过程。 可行性探讨的任务 技术可行性:对要开发工程的功能、性能、限制条件进展分析,确定在现有的资源条件下,技术风险有多大,工程是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。 经济可行性包括本钱效果分析、公司经营长期策略、开发所需的本钱和资源、潜在的市场前景。 社会可行性包括:合同、责任、侵权、用户组织的管理形式及标准,其他一些技术人员经常不理解的陷阱等。 典型的可行性探讨有下列步骤:确定工程规模和目的;探讨正在运行的系统;建立新系统的高层逻辑模型;导出和评价各种方案;举荐可行的方案;编写可行性探讨报告。 可行性探讨报告的主要内容:引言;可行性探讨前提;对现有系统的分析;所建议系统的技术可行性分析;所建议系统的经济可行性分析;社会因素可行性分析;其他可供选择方案;结论意见。 本钱效益分析首先是估算将要开发的系统的开发本钱,然后及可能获得的效益进展比拟和权衡。效益分有形效益和无形效益两种。有形效益可以用货币的时间价值、投资回收期、纯收入等指标进展度量;无形效益主要从性质上、心理上进展衡量,很难干脆进展量的比拟。 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。 工程的纯收入,也就是在整个生存周期之内的累计经济效益(折合成如今值)及投资之差。 工程开发安排:工程概述;施行安排;人员组织及分工;交付期限。 第章 在进展可行性探讨和软件安排以后,假如确认开发一个新的软件系统是必要的而且是可能的,那么就进入需求分析阶段。 需求分析是指,开发人员要准确理解用户的要求,进展细致的调查分析,将用户非形式的需求陈述转化为完好的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。 它的难点主要表达在以下几个方面:问题的困难性;沟通障碍;不完备性和不一样性;需求易变性。 需求分析的根本任务是要准确地定义新系统的目的,为了满足用户须要,答复系统必需“做什么”的问题。 本阶段要进展以下几方面的工作: 问题识别:功能需求;性能需求;环境需求;用户界面需求 分析及综合:导出软件的逻辑模型 编写文档:需求规格说明书;初步用户运用手册;确认测试安排;修改完善软件开发安排。 构造化分析()是面对数据流进展需求分析的方法。 方法利用图形等半形式化的描绘方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。这些描绘工具是:数据流图;数据字典;描绘加工逻辑的构造化语言,断定表、断定树。 “数据流图()”描绘的分解,即描绘系统由哪几部分组成,各部分之间有什么联络等等。 “数据字典”定义了数据流图中每一个图形元素。构造化语言、断定表或断定树则具体描绘数据 流图中不能被再分解的每一个加工。 数据流是数据在系统内传播的途径,因此由一组成分固定的数据项组成。 加工(又称数据处理)。对数据流进展某些操作或变换。 数据存储(又称文件),指短暂保存的数据,它可以是数据库文件或任何形式的数据组织。 数据源点或终点:是本软件系统外部环境中的实体,统称外部实体。 数据字典()就是用来定义数据流图中的各个成分的具体含义的,它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。 数据字典的内容及格式 数据项是组成数据流和数据存储的最小元素。 数据流条目;数据存储条目;数据项条目;加工条目数据字典中的加工逻辑主要描绘该加工“做什么”,即实现另工的策略,而不是实现加工的细微环节,它描绘如何把输入数据流变换为输出数据流的加工规则。 加工逻辑也称为“小说明”,描绘加工逻辑一般用以下三种工具:构造化语言、断定表、断定树。 构造化语言是介于自然语言和形式语言之间的一种半形式语言。它的构造可分成外层和内层两层:外层用来描绘限制构造,采纳依次、选择、重复三种根本构造;内层对于依次执行和循环执行的动作,用构造化语言描绘。对于存在多个条件困难组合的推断问题,用断定表和断定树。 :用来描绘系统的功能活动及其联络,建立系统的功能模型。 :用来描绘系统的信息及其联络,建立系统的信息模型。 :用来进展系统模拟,建立系统的动态模型。 传统的方法主要用于数据处理方面的问题,主要工具表达了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的依次,即限制流程。 形式化方法是将需求规格说明用形式规约语言来描绘。典型的有基于模型的语言及开发方法。 第章 在软件需求分析阶段,已经搞清晰了软件“做什么”的问题,并把这些需求通过规格说明书描绘了出来,这也是目的系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明”文档中,软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描绘了软件的总的体系构造,称为软件概要设计或构造设计。然后对构造进一步细分,称为具体设计或过程设计。 概要设计的根本任务: 设计软件系统构造(简称软件构造)采纳某种设计方法,将一个困难的系统按功能划分成模块;确定每个模块的功能;确定模块之间的接口,即模块之间传递的信息;评价模块构造的质量。 软件构造设计是以模块为根底的,在需求分析阶段,已经把系统分解为层次构造。设计阶段,以需求分析的结果为根据,从实现的角度进一步划分为模块,并组成模块的层次构造。 数据构造及数据库设计 数据库的设计指数据存储文件的设计(概念设计、逻辑设计、物理设计) 数据库的“概念设计”、“逻辑设计”分别对应于系统开发中的“需求分析”及“概要设计”,而数据库的“物理设计”及模块的“具体设计”相对应。 编写概要设计文档(概要设计说明书、数据库设计说明书、用户手册、修订测试安排,对测试策略、方法、步骤提出明确要求。) 评审:对设计部分是否完好地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一样性等等都一一进展评审。 模块的根本属性:接口指模块的输入及输出;功能指模块实现什么功能;逻辑描绘内部如何实现要求的功能及所需的数据;状态指该模块的运行环境,即模块的调用及被调用关系。 功能、状态及接口反映模块的外部特性,逻辑反映它的内部特性。 模块化是指解决一个困难问题时自顶向下逐层把软件系统划分为若干模块的过程。模块完成一个特定的子功能,全部的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。 开发一个大而困难的软件系统,将它进展适当的分解,不但可降低其困难性,还可削减开发工作量,从而降低开发本钱,进步软件消费率,这就是模块化的根据。 抽象是相识困难现象过程中运用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细微环节,不考虑其他因素。 通过抽象,可以确定组成软件的过程实体。通过信息隐藏,可以定义和施行对模块的过程细微环节和部分数据构造的存取限制。信息隐藏指在设计和确定模块时,使得一个模块内部包含的信息(过程或数据),对于不须要这些信息的其他模块来说,是不能访问的。 模块独立性指每个模块只完成系统要求的独立子功能,并且及其他模块的联络最少且接口简洁,两个定性的度量标准耦合性和内聚性。 耦合性也称块间联络。指软件系统构造中各模块间互相联络严密程度的一种度量。模块之间联络越严密,其耦合性就越强,模块的独立性则越差。模块间耦合凹凸取决于模块间接口的困难性、调用的方式及传递的信息。 无干脆耦合 数据耦合 标记耦合 限制耦合 公共耦合 内容耦合(低高) 无干脆耦合 数据耦合指两个模块之间有调用关系,传递的是简洁的数据值,相当于高级语言的值传递。 标记耦合指两个模块之间传递的是数据构造,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据构造的地址。 限制耦合指一个模块调用另一个模块时,传递的是限制变量(如开关、标记等),被调模块通过该限制变量的值有选择地执行块内某一功能。 公共耦合指通过一个公共数据环境互相作用的那些模块间的耦合。 公共耦合的困难程序随耦合模块的个数增加而增加。 内容耦合:这是最高程度的耦合,也是最差的耦合。当一个模块干脆运用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。 内聚性又称块内联络。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的严密程度的度量。若一个模块内各元素(语名之间、程序段之间)联络的越严密,则它的内聚性就越高。 偶尔内聚 逻辑内聚 时间内聚 通信内聚 依次内聚 功能内聚(低高) 偶尔内聚指一个模块内的各处理元素之间没有任何联络。 逻辑内聚指模块内执行几个逻辑上相像的功能,通过参数确定该模块完成哪一个功能。 时间内聚:把须要同时执行的动作组合在一起形成的模块为时间内聚模块。 通信内聚指模块内全部处理元素都在同一个数据构造上操作(有时称之为信息内聚),或者指各处理运用一样的输入数据或者产生一样的输出数据。 依次内聚指一个模块中各个处理元素都亲密相关于同一功能且必需依次执行,前一功能元素输出就是下一功能元素的输入。 功能内聚:这是最强的内聚,指模块内全部元素共同完成一个功能,缺一不行。及其他模块的耦合是最弱的。 耦合性及内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,进步模块的独立性,为设计高质量的软件构造奠定根底。 软件构造图主要内容有:模块、模块的限制关系、模块间的信息传递、两个附加符号 构造图的形态特征:深度指构造图限制的层次;宽度指一层中最大的模块个数;扇出指一个模块干脆下属模块的个数;扇入指一个模块干脆上属模块的个数。 假如若干模块之间耦合强度过高,每个模块内功能不困难,可将它们合并,以削减信息的传递和公共区的引用。若有多个相关模块,应对它们的功能进展分析,消去重复功能。 一个模块的作用范围应在其限制范围这内,且断定所在的模块应及受其影响的模块在层次上尽量靠近。 一个模块的作用范围指受该模块内一个断定影响的全部模块的集合。一个模块的限制范围指模块本身以及其全部下属模块(干脆或间接附属于它的模块)的集合。 要把数据流图()转换成软件构造,首先必需探讨的类型,一般可分为变换型和事务型两类。 变换型是由输入、变换(或称处理)和输出三部分组成。 变换型数据处理的工作过程一般分为三步:获得数据、变换数据和给出数据,这三步表达了变换型的根本思想。变换是系统的主加工,变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出。而干脆从外部设备输入数据称为物理输入,反之称为物理输出。 若某个加工将它的输入流分别成很多发散的数据流,形成很多加工途径,并根据输入的值选择其中一个途径来执行,这种特征的称为事务型的数据流图,这个加工称为事务处理中心。 基于图的设计也是构造化设计技术之一,它以系统的功能模型和信息构造为根底设计系统的软件构造。 图是表示软件系统构造的工具。它既可以描绘软件总的模块层次构造图(层次图),又可以描绘每个模块输入输出数据、处理功能及模块调用的具体状况图。第章 具体设计是软件设计的第二阶段,主要确定每个模块具体执行过程,故也称“过程设计” 具体设计的根本任务:.为每个模块进展具体的算法设计;.为模块内的数据构造进展设计;.对数据库进展物理设计,即确定数据库的物理构造;.其他设计(代码设计、输入输出格式设计、人机对话设计).编写具体设计说明书.评审处理过程设计中采纳的典型方法是构造化程序设计()方法。具体设计的目的不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。构造化程序设计是实现该目的的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。 构化程序设计方法的根本要点是: 采纳自顶向下、逐步求精的程序设计方法 运用三种根本限制构造构造程序 任何程序都可由依次、选择、重复三种根本限制构造构造。这三种根本构造的共同点是单入口、单出口。 主程序员组的组织形式。 具体描绘处理过程常用三种工具:图形、表格和语言。 程序流程图又称为程序框图,都应由三种根本限制构造依次组合和完好嵌套而成,不能有互相穿插的状况,这样的流程图是构造化的流程图。 图指问题分析图,它是一种自左往右绽开的二维树型构造。限制流程为自上而下、从左到右的执行。由机器自动通过走树的方法生成相应的源代码,大大进步了软件的消费率。 过程设计语言(),也称程序描绘语言,又称伪码。它是一种用于描绘模块算法设计和处理细微环节的语言。伪码的构造一般分为内外两层,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简洁的句子、短语和通用的数学符号,来描绘程序应执行的功能,具有严格的关键字外层语法,用于定义限制构造、数据构造和模块接口,而它表示实际操作和条件的内层语语法又是敏捷自由的,运用自然语言的词汇。 方法是面对数据构造的设计方法,年头中期出了“面对数据构造”的设计方法,其中有代表性的是由英国提出的方法和由法国人提出的方法。 在的根底上扩展成了一种系统的开发方法,简称。主要以活动事务为中心,通过由一串活动依次组合构成的进程,建立系统模型,最终实现该模型。方法定义了一组以数据构造为指导的映射过程,它根据输入、输出的数据构造,按肯定的规则映射成软件的过程描绘,即程序构造,而不是软件的体系构造,因此该方法适用于具体设计阶段。 方法供给了自己的描绘工具构造图。无论数据构造还是程序构造,都限于三种根本构造(依次构造、选择构造、重复构造)及它们的组合。 构造图的特点: 能对构造进展自顶向下分解,因此可以表示层次构造。 构造易读,形象直观。 既能表示数据构造也能表示程序构造,且表示的是组成关系。 方法一般通过以下五个步骤来完成设计: 分析并确定输入数据和输出数据的逻辑构造,并用构造图表示这些数据构造。 找出输入数据构造和输出数据构造中有对应关系的数据单元。“对应关系”指这些数据单元在数据内容上、数量上和依次上有干脆的因果关系,对于重复的数据单元,重复的次序和次数都一样才有对应关系。 按肯定的规则由输入、输出的数据构造导出程序构造 列出根本操作及条件,并把它们安排到程序构造图的适当位置。 用伪码写出程序。第章 将具体设计得到的处理过程的描绘转换为基于某种计算机语言的程序,即源程序代码。 程序设计语言特性: 心理特性指影响程序员心理的语言性能,很多这类特性是作为程序设计的结果而出现的。 歧义性:有些语法规则简洁使人用不同的方式来说明语言,这就产生了心理上的二义性。 简洁性,人们必需记住的语言成分的数量越多,简洁性越差。 部分性和依次性:部分性是指语言的联想性,在编码过程中,由语句组合成模块,由模块组装成系统构造,并在组装过程实现模块的高内聚,低耦合,使部分性得到加强。 传统性:传统性简洁影响人们学习新语种的主动性。 工程特性 可移值性:指程序从一个计算机环境移植到另一个计算机环境的简洁程度。 开发工具的可利用性 软件的可重用性 可维护性。技术特性 为开发一个特定工程选择程序设计语言时,必需从技术特性、工程特性和心理特性几方面考虑。通常,考虑选用语言的因素有: 工程的应用领域:科学工程计算(须要大量的标准库函数,以便处理困难的数值计算,可供选用的语言有: );数据处理及数据库应用( );实时处理(汇编语言 );系统软件(汇编语言 语言 语言和语言);人工智能(是一种函数型语言 是一种逻辑型语言) 软件开发的方法:有时编程语言的选择依靠于开发的方法,假如要用快速原形模型来开发,要求能快速实现原形,宜采纳。假如是面对对象方法,宜采纳面对对象的语言编程( ) 软件执行的环境 算法和数据构造的困难性 软件开发人员的学问。 程序设计风格指一个编制程序时所表现出来的特点、习惯、逻辑思想等。 语句构造的原则是:简洁干脆,不能为了追求效率而使代码困难化。 效率指处理机时间和存储空间的运用:效率是一特性能要求,目的在需求分析给出;追求效率建立在不损害程序可读性或牢靠性根底之上;进步程序效率的根本途径在于选择良好的设计方法、良好的数据构造及算法,而不是靠编程时对程序语句做调整第章 软件测试的目的:.软件测试是为了发觉错误而执行程序的过程;.一个好的测试用例可以发觉至今尚未发觉的错误;.一个胜利的测试是发觉了至今尚未发觉的错误的测试。测试阶段的根本任务应当是根据软件开发各阶段的文档资料和程序的内部构造,细心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。 软件测试中,应留意以下指导原则:测试用例应由输入数据和预期的输出数据两部分组成;测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。这样能更多的发觉错误,进步程序的牢靠性。对不合理的输入数据,程序应回绝承受,并给出相应提示。 软件测试方法一般分为两大类:动态测试方法及静态测试方法。静态测试指被测试程序不在机器上运行,而是采纳人工检测和计算机协助静态分析的手段对程序进展检测。 动态测试指通过运行程序发觉错误,分为黑盒测试法和白盒测试法。 黑盒法:把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部构造和处理过程,只在软件的接口处进展测试,根据需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。 白盒法:把测试对象看作一个翻开的盒子,测试人员须理解程序的内部构造和处理过程,以检查处理过程的细微环节为根底,对程序中尽可能多的逻辑途径进展测试,检验内部限制构造和数据构造是否有错,实际的运行状态及预期的状态是否一样。 由于白盒测试是构造测试,所以被测对象根本上是源程序,以程序的内部逻辑为根底设计测试用例。 .逻辑覆盖 语句覆盖是指设计足够的测试用例,使被测程序中的每个语句至少执行一次,语句覆盖是比拟弱的覆盖标准。 断定覆盖指设计足够的测试用例,使得被测程序中每个断定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次,因此断定覆盖也称分支覆盖。 条件覆盖指设计足够的测试用例,使得断定表达式中每个条件的各种可能的值至少出现一次。 断定条件覆盖指设计足够的测试用例,使得断定表达式中的每个条件的全部可能取值至少出现一次,并使每个断定表达式全部可能的结果也至少出现次。 条件组合覆盖是比拟强的覆盖标准,它是指设计足够的测试用例,使得每个断定表达式中条件的各种可能的值的组合至少出现一次,满足条件组合覆盖的测试肯定满足“断定覆盖”、“条件覆盖”和“断定条件覆盖”。 途径覆盖是指设计足够的测试用例,覆盖被测程序中全部可能的途径。语句覆盖发觉错误实力最弱。断定覆盖包含了语句覆盖,但它可能会使一些条件得不到测试。 .循环覆盖 .根本途径测试是在程序限制流程图的根底上,通过分析限制构造的环路困难性,导出根本途径集合,从而设计测试用例,保证这些途径至少通过一次。 独立途径是指包括一组以前没有处理的语句或条件的一条途径。从程序图来看,一条独立途径是至少包含有一条在其他独立途径中未有过的边的途径。 黑盒测试是功能测试,因此设计测试用例时,须要探讨需求规格说明和概要设计说明中有关程序功能或输入、输出之间的关系等信息,从而及测试后的结果进展分析比拟。黑盒技术: 等价类划分:它将输入数据域按有效的或无效的(也称合理的或不合理的)划分为若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。 用等价类划分的方法设计测试用例的步骤为: 划分等价类 确定测试用例的步骤:为每一个等价类编号;设计一个测试用例,使其尽可能多地覆盖尚未被覆盖过的合理等价类。重覆这步,直到全部合理等价类被测试用例覆盖;设计一个测试用例,使其只覆盖一个不合理等价类。重覆这一步,直到全部不合理等价类被覆盖。 边界值分析 运用边界值分析方法设计测试用例时一般及等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而将测试边界状况作为重点目的,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。 错误推想:在测试程序时,人们可能根据阅历或直觉推想程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例,这就是错误推想法。 因果图:因果图能有效地检测输入条件的各种组合可能会引起的错误。因果图的根本原理是通过画因果图,把用自然语言描绘的功能说明转换为断定表,最终为断定表的每一列设计一个测试用例。 综合策略 软件测试时须要三类信息: 软件配置:指需求规格说明书、设计说明书、源程序等。 测试配置:指测试方案、测试用例、测试驱动程序等 测试工具:指计算机协助测试的有关工具。 软件产品在交付运用之前要经过哪些测试呢?一般要经过以下四步测试:单元测试、集成测试、确认测试和系统测试。 软件测试的步骤及及各开发阶段的关系 单元测试指对源程序中每一个程序单元进展测试,检查各个模块是否正的确现规定的功能,从而发觉模块在编码中或算法中的错误。该阶段涉及编码和具体设计的文档。各模块经过单元测试后,将各模块组装起来进展集成测试,以检查及设计相关的软件体系构造的有关问题。确认测试主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求。系统测试指把已确认的软件及其他系统元素结合在一起进展测试。 单元测试主要针对模块的以下五个根本特征进展测试:模块接口、部分数据构造、重要的执行途径、错误处理、边界条件。 在单元测试时,须要为被测模块设计驱动模块和桩模块。 驱动模块的作用是用来模拟被测模块的上级调用模块,它只完成承受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。 桩模块用来代替被测试模块所调用的模块。它的作用是返回被测试模块所需的信息。 集成测试是指在单元测试的根底上,将全部模块根据设计要求组装成一个完好的系统进展的测试,故也称组装测试或结合测试。 集成测试的方法主要有两种:非渐增式测试和渐增式测试。 非渐增式方法把单元测试和集成测试分成两个不同的阶段。 渐增式测试有以下两种不同的组装模块的方法:自顶向下结合(深度优先策略、宽度优先策略);自底向上结合 确认测试又称有效性测试。它的任务是检查软件的功能及性能是否及需求规格说明书中确定的指标相符合,确认测试阶段有两项工作:进展确认测试及软件配置审查。 确认测试一般是在模拟环境下运用黑盒测试方法,由特地测试人员和用户参与的测试。 软件配置审查的任务是检查软件的全部文档资料的完好性、正确性。如发觉遗漏和错误,应补充和改正。 软件测试的目的是尽可能多地发觉程序中的错误,而调试则是在进展了胜利的测试之后才开场的工作,因此调试也称为纠错。 归纳法调试从测试结果发觉的线索入手,分析它们之间的联络,导出错误缘由的假设,然后再证明或否认这个假设。 步骤:搜集有关数据;组织数据;提出假设;证明假设 演绎法调试是列出全部可能的错误缘由的假设,然后利用测试数据解除不适当的假设,最终再测试数据验证余下的假设的确是出错的缘由。 步骤:列出全部可能的错误缘由的假设;解除不适当的假设;精化余于的假设;证明余于的假设。 回溯法调试:该方法从程序产生错误的地方动身,人工沿程序的逻辑途径反向搜寻,直到找到错误缘由为止。第章 软件维护的内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。 校正性维护:为了识别和订正错误,修改软件性能上的缺陷,应进展确定和修改错误的过程,这个过程就称为校正性维护。 适应性维护:为了使应用软件适应硬件和软件环境的变更而修改软件的过程称为适应性维护。 完善性维护:增加软件功能、增加软件性能、进步软件运行效率而进展的维护活动称为完善性维护。 预防性维护:为了进步软件的可维护性和牢靠性而对软件进展的修改称为预防性维护。 软件的开发过程对软件的维护有较大的影响。若不采纳软件工程的方法开发软件,则软件只有程序而无文档,维护工作特别困难,这是一种非构造化的维护。若采纳软件工程的方法开发软件,则各阶段都有相应的文档,简洁进展维护工作,这是一种构造化的维护。 用于软件维护工作的活动可分为消费性活动和非消费性活动两种。消费性活动包括分析评价、修改设计和编写程序代码等。非消费性活动包括理解程序代码功能、说明数据构造接口特点和设计约束。 维护的流程:制定维护申请报告;审查申请报告并批准;进展维护并做具体记录;覆审。 维护申请报告是一种由用户消费的文档,它用作安排维护任务的根底。 不管维护类型如何,大体上要开展一样的技术工作。这些工作包括修改软件设计、必要的代码修改、单元测试、集成测试、确认测试以及复审。 有两类维护技术,它们是面对维护的技术和维护支援技术。面对维护的技术是在软件开发阶段用来削减错误、进步软件可维护性的技术。维护支援技术是在软件维护阶段用来进步维护作业的效率和质量的技术。这些技术方法都能削减软件错误,进步软件的可维护性。 因修改软件而造成的错误或其他不盼望出现的状况称为维护的副作用。(编码副作用、数据副作用、文档副作用)在软件交付这前对整个软件配置进展评审,以削减文档副作用。 软件可维护性的定义:软件可以被理解、校正、适应及增加功能的简洁程度。 软件的可维护性、可运用性、牢靠性是衡量软件质量的几个主要特性。软件的可维护性可用下面七个质量特性可来衡量,即可理解性、可测试性、可修改性、牢靠性、可移植性、可运用性和效率。对不同类型的维护,这七种特性的侧重点也不一样。 进步可维护性的方法:建立明确的软件质量目的;利用先进的软件开发技术和工具;建立明确的质量保证工作;选择可维护的程序设计语言;改良程序文档。 为了保证可维护性,以下四类检查是特别有用的:在检查点进展检查;验收检查;周期性的维护检查;对软件包的检查。第章 传统的瀑布模型本质上是一种线性依次模型,各阶段之间存在着严格的依次性和依靠性,特殊强调预先定义需求的重要性。 瀑布模型属于整体开发模型,它规定在开场下一个阶段的工作之前,必需完成前一阶段的全部细微环节。而增量模型属于非整体开发模型,它推延某些阶段或全部阶段中的细微环节,从而较早的产生工作软件。 增量模型是在工程的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在工程开发周期内,以肯定的时间间隔开发部分工作软件;增量提交是指在工程开发周期内,以肯定的时间间隔增量方式向用户提交工作软件及相应文档。 根据增量的方式和形式的不同,分为渐增模型和原型模型。 渐增模型是瀑布模型的变种,有两类渐增模型: 增量构造模型:它在瀑布模型根底上,对一些阶段进展整体开发,对另一些阶段进展增量开发。前面的开发阶段按瀑布模型进展整体开发,后面的开发阶段按增量方式开发。 演化提交模型:它在瀑布模型的根底上,全部阶段都进展增量开发,也就是说不仅是增量开发,也是增量提交。 原形模型又称快速原形模型,它是增量模型的另一种形式。根据原型的不同作用,有三类原型模型: 探究型原型:这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探究各种方案的可行性。它主要针对开发目的模糊,用户及开发都对工程都缺乏阅历的状况,通过对原型的开发来明确用户的需求。 试验型原型:主要用于设计阶段,考核实现方案是否适宜,能否实现。 演化型原型:主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩大演化为最终的软件系统。它将原型的思想扩展到软件开发的全过程。 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。 快速原型是利用原型协助软件开发的一种新思想。经过简洁快速分析,快速实现一个原型,用户及开发者在试用原型过程中加强通信及反应,通过反覆评价和改良原型,削减误会,弥补遗漏,适应变更,最终进步软件质量。 由于运用原形的目的和方式不同,在运用原型时也实行不同的策略,有抛弃策略和附加策略。 抛弃策略:用于开发过程某一阶段(探究型和试验型快速原型就是采纳此策略) 附加策略:由根本核心开场(演化型快速原型就采纳此策略) 对于探究型,用原型过程来代替需求分析,把原型作为需求说明的补充形式,运用原型尽可能使需求说明完好、一样、准确、无二义性,但在整体上仍采纳瀑布模型。 对于试验型,用原形过程来代替设计阶段,即在设计阶段引入原型,快速分析实现方案,快速构造原形,通过运行,考察设计方案的可行性及合理性,原型成为设计的总体框架或设计结果的一部分。 对于演化型,用原型过程来代替全部开发阶段,这是典型的演化提交模型的形式,它是有强有力的软件工具和环境支持下,通过原型过程的反覆循环,干脆得到软件系统。 原形开发步骤:快速分析、构造原形、运行原型、评价原型、修改 构造原型的技术:可执行的规格说明;基于脚本的设计;采纳特别高级语言或特地语言;能重用软件。第章 对象具有状态。一个对象用数据值来描绘它的状态。对象还有操作,用于变更对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。 具有一样或相像性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。 类具有属性,它是对象的状态的抽象,用数据构造来描绘类的属性。 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描绘。 在客观世界中有若干类,这些类之间有肯定的构造关系。通常有两种主要的构造关系,即一般具体构造关系,整体部分构造关系。 一般具体构造称为分类构造,也可以说是“或”关系,或者是“ ”关系。 整体部分构造称为组装构造,它们之间的关系是一种“及”关系,或者是“ ”关系。 在类的层次构造中,通常上层类称为父类或超类,下层类称为子类。 对象之间进展通信的构造叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。接收消息的对象经过说明,然后赐予响应。这种通信机制称为消息传递。 类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。当一个对象接收一条消息后,它所包含的方法确定对象怎样动作。 面对对象的特征:对象惟一性;分类性;继承性;多态性(多形性)。 子类只继承一个父类的数据构造方法,则称为单重继承。 子类继承了多个父类的数据构造和方法,则称为多重继承。 面对对象的要素: 抽象:是指强调实体的本质、内在的属性,忽视一些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,它是对象的共性的抽象。 封装性:是指全部软件部件内部都有明确的范围以及清晰的外部边界。每个软件部件都有友好的界面接口,软件部件的内部实现及外部可访问性分别。 共享性(个级别):面对对象技术在不同级别上促进了共享。同一个类中的共享同一个类中的对象有着一样数据构造,也有着一样的行为特征。在同一个应用中共享在同一应用的类层次构造中,存在继承关系的各相像子类中,存在数据构造和行为的继承,使各相像子类共享共同的构造和行为。在不同应用中的共享。 面对对象开发方法有方法、方法、方法和方法等。 方法通过分析正文描绘,将其中的名词映射为对象,将其中的动词映射为方法,从而为对象和方法的认定供给了一种简洁的策略。虽然方法原是面对语言的,但仍处于面对对象开发的奠基性地位。 方法完成了从需求角度动身的对象和分类构造的认定工作,面对对象设计可以在此根底上,从设计的角度进一步进展类和类层次构造的认定。 方法是一种新兴的面对对象的开发方法,开发工作的根底是对真实世界的对象建模,然后围绕这些对象运用分析模型来进展独立于语言的设计。 语言不公统一了方法、方法、方法的表示方法,而且对其作了进一步的开展,最终统一为群众所承受的标准建模语言。 对象模型表示了静态的、构造化的系统数据性质,描绘了系统的静态构造,它是从客观世界实体的对象关系角度来描绘。表现了对象的互相关系。该模型主要关切系统中对象的构造,属性和操作,运用了对象图的工具来刻划,它是分析阶段三个模型的核心。 属性指的是类中对象所具有的性质

    注意事项

    本文(软件工程自考复习资料.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开