软件工程》教学大纲
一、课程定位
软件工程是计算机类专业的专业课程,是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习,学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
先修课程:高级语言程序设计(C语言等)、数据结构、面向对象程序设计(JAVA、C++/C#、Python等)、数据库技术。
二、教学目标
(一)掌握基本原理
1、掌握软件工程的基本概念、基本原理和主要开发方法;
2、了解软件工程各领域的发展方向;
3、了解如何用工程化的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范;
4、掌握UML面向对象建模的基本方法和技术。
(二)具备下列基本技能
1、初步具有实际的软件开发技能;
2、初步具备软件项目管理的能力;
3、熟悉项目开发的整个流程,包括软件生命周期、软件概要设计、详细设计、编码实现、软件调试和软件测试,能写出符合规范的文档;
4、能熟练使用主流UML建模工具通过对软件系统的面向对象分析和设计来进行面向对象的建模。
三、教学内容及要求
(一)各章节的教学内容及教学要求,教学重点与难点
第1章软件工程概述
基本要求:5学时,使学生掌握软件工程基础理论和各种软件生存期模型
1、掌握软件危机产生的原因与软件工程的概念
2、掌握软件生存期的阶段划分和各阶段的任务
3、了解软件工程方法
4、了解软件工具
5、理解并掌握瀑布模型、增量模型、快速原型模型、喷泉模型、敏捷开发
6、了解螺旋模型、统一过程*
本章重点:掌握软件危机产生的原因与软件工程的概念、掌握软件生存期的阶段
划分和各阶段的任务,瀑布模型、增量模型、快速原型模型、喷泉模型、敏捷开发
本章难点:螺旋模型、统一过程和敏捷开发
第2章结构化分析
基本要求:10学时,使学生掌握结构化分析方法的技术
1.了解问题定义、可行性研究、需求分析阶段的任务和需求获取
2.掌握结构化分析方法,包括功能建模、数据建模、行为建模、数据字典、软件工程学什么
加工规格说明
3.了解机票预订系统结构化分析项目实践*
本章重点:掌握结构化分析方法
本章难点:功能建模、行为建模、数据字典
第3章结构化设计
基本要求:7学时,使学生掌握结构化设计方法的技术
1.了解结构化设计的任务、原则和步骤
2.掌握模块独立性的概念
3.掌握体系结构的启发式设计原则以及面向数据流的设计方法
4.掌握接口设计的3个方面:软件与人之间的交互界面设计、软件与硬件
或其他软件系统之间的接口设计以及软件内部模块之间的接口设计
5.掌握数据设计的文件设计和数据库设计两个方面
6.了解过程设计的任务和原则,掌握过程设计的工具以及数据结构细节和
数据操作的设计
7.了解机票预订系统的结构化设计项目实践*
本章重点:理解结构化设计与结构化分析的关系,掌握体系结构设计、接口设计、数据设计和过程设计
本章难点:体系结构设计、过程设计
第4章结构化编码和测试
基本要求:9学时,使学生掌握软件程序设计的编码实现
1.了解程序设计语言
2.掌握程序设计风格
3.掌握程序效率分析
1.了解软件测试的基本概念
2.掌握黑盒测试的测试用例设计
3.掌握白盒测试的测试用例设计
4.掌握基本路径测试
5.了解单元测试、集成和系统测试、验收测试
4.了解机票预订系统编码和测试项目实践*
本章重点:程序设计风格、程序效率分析,黑盒测试的测试用例设计、白盒测试的测试用例设计、基本路径测试。
本章难点:黑盒测试的测试用例设计、白盒测试的测试用例设计
第5章面向对象分析
基本要求:6学时,使学生掌握UML及建立用例模型、对象模型和交互模型的方法
1.了解面向对象的基本概念
2.掌握UML
3.掌握建立用例模型的方法
4.掌握建立对象模型的方法
5.掌握建立交互模型的方法
6.机票预订系统面向对象分析项目实践*
本章重点:建立用例模型、对象模型和交互模型
本章难点:建立交互模型
第6章面向对象设计
基本要求:5学时,使学生掌握面向对象的设计过程及各种模型的实现
1.了解面向对象设计准则和步骤
2.掌握系统的环境模型和系统体系结构的设计
3.掌握问题域子系统的设计、人机交互子系统的设计、任务管理子系统的
设计、数据管理子系统的设计
4.了解机票预订系统面向对象设计项目实践*
本章重点:系统的环境模型和系统体系结构的设计系统分解,问题域子系统的设计、人机交互子系统的设计、任务管理子系统的设计、数据管理子系统的设计本章难点:任务管理子系统的设计、数据管理子系统的设计
第7章面向对象的实现和测试
基本要求:2学时,使学生掌握面向对象的程序设计语言的选择和程序设计风格,以及各种测试技术
1.了解面向对象语言的技术特点和程序设计语言的选择
2.掌握程序设计风格
3.了解类和应用系统的实现
4.掌握面向对象分析、设计、编程的测试
5.了解面向对象的单元测试、集成测试、系统测试
本章重点:面向对象程序设计语言的选择、程序设计风格,面向对象分析、设计、编程的测试
本章难点:面向对象分析、设计、编程的测试
第8章软件运行维护
基本要求:3学时,使学生掌握软件维护概念、步骤和方法
1.理解软件维护的概念
2.了解软件维护的策略、非结构化和结构化维护的区别以及软件维护存在
的问题
3.掌握软件维护的过程
4.理解软件的可维护性
5.了解软件逆向工程和再工程*
本章重点:理解软件的可维护性,掌握提高软件维护性的方法
第9章软件设计模式*
基本要求:3学时,使学生理解软件设计模式在软件开发中的重要作用和常见的几种设计模式的实现方法和应用。
1.了解设计模式的概念和分类
2.掌握抽象工厂模式的实现方法
3.理解单例模式*
4.掌握适配器模式的实现方法
5.理解外观模式*
6.掌握责任链模式的实现方法
7.理解观察者模式*
本章重点:掌握抽象工厂模式、适配器模式、责任链模式的实现方法
本章难点:设计模式的实现方法和应用
第10章软件项目管理*
基本要求:3学时,使学生初步了解软件项目管理的各个方面
1.了解软件项目管理的基本内容
2.掌握人员的组织与管理的详细内容
3.掌握软件度量的目标和方法
4.掌握如何进行软件项目计划
5.了解软件项目风险管理
6.掌握如何进行软件质量保证
7.了解软件过程能力评估
8.掌握如何软件配置管理
本章重点:理解软件项目管理的重要性,掌握软件度量、软件项目计划、软件质量保证、软件配置管理的内容和方法
(二)学时分配表
带*号的章节可以根据讲课进度选择性讲解。
四、考核方式、方法
考核项目:软件工程基础理论,软件生存期模型,结构化分析方法,包括功能建模、数据建模、行为建模、数据字典等,结构化设计的任务、体系结构设计、接口设计、数据设计和过程设计。面向对象分析建立用例模型、对象模型和交互模型,各种典型的软件体系结构风格的模型及特定领域的软件体系结构模型,面向对象的设计过程及各种模型的实现。软件程序设计的编码实现,黑盒测试的测试用例设计、白盒测试的测试用例设计、基本路径测试,软件维护步骤和方法。考核方式:笔试,平时成绩占30%。
五、主要参考书
软件工程导论(第6版).张海藩等. 清华大学出版社,2013
六、课程思政内容
1.培养学生民族认同感,树立远大职业理想。梳理国产操作系统的发展历史与现状,包括华为、中兴等国产企业在全球市场的崛起,在操作系统领域的新架构,向学生展示中国的信息技术领域成就,增强使命感与荣誉感;通过华为孟晚舟事件、美国的芯片垄断—引出:民族认同感。党的十八届五中全
会通过的“十三五”规划《建议》,明确提出实施网络强国战略以及与之密切相关的“互联网+”行动计划。国家正着力实现关键技术自主可控,为维护国家安全、网络安全提供技术保障。中国信息化需求巨大,但在一些关键技术领域如操作系统、芯片技术、CPU 技术等方面,还难以做到自主可控,对国家安全造成威胁。引导学生明确:建设网络强国,不仅仅是靠网络技术,还要有软件技术等其他各类技术的支撑。引导学生作为软件技术专业的一员,应更加明晰专业人才的培养目标,更加明确专业领域内工作岗位和工作内容的社会价值,自觉树立远大职业理想,将职业生涯、职业发展脉络与国家发展的历史进程融合起来。
2.向学生介绍中国在人工智能领域的布局,重点分析当代人工智能下软件技术如何支撑