1、- 1 -软件维护技术课程教学大纲英文名称:Software maintenance technology课程编号:7022211学时数:40+S8课程性质:限选先修课程:Java 程序设计、C#程序设计、软件工程适用专业:软件工程、计算机科学与技术一、课程的性质、目的和任务1. 课程的性质软件维护是往软件产品交付之后进行的修改工作。软件维护的目的是修改缺陷、提高性能或其他属性,或使该软件产品适应经过修改后的环境。本课程是计算机相关专用高年级学生提高软件能力的必要课程,为学生今后参与软件项目的研发提供必要的理论知识和培养必要的技能。2. 课程的目的和任务本课程的目的是使学生本课程的目的是让学生
2、认识到软件维护活动在整个软件生存周期中的重要作用。本课程的任务是让学生具备软件维护的相关理论知识和实践技能,学会逆向工程、软件调试、软件配置管理等工具及技术的使用,初步具备软件维护的能力。能够在今后进行软件系统的开发时具备保证软件可维护性的意识,为延长软件生存周期,降低软件成本提供保证。二、课程的教学内容与基本要求1. 基本概念介绍(1) 教学内容引言、定义、基础、新开发活动与维护活动之间的差别、为什么需要软件维护、有效地维护系统、案例研究:空中交通管制、软件更改分类、小结(2) 教学基本要求 了解引言、基础、新开发活动与维护活动之间的差别、案例研究:空中交通管制。 理解为什么需要软件维护、有
3、效地维护系统。 掌握定义、软件更改分类、小结。2. 维护框架(1) 教学内容引言、定义、一种软件维护框架、小结- 2 -(2) 教学基本要求 了解引言。 理解一种软件维护框架。 掌握定义、小结。3. 软件更改的基本问题(1) 教学内容引言、定义、软件更改、持续支持、Lehman 定律、小结(2) 教学基本要求 了解引言。 理解持续支持、Lehman 定律。 掌握定义、小结。4. 软件更改的限制与经济约束(1) 教学内容引言、定义、修改软件的经济约束、软件更改的限制、术语与映像问题、维护问题的潜在解决方案、小结(2) 教学基本要求 了解引言、术语与映像问题、维护问题的潜在解决方案。 理解修改软件
4、的经济约束、软件更改的限制。 掌握定义、小结。5. 维护过程(1) 教学内容引言、定义、软件生产过程、传统过程模型评价、维护过程模型、更改时机、过程成熟度、小结(2) 教学基本要求 了解引言、软件生产过程、传统过程模型评价。 理解更改时机、过程成熟度。 掌握定义、维护过程模型、小结。6. 程序理解(1) 教学内容引言、定义、程序理解的目标、维护人员及其信息需要、理解过程模型、概念模型、程序理解策略、阅读手段、影响理解的因素、程序理解理论和研究的结论、小结(2) 教学基本要求 了解引言、阅读手段、影响理解的因素、程序理解理论和研究的结论。 理解程序理解的目标、维护人员及其信息需要、理解过程模型、
5、概念模型、程序理解策略。 掌握定义、小结。- 3 -7. 逆向工程(1) 教学内容引言、定义、抽象、逆向工程的用途与目标、逆向工程的层次、支持手段、好处、案例研究:美国国主部库存信息系统、当前问题、小结(2) 教学基本要求 了解引言、案例研究:美国国防部库存信息系统、当前问题。 理解抽象、逆向工程的用途与目标、逆向工程的层次、支持手段。 掌握定义。8. 重用与可重用性(1) 教学内容引言、定义、重用的对象、重用的目标与好处、重用方法、领域分析、组件工程、重用过程模型、影响重用的因素、小结(2) 教学基本要求 了解引言、重用方法、领域分析。 理解重用的对象、重用的目标与好处、组件工程、重用过程模
6、型、影响重用的因素。 掌握定义、小结。9. 测试(1) 教学内容引言、定义、为什么要测试软件、软件测试员的工作是什么、测试什么与如何测试、测试分类、验证与确认、测试计划、案例研究:Therac-25、小结(2) 教学基本要求 了解引言、案例研究:Therac-25。 理解为什么要测试软件、软件测试员的工作是什么、测试什么与如何测试、测试分类、验证与确认、测试计划。 掌握定义、小结。lO. 管理与组织问题(1) 教学内容引言、定义、管理层的责任、提高维护生产率、维护团队、人员教育与培训、组织模式、小结(2) 教学基本要求 了解引言、管理层的责任、人员教育与培训。 理解提高维护生产率、维护团队、组
7、织模式。 掌握定义。11. 配置管理(1) 教学内容- 4 -引言、定义、配置管理、变更控制、文档、小结(2) 教学基本要求 了解引言。 理解配置管理、变更控制、文档。 掌握定义、小结。12. 维护测量(1) 教学内容引言、定义、度量完整性的重要意义、软件度量的目标、测量举例、选择维护测量的方针、小结(2) 教学基本要求 了解引言、测量举例。 理解度量完整性的重要意义、软件度量的目标、选择维护测量的方针。 掌握定义、小结。13. 建立与维持可维护性(1) 教学内容引言、定义、影响分析、质量保证、第四代语言、面向对象范例、软件维护中的面向对象技术、小结(2) 教学基本要求 了解引言、影响分析。
8、理解质量保证、第四代语言面、向对象范例。 掌握定义、软件维护中的面向对象技术、小结。14. 维护工具(1) 教学内容引言、定义、工具选择准则、工具分类、用于理解和逆向工程的工具、测试支持工具、配置管理支持工具、其他任务、小结(2) 教学基本要求 了解引言、其他任务。 理解工具选择准则、测试支持工具、工具分类、用于理解和逆向工程的工具、配置管理支持工具。 掌握定义、小结。三、课程实践环节内容及基本要求本课程的主要实践环节包括课程实验及课程设计。1. 课程实验的主要项目及基本要求(1) 养成好的编程习惯,2 学时。熟悉优秀的源代码案例,掌握为源代码添加合理的注释,掌握通过源代码中的注释生成文档。(
9、2) 配置管理工具的使用,2 学时。熟悉配置管理的概念,掌握版本控制工具的使- 5 -用。(3) 调试工具的使用,2 学时。熟悉调试技术分类,掌握各种调试工具,掌握如何定位错误源,熟悉如何读懂他人的源代码,熟悉如何让自己的代码易读。(4) 逆向工程工具的使用,2 学时。熟悉逆向工程与正向工程的关系,掌握数据库逆向工程工具的作用,掌握 UI逆向工程工具的使用,掌握类图源代码逆向工程工具的使用。2. 课程设计的主要内容及基本要求在学习完软件维护技术课程后,为了让学生更好地掌握软件维护的原理及实现方法,加深对软件维护基础理论和工具、方法的理解,加强学生的动手能力,有必要以课程设计的方式对学生进行进一
10、步的综合训练。(1) 预防性维护和完善性维护培训。主要内容有在进行软件总体设计和详细设计的过程中尽量使用通用性较好的中间件或其他成熟组件,尽量保证模块的高内聚、低耦合。通过对这 2个课题的学习实践,要求学会相关中间件的技术、面向对象技术及相关设计模式的运用,认识到有效的文档的重要作用。(2) 改正性维护和适应性维护培训。主要内容有如何通过调试定位错误、改正错误后如何进行测试以避免引入新的错误、如何应对新的操作系统架构所造成的影响、跨平台技术对于适应性维护的作用。通过对该课题的学习实践,要求学会软件调试工具的使用、具备较强的软件调试能力。通过课程设计,能够熟练掌握调试工具和逆向工程工具的使用,认
11、识到预防性维护以及良好的编码及文档能力对于降低改正适应性维护工作量的重要作用。四、几点说明1. 制定本大纲的依据本大纲依据高等工科院校四年制本科计算机科学与技术专业的培养目标和学校2013年专业人才培养方案中的培养要求而制定。2. 本课程与其它课程的联系先修课程:Java 程序设计、C#程序设计、软件工程后续课程:3. 本课程的考核方式(1) 考核方法:闭卷(2) 出题方式:A、B 卷(3) 考核时数:2 小时(4) 成绩评定:平时 10%、实验 20%、期末 70%4. 教材与教学参考书(1) 教材韩柯译.软件维护:概念与实践 第二版.电子工业出版社,2004 年 03月第 1版.- 6 -
12、(2) 教学参考书张人璜,计算机软件维护简明教程,机械工业出版社 , 1999谢莎莉等译,软件维护 问题与解答,机械工业出版社 , 1990 年 5 月五、学时分配学时分配序号 主要内容 总时数讲授 讨论 习题 实验 其他1 基本概念介绍 8 32 维护框架 12 23软件更改的基本问题 10 24软件更改的限制与经济约束 10 25 维护过程 8 36 程序理解 10 4 27 逆向工程 2 4 28 重用与可重用性 4 49 测试 4 3 210 管理与组织问题 4 311 配置管理 4 2 212 维护测量 4 213建立与维持可维护性 4 314 维护工具 4 3合 计 48 40 8- 7 -制定人:韩立毛 审定人: 批准人: