软件工程 (2)幻灯片.ppt
《软件工程 (2)幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程 (2)幻灯片.ppt(174页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程课件软件工程课件1 1软件工程-2010-第七章 实现第1页,共174页,编辑于2022年,星期三第七章内容概要第七章内容概要n n编码编码n n软件测试基础软件测试基础n n单元测试单元测试n n集成测试集成测试n n确认测试确认测试n n白盒测试技术白盒测试技术n n黑盒测试技术黑盒测试技术n n调试调试n n软件可靠性软件可靠性2软件工程-2010-第七章 实现第2页,共174页,编辑于2022年,星期三n n编码和测试统称为实现编码和测试统称为实现n n编码就是把软件设计结果翻译成用某种程序设编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。计语言书写的程序。n n软件
2、测试很重要,它对软件可靠性的影响巨大软件测试很重要,它对软件可靠性的影响巨大n n软件测试在软件生命周期中横跨两个阶段软件测试在软件生命周期中横跨两个阶段n n测试工作量占软件开发总成本的测试工作量占软件开发总成本的40%以上以上n n测试的目标是发现错误,调试的目的是诊断并测试的目标是发现错误,调试的目的是诊断并改正错误改正错误n n测试是确定可靠性模型的依据测试是确定可靠性模型的依据实现概述实现概述3软件工程-2010-第七章 实现第3页,共174页,编辑于2022年,星期三n n编码阶段的任务是把详细设计阶段中用编码阶段的任务是把详细设计阶段中用伪代伪代码码写成的程序转换成用程序设计语言
3、实现的写成的程序转换成用程序设计语言实现的程序。程序。n n程序设计语言的程序设计语言的特性特性和程序设计和程序设计风格风格会深刻会深刻地影响软件的质量和可维护性。地影响软件的质量和可维护性。n n为保证编码的质量,程序员必须深刻理解、为保证编码的质量,程序员必须深刻理解、熟练掌握并正确地运用程序设计语言的特性。熟练掌握并正确地运用程序设计语言的特性。此外,还要求源程序具有良好的结构性和良此外,还要求源程序具有良好的结构性和良好的程序设计风格。好的程序设计风格。从设计向编码过渡从设计向编码过渡4软件工程-2010-第七章 实现第4页,共174页,编辑于2022年,星期三n n系统用户的要求。系
4、统用户的要求。n n可以使用的编译程序。可以使用的编译程序。n n可以得到的软件工具。可以得到的软件工具。n n工程规模。工程规模。n n程序员的知识。程序员的知识。n n软件可移植性要求。软件可移植性要求。n n软件的应用领域。软件的应用领域。选择程序设计语言的实用标准选择程序设计语言的实用标准5软件工程-2010-第七章 实现第5页,共174页,编辑于2022年,星期三n n好程序的代码逻辑简明清晰、易读易懂:好程序的代码逻辑简明清晰、易读易懂:n n程序的内部文档程序的内部文档n n数据说明数据说明n n语句构造语句构造n n输入输出方法输入输出方法n n效率问题效率问题编码风格编码风格
5、6软件工程-2010-第七章 实现第6页,共174页,编辑于2022年,星期三n n标识符的命名:标识符的命名:n n标识符即符号名,包括模块名、变量名、常量标识符即符号名,包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名、标号名、子程序名、数据区名以及缓冲区名等。名等。n n这些名字应能反映它所代表的实际东西,应有这些名字应能反映它所代表的实际东西,应有一定实际意义。一定实际意义。(例如,表示次数的量用例如,表示次数的量用例如,表示次数的量用例如,表示次数的量用TimesTimes,表示总量的用,表示总量的用,表示总量的用,表示总量的用TotalTotal,表示平均值的用,
6、表示平均值的用,表示平均值的用,表示平均值的用AverageAverage,表示和的量用,表示和的量用,表示和的量用,表示和的量用SumSum等。等。等。等。)n n名字不是越长越好,应当选择精炼的意义明确名字不是越长越好,应当选择精炼的意义明确的名字。的名字。n n必要时可使用缩写名字,但这时要注意缩写规必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释。则要一致,并且要给每一个名字加注释。n n在一个程序中,一个变量只应用于一种用途。在一个程序中,一个变量只应用于一种用途。编码风格:程序的内部文档编码风格:程序的内部文档7软件工程-2010-第七章 实现第7页,共1
7、74页,编辑于2022年,星期三n n程序的注解:程序的注解:n n夹在程序中的注释是程序员与日后的程序读者夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。之间通信的重要手段。n n注释决不是可有可无的。注释决不是可有可无的。n n一些正规的程序文本中,注释行的数量占到整一些正规的程序文本中,注释行的数量占到整个源程序的个源程序的13到到12,甚至更多。,甚至更多。n n注释分为注释分为序言性注释序言性注释和和功能性注释功能性注释。编码风格:程序的内部文档编码风格:程序的内部文档8软件工程-2010-第七章 实现第8页,共174页,编辑于2022年,星期三n n序言性注释:序言性注
8、释:n n通常置于每个程序模块的开头部分,它应当给出程通常置于每个程序模块的开头部分,它应当给出程通常置于每个程序模块的开头部分,它应当给出程通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。序的整体说明,对于理解程序本身具有引导作用。序的整体说明,对于理解程序本身具有引导作用。序的整体说明,对于理解程序本身具有引导作用。有些软件开发部门对序言性注释做了明确而严格的有些软件开发部门对序言性注释做了明确而严格的有些软件开发部门对序言性注释做了明确而严格的有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。规定,要求程序编制者逐项列出。规
9、定,要求程序编制者逐项列出。规定,要求程序编制者逐项列出。n n有关项目包括:有关项目包括:有关项目包括:有关项目包括:n n程序标题;程序标题;程序标题;程序标题;n n有关本模块功能和目的的说明;有关本模块功能和目的的说明;有关本模块功能和目的的说明;有关本模块功能和目的的说明;n n主要算法;主要算法;主要算法;主要算法;n n接口说明:包括调用形式,参数描述,子程序清单;接口说明:包括调用形式,参数描述,子程序清单;接口说明:包括调用形式,参数描述,子程序清单;接口说明:包括调用形式,参数描述,子程序清单;n n有关数据描述:重要的变量及其用途,约束或限制条件,有关数据描述:重要的变量
10、及其用途,约束或限制条件,有关数据描述:重要的变量及其用途,约束或限制条件,有关数据描述:重要的变量及其用途,约束或限制条件,以及其它有关信息;以及其它有关信息;以及其它有关信息;以及其它有关信息;n n模块位置:在哪一个源文件中,或隶属于哪一个软件包;模块位置:在哪一个源文件中,或隶属于哪一个软件包;模块位置:在哪一个源文件中,或隶属于哪一个软件包;模块位置:在哪一个源文件中,或隶属于哪一个软件包;n n开发简历:模块设计者,复审者,复审日期,修改日期及开发简历:模块设计者,复审者,复审日期,修改日期及开发简历:模块设计者,复审者,复审日期,修改日期及开发简历:模块设计者,复审者,复审日期,
11、修改日期及有关说明等。有关说明等。有关说明等。有关说明等。编码风格:程序的内部文档编码风格:程序的内部文档9软件工程-2010-第七章 实现第9页,共174页,编辑于2022年,星期三n n功能性注释功能性注释:n n功能性注释嵌在源程序体中,用以描述其后的语句功能性注释嵌在源程序体中,用以描述其后的语句功能性注释嵌在源程序体中,用以描述其后的语句功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在或程序段是在或程序段是在或程序段是在做什么工作做什么工作做什么工作做什么工作,或是执行了下面的语句,或是执行了下面的语句,或是执行了下面的语句,或是执行了下面的语句会怎么样。而会怎么样。而会怎么
12、样。而会怎么样。而不要解释下面怎么做不要解释下面怎么做不要解释下面怎么做不要解释下面怎么做。编码风格:程序的内部文档编码风格:程序的内部文档10软件工程-2010-第七章 实现第10页,共174页,编辑于2022年,星期三n n视觉组织:视觉组织:n n空格、空行和缩进。空格、空行和缩进。n n恰当地利用空格,可以突出运算的优先性。恰当地利用空格,可以突出运算的优先性。n n自然的程序段之间可用空行隔开。自然的程序段之间可用空行隔开。n n缩进也叫做向右缩格或移行。它是指程序中的缩进也叫做向右缩格或移行。它是指程序中的各行不必都在左端对齐,都从第一格起排列。各行不必都在左端对齐,都从第一格起排
13、列。这样做使程序完全分不清层次关系。这样做使程序完全分不清层次关系。n n对于选择语句和循环语句,把其中的程序段语对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加句向右做阶梯式移行。使程序的逻辑结构更加清晰。清晰。编码风格:程序的内部文档编码风格:程序的内部文档11软件工程-2010-第七章 实现第11页,共174页,编辑于2022年,星期三n n在设计阶段已经确定了数据结构的组织及其在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则需要注意数据说复杂性。在编写程序时,则需要注意数据说明的风格。明的风格。n n为了使程序中数据说明更易于理解和维护,为
14、了使程序中数据说明更易于理解和维护,必须注意以下几点:必须注意以下几点:n n数据说明的次序应当规范化;数据说明的次序应当规范化;n n说明语句中变量安排有序化;说明语句中变量安排有序化;n n使用注释说明复杂数据结构。使用注释说明复杂数据结构。编码风格:数据说明编码风格:数据说明12软件工程-2010-第七章 实现第12页,共174页,编辑于2022年,星期三n n数据说明的次序应当规范化:数据说明的次序应当规范化:n n数据说明次序规范化,使数据属性容易查找,也数据说明次序规范化,使数据属性容易查找,也数据说明次序规范化,使数据属性容易查找,也数据说明次序规范化,使数据属性容易查找,也有利
15、于测试,排错和维护。有利于测试,排错和维护。有利于测试,排错和维护。有利于测试,排错和维护。n n原则上,数据说明的次序与语法无关,其次序是原则上,数据说明的次序与语法无关,其次序是原则上,数据说明的次序与语法无关,其次序是原则上,数据说明的次序与语法无关,其次序是任意的。但出于阅读、理解和维护的需要,最好任意的。但出于阅读、理解和维护的需要,最好任意的。但出于阅读、理解和维护的需要,最好任意的。但出于阅读、理解和维护的需要,最好使其规范化,使说明的先后次序固定。使其规范化,使说明的先后次序固定。使其规范化,使说明的先后次序固定。使其规范化,使说明的先后次序固定。n n例如,在类型说明中可按如
16、下顺序排列:例如,在类型说明中可按如下顺序排列:例如,在类型说明中可按如下顺序排列:例如,在类型说明中可按如下顺序排列:整型量说明整型量说明整型量说明整型量说明实型量说明实型量说明实型量说明实型量说明字符量说明字符量说明字符量说明字符量说明逻辑量说明逻辑量说明逻辑量说明逻辑量说明编码风格:数据说明编码风格:数据说明13软件工程-2010-第七章 实现第13页,共174页,编辑于2022年,星期三n n说明语句中变量安排有序化说明语句中变量安排有序化:n n当多个变量名在一个说明语句中说明时,应当对当多个变量名在一个说明语句中说明时,应当对当多个变量名在一个说明语句中说明时,应当对当多个变量名在
17、一个说明语句中说明时,应当对这些变量按字母的顺序排列。这些变量按字母的顺序排列。这些变量按字母的顺序排列。这些变量按字母的顺序排列。例如,把例如,把例如,把例如,把integer size,length,width,cost,priceinteger size,length,width,cost,price写成写成写成写成integer cost,length,price,size,widthinteger cost,length,price,size,width编码风格:数据说明编码风格:数据说明14软件工程-2010-第七章 实现第14页,共174页,编辑于2022年,星期三n n使用注释
18、说明复杂数据结构使用注释说明复杂数据结构:n n如果设计了一个复杂的数据结构,应当使用注释如果设计了一个复杂的数据结构,应当使用注释如果设计了一个复杂的数据结构,应当使用注释如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的特点。来说明在程序实现时这个数据结构的特点。来说明在程序实现时这个数据结构的特点。来说明在程序实现时这个数据结构的特点。n n例如例如例如例如,对对对对C C的链表结构和的链表结构和的链表结构和的链表结构和PascalPascal中用户自定义的数据中用户自定义的数据中用户自定义的数据中用户自定义的数据类型,都应当在注释中做必要的补充说明。类型,都应当
19、在注释中做必要的补充说明。类型,都应当在注释中做必要的补充说明。类型,都应当在注释中做必要的补充说明。编码风格:数据说明编码风格:数据说明15软件工程-2010-第七章 实现第15页,共174页,编辑于2022年,星期三n n在设计阶段确定了软件的逻辑流结构,但构在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造造单个语句则是编码阶段的任务。语句构造力求简单、直接,不能为了片面追求效率而力求简单、直接,不能为了片面追求效率而使语句复杂化。使语句复杂化。n n下面是关于语句构造的一些启发规则:下面是关于语句构造的一些启发规则:编码风格:语句构造编码风格:语句构造16软件
20、工程-2010-第七章 实现第16页,共174页,编辑于2022年,星期三1.在一行内只写一条语句。在一行内只写一条语句。2.避免采用过于复杂的条件测试。避免采用过于复杂的条件测试。3.尽量减少尽量减少“非非”条件的测试。条件的测试。IF NOT(CHAR9)THEN IF NOT(CHAR9)THEN IF(CHAR=0)AND(CHAR=0)AND(CHAR=9)THEN 4.避免大量使用循环嵌套和条件嵌套。避免大量使用循环嵌套和条件嵌套。5.利用括号使逻辑表达式或算术表达式的运算利用括号使逻辑表达式或算术表达式的运算次序清晰直观。次序清晰直观。编码风格:语句构造编码风格:语句构造17软件
21、工程-2010-第七章 实现第17页,共174页,编辑于2022年,星期三6.除非对效率有特殊的要求,程序编写要做到除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。不要为了追求效率而清晰第一,效率第二。不要为了追求效率而丧失了清晰性。事实上,程序效率的提高主丧失了清晰性。事实上,程序效率的提高主要应通过选择高效的算法来实现。要应通过选择高效的算法来实现。n n对比下面两个程序段,哪个更清楚表达了自己对比下面两个程序段,哪个更清楚表达了自己的意图?的意图?编码风格:语句构造编码风格:语句构造A I =A I A I =A I A T A T;A T=AA T=A I I A T A T
22、;A I =A I A I =A I A A T T;WORK=A T WORK=A T;A T =A I A T =A I;A I =WORKA I =WORK;18软件工程-2010-第七章 实现第18页,共174页,编辑于2022年,星期三7.程序要能直截了当地说明程序员的用意。程序要能直截了当地说明程序员的用意。n n对比下面两个程序段,哪个更直接地表达了自对比下面两个程序段,哪个更直接地表达了自己的意图?己的意图?编码风格:语句构造编码风格:语句构造for(i=1;i=n;i+)for(i=1;i=n;i+)for(j=1;j=n;j+)for(j=1;j=n;j+)Vij=(i V
23、ij=(ij)*(jj)*(ji)i)for(ifor(i1;i=n;i+)1;i=n;i+)for(j for(j1;j=n;j+)1;j=A)THENIF(CHAR=A)THEN IF(CHAR=Z)THEN IF(CHAR=Z)THENPRINT“This is a letter.”PRINT“This is a letter.”ELSE ELSE PRINT“This is not a letter.”PRINT“This is not a letter.”15.15.不要单独进行浮点数的比较,而是采用不要单独进行浮点数的比较,而是采用不要单独进行浮点数的比较,而是采用不要单独进行浮点
24、数的比较,而是采用|x0-x1|1e-6|x0-x1|1 and A1 and B=0B=0X=X/AX=X/AA=2 or X1A=2 or X1X=X+1X=X+1入口入口入口入口返回返回返回返回s s(2,0,4),(2,0,3)sacbed(2,0,4),(2,0,3)sacbed(2,0,4),(2,0,3)sacbed(2,0,4),(2,0,3)sacbed!判断!判断a a中中and-orand-or判断判断b b中中or-andor-and89软件工程-2010-第七章 实现第89页,共174页,编辑于2022年,星期三判定覆盖判定覆盖n n判定覆盖又叫分支覆盖,它的含义是,
25、不仅每个判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。的每个分支都至少执行一次。n n换言之,就是设计若干个测试用例,运行被测程换言之,就是设计若干个测试用例,运行被测程序,使得程序中每个判定的取真分支和取假分支序,使得程序中每个判定的取真分支和取假分支至少经历一次。至少经历一次。90软件工程-2010-第七章 实现第90页,共174页,编辑于2022年,星期三e ec cF FF Fd dT TT Tba
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 2幻灯片 幻灯片
限制150内