软件工程教案_12(第六九节)

合集下载

软件工程 教案

软件工程 教案

软件工程教案教案标题:软件工程导论教案目标:1. 介绍软件工程的基本概念和原则;2. 培养学生对软件工程的兴趣和认识;3. 帮助学生理解软件工程的重要性和应用领域;4. 引导学生掌握软件工程的基本流程和方法。

教学内容:1. 软件工程的定义和发展历程;2. 软件工程的基本原则和方法;3. 软件工程的应用领域和重要性;4. 软件工程的基本流程和模型。

教学步骤:第一步:导入1. 引入软件工程的概念,让学生思考和讨论他们对软件工程的理解和认识;2. 介绍软件工程的定义和发展历程,激发学生对软件工程的兴趣。

第二步:讲解1. 介绍软件工程的基本原则和方法,如需求分析、设计、编码、测试和维护等;2. 分析软件工程的应用领域和重要性,如企业管理、科学研究、医疗保健等;3. 解释软件工程的基本流程和模型,如瀑布模型、敏捷开发等。

第三步:实践1. 组织学生参与软件工程实践活动,如需求分析案例分析、软件设计模型绘制等;2. 引导学生运用软件工程的方法和流程解决实际问题,培养他们的实践能力和创新思维。

第四步:总结1. 总结软件工程的基本概念、原则和方法,巩固学生对软件工程的理解;2. 强调软件工程在现代社会中的重要性和应用前景,激发学生对软件工程的兴趣和追求。

教学评估:1. 设计小组讨论和展示,评估学生对软件工程概念和原则的理解;2. 批判性思维问题,评估学生对软件工程应用领域和重要性的思考和分析能力;3. 实践项目评估,评估学生运用软件工程方法和流程解决问题的能力。

教学资源:1. PowerPoint演示文稿,用于介绍软件工程的基本概念和原则;2. 实践案例材料,用于组织学生参与软件工程实践活动;3. 讨论问题和评估标准,用于引导学生思考和评估学习效果。

教学延伸:1. 鼓励学生参与软件工程相关的比赛和项目,提升他们的实践能力和团队合作精神;2. 推荐相关的学术论文和书籍,帮助学生深入了解软件工程的前沿发展和研究方向。

软件工程教案

软件工程教案

软件工程教案软件工程教案软件工程是一门涉及软件开发、测试和维护的学科,它旨在通过系统化的方法和工具,提高软件开发的效率和质量。

软件工程教案是指针对软件工程课程的教学计划和教学材料,它为教师提供了指导,帮助学生更好地学习和理解软件工程的核心概念和技术。

一、教学目标软件工程教案的首要目标是培养学生的软件工程思维和实践能力。

通过课程的学习,学生应该能够理解软件开发的整体过程,熟悉常用的软件开发方法和工具,掌握软件需求分析、设计、编码和测试等关键技术,以及软件项目管理和团队协作的基本原则。

二、教学内容1. 软件工程概述- 软件工程的定义和发展历程- 软件工程的重要性和应用领域- 软件生命周期和软件开发过程模型2. 软件需求分析- 软件需求的定义和分类- 需求获取和需求分析技术- 需求规格说明和需求验证3. 软件设计- 软件设计的基本原则和方法- 结构化设计和面向对象设计- UML建模和设计模式4. 软件编码和调试- 编程语言和开发环境选择- 编码规范和代码复用- 软件调试和错误处理技术5. 软件测试和质量保证- 软件测试的基本概念和分类- 测试计划和测试用例设计- 质量保证和持续集成6. 软件项目管理- 软件项目的组织和管理- 项目计划和进度控制- 风险管理和团队协作三、教学方法软件工程教学应注重理论与实践相结合,通过案例分析、项目实践和小组讨论等形式,培养学生的问题解决能力和团队合作精神。

教师可以采用讲授、演示、实验和讨论等多种教学方法,激发学生的学习兴趣和动力。

四、教学评估软件工程教学评估应综合考察学生的理论知识和实践能力。

评估方式可以包括课堂测试、作业、实验报告、项目成果和期末考试等。

教师还可以通过课堂讨论和个人面试等形式,评估学生的分析思维、沟通能力和团队合作能力。

五、教学资源为了支持软件工程教学,教师需要准备一些教学资源,如教材、课件、实验环境和相关文献。

此外,教师还可以引导学生利用互联网资源,如在线学习平台、开源软件和社区论坛,扩展学生的学习视野和实践经验。

《软件工程》教学教案

《软件工程》教学教案

《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。

2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。

3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。

4. 教学资源教材、课件、案例分析。

5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。

二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。

2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。

3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。

4. 教学资源教材、课件、实例分析。

5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。

三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。

2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。

3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。

4. 教学资源教材、课件、实例分析。

5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。

四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。

2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。

3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。

4. 教学资源教材、课件、编程环境和测试工具。

5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。

五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。

2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。

软件工程教案

软件工程教案

软件工程教案软件工程教案教学目标:1. 了解软件工程的基本概念和发展历史;2. 掌握软件工程的基本过程和方法;3. 培养学生的软件开发能力和团队协作精神。

教学内容:1. 软件工程的基本概念1.1 软件工程的定义1.2 软件工程的发展历史1.3 软件工程的应用领域2. 软件工程的基本过程2.1 需求分析2.2 系统设计2.3 编码与测试2.4 运营与维护3. 软件工程的基本方法3.1 面向对象分析与设计3.2 软件项目管理3.3 软件质量保证3.4 软件配置管理4. 软件工程的实践案例4.1 软件工程在企业管理中的应用4.2 软件工程在互联网行业中的应用4.3 软件工程在科研领域中的应用教学方法:1. 理论教学与案例分析相结合,注重培养学生的实际应用能力;2. 通过小组讨论和实践项目,培养学生的团队协作能力;3. 鼓励学生进行自主学习,提高解决问题的能力。

教学流程:1. 导入(5分钟)介绍软件工程的基本概念和发展历史,引发学生对软件工程的兴趣。

2. 理论讲解(40分钟)2.1 讲解软件工程的基本概念和发展历史;2.2 介绍软件工程的基本过程和方法;2.3 分析软件工程的应用领域。

3. 案例分析(30分钟)3.1 分组讨论软件工程的实践案例;3.2 分享讨论结果,了解不同应用领域的软件工程实践经验。

4. 小组项目(40分钟)4.1 小组内讨论并选择一个软件项目;4.2 在规定的时间内完成项目的需求分析、系统设计、编码与测试等环节;4.3 小组展示项目成果,并进行评价和总结。

5. 总结(5分钟)回顾本节课的教学内容,总结软件工程的基本概念、过程和方法。

教学评价:1. 小组项目成果的评价,包括需求分析、系统设计、编码与测试等环节的质量和完整度;2. 案例分析和讨论的质量,包括对实际案例的分析和讨论能力;3. 学生的参与度和表现,包括课堂讨论、小组合作等方面的表现。

教学反馈:1. 针对小组项目的评价,给予学生具体的指导和建议;2. 集中反馈学生在案例分析和讨论中的表现,指导学生提高分析和讨论能力;3. 收集学生对本节课的教学反馈,改进教学方法和内容。

《软件工程》教学教案

《软件工程》教学教案

软件工程教学教案第1章第2章圆圈中的字母代表各项子任务的开始或结束事件的编号,箭头上方的数字表示完成各项子任务所需的周数。

要求:(1)标出每个事件的最早时刻、最迟时刻与机动时间。

估算完成该工程项目总共需要多第3章第4章第5章第6章第7章第8章第9章第10章第11章第12章八、实施建议(一)教学建议1.课程组织形式方面整体组织上采取理实一体化的特点,以问题或任务为导向,围绕每一个理论知识点,展开相关技能的教学,一步一步,环环相扣,逐步形成一个完整的工作任务。

使学生掌握相关电类工程技术人才必备的电气控制技术的基本理论、基本知识和基本实践技能;为从事生产第一线的技术工作以及进一步提高科学技术知识水平打下一定基础;同时,结合本课程特点,逐步培养学生的分析、解决实际问题的能力。

课程教学中,应遵守如下原则:(1)以学生为主体的原则。

要改变传统的以教师的教授为中心的教学观念,以学生为主体,以学生的学习为中心进行课程教学设计。

(2)以应用为主旨的原则。

课程内容改革要突出应用性,做到理论与实践相结合。

既要精选理论教学内容,又要设计足够的实践教学环节。

帮助学生做到“学其所用,用其所学”。

(3)以能力培养为目标的原则。

要围绕学生的学习,以培养学生的知识应用能力、实验分析能力、实践操作能力选择适合的教学方法。

尤其要注重发挥现代教育技术,为学生创造充分的实践机会。

2.教师指导方法方面(1)根据课程操作性强的特点,在教学中采用现场教学、示范教学。

(2)自学指导法:对那些比较简单的技术,采用“自学指导法”处理。

通过布置自学纲要,指出重点难点和学习检查等途径强化教师的指导作用,以培养学生的独立思考和创新能力。

(3)现场讨论法:在现场教学时,针对技术细节充分运用讨论法激起学生对问题的争论,活跃学习气氛,并使学生处于一种接受知识的最佳状态,以达最佳教学效果。

(4)学生演示法:在课堂实验或现场教学时,提供某些小的技术操作问题,让部分学生自己亲自演示并向其他学生解说,使学生产生自我能够解决技术问题的自信心。

《软件工程》教学教案

《软件工程》教学教案

《软件工程》教学教案一、第1章软件工程概述1.1 教学目标了解软件工程的定义、目的和重要性掌握软件开发生命周期的基本概念理解软件工程的基本原则和方法1.2 教学内容软件工程的定义和目的软件开发生命周期(需求分析、设计、实现、测试、维护等)软件工程的基本原则和方法(如模块化、抽象化、逐步求精等)1.3 教学活动引入软件工程的定义和目的,引发学生对软件工程的理解和兴趣通过实例讲解软件开发生命周期的各个阶段及其重要性介绍软件工程的基本原则和方法,并通过案例进行说明1.4 作业与练习课后阅读材料:软件工程概述的相关文章完成课后练习题,巩固对软件工程的理解二、第2章软件需求分析2.1 教学目标掌握需求分析的概念和过程学会使用需求分析工具和技术能够编写需求规格说明书2.2 教学内容需求分析的概念和过程(需求收集、需求分析、需求规格说明书等)需求分析工具和技术(如数据流图、实体关系图、用例分析等)需求规格说明书的编写方法和注意事项2.3 教学活动引入需求分析的概念和过程,让学生了解需求分析的重要性通过实例讲解需求分析的工具和技术,并展示如何编写需求规格说明书学生分组讨论并编写一个简单的需求规格说明书2.4 作业与练习课后阅读材料:需求分析的相关文章完成课后练习题,巩固对需求分析的理解三、第3章软件设计3.1 教学目标掌握软件设计的基本概念和方法学会使用设计工具和技术能够编写设计文档3.2 教学内容软件设计的基本概念和方法(如结构化设计、面向对象设计等)设计工具和技术(如流程图、类图、序列图等)设计文档的编写方法和注意事项3.3 教学活动引入软件设计的基本概念和方法,让学生了解设计的重要性通过实例讲解设计工具和技术,并展示如何编写设计文档学生分组讨论并编写一个简单的设计文档3.4 作业与练习课后阅读材料:软件设计的相关文章完成课后练习题,巩固对软件设计的理解四、第4章软件实现4.1 教学目标掌握软件实现的基本概念和方法学会使用编程语言和开发工具能够编写高质量的代码4.2 教学内容软件实现的基本概念和方法(如编码规范、代码重构等)编程语言和开发工具的选择和使用(如Java、Python、Git等)编写高质量的代码的技巧和注意事项4.3 教学活动引入软件实现的基本概念和方法,让学生了解实现的重要性通过实例讲解编程语言和开发工具的使用,并展示如何编写高质量的代码学生分组讨论并进行代码编写练习4.4 作业与练习课后阅读材料:软件实现的相关文章完成课后练习题,巩固对软件实现的理解五、第5章软件测试5.1 教学目标掌握软件测试的基本概念和方法学会使用测试工具和技术能够编写测试用例和测试计划5.2 教学内容软件测试的基本概念和方法(如黑盒测试、白盒测试、灰盒测试等)测试工具和技术(如JUnit、Selenium等)编写测试用例和测试计划的技巧和注意事项5.3 教学活动引入软件测试的基本概念和方法,让学生了解测试的重要性通过实例讲解测试工具和技术的使用,并展示如何编写测试用例和测试计划学生分组讨论并进行测试编写练习5.4 作业与练习课后阅读材料:软件测试的相关文章完成课后练习题,巩固对软件测试的理解六、第6章项目管理6.1 教学目标理解项目管理的基本概念和原则掌握软件项目管理的方法和工具能够制定项目计划和监控项目进度6.2 教学内容项目管理的基本概念和原则(如范围管理、时间管理、成本管理、风险管理等)软件项目管理的方法和工具(如敏捷开发、看板、项目管理软件等)项目计划的制定和项目进度的监控6.3 教学活动引入项目管理的概念和重要性,让学生了解项目管理在软件工程中的作用通过实例讲解项目管理的方法和工具,并展示如何制定项目计划和监控项目进度学生分组讨论并进行项目管理练习6.4 作业与练习课后阅读材料:项目管理的理论和实践相关文章完成课后练习题,巩固对项目管理的理解七、第7章软件维护7.1 教学目标理解软件维护的定义和重要性掌握软件维护的方法和技巧能够制定维护计划和处理维护问题7.2 教学内容软件维护的定义和重要性软件维护的方法和技巧(如变更管理、版本控制、问题跟踪等)维护计划的制定和维护问题的处理7.3 教学活动引入软件维护的概念和重要性,让学生了解维护在软件工程中的作用通过实例讲解维护的方法和技巧,并展示如何制定维护计划和处理维护问题学生分组讨论并进行维护实践练习7.4 作业与练习课后阅读材料:软件维护的理论和实践相关文章完成课后练习题,巩固对软件维护的理解八、第8章软件工程实践8.1 教学目标掌握软件工程实践的基本方法和技巧学会使用软件工程工具和实践方法能够应用软件工程实践解决实际问题8.2 教学内容软件工程实践的基本方法和技巧(如代码审查、单元测试、持续集成等)软件工程工具和实践方法(如版本控制系统、自动化测试工具、持续部署等)实际案例分析,展示软件工程实践在软件开发中的应用8.3 教学活动引入软件工程实践的概念和重要性,让学生了解实践在软件工程中的作用通过实例讲解软件工程实践的方法和技巧,并展示如何使用工具和实践方法学生分组讨论并进行软件工程实践练习8.4 作业与练习课后阅读材料:软件工程实践的理论和实践相关文章完成课后练习题,巩固对软件工程实践的理解九、第9章软件工程案例分析9.1 教学目标了解软件工程案例分析的方法和步骤能够运用软件工程原则解决实际问题9.2 教学内容软件工程案例分析的方法和步骤(如问题陈述、原因分析、解决方案等)运用软件工程原则解决实际问题的技巧和方法9.3 教学活动引入软件工程案例分析的概念和重要性,让学生了解案例分析在软件工程中的作用学生分组讨论并进行软件工程案例分析练习9.4 作业与练习课后阅读材料:软件工程案例分析的理论和实践相关文章完成课后练习题,巩固对软件工程案例分析的理解十、第10章软件工程未来趋势10.1 教学目标了解软件工程的未来发展趋势掌握新兴技术和方法在软件工程中的应用能够预测和应对软件工程的未来挑战10.2 教学内容软件工程的未来发展趋势(如、区块链、云计算等)新兴技术和方法在软件工程中的应用(如机器学习、容器化、微服务架构等)预测和应对软件工程的未来挑战的策略和方法10.3 教学活动引入软件工程未来趋势的概念和重要性,让学生了解软件工程的发展方向通过实例讲解新兴技术和方法在软件工程中的应用,并展示如何应对未来挑战学生分组讨论并进行软件工程未来趋势分析练习10.4 作业与练习课后阅读材料:软件工程未来趋势的理论和实践相关文章完成课后练习题,巩固对软件工程未来趋势的理解重点和难点解析一、第1章软件工程概述补充说明:需求分析是软件工程的基础,要着重讲解其方法和技巧,以及如何编写需求规格说明书。

《软件工程》教案

《软件工程》教案
九、教学主要内容及设计:
面向对象方法学。面向对象的基本概念。面向对象建模方法。对象模型,动态模型和功能
模型。
课程名称:软件工程授课对象:计算机科学与技术专业本科生
掌握编码应遵循的规则。理解软件测试的目标,方法和步骤。掌握单元测试。掌握集成测
试。掌握白盒测试技技术。掌握黑盒测试技术。掌握调试途径。了解软件可靠性度量。
五、教学重点、难点:
软件测试的目标,方法和步骤。白盒测试技技术。黑盒测试技术。
六、结合教学内容选择的主要教学方法:
基本概念讲解,各种测试方法举例。
绘软件结构的层次图和结构图。掌握面向数据流的设计方法。
五、教学重点、难点:
设计基本原理。面向数据流的设计方法。
六、结合教学内容选择的主要教学方法:
基本概念,方法和过程讲述。面向数据流的设计方法的实例讲解。
七、作业及思考题:
习题五3,4
八、参考资料:
1.张海藩,软件工程导论(第5版),清华大学出版社,2008.02
握对象模型,动态模型和功能模型的概念,理解3种模型之间的关系。
五、教学重点、难点:
面向对象方法学。面向对象的基本概念。面向对象建模方法。
六、结合教学内容选择的主要教学方法:
基本概念,方法和模型的讲解。
七、作业及思考题:
习题九6,7,8
八、参考资料:
1.张海藩,软件工程导论(第5版),清华大学出版社,2008.02
3.Grady Booch, Robert A. Maksimchuk, Object-oriented analysis and design with Applications, Third edition, Pearson Education, Inc, 2008.04

软件工程教案

软件工程教案

软件工程教案1. 引言软件工程是一个涵盖软件开发全过程的学科,主要关注如何在规定的时间内、预算内以及满足预期质量标准的条件下开发出高质量的软件产品。

本教案旨在为学生提供软件工程领域的基础知识,并培养他们在实践中运用这些知识解决软件开发问题的能力。

2. 教学目标本教案的教学目标是使学生能够:- 理解软件工程的基本概念和原理- 掌握常用的软件开发方法和技术- 熟悉软件工程项目的规划、分析、设计、实施和测试等阶段- 培养解决软件工程问题的思维方式和实践能力3. 教学内容本教案的教学内容包括以下主题:1. 软件工程概述- 软件工程的定义和发展历程- 软件工程的重要性和应用领域2. 软件开发方法和技术- 瀑布模型、迭代模型和敏捷开发方法- 需求分析和规格说明- 软件设计和架构- 编码和测试3. 软件项目管理- 项目计划和进度管理- 团队协作与沟通- 风险管理和质量保证4. 软件质量和测试- 软件质量的定义和评估指标- 软件测试的基本概念和方法- 自动化测试工具和技术5. 软件维护和演化- 软件维护的类型和策略- 软件重构和性能优化4. 教学方法本教案将采取以下教学方法:- 讲授:通过教师讲解、案例分析等方式传授软件工程的基本理论和方法。

- 实践:通过个人或小组项目实践,提供学生在实际开发项目中应用软件工程知识的机会。

- 讨论:组织学生进行讨论和分享,促进彼此之间的研究和交流。

5. 教学评估为了评估学生对软件工程知识的掌握情况,本教案将采用以下评估方式:- 课堂测验:通过课堂小测验检测学生对教学内容的理解和掌握程度。

- 项目实践:评估学生在实际软件开发项目中的表现和应用能力。

- 期末考试:对学生在整个学期内研究软件工程知识的总结和检验。

6. 参考资源本教案的参考资源如下:- 《软件工程导论》(Ian Sommerville)- 《软件工程:现代方法》(Roger S. Pressman)- 互联网资料和案例分析7. 教学安排本教案将按照以下教学安排进行:- 第1-2周:软件工程概述- 第3-5周:软件开发方法和技术- 第6-8周:软件项目管理- 第9-11周:软件质量和测试- 第12-14周:软件维护和演化- 第15周:复和总结以上是本教案的简要介绍,具体细节将在课程正式开始时提供给学生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ET: 程序中原有的残留错误数 E1: 1号测试员在某一时间内发现的错误数 E2: 2号测试员在同一时间内发现的错误数 E0: 两位测试员共同发现的错误数
第七章 软件维护与软件再工程
§7.1 软件维护的概念
四类维护活动:
• 改正性维护 • 适应性维护 • 扩充与完善性维护 • 预防性维护
三类维护所占比例:
(推测错误产生的时间间隔)
方法:估算平均故障时间(MTTF估算公式)
当故障率为独立于时间的常量λ:
MTTF=λ1
=
1 K(ET/IT- Ec(t)/IT)
K : 经验常数
ET : 程序中原有的残留错误数
IT : 程序长度
t: 测试时间
Ec(t):在0-t期间内发现的错误总数
推测残留在程序中的错误数
常见形式: (1)打印出所有存储内容、代码
(2)程序中设打印语句 (3)用自动纠错工具
效率最低
二.回溯法(跟踪法)
根据错误症状位置,人工沿程 序控制流程向回追踪源代码。
适用于小程序,路径数目很大 时无法进行。
三.消去原因(cause limination)
列出可能原因,逐个排除,找出问题
(1) 试探法 (2) 归纳法 (3) 演绎法 (4) 二分查找法
7.4.3 重新验证程序
1.静态确认 2.计算机确认 3.维护后的验收
从维护角度所需的测试种类:
(1) 对修改事务的测试 (2) 对修改程序的测试 (3) 操作过程的测试 (4) 应用系统运行过程的测试 (5) 使用过程的测试 (6) 系统各部分间接口的测试 (7) 与系统软件接口的测试 (8) 安全性测试 (9) 后备/恢复过程测试
(2)难以跟踪软件的创建过程. (3)难以读懂他人程序.
(4)无文档或不全. (5)软件人员流动性大. (6)设计时未考虑修改需要,修改困难. (7)维护工作无吸引力,缺乏成就感.
§7.3 软件的维护任务
7.3.1 维护机构
修改 负责人
维护申请
配置管理员
维护管理员
系统监督员
维护人员
7.3.2 保存维护记录
改正性 适应性 维 护 维 护 20%
25%
扩充与完 善性维护
50%
其它维护 5%
改正性维护占全部维护量的比率已从80年代初 的20%大幅度下降, 90年代初一些公司的产品 差错率已接近于零
各类维护活动的根本目的是延长软件生存期
2个月-2年
软件 生存 周期
计 划
分 析
设 计
编 码
测 试
1年-10年 运行和维护其(它简维称护维护) 改善期 稳定4期% 陈旧期
维护过程中作应记录的数据
程序标识 源程序语句数目 机器代码指令条数 ....... .......
以收集的数据为基础构造维护数据库, 供维护评价使用.
§7.4 软件维护的实施
7.4.1 修改源程序的三个步骤
分析和理解程序 修改程序 重新验证程序
7.4.2 修改程序的副作用
➢修改代码的副作用 ➢修改数据的副作用 ➢修改文档的副作用
一百万只猴 子在一百万 只键盘上敲 一百万年, 它们最终就 可能写出莎 士比亚话剧 等巨著”.
只要不停电,偶尔能够得到香蕉,猴子就会永远测试下去
猴子的进步
笨猴子:一点也不懂测试软件, 只是随机地单击或按键,
直至发生两件事情之一:完成循环或系统崩溃.
不太笨的猴子: 具有崩溃辨认能力,
能够重新启动系统开始测试
6.7.2 测试测试自动化
另一类软件测试工具,可以自动执行测试用 例、查找软件缺陷、分析并记录测试结果。
测试工作台(下游CASE工具)
测试数据生成器
规约
源代码 测试管理器 测试数据 预测器
动态分析器
被测试 的程序
测试结果 测试预估
执行报告
模拟器
文件比较器 报告生成器
测试结 果报告
随机测试自动化工具:猴子测试员 一个想法: “如果让
错误植入模型
Mills将播种模型用于序中残留错误的估
算,称错误植入模型
播种模型:
N Nt≈
n nt
N: 程序中原有残留的错误数
Nt:新植入的错误数
n: 测试发现的原有错误数
nt :测试发现的植入错误数
N=
n nt
N
t
Hyman对错误植入模型的改进
E E
T
1

E2 E0
E T =E 1 E 2 /E 0
(Playback)
§6.8调试(纠错技术)
测试是找出软件错误的过程, 调试是确定错误的位置、性质 并纠正。
调试的困难在于错误的定位.
调试的执行步骤
测试用例
执行案例
结果
回归 测试
改正
附加 测试
被怀疑 的原因
已识别 的原因
调试
错误现场
6.8.1 排错策略方法
一.强行排错(brute force)
聪明猴子:能够从它的笨兄弟那里获得随机测试的结果,
增加了对环境的认知能力, 有目的地敲键盘, 不仅限于查找崩溃缺陷,同时查看数据,检查 操作结果,找出与预期结果的差别
自动化测试工具实例
美国国际软件自动化(ISA)公司的Panorama for C/C++,j、Java和VB产品,自动化功能包括:
•软件结构分析与逻辑框图的自动化 •软件静态分析 •数据分析 •复杂性分析与分析结果列表的自动化 •软件质量分析 •动态性能分析 •软件代码分支或条件覆盖率分析 •软件测试用例有效性分析与测试用例最小集的自动选取 •软件界面手工操作过程的自动记录与自动再执行
软件工程周期
重构
软件诞生
§7.2 软件维护的特点
7.2.1 维护的成本
M = P+K e(c-d )
M : 维护工作总工作量
P : 生产性工作量 K : 经验常数
c : 复杂度 d : 对该软件熟悉程度的度量
7.2.2 维护中的典型问题
(1)难以跟踪软件版本的进化过程, 软件的变化未在文档中反映出来.
(1) 归纳法
不能
收集 有关 数据
组织 数据
错误 线索
研究 线索
线索 关系
假设 错误
构造
关系
原因 不
线索
能 能证
纠正
证明 明
错误 能 假设
(2) 演绎法
出错
剩余
待定
列举 原因 排除 错因 对保 错因 证明 能
可能
不会
留的
留下
确定
错误
发生
假设
的假
错误
原因
原因
推断

无剩余
收集更 多数据
不能
6.8.2 修改错误原则
•注意错误的群集现象,在错误近邻
检查。
•找到错误的本质并修改
•采用回归测试,避免因修改引起的
新错误。
•修改源程序。
§6.9 测试中的可靠性分析
开发过程中,利用测试的统计数据来 估算软件的可靠性,以控制软件的质 量。
•推测错误的产生频度 •推测残留在程序中的错误数 •评价测试的精确度和覆盖率
推测错误的产生频度
相关文档
最新文档