1、软件工程教学大纲一、课程概况所属专业:计算机科学与技术开课单位:数学计算机科学学院课程类型:专业基础课程课程代码:07412200开课学期:6学分:3学时:课堂教学40+实验核心课程:否16+课外自主5拟使用教材:张海藩,吕云翔.软件工程(第4版).人民邮电出版社.2013.8国内(外)现有教材:1张海藩.软件工程.清华大学出版社.2010.72齐治昌,谭庆平,宁洪.软件工程(第3版).人民邮电出版社.2012.53贾铁军.软件工程与实践(第2版).清华大学出版社.2016.1学习参考资料:1李代平.软件工程习题解答(第3版).清华大学出版社.2015.62张海藩,吕云翔.软件工程(第4版)学
2、习辅导与习题解析.人民邮电出版社.2013.12二、课程描述本课程是计算机专业的一门工程性基础课程,是高等学校计算机软件教学体 系中的一门核心课程,在软件工程学科人才培养体系中占有重要的地位。课程以 IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整 个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术 和UML语言作为核心,密切结合软件开发的先进技术、最正确实践和企业案例,力 求从“可实践”软件工程的角度描述需求分析、软件设计、软件测试以及软件 开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。主要内容:熟悉单元测试、综合测试、确
3、认测试、系统测试的方法,掌握测试用 例的设计方法学时:4学时教学方法:演示法/讲授/现场指导实验类型:验证性实验三、课程目标本课程对提高学生的软件开发能力和工程管理能力有重要的现实意义。通过 本课程的学习,培养学生对整个软件开发过程的能力,让学生能切实体会到软件 工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。 要求学生能掌握软件工程的基本概念、基本原理、开发软件工程的工程化的方法 和技术及在开发过程中应遵循的流程、准那么、标准和规范等;学生应能掌握开发 高质量软件的方法,以及有效地筹划和管理软件开发活动,为学生参加大型软件 开发工程打下坚实的理论基础。四、教学要求本课程
4、主要着重于培养学生理论应用于实践的能力,对提高学生的软件开发 能力和工程管理能力有重要的现实意义。课堂上教师向学生讲授软件工程中的相 关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生 能切实体会到软件工程在实践中的指导作用,并按软件工程的要求规范完成各项 软件开发文档。通过本课程的学习,要求学生能掌握软件工程的基本概念、基本 原理、开发软件工程的工程化方法和技术及在开发过程中应遵循的流程、准那么、 标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地筹划和管理软 件开发活动,为学生参加大型软件开发工程打下坚实的理论基础。五、考核方式及要求为实现课程教学目标,本门课程
5、采用过程性考核和期末考核结合的方式进行 考核。过程性考核占总成绩40%,其中:考勤占20%,随机点到,每人不少于3 次;课程测验2次,占40%,测验时间和内容根据教学进度由教师安排;课程作 业6次,按批改成绩折算,占40%。期末考核占总成绩60%,为闭卷考试。六、课程内容课堂讲授第一章:软件工程学概述(授课时间:第六学期第一周)教学目标:了解和掌握软件工程的基本概念,软件危机的表现形式、产生的原因 及消除的途径,软件工程的基本原理、方法学,软件的生存期,几种 主要的软件开发模型教学重点:软件工程基本原理,软件生存其,软件开发模型教学难点:软件开发模型学时:课堂教学3学时教学方法:讲授法、演示法
6、主要内容:(1)软件危机介绍及发生的原因(2)软件危机消除途径(3)软件工程基本原理(4)软件工程方法学(5)软件生命周期(6)瀑布模型、快速原型模型、增量模型、螺旋模型等学习方法:小组讨论、实验操作课后作业:软件产品的特性;软件生产的阶段;软件工程的目标和内容;软件生 存周期模型第二章:可行性研究(授课时间:第六学期第二至三周)教学目标:深刻理解可行性研究的必要性,掌握可行性研究的任务、过程、本钱 效益分析以及可行性研究报告的主要内容;掌握系统流程图、数据流 程图、数据字典概念以及工程开发计划的基本内容教学重点:可行性研究任务与方法教学难点:数据流图与数据字典学时:课堂教学6学时教学方法:讲
7、授法、演示法主要内容:(1)可行性研究任务和过程(2)系统流程图(3)数据流图(4)数据字典(5)本钱/效益分析学习方法:小组讨论、实验操作课后作业:可行性研究的任务及步骤;本钱-效益分析的指标;工程开发计划的 内容第三章:需求分析(授课时间:第六学期第四至五周)教学目标:掌握需求分析的任务,需求获取的方法、分析建模与需求规格说明, 掌握数据建模的实体联系图、数据规范化,掌握描述系统行为模型的 状态转换图,掌握层次方框图、Warnier图、IPO (HIPO)图。掌握 验证软件需求的必要性、方法教学重点:需求获取与分析建模;ER图;状态转换图教学难点:需求获取与表示方法学时:课堂教学6学时教学
8、方法:讲授法、演示法主要内容:(1)需求分析的任务(2)与用户沟通获取需求的方法(3)分析建模与规格说明(4)数据规范化(5)状态转换图(6)其它图形工具(7)验证软件需求学习方法:小组讨论、实验操作课后作业:需求分析阶段的基本任务;结构分析方法及描述工具;结构化分析方 法的步骤;数据字典、数据流图的作用;加工逻辑的相关工具;第四章:总体设计(授课时间:第六学期第六至七周)教学目标:了解软件总体设计的目的、任务,掌握软件总体设计的过程、设计原 理和启发规那么,掌握描述软件结构的工具以及面向数据流的设计方 法。能够将具体的数据流图的转换为软件的结构图,即变换分析技术 和事务分析技术。教学重点:总
9、体设计原理与方法教学难点:面向数据流的设计方法学时:课堂教学6学时教学方法:讲授法、演示法主要内容:(1)总体设计过程与原理(2)启发规那么(3)软件结构描述工具(4)面向数据流的设计方法学习方法:小组讨论、实验操作课后作业:软件概要设计及基本任务;软件设计的基本原理;衡量模块独立性的 标准;模块的耦合性及内聚性;软件结构设计的优化准那么第五章:详细设计(授课时间:第六学期第八至十周)教学目标:了解软件详细设计阶段的目的、任务和结构化程序设计的概念,掌握 人机界面设计的方法、过程设计的工具以及面向数据结构的设计方 法,了解程序复杂程度的定量度量教学重点:详细设计方法教学难点:过程设计工具,面向
10、数据结构的设计方法学时:课堂教学6学时教学方法:讲授法、演示法主要内容:(1)结构化程序设计(2)人机界面设计(3)过程设计的工具(4)面向数据结构的设计方法(5)程序复杂程度度量学习方法:小组讨论、实验操作课后作业:详细设计的基本任务及描述方法;结构化程序设计的基本要点;简述 Jackson方法的设计步骤第六章:实现(授课时间:第六学期第十一至十三周)教学目标:了解如何选择程序设计语言,培养良好的编码风格,掌握软件测试的 目标、准那么、方法和步骤,掌握单元测试、集成测试、确认测试的方 法步骤,掌握白盒测试和黑盒测试技术的概念、方法,掌握调试过程 与途径,了解软件可靠性的概念及其计算方法。能够
11、按照测试的原那么 和技术,分析确定高效的测试用例。教学重点:基本的软件测试的概念与基本方法,软件可靠性度量教学难点:测试案例设计学时:课堂教学6学时教学方法:讲授法、演示法主要内容:(1)编码实现(2)软件测试基础(3)软件测试技术(4)软件可靠性学习方法:小组讨论、实验操作课后作业:单元测试、集成测试、确认测试方法;白盒测试和黑盒测试技术 软件测试的目的及原那么;白盒测试法;黑盒测试法;错误推测和因果图;软件测试的步骤;单元测试的内容;调试的目的及技术手段第七章:维护(授课时间:第六学期第十四至十五周)教学目标:了解软件维护的定义,掌握软件维护的特点和过程,软件的可维护性 的定义及提高可维护
12、性的方法。掌握预防性维护和软件再工程过程的 概念、方法。教学重点:软件维护的特点及定义,预防性维护的概念与方法教学难点:软件维护过程学时:课堂教学4学时教学方法:讲授法、演示法主要内容:(1)软件维护的定义与特点(2)软件维护过程(3)软件的可维护性(4)预防性维护与软件再工程过程学习方法:小组讨论、实验操作课后作业:软件维护的内容、特点及流程;可维护性度量的特性;提高可维护性 的方法第八章:面向对象方法学引论(授课时间:第六学期第十六周)教学目标:了解面向对象方法学的要点和优点,掌握面向对象的概念、建模,掌 握对象模型、动态模型、功能模型以及三种模型的关系。教学重点:面向对象的概念与建模方法
13、教学难点:对像模型;动态模型;功能模型学时:课堂教学2学时,课外自主学习时间不少于3学时教学方法:讲授法、演示法主要内容:(1)面向对象方法学概述(2)面向对象的概念(3)面向对象建模学习方法:小组讨论、实验操作课后作业:对象、类、类结构、消息的基本概念;面向对象的特征和要素、动态 模型的特征;事件,脚本、状态的含义;对象建模的过程及步骤第九章:软件工程管理(授课时间:第六学期第十七周)教学目标:掌握估算软件规模和工作量的技术,能够根据工程制定合理的进度计 戈IJ,掌握团队组织的基本方法,了解软件的质量指标并掌握软件质量 保证的措施,掌握软件配置管理,了解能力成熟度模型。教学重点:软件规模估算
14、技术,工程团队组织基本方法;软件质量保证教学难点:软件规模估算与进度计划制定学时:课堂教学1学时,课外自主学习时间不少于2学时教学方法:讲授法、演示法主要内容:(1)软件规模估算(2)工作量估算(3)软件开发进度计划(4)开发团队组织(5)软件质量保证(6)软件配置管理(7)能力成熟度模型学习方法:小组讨论、实验操作课后作业:软件开发环境;软件工具及其组成;CASE工具及模型实验实验一:系统分析过程实验(授课时间:第六学期第一至二周)教学目标:确定工程的可实施性,在此基础上完成系统的逻辑功能模型的建立 主要内容:掌握工程的业务流程图,绘制数据流程图,功能分析图,编写数据字 典,数据加工处理的描
15、述,软件系统流程设想图(新系统模型),需 求规格说明书学时:4学时教学方法:演示法/讲授/现场指导实验类型:验证性实验实验二:系统设计过程实验(授课时间:第六学期第三至四周)教学目标:在实验二基础上完成系统的体系结构的建立和系统详细设计,并给出 相应的规格说明书主要内容:掌握功能结构图设计,软件处理流程设计,输出设计(主要指打印输 出设计),存储文件格式设计(数据库结构设计),输入设计(主要指 数据录入卡设计),代码设计,程序设计说明书学时:4学时教学方法:演示法/讲授/现场指导实验类型:验证性实验实验三:系统实现实验(授课时间:第六学期第五至六周)教学目标:系统运行和软件后期制作,了解程序设计的风格主要内容:完善系统所涉及的程序框图,源程序,模拟运行数据,打印报表,软 件使用说明书和用户手册等学时:4学时教学方法:演示法/讲授/现场指导实验类型:验证性实验实验四:软件测试实验(授课时间:第六学期第七至八周)教学目标:在前面实验的基础上,完成对系统的组装和测试