




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机软件技术第一部分软件工程计算机软件技术第一部分软件工程计算机软件技术第一部分软件工程学习指导信息同学们在学习本课程的过程中应当注意基本概念、基本方法、算法的阅读理解和算法的设计等方面。软件工程主要涉及基本概念和基本方法;数据结构涉及基本概念、基本方法、算法的阅读理解和算法的设计。在学习过程中可以通过课件的内容、例题、习题来理解和掌握。2电子工程学院计算机软件技术第一部分软件工程计算机软件技术第一部分软件1学习指导信息
同学们在学习本课程的过程中应当注意基本概念、基本方法、算法的阅读理解和算法的设计等方面。软件工程主要涉及基本概念和基本方法;数据结构涉及基本概念、基本方法、算法的阅读理解和算法的设计。在学习过程中可以通过课件的内容、例题、习题来理解和掌握。2电子工程学院学习指导信息同学们在学习本课程的过程中应当注意基本概第一部分软件工程第一部分软件工程3软件工程的教学目的和要求
掌握软件生命周期各阶段的划分,各阶段的主要任务以及所建立的软件文档。能够采用结构化分析、结构化设计和结构化程序设计的方法开发软件,掌握软件测试的步骤和方法,了解软件维护的基本概念。4电子工程学院软件工程的教学目的和要求掌握软件生命周期各阶段的划分,软件工程目录软件和软件工程的基本概念软件生命周期结构化的软件开发方法软件测试
软件维护
作业5电子工程学院软件工程目录软件和软件工程的基本概念5电子工程学院一、软件和软件工程的基本概念软件的特点软件是一种逻辑产品。软件产品的生产主要是研制。软件产品不会损坏,不存在磨损、消耗问题。软件产品的生产主要是脑力劳动、手工开发方式,大部分产品是“定做”的。软件开发成本不断提高。6电子工程学院一、软件和软件工程的基本概念软件的特点6电子工程学院故障率磨合磨损时间硬件的故障曲线7电子工程学院故障率磨合磨损时间硬件的故障曲线7电子工程学院硬件的故障曲线软件的理想曲线与实际故障曲线故障率修改由副作用造成故障率的提高时间实际曲线理想曲线软件的理想曲线与实际故障曲线8电子工程学院硬件的故障曲线软件的理想曲线与实际故障曲线故障率修改由副
软件危机是指在软件的开发和维护过程中所遇到的一系列严重问题。几乎所有软件都不同程度地存在以下问题:对软件开发成本和进度不可控制。用户对“已完成的”软件往往不满意。软件产品的质量不可靠。软件的可维护性差。软件的文档资料不齐备。软件成本在计算机系统总成本中所占的比例过高。软件开发的生产率低。软件危机的含义9电子工程学院软件危机是指在软件的开发和维护过程中所遇到的一
软件危机的产生一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。消除软件危机的途径研究探索软件开发的技术措施,采用先进的软件开发方法和软件开发工具。加强软件开发过程中的组织管理措施。软件工程正是从技术和管理两个方面研究如何更好地开发和维护计算机软件的一门新兴学科。产生软件危机的原因10电子工程学院软件危机的产生一方面与软件本身的特点有关,另一
采用工程的概念、原理、技术和方法来开发与维护软件。把经过时间考验而证明正确的管理方法和当前最好的软件开发技术结合起来,以较低的成本开发出高质量的软件并能够有效的对软件进行维护。软件工程的概念11电子工程学院采用工程的概念、原理、技术和方法来开发与维护软将软件生命周期划分阶段,严格管理软件的开发与维护。坚持进行阶段评审。实行严格的产品控制。采用现代化的软件开发技术。能够清楚的审查软件各个阶段的结果。开发小组的人员应该少而精。承认不断改进软件工程实践的必要性。软件工程的基本原理12电子工程学院将软件生命周期划分阶段,严格管理软件的开发与维护。软件工程
在软件生命周期全过程中使用的一整套技术的集合称为软件工程方法学。软件工程方法学包括以下三个要素:方法:完成软件开发的各项任务的技术方法。工具:为方法的运用提供自动或半自动的软件支撑环境。过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程方法学13电子工程学院在软件生命周期全过程中使用的一整套技术的集合称
软件工程方法学分为结构化方法、Jackson方法、维也纳方法、面向对象方法。其中结构化方法和面向对象方法使用最为广泛,又称为软件工程的传统方法学和面向对象方法学。本课程主要介绍结构化方法。常用的软件工程方法学14电子工程学院软件工程方法学分为结构化方法、Jackson【例】软件产品管理包括版本管理和
。答案:开发过程管理
软件与物质产品的区别在于软件是一种
产品。答案:逻辑
目前经常采用的软件工程方法学,是
和
。答案:传统方法学、面向对象方法学15电子工程学院【例】软件产品管理包括版本管理和。1二、软件生命周期软件生命周期各阶段的划分,以及各个阶段任务:问题定义问题定义阶段的任务是确定所要开发的目标系统应当解决的问题是什么。2.可行性研究在确定了目标系统应当解决的问题之后,从技术、经济和社会因素三个方面分析问题是否能够解决,以及是否值得解决。16电子工程学院二、软件生命周期软件生命周期各阶段的划分,以及各个阶段任务
需求分析阶段的任务是在充分了解用户对目标系统的需求之后,确定目标系统应当具有什么功能,而这些功能如何实现在这个阶段并不考虑。本阶段的另外一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为系统规格说明书或需求规格说明书。3.需求分析17电子工程学院需求分析阶段的任务是在充分了解用户对目标系统的这个阶段的基本任务是概括地回答怎样实现目标系统的功能。概要设计又称为总体设计。概要设计的另一项主要任务就是设计目标系统的模块结构图或功能结构图,确定目标系统由哪些模块组成以及模块之间的调用和被调用关系。5.详细设计详细设计阶段设计模块内部的逻辑和数据结构。这个阶段的任务还不是编写程序代码。4.概要设计18电子工程学院这个阶段的基本任务是概括地回答怎样实现目标系统的功能
这个阶段是根据详细设计的结果,采用程序设计语言遍写出程序代码。7.测试测试阶段的任务是通过各种类型的测试及相应的调试,使软件达到预定的要求。8.维护维护是在系统运行阶段进行的,通过各种必要的维护活动使系统持久地满足用户的需要。6.
编码19电子工程学院这个阶段是根据详细设计的结果,采用程序设计语言
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段进行的顺序。1.瀑布模型瀑布模型清楚地区分系统的逻辑设计与物理设计,尽可能推迟系统的物理实现。每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。软件生命周期的模型20电子工程学院生命周期模型规定了把生命周期划分成哪些阶段及需求分析验证概要设计验证详细设计验证编码验证综合测试维护变化的需求验证
当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后,再回来继续完成后面阶段的任务。瀑布模型适合于在用户需求明确、开发技术成熟、工程管理严格的场合使用。由于任务顺序固定,瀑布模型的缺点是软件研制周期长,纠正前期错误的代价高。带有反馈环的瀑布模型21电子工程学院需求分析概要设计详细设计编码综合测试维护变化的需求当在瀑布模型的开发过程22电子工程学院瀑布模型的开发过程22电子工程学院
快速原型模型是快速建立起可以在计算机上运行的程序,它所具有的功能往往只是最终软件产品功能的一个子集。快速原型模型首先建立一个能反映用户主要需求的原型系统,让用户试用它,通过试用,用户可以了解目标系统的概貌。软件人员根据用户的意见对原型进行修改,然后再次请用户试用……,直到能够满足用户的需求为止。这样所开发的软件可以满足用户的真实需求。快速原型模型适合在用户需求不明确的情况下开发软件。2.快速原型模型23电子工程学院快速原型模型是快速建立起可以在计算机上运行的程快速原型模型的开发过程24电子工程学院快速原型模型的开发过程24电子工程学院
使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。下面给出增量模型的开发过程。3.增量模型25电子工程学院使用增量模型开发软件时,把软件产品作为一系列的需求分析验证规格说明验证概要设计验证维护针对每个构件,完成详细设计、编码和集成,经测试后交付给用户增量模型的开发过程26电子工程学院需求分析规格说明概要设计维护针对每个构件,完成详细设计、编码【例】软件生命周期是指一个软件从提出开发要求开始直到
为止的整个时期。答案:报废瀑布模型属于整体开发模型,增量模型属于
开发模型。答案:非整体
说明软件文档的概念。答案:软件文档是有关软件的功能、设计使用的文字和图形资料。说明快速原型模型的优点。答案:能够及早发现问题,随时纠正错误;减少技术应用风险,提高生产率;适应需求变化,能够有效提高系统质量。27电子工程学院【例】软件生命周期是指一个软件从提出开发要求开始直到三、结构化的软件开发方法
结构化的软件开发方法包括结构化分析(SA方法)、结构化设计(SD方法)和结构化程序设计(SP方法)。
SA方法用于需求分析阶段;
SD方法用于总体设计阶段;
SP方法用于详细设计及编码阶段。28电子工程学院三、结构化的软件开发方法结构化的软件开发方法包括结1.需求分析的任务需求分析是发现、求精、建模、规格说明和复审的过程。系统分析员首先要准确地了解用户当前的情况和需要解决的问题,然后反复求精多次细化。最终以软件需求规格说明书的形式完整、准确和具体的表示出用户对目标系统的要求。软件需求规格说明书可以作为软件开发人员与用户之间的软件开发合同,又是软件最终验收的依据。3.1需求分析29电子工程学院1.需求分析的任务3.1需求分析29电子工程学院
结构化分析实质上是一种创建模型的活动。通过需求分析而建立的模型必须达到下述的三个基本目标:(1)描述用户的需求。(2)为软件设计工作奠定基础。(3)定义一组需求,一旦开发出软件产品之后,就可以用这组需求作为标准验收软件。结构化分析所建立的模型包括:描述数据对象的实体-关系图;描述系统逻辑模型的数据流图;描述系统状态及状态转换的状态转换图。2.分析建模30电子工程学院结构化分析实质上是一种创建模型的活动。通过需求
实体-关系图来建立数据模型。其中包含了实体(即数据对象)、关系和属性等三种基本成分。(1)实体(数据对象)是具有一组性质或属性的复合信息,用矩形框表示;(2)实体间的关系用菱形框表示;(3)属性是实体或关系的性质,即实体或关系的值,用椭圆框表示。实体之间的关系分为1:1、1:N和M:N联系。实体-关系图(E-R图)31电子工程学院实体-关系图来建立数据模型。其中包含了实体(即【例】学校教学管理的E-R图32电子工程学院【例】学校教学管理的E-R图32电子工程学院
信息在系统流动,实质上经历了一系列的变换。数据流图描述了信息从输入到输出的一系列变换。数据流图具有四种成份:(1)系统的源点或终点:属于系统之外的人员或组织,用表示。(2)加工:具有逻辑加工能力,对数据进行变换处理,用或圆圈表示。(3)数据存储:用于存储数据,用表示。(4)数据流:系统中数据的流向,用表示。4.数据流图(DFD图)33电子工程学院信息在系统流动,实质上经历了一系列的变换。数据
结构化分析运用了“分解”和“抽象”的手段,采用“自顶向下,逐层分解”的分析思路,将系统的加工逻辑用分层数据流图(分层DFD图)来表示。S1321.11.2顶层数据流图0层数据流图1层数据流图分层数据流图34电子工程学院结构化分析运用了“分解”和“抽象”的手段,采
接受项目裁判送来的比赛成绩单,使用项目文件和运动员文件,将成绩录入到比赛成绩文件。成绩查询时根据运动员文件和比赛成绩文件产生项目比赛成绩,送大会秘书处。绘制运动会成绩处理的0层数据流图。【例】运动会成绩处理过程如下:35电子工程学院接受项目裁判送来的比赛成绩单,使用项目文件和运
数据字典用于对数据流图中的成份进行进一步精确、严格的定义,数据字典中的条目由数据流、数据存储和加工的定义组成。数据字典中所使用的符号如下:=表示等价于(或定义为)+表示和(即,连接两个分量)[|]表示或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号分开供选择的分量{}表示重复(即,重复花括弧内的分量)()表示可选(即,圆括弧里的分量可有可无
..表示数据的范围5.数据字典36电子工程学院数据字典用于对数据流图中的成份进行进一步精确、(1)描述身份证号的条目。身份证号=省+市+区(县)+出生日期+编号出生日期=年+月+日月=1..12日=1..31(2)描述班级考试成绩表的条目班级考试成绩表={学号+课程号+姓名+课程名+成绩}成绩=[优|良|中|及格|不及格]【例】数据字典条目举例。37电子工程学院(1)描述身份证号的条目。【例】数据字典条目举例。37电子工(1)结构化语言结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它是在自然语言的基础上增加一些限定,使用有限的词汇和有限的语句来描述加工逻辑,它的结构可分为外层和内层两层。外层:用来描述控制结构,采用顺序、选择、重复三种基本结构。内层:一般采用祈使语句。
对加工条目的描述称为小说明,可以采用结构化语言、判定表和判定树等形式。38电子工程学院(1)结构化语言对加工条目的描述称为小说明,可以采
在有些情况下,每个加工的一组动作依赖于多个逻辑条件的取值。用判定表能够更清晰、严谨地表示复杂的条件组合与相应动作之间的对应关系。判定表由四个部分组成。列出所有条件所有可能的动作各种条件组合的矩阵每种条件组合相对应的动作(2)判定表39电子工程学院在有些情况下,每个加工的一组动作依赖于多个逻辑
判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。【例】某工厂对部分职工重新分配工作的政策:
年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。
分别用结构化语言、判定表和判定树描述上述问题的加工逻辑。(3)判定树40电子工程学院判定树是判定表的变形,一般情况下它比判定表更直IF年龄<20THENIF文化程度=初中THEN脱产学习
ELSE工作为电工
ENDIFELSEIF年龄≤40THENIF文化程度=大学THEN工作为技术员
ELSEIF性别=男THEN工作为钳工
ELSE工作为车工
ENDIFENDIFELSEIF文化程度=大学THEN工作为技术员
ELSE工作为材料员
ENDIFENDIFENDIF(1)用结构化语言描述41电子工程学院IF年龄<20THEN(1)用结构化语言描述41电子
为了能够使判定表简洁,可以先采用条件取值表定义条件取值的符号。(2)用判定表描述42电子工程学院为了能够使判定表简洁,可以先采用条件取值表定义(3)用判定表描述43电子工程学院(3)用判定表描述43电子工程学院(3)用判定树描述44电子工程学院(3)用判定树描述44电子工程学院需求规格说明书的作用不包括()。
A.软件验收的依据
B.用户与开发人员对软件要做什么的共同理解
C.软件可行性研究的依据
D.软件设计的依据答案:C数据字典是用来定义__中的各个成份的具体含义的。()
A.流程图 B.功能结构图
C.系统结构图 D.数据流图答案:D【例】45电子工程学院需求规格说明书的作用不包括()。
A.软件验收的依据
B.民航计算行李托运费的算法行李重量不超过30公斤免费托运,对于超过30公斤部分,按以下规则收费:(1)国内非残疾头等舱乘客,每公斤收取4元;国内非残疾非头等舱乘客,每公斤收取6元。(2)国内残疾头等舱乘客,每公斤收取2元;国内残疾非头等舱乘客,每公斤收取3元。(3)国外非残疾头等舱乘客,每公斤收取8元;国外非残疾非头等舱乘客,每公斤收取12元。(4)国外残疾头等舱或非头等舱乘客,每公斤收取4元。【例】46电子工程学院民航计算行李托运费的算法行李重量不超过30公斤免费托运,对于用判定表表示计算行李费的算法47电子工程学院用判定表表示计算行李费的算法47电子工程学院用判定树表示计算行李费的算法48电子工程学院用判定树表示计算行李费的算法48电子工程学院数据流图(DFD)是()方法中用于表示系统逻辑模型的一种图形工具。
A.SA B.SDC.SP D.SC答案:A软件需求分析的主要任务是准确地定义出所要开发的软件系统()。
A.如何做 B.怎么做C.做什么 D.对谁做答案:C需求分析是分析员充分了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出()的过程。
A.模块说明书B.软件规格说明
C.项目开发计划D.合同文档 答案:B【例】49电子工程学院数据流图(DFD)是()方法中用于表示系统逻辑模型的一种数据流图中的箭头表示
。答案:数据流数据流图(DFD图)的作用是
。答案:在SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。结构化分析方法是以数据流图、
和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。答案:数据字典【例】50电子工程学院数据流图中的箭头表示。【例】50电子工程招聘考试考核数学、英语、计算机三门课程。录取规则如下:
(1)总分240分(含)以上录取;
(2)总分180分(不含)以下,或其中两门在60分(不含)以下的不录取;
(3)其它分数如果全部在60分(含)以上,需要参加面试再决定是否录取;如果有一门60分(不含)以下,需要复试该课程再决定是否录取。
画出录取规则判定表。【例】51电子工程学院招聘考试考核数学、英语、计算机三门课程。录取规则如下:
(1录取规则判定表52电子工程学院录取规则判定表52电子工程学院1.总体设计的基本任务及文档在进行软件结构化设计之前首先进行软件需求分析,也就是说结构化分析的结果是结构化设计的依据。3.2总体设计(概要设计)53电子工程学院1.总体设计的基本任务及文档3.2总体设计(概要设计)(1)设计软件系统结构将复杂的系统按功能划分模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。(2)设计数据结构和数据库(3)编写概要设计文档(4)评审总体设计的基本任务54电子工程学院(1)设计软件系统结构总体设计的基本任务54电子工程学院(1)概要设计说明书;(2)数据库设计说明书;(3)进一步补充需求分析阶段编写的用户手册;(4)修改测试计划,对测试策略、方法、步骤提出明确的要求。总体设计的文档内容55电子工程学院(1)概要设计说明书;总体设计的文档内容55电子工程学院(1)模块化模块化就是把程序划分成独立命名并且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。
模块数量与软件成本之间的关系2.软件设计的基本原理56电子工程学院(1)模块化模块数量与软件成本之间的关系2.软件设计①模块可分解性:通过模块分解,可以有效的降低整个系统的复杂性。②模块可组装性:模块化可以有效的提高代码的重用性。模块可理解性:每个模块都是功能相对独立的单元,从而易于构造、易于修改。模块可维护性:对个别模块的修改,不会造成整个系统的修改,减少维护的副作用,提高系统的可维护性。模块保护性:一个模块内出现异常情况时,其影响仅局限于该模块内部。软件结构的评价标准57电子工程学院①模块可分解性:通过模块分解,可以有效的降低整个系统的复
在对系统进行模块化分解过程中,体现了由抽象到具体,逐步求精的过程。(3)信息隐蔽一个模块内部的信息(过程和数据),在模块外部是不能访问的。(4)模块独立性模块的独立性体现在模块内部各元素联系的紧密程度和模块之间联系的紧密程度,分别称为模块的内聚性和耦合性。为了提高模块的独立性,应当做到高内聚、低耦合。(2)抽象与求精58电子工程学院在对系统进行模块化分解过程中,体现了由抽象到具
耦合是对一个软件结构内不同模块之间相互依赖程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。模块间的耦合度会影响到系统的可理解性、可测试性、可靠性和可维护性。耦合59电子工程学院耦合是对一个软件结构内不同模块之间相互依赖程度①内容型:一个模块直接引用另一个模块内部的信息,或通过非正常入口而转入另一个模块内部。例如一个模块直接访问另一个模块的局部变量。②公共型:两个模块引用共同的全程数据区。例如模块之间使用全局变量。③控制型:一个模块传送给另一个模块的信息是用于控制该模块内部逻辑的控制信号。例如传递的参数是控制信号。④标记型:一个模块传送给另一个模块的参数是一个复合的数据结构。例如传递的参数是结构体数据或数组。6种耦合类型(按耦合度由大到小排列)60电子工程学院①内容型:一个模块直接引用另一个模块内部的信息,或通过非正⑤数据型:一个模块传送给另一个模块的参数是单个的数据项。例如参数为简单的数据,且采用值传递方式。⑥无直接型:模块之间没有直接的关系,相互之间不传递任何信息。例如模块之间没有参数传递,也没有返回值等。
在设计软件结构时,通常采用以下耦合原则:尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合。61电子工程学院⑤数据型:一个模块传送给另一个模块的参数是单个的数据项。在
内聚是衡量一个模块内各个元素彼此结合的紧密程度。模块的内聚性与信息隐蔽和局部化概念直接相关。6种内聚类型(按内聚性由小到大排列):①偶然型:模块内各元素没有联系,即各元素的功能没有任何关系。逻辑型:模块内各元素在逻辑上具有相似的功能。内聚62电子工程学院内聚是衡量一个模块内各个元素彼此结合的紧密程度
时间型:将需要同时执行的元素放在同一个模块中。例如初始化模块对各变量置初值,打开多个文件等是在同一时间进行的。通信型:模块中的元素引用共同的数据。例如一个模块中的各元素共享某一数据。顺序型:模块中某个元素的输出是另一个元素的输入。例如在一个模块中首先计算n数之和,再求平均值。63电子工程学院时间型:将需要同时执行的元素放在同一个模块中。63电子工程⑥功能型:模块中仅包括完成某个具体任务所必需的所有元素。例如一个模块中的各元素完成某一独立的功能。
在实际应用中也没有必要过分追求模块的内聚性,因为模块的内聚性过高,往往会使模块的数量增多,增加模块接口的成本,从而提高软件的成本。内聚和耦合是密切相关的,模块内部的高内聚往往意味着模块之间的低耦合。64电子工程学院⑥功能型:模块中仅包括完成某个具体任务所必需的所有元素。6
软件结构图用于表达软件内部各部分的组织结构和相互关系。图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系(如果含有判定调用,用菱形表示;如果含有循环调用,用弧形箭头表示)。在结构图中用带注释的箭头表示模块调用和返回时传递的信息。箭头尾部是空心圆表示传递的是数据信息,实心圆表示传递的是控制信息。下面给出结构图中含有判定调用和循环调用的两个例子。3.软件结构图65电子工程学院软件结构图用于表达软件内部各部分的组织结构和相【例】确定是否录取学生的软件结构图(含有判定调用)。66电子工程学院【例】确定是否录取学生的软件结构图(含有判定调用)。66电子其中累计生产值计算模块被循环调用;下层三个模块又被循环调用。【例】某工厂生产10种产品。统计员按产品分别记录每天的生产量,到月末对每种产品分别形成一份生产统计表。共有10份统计表,在每份表中记录了这个月该产品每天生产量,要求计算每种产品在这个月中的平均日产量。67电子工程学院其中累计生产值计算模块被循环调用;下层三个模块又被循环调用。
在设计了软件的初始结构后,需要根据软件结构准则对软件结构进行优化。下面给出7条软件结构准则:(1)改进软件结构提高模块独立性,尽可能做到高内聚,低耦合。(2)模块规模应该适中,提高模块的独立性,增加可理解性。(3)深度、宽度、扇出和扇入都应适当。深度和宽度可反映出系统的复杂程度。深度指软件结构图中控制的层次;宽度指软件结构图内同一层次上模块个数的最大值。深度和宽度可反映出系统的复杂程度。4.软件结构准则68电子工程学院在设计了软件的初始结构后,需要根据软件结构准则
一个模块拥有的直接下级被调用模块的个数叫模块的扇出数。如果一个模块的扇出数过大,则该模块往往包含过多的功能,应将其按功能进行分解。一个模块的直接上级主调模块的个数叫模块的扇入数。如果扇入数大,说明模块的重用率高,这是有好处的,但不能违背模块的独立性而单纯追求高扇入。(4)模块的作用范围应在其控制范围之内,且含有判定功能的模块与受其影响的模块在层次上尽量靠近。69电子工程学院一个模块拥有的直接下级被调用模块的个数叫模块的扇出数
一个模块的作用范围就是这个模块内一个判定的作用范围。一个判定的作用范围是指所有受这个判定影响的那些模块,只要模块中含有一些依赖于这个判定的操作,那么这个模块就在这个判定的作用范围之内。一个模块的控制范围是指该模块本身及该模块的所有下属模块。控制范围是从结构方面来考虑的,而作用范围是从功能方面考虑的。下面是关于模块的作用范围、控制范围的例子。模块的作用范围、控制范围含义70电子工程学院一个模块的作用范围就是这个模块内一个判定的作用范【例】模块的作用范围、控制范围的例子71电子工程学院【例】模块的作用范围、控制范围的例子71电子工程学院(5)降低模块接口的复杂程度,从而含义明确,易于理解、实现、测试和维护。(6)设计单入口单出口的模块,每个模块具有一个入口和一个出口。(7)模块功能应该可以预测。72电子工程学院(5)降低模块接口的复杂程度,从而含义明确,易于理解、实现、
面向数据流的设计方法是把数据流图映射成软件结构,数据流图分为变换型和事务型两种类型。数据流图映射成软件结构图的方法变换分析事务分析5.面向数据流的设计方法73电子工程学院面向数据流的设计方法是把数据流图映射成软件结构将变换型数据流图映射成软件结构图f1为物理输入f2为逻辑输入f4为物理输出f2为逻辑输出74电子工程学院将变换型数据流图映射成软件结构图f1为物理输入f4为物理输出事务中心将事务型数据流图映射成软件结构图75电子工程学院事务中心将事务型数据流图映射成软件结构图75电子工程学院当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()。
A.数据耦合 B.公共耦合
C.标记耦合 D.内容耦合答案:D在结构化设计方法中,____方法用于需求分析阶段。()
A.SA B.SD
C.SP D.以上3种方法答案:A【例】76电子工程学院当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为为高质量地开发软件项目,在软件结构设计时,必须遵循_____原则。()
A.信息隐蔽 B.质量控制
C.程序优化 D.数据共享答案:A数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是(
)。
A.数据、公共、标记、控制B.数据、标记、控制、公共
C.控制、数据、标记、公共D.控制、数据、公共、标记答案:B【例】77电子工程学院为高质量地开发软件项目,在软件结构设计时,必须遵循_____软件概要设计结束后得到()。
A.初始化的软件结构图 B.优化后的软件结构图
C.模块详细的算法 D.程序编码答案:B通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是()。
A.通信、逻辑、顺序、时间B.通信、时间、顺序、逻辑
C.顺序、通信、时间、逻辑D.顺序、通信、逻辑、时间答案:C【例】78电子工程学院软件概要设计结束后得到()。
A.初始化的软件结信息隐蔽概念与()这一概念直接的相关。
A.模块的独立性B.模块类型的划分
C.软件结构定义D.软件生命周期答案:A数据耦合和控制耦合相比,则()成立。
A.数据耦合的耦合性强
B.控制耦合的耦合性强
C.两者的耦合性相当
D.两者的耦合性需要根据具体情况分析答案:B【例】79电子工程学院信息隐蔽概念与()这一概念直接的相关。
A.模软件概要设计关键的一步是
,它直接影响下一阶段详细设计和编码的工作。答案:软件结构的设计软件结构图的宽度是指一层中___的模块个数。答案:最多软件结构图的深度是指___。答案:软件结构图的层次数模块的作用范围是指___。答案:受该模块内一个判定条件影响的所有模块。模块的控制范围是指___。答案:模块本身以及所有下属模块的集合【例】80电子工程学院软件概要设计关键的一步是,它直接影响下一阶段详一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是___。答案:顺序型内聚某个模块的主要功能是:保留现场,关闭文件,中止程序运行。那么该模块的内聚性是___。答案:时间型内聚控制耦合、内容耦合、标记耦合、数据耦合,信息隐蔽性能最好的是___。答案:数据耦合当A模块调用B模块时,若两个模块之间传递的是单个数值,则这两个模块的耦合方式是
。答案:数据耦合【例】81电子工程学院一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然3.3详细设计详细设计的基本任务1.为每个模块进行详细的处理过程的算法设计2.为模块内的数据结构进行设计。3.对数据库进行物理设计,即确定数据库的物理结构。4.其他设计。包括数据信息代码的设计、输入输出格式的设计、人机交互界面的设计等。5.编写详细设计说明书。6.评审。82电子工程学院3.3详细设计详细设计的基本任务82电子工程学院结构化程序设计
结构化设计是对软件总体结构的设计,即设计软件的宏观结构;结构化程序设计是设计每个模块内部的处理过程,即设计软件的微观过程,实现模块的功能。结构化程序设计应遵循的准则:
(1)使用三种基本逻辑结构(顺序、选择、循环);
(2)用基本逻辑组成的“块”应容易识别;
(3)每个“块”具有单入口和单出口;
(4)基本结构可以并列,可以嵌套;
(5)易于转换成程序代码,容易修改。83电子工程学院结构化程序设计结构化设计是对软件总体结构的设计,即设详细设计的工具
详细设计的工具是指描述程序处理过程的工具。它们可以分为图形、表格和语言三类。流程图84电子工程学院详细设计的工具详细设计的工具是指描述程序处理过程的工2.N-S图(盒图)85电子工程学院2.N-S图(盒图)85电子工程学院3.PAD图86电子工程学院3.PAD图86电子工程学院PAD图的控制流程为自上而下,从左到右的执行。采用PAD图逐步求精定义处理过程87电子工程学院PAD图的控制流程为自上而下,从左到右的执行。采用PAD图逐4.过程设计语言(PDL)PDL也称为伪码,它是用正文形式表示数据和处理过程的详细设计工具。一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。88电子工程学院4.过程设计语言(PDL)PDL也称为伪码,它是用正【例】将下面用PDL描述的处理过程改用PAD图描述。WHILEADOIFX>0THENX1ELSEX2ENDIFS1IFZ>0THENZ1IFW>0THENW1ELSEW2ENDIFELSEZ2ENDIFS2ENDWHILE89电子工程学院【例】将下面用PDL描述的处理过程改用PAD图描述。WHIL用PAD图进行描述90电子工程学院用PAD图进行描述90电子工程学院【例】程序的三种基本控制结构的共同特点是()。
A.只能用来描述简单程序 B.不能嵌套使用
C.单入口,单出口 D.仅用于自动控制系统答案:C结构化程序设计采用的三种基本结构是()。
A.顺序、分支、选择 B.选择、循环、重复
C.顺序、选择、重复 D.输入、变换、输出答案:C详细描述处理过程常用的三种工具是()。
A.SA,SD,SP B.程序流程图,IPO,PAD
C.SA,SC,SD D.图形,表格,语言答案:D91电子工程学院【例】程序的三种基本控制结构的共同特点是()。
A.只能【例】试比较程序流程图与PAD图的特点。
这两种方法均为详细设计阶段所使用的图形工具。(1)程序流程图直观清晰,易于使用。但控制流程线不易限制,易造成非结构化的程序结构;不易反映逐步求精的过程;不易表示数据结构。(2)PAD图是一种由左往右展开的二维树型结构,能够清晰地反映程序的层次结构,支持逐步求精的设计方法,易写易读,使用方便;可自动生成程序,支持结构化程序设计原理。92电子工程学院【例】试比较程序流程图与PAD图的特点。这两种方法均【例】简述程序流程图的缺点和克服方法。
流程图的缺点有三个方面,(1)控制流程线不易限制,易造成非结构化的程序结构;(2)不易反映逐步求精的过程;(3)不易表示数据结构。为了克服流程图的缺陷,要求流程图都应由三种基本结构顺序组合或完整嵌套而成,不能出现相互交叉的情况,这样的流程图是结构化的流程图。93电子工程学院【例】简述程序流程图的缺点和克服方法。流程图的缺点有3.4软件编码
所谓编码就是把软件设计翻译成计算机可以理解的形式——用某种程序设计语言书写的程序代码。程序的质量主要取决于软件设计的质量。但是,所选用的程序设计语言的特点和编码风格也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。94电子工程学院3.4软件编码所谓编码就是把软件设计翻译成计算机程序设计语言特性1.心理特性语言的心理特性是指影响程序员心理的语言性能,包括:歧义性、简洁性、局部性、顺序性和传统性。2.工程特性从考虑软件开发项目的需要出发,对软件编码有如下要求:可移植性,开发工具的可利用性,软件的可重用性,可维护性。3.技术特性根据项目的特性选择相应特性的语言,满足设计的需求。95电子工程学院程序设计语言特性1.心理特性95电子工程学院程序设计风格1.源程序文档化(1)标识符的命名标识符作为模块名、变量名、常量名等,其命名应当具有一定的实际意义,做到“见名知义”。(2)程序的注释源程序中添加必要的注释,提高程序的可理解性。注释有以下两个方面:序言性注释:位于每个程序模块的开头,对模块的功能、调用形式、参数等加以说明,以及对模块的修改记录。功能性注释:位于源程序中,用于说明语句或语句块的功能。96电子工程学院程序设计风格1.源程序文档化96电子工程学院(3)程序的视觉组织
程序的视觉组织是指源程序中适当加空格、空行和语句行的缩进,这样有助于分清程序的层次结构,提高程序的可理解性。2.数据说明数据说明有一定的次序,对于复杂的数据结构加以注释。3.语句结构语句的构造应该简单、直接,不能为了追求效率而使语句复杂化。97电子工程学院(3)程序的视觉组织程序的视觉组织是指源程序中适当加空4.输入/输出风格有关输入/输出风格的规则:对所有输入数据都进行检验;检查输入项重要组合的合法性;保持输入格式简单;使用数据结束标记,避免指定输入数据的个数;给出交互式输入的提示,并详细说明可用的输入选择或边界值;当程序设计语言对格式有严格要求时,应保持输入格式一致;设计良好的输出报表;给所有输出数据加标志。98电子工程学院4.输入/输出风格有关输入/输出风格的规则:98电子工5.程序的效率
程序的效率主要指程序运行过程中占用处理机的时间和存储器的容量两个方面。在保证程序的清晰性和可读性的前提下,追求程序的时间和空间效率,从而提高软件的性能。【例】程序设计语言的心理特性在语言中的表现不应当包括()。
A.歧义性 B.简洁性
C.保密性 D.传统性答案:C99电子工程学院5.程序的效率程序的效率主要指程序运行过程中占用【例】源程序文档化要求在每个模块之前加序言性注释,该注释内容不包括有()。
A.模块的功能 B.语句的功能
C.模块的接口 D.开发历史答案:B为了具有良好的程序设计风格,应注意哪些方面的问题?答案:源程序文档化、数据说明、语句构造、输入输出以及对效率的追求等几个方面。为增加软件的可移植性应注意的问题是什么?答案:在软件结构方面,体现模块的独立性高;在编码方面,在满足开发软件需求的前提下选择高级语言编写源程序。100电子工程学院【例】源程序文档化要求在每个模块之前加序言性注释,该注释内容四、软件测试4.1软件测试概述软件开发总是伴随着软件质量保证的活动,而软件测试是主要活动之一。软件测试代表了需求分析、设计、编码的最终复审。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上。测试的目的是发现软件中的各种错误,发现错误之后还必须诊断并改正错误,这就是调试的目的。101电子工程学院四、软件测试4.1软件测试概述101电子工程学院软件测试的原则1.测试用例应由输入数据和预期的输出数据两部分组成。2.测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。3.除了检查程序是否做了它应该做的,还应该检查程序是否做了它不应该做的。4.应制定测试计划并严格执行,排除随意性。5.长期保留测试用例。6.对发现错误较多的程序段,应进行更深入的测试。7.程序员应当避免测试自己的程序。102电子工程学院软件测试的原则1.测试用例应由输入数据和预期的输出数据两部4.2软件测试方法
软件测试方法一般分为动态测试方法与静态测试方法。动态测试方法又分为黑盒测试法和白盒测试法。1.静态测试静态测试是指被测程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。
2.动态测试动态测试指通过运行程序发现错误。动态测试一般有两种方法,分别称为黑盒测试法和白盒测试法。103电子工程学院4.2软件测试方法软件测试方法一般分为动态测试方黑盒测试法
黑盒测试法把被测对象看成一个黑盒子,完全不考虑被测对象的内部结构和处理过程,只是对功能和接口进行的测试,检查其功能是否能够按照规格说明书的规定正常使用,是否能适当地接收输入数据产生正确的输出信息。黑盒测试又称为功能测试。104电子工程学院黑盒测试法黑盒测试法把被测对象看成一个黑盒子,完全不考虑白盒测试法
白盒测试法是把模块看成一个透明的白盒子,测试人员必须完全了解模块内部的结构和处理过程,按照模块内部的逻辑设计测试用例进行测试,检验逻辑结构中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。105电子工程学院白盒测试法白盒测试法是把模块看成一个透明的白盒子,测软件测试准则(1)所有的测试都应该能追溯到用户需求。(2)应当在测试开始之前制定出测试计划。(3)测试中所发现的80%的错误很可能是由程序中20%的模块造成的。(4)测试应该从“小规模”开始,并逐步进行“大规模”测试。(5)穷举测试是不可能的。(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。106电子工程学院软件测试准则(1)所有的测试都应该能追溯到用户需求。106电程序图
在设计测试方案时,通常用程序图描述程序的控制流程,在程序图中并不表现对数据的具体操作以及分支或循环的具体条件。程序图可以表示程序控制流程的复杂程度。在程序图中用圆表示结点,一个圆代表一条或多条语句。程序流程图中的一个顺序处理框序列和一个菱形判定框,可以映射为程序图中的一个结点。程序图中的箭头线称为边,它和程序流程图中的箭头线类似,代表控制流。在程序图中一条边必须终止于一个结点。由边和结点围起来的部分称为区域。程序图中区域的个数=流程图中判定框个数+1107电子工程学院程序图在设计测试方案时,通常用程序图描述程序的控制流程,【例】由程序流程图映射程序图程序图中的结点代表流程图中的判定框和处理框。程序图中的边代表流程图中的控制流向。流程图中有3个判定框,程序图中有4个区域。108电子工程学院【例】由程序流程图映射程序图程序图中的结点代表流程图中的判定用PDL表示的处理过程(含有复合条件)映射为程序图109电子工程学院用PDL表示的处理过程(含有复合条件)映射为程序图109电子4.3
测试用例的设计
每个测试用例包括:(1)具体的测试目的(所要测试的具体功能);(2)应该输入的测试数据;(3)预期的输出结果。通过测试,将实际的输出结果与预期的输出结果进行比较,可以知道是否具有错误。如果有错误,再进行调试,找出产生错误的原因和位置,并对错误进行修改。110电子工程学院4.3测试用例的设计每个测试用例包括:110电子工程白盒测试技术1.逻辑覆盖逻辑覆盖用于测试分支结构。较复杂的分支结构会有比较多的路径。不同的测试数据发现程序错误的能力差别很大,为了提高测试效率降低测试成本,应该选用高效的测试用例。因为不可能进行穷举测试,应当选用少量“最有效的”测试用例,进行尽可能彻底的测试。按照覆盖程度不同,可以分为6种逻辑覆盖,分别是语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。下面通过例子说明6种逻辑覆盖的含义。111电子工程学院白盒测试技术1.逻辑覆盖111电子工程学院【例】为下列代码设计测试用例。…ifA>1andB=0
thenX=X/AifA=2orX>1
thenX=X+1…被测试模块的流程图被测试模块的程序图112电子工程学院【例】为下列代码设计测试用例。…被测试模块的流程图被测试模块(1)语句覆盖
选择足够多的测试数据,使被测程序中每个语句至少执行一次。选择测试数据:A=2,B=0,X=3能够覆盖语句c、e113电子工程学院(1)语句覆盖选择足够多的测试数据,使被测程序中每个语(2)判定覆盖
选择足够多的测试数据,使每个判定至少取真、假至少一次。选择两组测试数据:①A=3,B=0,X=1使A>1ANDB=0为真,A=2ORX>1为假(通过路径1235)②A=2,B=1,X=2使A>1ANDB=0为假,A=2ORX>1为真(通过路径1345)114电子工程学院(2)判定覆盖选择足够多的测试数据,使每个判定至少取(3)条件覆盖
使判定表达式中的每个条件分别取真、假至少一次。上述两个判定表达式中有4个条件:A>1,B=0,A=2,X>1选择两组测试数据:
①A=2,B=0,X=3使A>1,B=0,A=2,X>1为真,通过路径12345②A=1,B=1,X=1使A>1,B=0,A=2,X>1为假,通过路径135115电子工程学院(3)条件覆盖使判定表达式中的每个条件分别取真、假至满足条件覆盖的另外两组测试数据①A=1,B=0,X=3
使B=0,X>1为真,A>1,A=2为假,通过路径1345②A=2,B=1,X=1
使B=0,X>1为假,A>1,A=2为真,通过路径1345这两组测试数据均使A>1ANDB=0为假,A=2ORX>1为真,不满足判定覆盖。所以满足条件覆盖不一定满足判定覆盖。116电子工程学院满足条件覆盖的另外两组测试数据①A=1,B=0,X=3
使B(4)判定/条件覆盖
判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖能同时满足这两种覆盖标准。它的含义是,选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。117电子工程学院(4)判定/条件覆盖判定覆盖不一定包含条件覆盖,条件下面两组测试用例能够满足判定/条件覆盖①A=2,B=0,X=3使A>1,B=0,A=2,X>1和(A>1)AND(B=0),(A=2)OR(X>1)为真②A=1,B=1,X=1使A>1,B=0,A=2,X>1和(A>1)AND(B=0),(A=2)OR(X>1)为假注意:若将B=0写为B≠0,而A>1为假,X>1写为X≤1,而A=2为真,就测试不出来。118电子工程学院下面两组测试用例能够满足判定/条件覆盖①A=2,B=0,X=(5)条件组合覆盖
条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
两个判定表达式中共有4个条件,因此有8种组合:
A>1,B=0A>1,B≠0A≤1,B=0A≤1,B≠0A=2,X>1A=2,X≤1A≠2,X>1A≠2,X≤1119电子工程学院(5)条件组合覆盖条件组合覆盖是更强的逻辑覆盖标准,以下4组测试用例可以满足条件组合覆盖①A=2,B=0,X=2满足A>1,B=0A=2,X>1②A=2,B=1,X=1满足A>1,B≠0A=2,X≤1③A=1,B=0,X=2满足A≤1,B=0A≠2,X>1④
A=1,B=1,X=1满足A≤1,B≠0A≠2,X≤1
120电子工程学院以下4组测试用例可以满足条件组合覆盖①A=2,B=0,X=2(6)路径覆盖以下4组测试用例可以达到路径覆盖:
①A=2,B=0,X=2覆盖12345②A=2,B=1,X=1覆盖1345③A=1,B=1,X=1覆盖135④A=3,B=0,X=1覆盖1235
但不能覆盖A≤1,B=0和A≠2,X>1。所以满足路径覆盖不一定满足条件组合覆盖。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后补充测试用例,达到路径覆盖。选取足够多的测试数据,覆盖所有可能的路径。121电子工程学院(6)路径覆盖以下4组测试用例可以达到路径覆盖:在实际的逻辑2.循环覆盖
白盒测试技术中的循环测试用于测试循环结构的有效性。在结构化的程序中可以构成三种循环类型,分别是简单循环、串接循环和嵌套循环。下面分别讨论不同类型循环的测试方法。122电子工程学院2.循环覆盖白盒测试技术中的循环测试用于测试循环结(1)简单循环
使用下列测试集来测试简单循环,其中n是允许执行循环体的最大次数。
·跳过循环。
·只执行循环体一次。
·执行循环体两次。
·执行循体m次,其中m<n-1。
·执行循环体n-1,n,n+1次。123电子工程学院(1)简单循环使用下列测试集来测试简单循环,其中n是【例】n=k;//为测试设置的语句i=1;while(i≤n){……i=i+1;}假设程序中允许循环的最大次数为6,测试时k取值分别为:0:跳过循环1,2:循环体执行1,2次4:循环体执行4次5,6,7:循环体执行5,6,7次124电子工程学院【例】n=k;//为测试设置的语句124电子工程学(2)嵌套循环
如果把简单循环的测试方法直接应用到嵌套循环,可能的测试数就会随嵌套层数的增加按几何级数增长,这会导致不切实际的测试数目。下面介绍一种能减少测试数目的方法。·从最内层循环开始测试,把所有外层循环都设置为最小值。对最内层循环使用简单循环测试方法,并为越界值或非法值增加一些额外的测试。
·由内向外,对下一个循环层次进行测试,但保持所有外层循环为最小值,内层嵌套循环为“典型”值。
·继续进行下去,直到测试完所有循环。125电子工程学院(2)嵌套循环如果把简单循环的测试方法直接应用到嵌套(3)串接循环
如果串接循环的各个循环都彼此独立,则可以使用前面所介绍的测试简单循环的方法来测试串接循环。如果两个循环串接,而且第一个循环的循环计数器值是第二个循环的初始值,则这两个循环并不是独立的。当循环不独立时,可以采用测试嵌套循环的方法来测试串接循环。126电子工程学院(3)串接循环如果串接循环的各个循环都彼此独立,则可黑盒测试技术
黑盒测试技术将被测对象(模块或模块的组合)看作黑盒子,着重测试其功能和接口,测试人员所设计的测试用例应当能够充分检查被测对象是否能够满足功能需求。黑盒测试很可能发现白盒测试不易发现的错误。黑盒测试可以下述类型的错误:
①功能不正确或遗漏了功能;
②界面错误;
③数据结构错误或外部数据库访问错误;
④性能错误;
⑤初始化和终止错误。127电子工程学院黑盒测试技术
黑盒测试技术将被测对象(模块或模块的组1.等价类划分
等价类划分是将被测对象的输入域划分为若干个有效的等价类和若干个无效的等价类。可以合理地做出假定:每个等价类中的一个典型值在测试中的作用与这一等价类中所有其他值的作用相同。因此,可以从每个等价类中只取一组数据作为测试数据。所选取的测试数据应当具有代表性,发现被测对象错误的可能性最大。在确定输入数据的等价类时,还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。128电子工程学院1.等价类划分等价类划分是将被测对象的输入域划分等价类的划分规则(1)如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值和大于最大值)。(2)如果规定了输入数据的个数,则可以划分出一个有效的等价类和两个无效的等价类。(3)如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,不允许的输入值是一个无效的等价类。(4)如果规定了输入数据为整型,则可以划分出正整数、零和负整数三个有效等价类。129电子工程学院等价类的划分规则(1)如果规定了输入值的范围,则可划分出一个(5)如果规定了输入数据必须遵循的规则,则可以划分出一个符合规则的有效等价类和若干个从各种不同角度违反规则的无效等价类。(6)如果程序的处理对象是表格,则应该分别以空表、含一项或多项的表作为等价类。
以上规则只是测试时可能遇到的很小一部分。要正确划分等价类,一方面要注意积累经验;另一方面要正确分析被测对象的功能。在划分无效等价类时,对于编译程序一定能够发现的错误,不需要再设计测试用例来暴露这些错误。130电子工程学院(5)如果规定了输入数据必须遵循的规则,则可以划分出一个符合根据等价类设计测试用例的步骤(1)设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类。复重这一步骤直到所有有效等价类都被覆盖为止。(2)设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类。重复这一步骤直到所有无效等价类都被覆盖为止。【例】假设有一个把数字字符串(用字符数组存储)转换成整数的函数。所使用的计算机字长为16位,用二进制补码表示的整数范围是-32768~32767。用Delphi语言编写的函数说明如下:131电子工程学院根据等价类设计测试用例的步骤(1)设计一个新的测试用例,尽可functionstrtoint(dstr:shortstr):integer;
函数的参数类型是shortstr(长度为6的一维字符数组类型)
typeshortstr=array[1..6]ofchar;所存放的的数字串右对齐,如果数字串不足6个字符,则左边补空格。如果数字串是负的,则负号和最高位数字紧相邻(负号在最高位数字左边一位)。划分出如下等价类:(1)有效输入的等价类
·1~6个数字字符组成的数字串(最高位数字不是零),如“12345”·最高位数字是零的数字串,如“012345”
·最高位数字左邻是负号的数字串,如“-123”132电子工程学院functionstrtoint(dstr:shortst(2)无效输入的等价类·空字符串(全是空格),例如:“”·左部填充的字符既不是零也不是空格,如“*123”·最高位数字右面由数字和空格混合组成,如“12345”·最高位数字右面由数字和其他字符混合组成,如“12#3”·负号与最高位数字之间有空格,如“-123”(3)合法输出的等价类·在计算机能表示的最小负整数和零之间的负整数·零·在零和计算机能表示的最大正整数之间的正整数
133电子工程学院(2)无效输入的等价类·空字符串(全是空格),例如:“(4)非法输出的等价类·比计算机能表示的最小负整数还小的负整数,如-32769·比计算机能表示的最大正整数还大的正整数,如32768根据上面划分出的有效等价类,可以设计出下述测试用例,每个测试用例由测试目的、有效输入和预期的输出组成。
·1~6个数字组成的数字串,输出是合法的正整数输入:“1”(有效输入)预期的输出:1·最高位数字是零的数字串,输出是合法的正整数输入:“000001”(有效输入)预期的输出:1134电子工程学院(4)非法输出的等价类·比计算机能表示的最小负整数还·负号与最高位数字紧相邻,输出合法的负整数
输入:“-00001”(有效输入)预期的输出:-1·字符串为全零,输出也是零输入:“000000”(有效输入)预期的输出:0
根据上面划分出的无效等价类,可以设计出下述测试用例,每个测试用例由测试目的、无效输入和预期的输出组成。·太小的负整数输入:“-47561”(无效输入)预期的输出:“错误——无效输入”135电子工程学院·负号与最高位数字紧相邻,输出合法的负整数输入:“-0·太大的正整数
输入:“132767”(无效输入)
预期的输出:“错误——无效输入”·空字符串
输入:“”(无效输入)
预期的输出:“错误——没有数字”·字符串左部字符既不是零也不是空格
输入:“╳╳╳╳╳1”(无效输入)
预期的输出:“错误——填充错”·最高位数字后面有空格
输入:“12”(无效输入)
预期的输出:“错误——无效输入”136电子工程学院·太大的正整数输入:“132767”(无效输入)
预期·最高位数字后面有其他字符
输入:“1╳╳2”(无效输入)
预期的输出:“错误——无效输入”·负号和最高位数字之间有空格
输入:“-12”(无效输入)
预期的输出:“错误——负号位置错”2.边界值分析经验表明,处理边界情况时程序最容易发生错误。例如,许多程序错误出现在下标、数据结构和循环等的边界附近。因此,设计使程序运行在边界情况附近的测试用例,暴露出程序错误的可能性更大一些。
137电子工程学院·最高位数字后面有其他字符输入:“1╳╳2”边界的确定
如果输入条件规定了值的范围或者值的个数。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司协议书范本格式字体
- 精细化管理班组施工安全责任合同范本
- 烧烤店试用期配菜员烧烤技艺聘用合同
- 留学行前准备协议:出国留学全方位辅导服务
- 科技园区场地租赁与研发创新合作合同
- 场地监管与廉政责任落实合同
- 超声回弹综合法测强技术
- 溶洞区桩基注浆压力调控
- 大数据管理能力评估和数据工程资料分享
- 医院重点部位消防安全培训
- 新编旅游职业道德 课件 谭为跃 第3-5章 旅行社从业人员道德素养、酒店从业者道德素养、景区点从业人员道德素养
- 市政管道施工培训课件
- 小学数学“组题”设计分析 论文
- 附件16:地下室灯带临时照明系统方案
- 中央空调维护保养服务投标方案(技术标)
- 服务认证培训课件
- 风电场反事故措施
- 细胞生物学与疾病预防与治疗
- 《银行业风险管理》课件
- 工程伦理 课件全套 李正风 第1-9章 工程与伦理、如何理解伦理- 全球化视野下的工程伦理
- 餐饮服务质量保证措施
评论
0/150
提交评论