1、电大软件工程期末复习资料重点第一章 软件工程概述 1软件产品的特性是什么?产品特性:是一种逻辑产品,和物质产品有很大的区别.软件产品的生产重要是研制,生产成本重要在开发和研制,开发研制完毕后,通过复制就产生了大量软件产品.软件产品不会用坏,不存在磨损,消耗.生产重要是脑力劳动,还末完全摆脱手工开发方法,大部分产品是定做的开发软件的费用不断增长,致使生产成本相称昂贵.2软件生产有几个阶段?各有何特点?程序设计时代:这个阶段生产方法是个体劳动,使用的生产工具是机器语言,汇编语言.程序系统时代:这个阶段生产方法是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法.
2、软件工程时代:这个阶段生产方法是工程化的生产,使用数据库开发工具开发环境网络分布式面向对象技术来开发软件.3什么是软件危机?重要表现在哪些方面?软件开发技术的进步未能满足发展的规定.在软件开发中碰到的问题找不到解决的办法,问题积累起来,形态锋利的矛盾,导致了软件危机.表现方面:(1)用户对开发出的软件很难满意.(2)软件产品的质量往往靠不住.(3)通常软件很难维护.(4)软件生产效率很低.(5)软件开发成本越来越大.(6)软件成本和开发进度难以估计.(7)软件技术的发展远远满足不了计算机应用的普及和进一步的需要.4什么是软件工程?它目的和内容是什么?软件工程:就是用科学的知识工程和技术原理来定
3、义,开发,维护软件的一门学科.软件工程的目的:付出较低开发成本;达成规定的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能准时完毕开发任务,及时交付使用;开发的软件可靠性高.软件工程的内容:研究内容包含开发技术和开发管理两个方面.开发技术重要研究:软件开发方法,开发过程,开发工具和环境.开发管理重要研究:软件管理学,软件经济学,软件心理学.5软件工程面临的问题是什么?软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用.6什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发规定开始直到该软件报废为止的整个时期.包含:可行性分析和项目开发计
4、划,需求分析,概要设计,具体设计,编码,测试,维护.7什么是软件生存周期模型?有哪些重要模型?生存周期模型:描述软件开发过程中各种活动如何执行的模型.对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参和开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心.重要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型.8什么是软件开发方法?有哪些重要方法?使用早已定义好的技术集及符号表达习惯来组织软件生产的过程.通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件.软件开发方法是克服软件危机的重要方面之
5、一,对软件工程及软件包产业的发展起了不可估量的作用.重要有:结构化方法,JACKSON方法,维也纳开发方法VDM,面向对象开发方法.9、软件工程方法学包含3个要素分别是什么?分别是:方法、工具和过程. 方法是完毕软件开发的各项任务的技术方法,回答”如何做”的问题; 工具是为运用方法而提供的自动的或半自动的软件工程支撑环境; 过程是为了获得高质量的软件所需要完毕的一系列任务的框架,它规定了完毕各项任务的工作环节.10、什么是软件过程?为了获得高质量软件所需要完毕的一系列任务的框架,规定了完毕各项任务的工作环节.在完毕开发任务时必须进行一些开发活动,并且使用适当的资源,在过程结束时将把输入转化为输
6、出.11、瀑布模型的特点及优点?特点: (1)各个阶段的顺序性和依赖性; (2)划分逻辑设计和物理设计,尽也许推迟程序的物理实现; (3)每个阶段必须完毕规定的文档,对其中问题通过复审及早发现,及早解决.优点: 可逼迫开发人员采纳规范的方法例如,结构化技术; 严格地规定了每个阶段必须提交的文档; 规定每个阶段交出的所有产品都必须通过质量保证小组的仔细验证.12、螺旋模型的优点? 对可选方案和约束条件的强调有助于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目的; 减少了过多测试浪费资金或测试局限性产品故障多所带来的风险; 在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本
7、质区别.螺旋模型重要合用于内部开发的大规模软件项目.项目越大,风险也越大,因此,进行风险分析的必要性也越大.此外,只有内部开发的项目,才干在风险过大时方便地中止项目.13、快速原型的分类、特点及使用方法?分类:探索型、实验型、进化型特点:尽快向用户提供一个可在计算机上运营的目的系统的模型,以便使用户和开发者在目的系统应当”做什么”这个问题上尽也许快地达成共识. 快速原型应当具有的第一个特点是”快速”; 快速原型应当具有的第二个特点是”容易修改”.原型的”修改试用反馈”过程也许反复多遍.使用方法:废弃方法和追加方法.14、软件工程的目的?付出较低开发成本;达成规定的功能;取得较好的性能;开发的软
8、件易于移植;只需较低的维护费用;能准时完毕开发任务,及时交付使用;开发的软件可靠性高.15、软件开发技术重要研究内容?软件开发方法,开发过程,开发工具和环境.16、软件开发管理重要研究内容?软件管理学,软件经济学,软件心理学.17、快速原型开发的环节?快速开发、需求、构造原形、原形、运营原形、评价原形、修改意见.18、某计算机系统投入使用后、5年内每年可节省人民币2O0O元,假设系统的投资额为5000元,年利率为12.试计算投资回收期和纯收入.第二章 可行性研究1、可行性研究的任务是什么?可行研究的任务:一方面需要进行概要的分析研究,初步拟定项目的规模,目的,约束和限制.分析员再进行简要的需求
9、分析,抽象出项目的逻辑结构,建立逻辑模型.从逻辑模型出发,通过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性.重要从四个方面考虑:、技术可行性:通常要考虑的情况包含开发的风险即设计出的系统能否达成规定的功能和性能;资源的有效性;相关技术的发展是否支持;、经济可行性:进行开发成本的估算以及了解取得效益的评估,拟定要开发的项目是否值得投资.、法律可行性:要开发的项目是否存在任何侵权问题.(4)、管理可行性:运营方法在用户组织内是否可行,现有管理制度人员素质操作方法是否可行.2、可行性研究有哪些环节?、拟定项目规模和目的;、研究正在运营的系统;收集研究分析现有系统的文档
10、资料,实地考察系统访问有关人员,然后描绘现有系统的高层系统流程图.、建立新系统的高层逻辑模型;使用数据流图和数据字典描述数据在系统中的流动和解决情况.、导出和评价各种方案;导出若干较高层次的物理解决方法,依据技术可行性经济可行性社会可行性进行评估,得到可行的解决方法.、推荐可行方案;进行成本效益分析,决定该项目是否值得开发,若值得开发那么解决方案是什么,并且说明该方案可行的因素和理由.、编制可行性研究报告;将上述可行性过程的结果写成相应文档,即可行性研究报告.3、可行性研究过程包含哪些?1、复查系统规模和目的2、研究目前正在使用的系统3、导出新系统的高层逻辑模型4、进一步定义问题5、导出和评价
11、供选择的解法6、推荐行动方针7、草拟开发计划8、书写文档提交审查4、什么是数据流图?其作用是什么?数据流图DFD:以图形的方法描述数据在系统中流动和解决的逻辑过程.只反映系统必须完毕的逻辑功能,是一种功能模型.5、什么是数据字典?其作用是什么?共有哪些条目?数据字典DD用来定义数据库流图中的各个成分的具体含义.有以下四类条目:数据流,数据项,数据存储,基本加工.6、成本-效益分析可用哪些指标进行度量?、投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率.、投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间.、纯收入:整个生存周期之
12、内的累计经济效益折成现在值和投资之差.7、某图书管理系统有以下功能:借书:输入读者借书证.系统一方面检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案.否则,查阅借书文献,检查该读者所借图书是否超过10本,若已达10,拒借,末达10本,办理借书检查库存,修改库存目录并将读者借书情况录入借书文献.还书:从借书文献中读出和读者有关的记录,查阅所借日期,如超期3个月作罚款解决.否则,修改库存目录和借书文献.查询:通过借书文献,库存目录文献查询读者情况图书借阅及库存情况,打印登记表.解:8、某银行的计算机储蓄系统功能是:将储户的存户填写的存款单或存款单输入系统,假如是存款,系统记录存
13、款人姓名住址存款类型存款日期利率等信息,并打印出存款单给储户;假如是取款,系记录算清单给储户.请用DFD,IDEF0描绘该功能的需求,并建立相应数据字典.9、一个考务解决系统的规定如下,试画出该系统的数据流图.1对考生送来的报名表进行检查;2对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站;3对阅卷站送来的成绩表进行检查,并依据考试中心指定的合格标准审定合格者;4填写考生告知单内容包含考试成绩及合格不合格标志,送给考生;5按地区、年龄、文化限度、职业、考试级别等进行成绩分类记录及试题难度分析,产生记录分析表.1顶层数据流图2第1层数据流图3第2层数据流图加工1子图
14、:加工2子图:10、系统流程图是概括地描绘物理系统的传统工具,表达的是数据在系统各部件之间流动的情况,11、原型化方法重要用于解决什么问题?试说明这种方法的重要优缺陷.原型化方法重要用于解决在产品开发的初期阶段需求不拟定的问题,用户、经理和其他非技术项目风险承担者发现在拟定和开发产品时,原型可以使他们的想象更具体化.这种方法的重要优点如下:1明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分,用户对原型的评价可以指出需求中的许多问题.2探索设计选择方案原型作为一种设计工具,可以探索不同的用户界面技术,使系统达成最佳的可用性,并且可以评价也许的技术方案.3发展为最终的产品原型作为
15、一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,您可以完毕整个产品的开发.4这种方法的重要缺陷包含:1用户看到一个正在运营的原型便认为产品即将完毕,他们会规定不再进行产品重建,而只是对原型进行一些修改就交付.由于原型没有考虑软件的总体质量和可维护性,交付原型往往导致欲速则不达的情况.2开发人员为了快速构造原型,也许会采纳不合适的操作系统或程序设计语言,也也许使用一些效率低的算法.在一段时间的开发之后,他们往往已经习惯了这些选择,于是便在系统中参杂了这些不抱负的选择.第三章 需求分析1、什么是需求分析?需求分析阶段的基本任务是什么?需求分析:开发人员准确地理解用户的规定,
16、进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程.基本任务:问题辨认:双方拟定对问题的综合需求,这些需求包含功能需求,性能需求,环境需求,用户界面需求.分析和综合,导出软件的逻辑模型.编制文档:包含编制需求规格说明书,初步用户使用手册,确认测试计划,修改完善软件开发计划.2、什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法.采纳自顶向下逐层分解的分析方法.顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节.中间层则是从抽象到具体的过渡.使用数据流图,数据字典,作为描述工具,使用结构化语
17、言,鉴定表,鉴定树描述加工逻辑.3、结构化分析方法通过哪些环节来实现?了解当前系统的工作流程,获得当前系统的物理模型.抽象出当前系统的逻辑模型.建立目的系统的逻辑模型.作进一步补充和优化.4、E-R图中包含哪几种种基本成分?实体(即数据对象)、关系和属性5、联系可分为哪几种类型?一对一联系(11),一对多联系(1N),多对多联系(MN)6、为什么要进行数据结构规范化?为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程.7、第一范式每个属性值都必须是原子值,即仅仅是一个简朴值而不含内部结构.8、第二范式满足第一范式条件,并且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来
18、决定),消除了非关键字属性对关键字属性的部分依赖.9、第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,并且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值),消除了非关键字属性对关键字属性的传递依赖.10、S-L-C(SNO,SDEPT,SLOC,CNO,G),这里SNO表达学号,SDEPT表达系名,SLOC表达楼号,CNO表达课程号,G表达成绩.函数依赖有:(SNO,CNO)G;SDEPTSLOC;SNOSDEPT,对关系进行规范化,达成三范式规定.1SC(SNO,CNO,G)和2S-D(SNO,SDEPT,)(3)S
19、-L(SDEPT,SLOC)11、状态转换图状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表达系统的行为.提供了行为建模机制.12、层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构.树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素).13、IPO图IPO图是输入、解决、输出图的简称,可以方便地描绘输入数据、对数据的解决和输出数据之间的关系.14、从哪些方面验证软件需求的对的性(1)一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾
20、.(2)完整性需求必须是完整的,规格说明书应当包含用户需要的每一个功能或性能.(3)现实性指定的需求应当是用现有的硬件技术和软件技术基本上可以实现的.对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性.(4)有效性必须证明需求是对的有效的,的确能解决用户面对的问题.第四章 总体设计1、什么是总体设计?总体设计的任务是什么?总体设计又称为概要设计或初步设计.拟定系统功能是实现.基本任务是:建立软件系统结构划分模块、定义模块功能、模块间的调用关系、定义模块的接口、评价模块的质量、数据结构和数据库的设计数据结构设计、概念设计、逻辑设计、物理设计、编制
21、概要设计文档概要设计说明书、用户手册、数据库设计说明书、修订测试计划.2、总体设计分为哪两个阶段?系统设计阶段,拟定系统的具体实现方案;结构设计阶段,拟定软件结构.3、总体设计过程包含几个环节?1、设想供选择的方案2、选取合理的方案3、推荐最佳方案4、功能分解5、设计软件结构6、设计数据库7、制定测试计划8、书写文档9、审查和复审4、模块化是把程序划提成独立命名且可独立访问的模块,每个模块完毕一个子功能,把这些模块集成起来构成一个整体,可以完毕指定的功能满足用户的需求.5、模块化的优点1模块化使软件容易测试和调试,因而有助于提高软件的可靠性.2模块化也有助于软件开发工程的组织管理.6、抽象就是
22、抽出事物的本质特性而暂时不考虑它们的细节.7、抽象化包含哪些?过程的抽象、数据抽象.8、模块的独立限度的定性标准度量是什么?好的模块应满足什么标准?内聚和耦合;高内聚低耦合.9、什么耦合?模块间的耦合有哪些?指衡量不同模块彼此间互相依赖(连接)的紧密限度;有非直接耦合、标记耦合、数据耦合、控制耦合、外部耦合、公共耦合和内容耦合.10、非直接耦合假如两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合.这种耦合的模块独立性最强.11、标记耦合假如一组模块通过参数表传递记录信息,就是标记耦合.这个记录是某一数据结构的子结构,而不是简朴变量.12、数据耦合假
23、如一个模块访问另一个模块时,彼此之间是通过简朴数据参数(不是控制参数、公共数据结构或外部变量)来互换输入、输出信息的,则称这种耦合为数据耦合.13、控制耦合假如一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合.14、外部耦合一组模块都访问同一全局简朴变量而不是同一全局数据结构,并且不是通过参数表传递该全局变量的信息,则称之为外部耦合.15、公共耦合若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合.公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等.16、内容耦合假如发生下面情形,两个模块之间就发生了内容耦合(1)一个模块直
24、接访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一模块内部;(3)两个模块有一部分程序代码重迭(只也许出现在汇编语言中);(4)一个模块有多个入口.17、内聚衡量一个模块内部各个元素彼此结合的紧密限度.功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,巧合内聚.19、功能内聚一个模块中各个部分都是完毕某一具体功能必不可少的组成部分,或说该模块中所有部分都是为了完毕一项具体功能而协同工作,紧密联系,不可分割的.则称该模块为功能内聚模块.20、信息内聚这种模块完毕多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点.这个模块将依据不同的规定,拟定该执行哪一
25、个功能.由于这个模块的所有功能都是基于同一个数据结构符号表,因此,它是一个信息内聚的模块.21、通信内聚假如一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块.通常,通信内聚模块是通过数据流图来定义的.22、过程内聚使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块.例如,把流程图中的循环部分、鉴定部分、计算部分提成三个模块,这三个模块都是过程内聚模块.23、时间内聚时间内聚又称为经典内聚.这种模块大多为多功能模块,但模块的各个功能的执行和时间有关,通常规定所有功能必须在同一时间段内执行.例如初始化模块和终止模块.24、逻辑
26、内聚这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的鉴定参数来拟定该模块应执行哪一种功能.25、巧合内聚巧合内聚又称为偶尔内聚.当模块内各部分之间没有联系,或即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚限度最低的模块.26、扇出是一个模块直接控制(调用)的模块数目.27、扇入一个模块的扇入表白有多少个上级模块直接调用它.28、模块的作用域定义为受该模块内一个鉴定影响的所有模块的集合.29、模块的控制域是这个模块自身以及所有直接或间接从属于它的模块的集合.30、模块化的优点. 模块化使软件容易测试和调试,因而有助于提高软件的可靠性,提高软件的可修改性. 模块
27、化也有助于软件开发工程的组织管理.31、逐步求精、分层过程和抽象等概念之间的互相关系如何?“自顶向下,逐步求精”是NiklausWirth提出的设计方法:即将软件的体系结构按自顶向下方法,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句可以实现为止,从而最后确立整个的体系结构.这样的结构实际就是一个模块的分层结构,即分层的过程.在实行时,采纳抽象化的方法,自顶向下,给出不同的抽象层次.在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法.而在较低的抽象层次上,则采纳过程化的方法.在描述问题的解法时,我们可以配合使用面向问题的术语和面向现实的术语.但最后在最低的抽象
28、层次上,应使用可以直接实现的方法来描述这个解法.32、什么是软件结构图?简述软件结构设计优化准则.软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系.准则:高内聚低耦合、作用范围在控制范围内、软件的深度、宽度、扇入、扇出适当、模块大小适中、接口简朴清楚易懂.33、什么是模块的控制范围和作用范围?他们的关系如何?控制范围:是模块自身和它的下属模块的集合.作用范围:模块中的一个鉴定影响的所有模块的集合.作用范围应当在控制范围内.33、什么是变换流?什么是事物流?变换流由输入、变换或解决、输出三部分组成.事物流某个加工将它的输入流分离成许多发散的数据流,形成许多加工途径,并依据输
29、入选择其中一个途径来执行.34、试述变换分析事物分析设计环节.变换分析设计环节:拟定变换中心,逻辑输入和输出.设计软件结构的顶层和第一层-变换结构:顶层的功能是完毕所有模块的控制名称应是系统名,以体现完毕整个系统功能第一层至少有三种功能模块:输入输出和变换模块设计中下层模块,对第一层的模块自顶向下分解.输入模块由两部分组成:接受数据转换成调用模块所需信息.输出模块由两部分组成:将数据转换成下属模块所需的形式发送数据变换模块:对每个基本加工建立一功能模块设计的优化:输入部分求精,每个物理输入设立专门模块,以体现系统的外部接口.其它输入模块和转换数据模块都很简朴时,可将它们合并.输出部分求精:每个
30、物理输出设立专门模块,其它也可适当合并.变换部分求精:依据设计准则,对模块适当合并.事务分析的设计环节:拟定事务中心和加工途径设计顶层事务机构和第一层顶层模块有两个功能:接受数据和依据事务类型调动相应解决模块.中下层模块的设计优化工作和变换结构相同.事务型软件结构包含两部分:接受分支发送分支出通常包含一调度模块,当事务类型不多时,可和主模块合并.35、请将下图的DFD转换为软件结构图.解:第五章 编码和测试1、软件测试的目的是什么?软件测试中,应注意哪些原则?答:软件测试的目的是为了发现软件的错误.软件测试中应注意的原则有:(1)测试用例应由输入数据和预期的输出数据两部分组成.这样便于对照检查
31、,做到有的放矢.(2)测试且例不仅选用合理输入数据,还要选择不合理的输入数据.这样能更多地发现错误,提高程序的可靠性.对于不合理的输入数据,程序应拒绝接受,并给出相应的提醒.(3)除了检查程序是否做了它应当做的事,还应当检查程序是否做了它不应当做的事.(4)应制定测试计划并严格执行,排除随意性.(5)长期保存测试用例.(6)对发现错误较多的程序段,应进行更进一步的测试.(7)程序员应避免测试自己的程序.测试是一种挑剔性的行为,心理状态是测试自己程序的障碍.2、什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行比较?答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和
32、解决过程,以检查解决过程的细节为基础,对程序中尽也许多的逻辑途径进行测试,检查内部控制结构和数据结构是否有错,实际的运营状态和预期的状态是否一致.白盒法有下面几种覆盖标准: 语句覆盖:设计若干个测试用例,运营被测程序,使得每一可执行语句至少执行一次. 鉴定覆盖:设计若干个测试用例,运营被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次. 条件覆盖:设计若干个测试用例,运营被测程序,使得程序中每个判断的每个条件的也许取值至少执行一次. 鉴定/条件覆盖:设计足够的测试用例,使得判断中每个条件的所有也许取值至少执行一次,同时每个判断中的每个条件的也许取值至少执行一次. 条件组合覆盖:设计足
33、够的测试用例,运营被测程序,使得每个判断的所有也许的条件取值组合至少执行一次. 途径覆盖:设计足够的测试用例,覆盖程序中所有也许的途径.从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准.在实际的逻辑测试中,通常以条件组合覆盖为主设计测试用例,然后再补充部分用例来达成途径覆盖的测试标准.3、什么是黑盒测试法?采纳黑盒技术测试用例有哪几种方法?这些方法各有什么特点?答:黑盒测试法把被测试对象当作是一个黑盒子,测试人员完全不考虑程序的内部结构和解决过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能规定.采纳黑
34、盒技术测试用例的方法有:等价类的划分、边界值分析、错误推断和因果图. 等价类的划分:是将输入数据按有效的或无效的(也称合理的或不合理的)划提成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试.这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率.但这个方法的缺陷是没有注意选择某些高效的、可以发现更多错误的测试用例. 边界值分析法:是将测试边界情况作为重点目的,选取正好等于、刚刚大于和刚刚小于边界值的测试数据.(边界情况是指输入等价类和输入等价类边界上的情况.)这种方法可以查出更多的错误,由于在程序中往往在解决边界情
35、况时易发生错误. 错误推断法:是在测试程序时,人们依据经验或直觉推断程序中也许存在的错误,从而有针对性地编制检查这些错误的测试用例. 因果图:可以有效地检测输入条件的各种组合也许会引起的错误.它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为鉴定表,最后为鉴定表的每一列设计一个测试用例.这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用.综合方法:就是联合使用上述几种测试方法,尽也许多地发现程序中的错误.4、软件测试要通过哪些环节?这些测试和软件开发各阶段之间有什么关系?答:软件测试要通过的环节是:单元测试集成测试确认测试系统测试. 单元测试:对源程序中每一
36、个程序单元进行测试,检查各个模块是否正的确现规定的功能,从而发现模块在编码中或算法中的错误.该阶段涉及编码和具体设计文档. 集成测试:是为了检查和设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效. 确认测试:重要是检查已实现的软件是否满足需求规格说明书中拟定了的各种需求. 系统测试:是把已确认的软件和其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试.以拟定软件是否可以支付使用.5、单元测试有哪些内容?测试中采纳什么方法?答:单元测试重要针对模块的以下五个基本特点进行测试:(1)模块接口(2)局部数据结构(3)重要的执行途径(4)错误解决(5)边界条件测试的方
37、法是为被测试模块编制驱动模块和桩模块来实现被测试单元的可运营.通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接受被测模块的测试结构并输出.桩模块则用来代替被测试模块所调用的模块.它的作用是返回被测模块所需的信息.6、什么是集成测试?非渐增式测试和渐增式测试有什么区别?渐增式测试如何组装模块?答:集成测试是指在单元测试的基础上,将所有模块按照设计规定组装成一个完整的系统进行的测试.非渐增式测试是指一方面对每个模块分别进行单元测试,再把所有模块组装成一个完整的系统进行的测试.而渐增式测试就是逐个把未经测试的模块组装到已通过测试的模块上去进行集成测试,每加入一
38、个新模块进行一次集成测试,反复此过程直到程序组装完毕.渐增式测试有两种不同的组装方法:自顶向下和自底向上结合.两者区别是:(1)非渐增式方法把单元测试和集成测试提成两个不同的阶段,前一阶段完毕模块的单元测试,后一阶段完毕集成测试.而渐增式测试往往把单元测试和集成测试合在一起,同时完毕.(2)非渐增式需要更多的工作量,由于每个模块都需要驱动模块和桩模块,而渐增式运用已测试过的模块作为驱动模块或桩模块,因此工作量少.(3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现.(4)渐增式有助于排错,发生错误往往和最近新加入的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口
39、犯错.(5)渐增式比较彻底,已测试的模块和新的模块再测试.(6)渐增式点用时间较多,但非渐增式所需更多的驱动模块和桩模块也占用一些时间.(7)非渐增式开始可并行测试所有模块,能充足运用人力,对测试大型软件很故意义.7、什么是确认测试?该阶段有哪些工作?答:确认测试又称有效性测试.它的任务是检查软件的功能和性能是否和需求规格说明书中拟定的指标相符合.因而需求说明是确认测试的基础.确认测试阶段有两项工作:进行确认测试和软件配置审查.8、调试的目的是什么?调试有哪些技术手段?答:调试则是在进行了成功的测试之后才开始的工作.调试的目的是拟定错误的因素和位置,并改正错误,因此调试也称为纠错(Debug)
40、.调试的技术手段有简朴的调试方法、归纳法、演绎法和回溯法等.9、将对的答案的编号填入题目空白处:在白盒测试用例中,有语句覆盖、条件覆盖、鉴定覆盖、途径覆盖等,其中(A)是最强的覆盖准则.为了对下图所示的程序进行覆盖测试,必须适本地选取测试数据.若X,Y是两个变量,可供选择的测试数据组共有I,II,III,IV四组(如表中给出),则实现语句覆盖至少应采纳的测试数据组是(B);实现条件覆盖至少应采纳的测试数据组是(C);实现途径覆盖至少应采纳的测试数据组是(D)或(E).可供选择的答案:A:(1)语句覆盖(2)条件覆盖(3)鉴定覆盖(4)途径覆盖BE:(1)I和II组(2)II和III级(3)II
41、I和IV组(4)I和IV组(5)I、II和III组(6)II,III和IV组(7)I,III和IV组(8)I、II和IV组答:A:(4)B:(1)C:(4)D:(5)E:(8)10、请对”鉴定三角形类别”程序算法用等价类划分和边界值分析法设计测试用例,并检查逻辑覆盖标准.解:先划分等价类并编号:为合理等价类设计测试用例,对于表中相应的四个合理等价类,用三个测试用例覆盖.为每一个不合理等价类设计一个测试用例:用边界值法设计测试用例:11、某”调整工资”解决模块接受一个”职称”的变量,依据职称的不同助教,讲师,副专家,专家作不同的解决,其中若是助教还必须输入工龄,只有工龄超过两年才干调整工资.请用
42、等价类划分法设计测.1、划分等价类:计测试用例:第七章软件维护1、软件维护有哪些内容?答:1校正性维护.在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来.为了辨认和纠正错误,修改软件性能上的缺陷,应进行拟定和修改错误的过程,这个过程就称为校正性维护.2适应性维护.为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护.3完善性维护.为增长软件功能、增强软件性能、提高软件运营效率而进行的维护活动称为完善性维护.4防止性维护.为了提高软件的可维护性和可靠性而对软件进行的修改称为防止性维护.2、软件维护的特点是什么?答:重要体现在三个方面:1非
43、结构化维护和结构化维护.软件的开发过程对软件的维护有很大的影响.若不采纳软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护.若采纳软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护.2维护的困难性.软件维护的困难性是由于软件需求分析和开发方法的缺陷.软件生存周期中的开发阶段没有严格而又科学的管理和规划,就会引起软件运营时的维护困难.3软件维护的费用.软件维护的费用在总费用中的比重是在不断增长的,这是软件维护有形的代价.此外尚有无形的代价,即要占有更多的资源.软件维护费用增长的占有因素是软件维护的生产率非常低.3、软件维护
44、的流程是什么?答:软件维护的流程如下:提交维护申请报告、审查申请报告并批准、运营维护并做具体记录、复审.4、软件维护的副作用有哪些?答:维护的副作用有以下三种:1编码副作用.在使用程序设计语言修改源代码时也许引入的错误.2数据副作用.在修改数据结构时,有也许导致软件设计和数据结构不匹配,因而导致软件错误.数据副作用是修改软件信息结构导致的结果.但它可以通过具体的设计文档加以控制.3文档副作用.假如对可执行软件的修改没有反映在文档中,就会产生文档副作用.5、什么是软件可维护性?可维护性度量的特性是什么?答:软件可维护性的定义:软件可以被理解、校正、适应及增强功能的容易限度.软件的可维护性可用以下
45、七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率.6、提高可维护性的方法有哪些?答:1建立明确的软件质量目的.2使用先进的软件开发技术和工具.3建立明确的质量保证.4选择可维护性的程序设计语言.5改善程序的文档.第六章 具体设计1、 具体设计的基本任务是什么?有那几种描述方法?设计模块的数据结构、设计数据库的物理结构、设计模块的具体算法、其它代码设计、输入/输出格式设计、人机对话设计、编制具体设计说明书、评审.程序流程图、PAD图、PDL.2、请使用流程图、PAD图和PDL语言描述下面程序的算法.(1)在数据A(1)A(10)中求最大数和次大数.PDL语言描
46、述:GET(a1,a2,、a10)max=a1;max2=a2;FORi=2TO10IFaimaxmax2=max;max=ai;ELSEIFaimax2max2=ai;ENDIFENDIFENDFORPUT(max,max2)END3、输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是通常三角形.使用流程图、PAD图和PDL语言描述.解:如图:PDL语言描述如下:GET(a,b,c)IF(a+bcandb+caandc+ab)IF(a=b)IF(a=c)PUT(等边三角形)ELSEPUT(等腰三角形)ENDIFELSEIF(a=c)PUT(等腰三角形)ELSEIF(b=c)PUT(等腰三角形)ELSEPUT(通常三角形)ENDIFENDIFENDIFELSEPUT