您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 深圳信息职业技术学院
深圳信息职业技术学院教案第81页学科个体软件过程课题第十七章设计缺陷时数2授课班级02软件1班、4班教学目标及要求学习讨论设计缺陷、设计过程和设计表示,并讨论减少引入设计缺陷数目的方法。教学重点设计缺陷的本质,设计过程,设计表达教学难点设计表达实验仪器及教具微机、投影仪、Office软件教学方法讲授、案例教学、行为引导教学、探究性学习深圳信息职业技术学院教案第82页教学过程备注引入问题:提问程序流程图,伪代码。教学内容:1、说明设计缺陷的本质(探究性学习)2、介绍如何识别设计缺陷3、给出“设计”的定义(讨论)4、讲述设计过程(提问+讨论)5、介绍设计缺陷的起因6、介绍设计缺陷的影响(行为引导法)7、讲授完整清晰的设计表达方法(案例教学)教学方法:案例教学、行为引导教学、探究性学习课程整合:以程序设计语言中逻辑框图为对象,对比学习。课后作业第195页作业深圳信息职业技术学院教案(续页)第83页第十七章设计缺陷一、设计缺陷在测试阶段发现的大部分缺陷很多可能是在编码阶段引入的,这说明主要的缺陷问题是单纯的编码错误。事实上,在编码阶段引入的缺陷是设计阶段引入的缺陷的一倍半。当学习了PSP后,这个比率有了变化。在测试阶段发现的缺陷中,编码阶段引入的缺陷比设计阶段平均大约只多14%。他们在设计和编码两个阶段的缺陷数都减少了,但设计阶段的改进要小一点。测试阶段发现的缺陷大部分是设计类型的缺陷,但它们多数是在编码阶段引入的。尽管这些工程师显著地减少了引入的缺陷数,但在编码阶段他们还是引入了许多设计类型的错误。即使是最好的编译器也不能发现所有的语法缺陷,有些设计缺陷也同样会引起语法错误。一些随机的录入错误偶尔会产生符合语法的语句。这样的缺陷通常占所有语法缺陷的10%。例如,当想输入x==y却键入了x=y,C++编译器将无法发现这一错误。没有简单、客观的方法来定义什么是设计缺陷。●将设计阶段引入的所有缺陷定义为设计缺陷。●将那些与程序功能、逻辑、性能和时序有关的缺陷定义为设计缺陷。在本书中,我们使用第二个定义。二、设计任何与程序结构和实现有关的内容都涉及到设计;这些内容包括程序流程、语言构造的结构和组成以及主源代码的标点符号等。设计和编码的界线不是截然可分的。我们用“抽象”一词来描述高层的概念方法。遵循这种抽象策略,工程师可以先完成全部的高层设计,再深入到每个抽象或功能的实现细节。在进行设计时,有经验的工程师经常在各个设计层次之间动态地进行切换[Curis]。原因是他们要处理很多抽象功能。首先要理解这个抽象是如何工作的,然后才能在高层设计中放心地使用。如果以前从未用过这样的功能抽象,通常要停下来先进行详细设计。甚至会编写一个原型并且进行测试,然后才有足够的信心继续进行高层设计。有时当系统设计建立在一个看似简单但却包含有定义笨拙的抽象上时,最终会发现整个设计方案是不可行的。很难对设计和编码之间的区别给出一个明确解释;也就是说,很难定义什么是完整的设计规格说明。因此在PSP中,重要的是要区分设计过程和特定的设计阶段。设计阶段是指生产设计制品的阶段,设计过程是描述为生产这个设计产品或制品而进行的活动。三、设计缺陷的起因设计缺陷产生的几种原因:设计错误深圳信息职业技术学院教案(续页)第84页知道应该做什么样的设计,但犯了一个简单的错误。误解了要做的内容。不但理解局部设计和系统设计,甚至还理解需求,只是不明白系统的语境。令人吃惊的是,设计错误经常来自过分自信。大部分缺陷是由单纯的疏忽大意、愚蠢和理解错误引起的。由于软件工程师犯了许多的简单错误,而这些错误又经常很难发现,所以这些简单缺陷是引起大部分问题的原因。许多这样的缺陷可能通过整个开发和测试过程,最后影响到系统用户。这些细微的缺陷导致许多用户在使用软件系统时出现问题。四、设计表达完整清晰的设计表达有助于减少引入缺陷的数目。通过完整地表达你所创建的设计,可以节省开发时间,因为在一般情况下,根据清晰完整的设计来编码比根据模糊不清的设计来编码要快很多。编码时间少意味着引入的编码缺陷也少,一个好的设计更能生产出较高质量的产品。有三种常用的表达设计的方法:图形、伪码或数学方法。图形设计表达方法图形一般比公式和文字更容易让人理解。在描述一个复杂的设计时,一张图可以帮助人们更好地理解其设计。因为设计的大部分部分问题涉及理解,所以通常应该使用图形来帮助人们理解设计。最常用的图形表达方式是流程图。图形表达方法易于理解,但通常不够精确或篇幅过长。伪码设计表达方法伪码是另外一种表达程序逻辑的方法。这种方法使用一种与编程语言类似的语言,采用简洁的方法来表示复杂的表达式,以便易于理解。这种方法的目的是表达程序的逻辑,但忽略程序设计语言的许多语法细节。一个伪码设计描述的示例如下:Algorithm(Functionf(x)calculation)If(x0)Then(Error_Routine)elseif(x=0)then(NullCorrection)elsey=f(x)end伪码设计描述是人类语言与程序结构的结合。对人们熟知的功能不用复杂的逻辑而用简单的语句来表示。最好的表态方式是既有流程图又有伪码。深圳信息职业技术学院教案(续页)第85页其它表达方法各种数学方法都可以用来精确定义软件系统。这些方法的优点是表态精确,缺点是不易学习,至少对那些没有经过严格数学训练的工程师是这样。设计表示是一个重要的问题,在将来无疑会有许多想法和方法出现。当你从各种方法中选择使用哪种方法时,要考虑以下几点:设计是一个思考过程。丰富的设计符号有助于精确地思考和表达一个复杂的设计。但是,丰富的设计符号难以学习。当使用不熟悉的设计符号时,可能不习惯用这些符号进行思考。这时,必须用熟悉的符号通盘考虑设计,然后再将其转换成不熟悉的符号。这个转换过程会影响创造力、延缓设计工作和引起错误。五、总结许多设计缺陷表现在编码阶段。一种减少设计缺陷的方法是分析缺陷类型。在PSP中,把设计缺陷定义为从类型50~100的缺陷。如果在编码阶段引入了许多这种类型的缺陷,应该考虑在设计上花更多的时间。最有效的方法是在设计阶段而不是编码阶段产生逻辑设计和功能设计。精确的设计表达可以节省实现时间,减少设计缺陷;拙劣的设计表达会引起缺陷。图形表达易于理解但可能不精确。伪码表达可以详细到任意程度,可以使用与采用的程序设计语言相类似的语言。在选择设计表达方法时,要对表达方法熟悉后再给出评价。使用自己的PSP数据进行评价并作出决定。六、作业第195页习题
本文标题:深圳信息职业技术学院
链接地址:https://www.777doc.com/doc-47860 .html