软件工程考研大纲,软件工程考研大纲在哪里看
✦
课程教学大纲
✦
课程名称 | 软件工程(微课视频版) |
英文名称 | Software Engineering |
课程类别 | 专业核心 |
学分 | 3 |
学时 | 72 |
适用专业 | 计算机、软件工程相关专业 |
大纲执笔人 | 杜文峰 |
1
课程简介
本课程从软件工程实践者的角度讲述软件工程的基本原理、概念和技术,强调软件开发过程的方法和技术的应用和评价。通过本课程的学习,使学生能够熟练应用软件分析、设计、实现和测试的基本技术以及面向对象分析和设计的基本方法。通过课程实践,实际运用软件工程的技术和方法,以及软件项目管理和团队开发的工作方法。
课程重点讲授软件开发的全过程以及贯穿过程的各阶段中所采用的技术、方法和工具。课程前一部分的内容介绍传统的结构化分析和设计方法,后一部分的内容介绍九十年代开始出现的面向对象软件工程的研究。
通过本课程的学习,要求学生能够分析、评价这两种不同风格的方法学,并有意识地按照软件工程规范指导软件系统开发实践。教学重点和难点是:在课程实践中熟练运用结构化方法、面向对象方法开发软件,包括必要的过程、步骤及应遵循的原则。教学中不但注重概念、原理方法、技术的讲解和分析评价,也十分注重方法、技术的实际应用,使学生能够利用所学的方法和技术开发小型软件项目。
2
教学目标
通过本课程的学习,要求学生能够分析、评价这两种不同风格的方法学,并有意识地按照软件工程规范指导软件系统开发实践。教学重点和难点是:在课程实践中熟练运用结构化方法、面向对象方法开发软件,包括必要的过程、步骤及应遵循的原则。教学中不但注重概念、原理方法、技术的讲解和分析评价,也十分注重方法、技术的实际应用,使学生能够利用所学的方法和技术开发小型软件项目;培养学生具有新时代、新思想、新实践,唯物辩证法的根本观点,培养学生探索未知、追求真理、勇攀科学高峰的责任感和使命感;激发学生科技报国的家国情怀和使命担当。
具体包括:
(1)掌握软件、软件危机、软件工程的定义和内容、软件过程的不同模型及其优缺点。
(2)了解结构化分析、设计和实现的方法;掌握软件模块独立性分析原则,能进行模块接口设计、过程设计,并能解决小型软件项目中遇到的各种问题。掌握结构化软件测试方法,掌握黑盒测试,白盒测试。
(3)了解面向对象的分析、设计和实现方法;掌握UML,能结合行业需求进行系统领域划分;掌握软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构;掌握面向对象的软件测试方法,掌握系统状态图及脚本撰写。
(4)了解软件项目管理、软件风险管理的方法;了解软件团队合作方法,了解利用配置管理工具进行团队开发的方法。
(5)了解敏捷开发理念及DevOps,了解现代软件开发趋势,了解微服务、云服务开发、部署。了解软件重用的方法和手段。
1. 课程目标制定依据
2. 课程目标
知识目标
课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中,支持毕业要求3.4和毕业要求8.4。
课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件,支持毕业要求11.1和毕业要求11.2;
课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例,支持毕业要求11.1和毕业要求11.2;
课程目标4:能够应用软件项目管理、软件风险管理的方法,支持毕业要求9.1和毕业要求9.2;
课程目标5:理解软件重用的方法和手段,支持毕业要求3.4。
能力目标
课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题,支持毕业要求11.1和毕业要求11.2;
课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分,支持毕业要求11.1和毕业要求11.2;
课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构,支持毕业要求3.4和毕业要求8.4;
课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发,支持毕业要求9.1和毕业要求9.2。
课程目标10:具备自我评价能力和职业规划能力,支持毕业要求8.4、毕业要求9.1和毕业要求11.2。
3. 课程教学目标与毕业要求指标点的对应关系
3
考核形式与成绩计算
本课程考核由实验成绩、MOOC成绩和期末大作业成绩三个部分构成。
1. 评价标准
2. 考核方法及与指标点的支撑关系
3. 课程目标的达成情况评价
4
参考教材
1.主要教材
2.参考书
5
配套资源
1. 线上教学资源
软件工程MOOC(1000分钟). 杜文峰等软件工程课程组. 深圳大学优课联盟.
2. 其他资源
PPT课件,教学大纲,实验大纲,教学进度表,习题答案。
3. 辅助材料
可由任课老师在本课程学习的基础上,向学生介绍、推荐后续高级课程的相关资料和网站,鼓励学生进一步拓宽自己的知识面,为今后学习打下坚实基础。
6
课程教学设计
本课程主要教学内容包括软件发展史及软件工程、软件生命周期、结构化分析、结构化设计、结构化实现、统一建模语言、面向对象分析、面向对象设计、面向对象实现、软件过程、软件项目管理、腾讯敏捷研发、人机交互设计等内容。由于本课程是计算机科学与技术专业的核心课程,而且与社会工程实践有着紧密联系,因此本课程包含36学时的理论教学和36小时实验教学。
根据课程思政与教学内容的契合点,在理论教学上,学生一方面掌握软件及软件工程、结构化方法学、面向对象方法学等基本概念;一方面学习国家发展战略、中华传统文化等思政内容;而且还要学会采用不同方法学解决复杂软件工程问题,培养软件工程思想和科学思维方式。
通过在线视频课程,本课程可以开展实时反馈、全程紧张的实验教学模式,引导学生点、线、面地把所学知识点串联起来,构筑整体知识结构;在实验作业中加入思政元素,启迪学生进行知识的再发现,激发问题和创新意识,培养学生的工匠精神和创新精神。
课程思政元素主要包括:国家发展战略、中华传统文化、个人道德素养、唯物辩证观。主要通过类比、隐喻、演绎、关联等方式,融入到课堂讲授和实验编程中,实现润物无声的思政教学模式。
理论教学部分(54学时)
(一)软件发展史及软件工程(4学时)
1.主要内容
(1)软件的发展历程
(2)软件的定义和特点
(3)软件危机
(4)软件工程
(5)软件开发方法
(6)软件工程知识体系
2.基本要求
(1)了解什么是软件开发的发展史,软件开发的本质特性;
(2)了解软件危机产生的根本原因,以及消除危机的途径;
(3)理解软件工程的实质和内容;了解软件开发的过程、原理;
(4)了解不同的软件开发方法的特点;
(5)了解软件工程涵盖的知识体系。
3.重点、难点
重点:软件、软件危机、软件工程的定义和内容、不同软件开发方法的优缺点。
难点:对于没有大型软件开发经验的学生来说,如何加强学生对软件危机的理解、软件开发团队的作用和软件工程方法学的实践是本章的难点。
4.作业及课外学习要求
作业:根据课程讲解内容,复习基本的软件工程理论知识
课外学习要求:能够了解和分析现有软件项目的开发过程以及开发方法
5.思政内容
了解软件工程在人工智能、工业互联网、大数据、云计算等新兴技术系统架构与软件开发中得到广泛应用,了解我国科技发展形势,科技兴国科技强国战略。通过分组讨论方式分析自己在研发过程中遇到的软件危机问题,以及当初自己是如何克服的。如果你生活在中国近代,当国家遇到危机的时,你会怎么办?
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”及“课程目标10:具备自我评价能力和职业规划能力”。
(二)软件生命周期(4学时)
1.主要内容
(1)软件生命周期
(2)项目构想及立项
(3)可行性分析
(4)项目开发计划
(5)需求分析概述
(6)软件设计概述
(7)软件实现概述
(8)软件测试概述
(9)软件维护概述
2.基本要求
(1)理解软件生命周期的相关概念;
(2)了解软件构想及立项涉及的内容范围;
(3)了解可行性分析的实质和包含的技术内容;
(4)了解软件开发计划需要包含内容,以及软件开发计划各个部分的作用;
(5)了解软件需求分析的重要性,了解不同软件开发方法进行需求分析的方式,以及软件需求涵盖不同内容对用户需求描述的实质;
(6)了解软件设计的重要性,了解不同软件开发方法进行设计的方式;
(7)了解软件实现的实质,对不同软件开发方法实现软件的方式进行分析;
(8)了解软件测试的实质,了解软件测试包含的技术内容和软件测试用例产生方法;
(8)了解软件维护设计的相关知识。
3.重点、难点
重点:软件生命周期、项目开发计划、需求分析、软件设计、软件实现、软件测试、软件维护等。
难点:由于学生没有完整的软件开发经验,如何加深学生对软件生命周期各个阶段的理解是本章内容的重点和难点。
4.作业及课外学习要求
作业:根据课程讲解内容,结合已有的软件项目经验来理解软件生命周期的不同阶段
课外学习要求:能够理解软件生命周期,以及理解不同软件开发方法设计的生命周期阶段
5.思政内容
结合软件业务需求与非业务需求的重要性,讨论所学知识与精神力量之间的关系。强调只有拥有了正确的人生观、价值观、世界观,才能有效利用所学知识来实现人生理想。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”和“课程目标10:具备自我评价能力和职业规划能力”。
(三)结构化分析(4学时)
1.主要内容
(1)结构化需求描述方法
(2)结构化需求建模
(3)数据流图
(4)处理/加工逻辑说明
(5)状态转换图
(6)数据模型
2.基本要求
(1)理解结构化需求建模的方式和方法
(2)掌握结构化分析包含的相关内容
(3)掌握数据流图的相关概念和设计方法
(4)掌握处理/加工逻辑说明的相关概念和设计方法
(5)掌握状态转换图的相关概念和设计方法
(6)掌握数据模型的相关概念和设计方法
(7)掌握软件需求规格说明的撰写
3.重点、难点
重点:结构化分析概念,数据流图、处理/加工逻辑说明、状态转换图和数据模型
难点:掌握数据流图、处理/加工逻辑说明、状态转换图和数据模型等内容的相关概念和设计方法
4.作业及课外学习要求
作业:根据课程教学内容,分析和调研软件开发项目(即期末大作业)。
课外学习要求:通过项目实践,掌握结构化需求分析中的各种建模工具。
5.思政内容
了解结构化方法学软件开发中的应用,了解如何分析国家面临的问题,能够从行为角度对问题进行详细描述。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题。”
(四)结构化设计(8学时)
1.主要内容
(1)结构化设计与结构化分析的关系;
(2)模块化及模块独立性
(3)结构化设计启发式规则
(4)系统结构设计
(5)数据设计
(6)过程设计
(7)设计优化
2.基本要求
(1)掌握结构化设计与结构化分析的关系
(2)理解结构化设计的概念和原理
(3)掌握模块独立
(4)掌握软件结构
(5)掌握数据设计的相关概念和方法
(6)掌握过程设计的相关概念和方法
(7)理解设计优化的方式和方法
3.重点、难点
重点:模块独立性、结构化中的内聚和耦合、软件结构、数据设计、过程设计。
难点:模块划分方法,数据流图到软件结构设计的转换方法等。
4.作业及课外学习要求
作业:根据本章的学习内容,对前期的软件需求分析内容进行设计,得到结构化设计中的相关内容。
课外学习要求:通过项目实践掌握结构化设计的相关方法,能够采用逐步求精等方式来解决复杂结构化软件项目,对中大型软件开发项目的管理方法和设计过程有一定的理解。。
5.思政内容
了解如何从行为角度来设计针对国家面临的问题的解决途径,并能够身体力行,感受作为社会主义建设者的自豪感!
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题”和课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构。
(五)结构化实现(8学时)
1.主要内容
(1)结构化实现与结构化设计的关系;
(2)模块化编码概念、结构化程序的源代码组成、结构化程序的文件组织、结构化模块集成
(3)结构化测试概念、结构化测试阶段、测试覆盖标准、结构化测试用例设计、结构化实施
2.基本要求
(1)理解结构化实现与结构化设计的关系
(2)了解结构化编码的概念
(3)掌握结构化程序的源代码组成及文件组织
(4)掌握结构化模块集成方法
(5)了解结构化测试的概念、测试阶段划分、测试覆盖标准
(6)掌握结构化测试用例设计方法
(7)掌握结构化测试实施方法
3.重点、难点
重点:结构化实现方法、多文件组织、结构化集成、结构化测试用例设计方法。
难点:如何采用多文件来组织程序源代码,以及进行代码集成;如何设计符合要求的白盒、黑盒测试用例;
4.作业及课外学习要求
作业:将前期的软件设计内容转换为对应的程序代码,并为各个软件模块及软件设计测试用例。
课外学习要求:通过软件实现和软件测试,掌握结构化实现的相关方法。
5.思政内容
了解国家在做各种规划设计后是如何付诸实施,并且检测各个规划的实现效果。理解我国从建国以来取得的辉煌成就来之不易!
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题” 和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。
(六)统一建模语言(2学时)
1.主要内容
(1)统一建模语言发展史
(2)UML中的图
2.基本要求
(1)了解面向对象建模方法
(2)了解UML相关概念
(3)了解UML中的各种图的作用和使用方法
3.重点、难点
重点:用例图、活动图、类图、顺序图、对象图、通信图、部署图、包图
难点:掌握各种图的作用和使用方法
4.作业及课外学习要求
作业:了解UML的使用方法,了解如何借助UML进行面向对象建模。
课外学习要求:学习其他面向对象软件建模技术,掌握UML在面向对象软件开发过程中的应用。
5.思政内容
了解当前国家各种规章制度的拟定形式,思考如何才能将各种惠民政策、方针通过有效的途径表达出来,确保各种信息能够被人民准确无误的理解。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”和“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”。
(七)面向对象分析(4学时)
1.主要内容
(1)业务用例分析
(2)业务用例描述
(3)活动建模
(4)分析模型
(5)面向对象分析评审
2.基本要求
(1)了解用例方法,掌握用例表示途径
(2)掌握活动建模方法
(3)掌握分析模型建模方法
(4)了解面向对象分析模型评审的途径和方法
3.重点、难点
重点:用例划分方法、对象建模、交互建模、主题划分等
难点:结合UML中的相关内容,掌握面向对象需求分析的建模方式
4.作业及课外学习要求
作业:根据课程教学内容,思考如何将面向对象需求建模技术应用于实际项目中。
课外学习要求:能够学习和利用面向对象分析技术来完成项目需求分析。
5.思政内容
了解面向的对象方法学软件开发中的应用,了解如何分析国家面临的问题,能够从实体角度对问题进行详细描述。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标4:能够应用软件项目管理、软件风险管理的方法”和“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”。
(八)面向对象设计(6学时)
1.主要内容
(1)分析模型到设计模型的转换
(2)面向对象设计原则
(3)面向对象的模块独立性
(4)面向对象设计启发式规则
(5)设计模式
(6)面向对象架构设计
(7)软件构件设计
(8)部署设计
2.基本要求
(1)理解分析模型如何转换为设计模型
(2)理解面型对象的设计原则
(3)理解面向对象的模块独立性
(4)了解面向对象设计启发式规则
(5)了解设计模式
(6)掌握面向对象架构设计方法
(7)掌握软件构件设计方法
(8)掌握部署设计相关原则和方法
3.重点、难点
重点:分析模型到设计模型的转换、面向对象的模块独立性、软件构架设计方法、软件构件设计方法
难点:由于学生缺少实际项目经验,如何帮助学生理解软件架构设计和软件构件设计是本章的难点。
4.作业及课外学习要求
作业:根据课程教学内容,将前期的面向对象分析模型转换为设计模型。
课外学习要求:能够采用UML各种图示工具来建模面向对象设计内容
5.思政内容
了解如何从个人、组织等角度来思考、设计针对国家面临的问题的解决途径;并能结合身体力行,感受作为社会主义建设者的自豪感。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标5:理解软件重用的方法和手段”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分和“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”。
(九)面向对象实现(6学时)
1.主要内容
(1)面向对象编码
(2)面向对象业务实现
(3)面向对象测试
(4)面向对象测试用例设计
2.基本要求
(1)理解面向对象实现中的文件组织
(2)掌握对象业务实现方法
(3)了解面向对象测试及测试阶段
(4)掌握面向对象测试用例设计方法
3.重点、难点
重点:面向对象业务实现,面向对象测试用例设计
难点:如何为单元类或者多个类设计相关的测试用例
4.作业及课外学习要求
作业:将前期的面向对象设计成果转换为面向对象实现代码,以及完成相关的软件测试。
课外学习要求:理解面向对象设计到面向对象实现的转换过程,明白面向对象测试的方法
5.思政内容
了解如何从个人、组织等角度来思考、设计针对国家面临的问题的解决途径;并能结合身体力行,感受作为社会主义建设者的自豪感!
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”、“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。
(十)软件过程(2学时)
1.主要内容
(1)软件过程概述
(2)瀑布模型
(3)演化模型
(4)快速原型法
(5)增量模型
(6)螺旋模型
(7)喷泉模型
(8)构件组装模型
(9)统一过程
(10)能力成熟度模型
(11)净室软件工程
(12)敏捷开发过程
2.基本要求
(1)理解软件开发过程的作用
(2)理解瀑布模型
(3)了解演化模型
(4)理解快速原型法
(5)理解增量模型
(6)了解螺旋模型
(7)了解喷泉模型
(8)了解构件组装模型
(9)了解统一过程
(10)了解能力成熟度模型
(11)了解净室软件工程
(12)理解敏捷开发过程
3.重点、难点
重点:软件开发过程,瀑布模型,快速原型法、增量模型、螺旋模型、统一过程、敏捷开发过程
难点:讲解不同软件开发过程对软件开发的作用及效果,评估不同过程的设置原理
4.作业及课外学习要求
作业:结合软件生命周期相关知识,理解不同软件过程适合的软件项目,以及软件过程中各个阶段需要完成的任务。
课外学习要求:结合所学知识来思考已经完成的软件项目开发过程,思考哪种过程更加适合于学校软件项目开发,以及各种软件过程适合的目标项目。
5.思政内容
在项目分析过程中,可以通过类比方式引入国家在制定各类政策时针对不同情况采用的工作方式,例如采用敏捷研发思想来理解国家的五年规划;使用瀑布模型的流程来理解港珠澳大桥设计、建设过程;使用能力成熟度模型来理解国家对完成各项任务的组织进行资质和能力评估等。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发。”,和“课程目标10:具备自我评价能力和职业规划能力”和“课程目标10:具备自我评价能力和职业规划能力”。
(十一)软件项目管理(2学时)
1.主要内容
(1)项目管理
(2)项目管理框架
(3)项目阶段管理
2.基本要求
(1)了解项目管理的内容
(2)了解项目管理框架
(3)理解项目阶段管理各个阶段的内容
3.重点、难点
重点:软件项目管理,软件风险管理,软件配置管理
难点:软件项目的管理和实施,以及如何利用配置管理帮助项目开发
4.作业及课外学习要求
作业:根据课程教学内容,完善期末大作业,即软件开发项目。
课外学习要求:能够利用本章学习的知识内容,学习管理开发项目,并利用配置管理工具进行团队开发。
5.思政内容
了解如何做好个人规划、个人时间管理,珍惜有限的生命,采用合适的方式为祖国做出应有的贡献。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发。”,和“课程目标10:具备自我评价能力和职业规划能力”和“课程目标10:具备自我评价能力和职业规划能力”。
(十二)腾讯敏捷软件开发(2学时)
1.主要内容
(1)腾讯敏捷
(2)腾讯敏捷解决方案
(3)敏捷的核心应用
2.基本要求
(1)了解腾讯敏捷的核心思想;
(2)了解腾讯敏捷解决方案的实质和精髓;
(3)了解敏捷核心应用的内在实质。
3.重点、难点
重点:敏捷研发思想、需求、迭代、测试、DevOps、缺陷等
难点:如何收集和撰写用户故事、迭代规划、DevOps
4.作业及课外学习要求
作业:使用腾讯敏捷研发平台组织软件项目开发。
课外学习要求:能够按照敏捷思想撰写用户需求,合理估计各个用户故事的任务量以及规划各次迭代。
5.思政内容
引入项目管理知识点内容时,适时可以通过类比方式让学生通过项目组织管理的有效性来理解我国国家政体的合理性,让学生了解只有在中国共产党的领导下,才能有效带领中国走向复兴,才能让人民群众过上幸福的生活;同时,可以借助风险管理来让学生了解中国共产党、中国政府在和平时期的工作努力。通过在平时积累救援物资、战略储备物资等,让中国在98年大洪水、汶川地震、疫情期间打赢各场攻坚战中取得一次又一次的胜利。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。
(十三)人机交互设计(2学时)
1.主要内容
(1)人机交互
(2)交互模型和框架
(3)人机交互设计原则
(4)人机交互界面设计过程
2.基本要求
(1)了解人机交互涵盖的内容;
(2)理解交互模型和框架的原理;
(3)了解人机交互设计的原则;
(4)掌握人机交互界面设计过程及各个阶段需要完成的任务。
3.重点、难点
重点:人机交互概念、交互模型和框架、人机交互设计原则、交互界面设计过程
难点:如何将用户需求转化为交互界面
4.作业及课外学习要求
作业:将前期的软件项目需求转换为人机交互界面,并对各个界面元素进行说明。
课外学习要求:能够使用软件原型设计工具来完成交互界面设计。
5.思政内容
介绍中国政府实施的便民措施设置方式,分析国家如何将复杂的办事流程通过简明、便捷的方式呈现给人民群众,优化政府与人民之间的沟通途径,提高人民的幸福感和满意度。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标5:理解软件重用的方法和手段”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”和“课程目标10:具备自我评价能力和职业规划能力”。
实验教学部分(18学时)
1.实验内容
(1)软件界面设计
(2)数据库建模
(3)模块过程设计
(4)配置管理及团队开发
(5)敏捷开发平台配置及使用
(6)敏捷需求,迭代,故事墙
2.基本要求
(1)掌握软件需求分析、设计、实现与测试的基本方法和原则
(2)掌握软件项目管理的方法
3.重点、难点
重点:软需求分析、软件原型建立,软件设计实现。
难点:软件模块划分。
4.作业及课外学习要求
作业:完成所有实验。
课外学习要求:通过课外查找和阅读文档完成系统分析与设计。
5.思政内容
了解分析问题、设计解决方案和实现设计,以及项目管理方面的相关内容。让学生能够综合运用所学知识来分析当前社会中存在的各种问题,并能够结合所学知识来分析问题,设计合适的解决途径,并身体力行,勇于实践。通过项目管理锻炼学生在实践中不断完善自我,提高自己的认识,争取作对国家、社会有用的人。
6.支撑课程目标和毕业要求及指标点
本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标5:理解软件重用的方法和手段”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的各种问题”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求进行系统领域建模和划分”、“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。
7
课程教学进度安排
✦
参考书籍
✦
《软件工程(微课视频版)》
作者:杜文峰 袁琳 朱安民 叶聪
定价:69.80元
扫码京东优惠购书
内容简介
全书共5篇、14章,涵盖软件工程领域涉及的主要内容。前四篇内容主要包括:软件的发展历程,软件的定义和特点,软件危机产生的原因,软件工程产生的背景以及软件生命周期中各阶段的工作;如何利用数据流图、状态转换图和数据字典等来建模用户需求,如何采用层次图、IPO图及程序流程图来设计软件,如何有效地将结构化设计结果转换为程序代码,对完成的软件进行测试;如何提取用户需求、分析用户活动、建模系统状态、提取类的候选者和类关系,对象之间如何交互来完成业务逻辑、如何实现面向对象设计结果,为以面向对象方法实现的软件设计测试用例;经典的软件开发过程、现代主流的软件开发过程以及项目开发过程中的管理实践。最后一篇讲解腾讯公司内部的敏捷开发流程和开发平台,以及结合领域驱动设计总结如何分析、设计和实现云原生软件系统。
本书配有1000分钟左右的MOOC视频、教学大纲、PPT课件、习题等丰富的教学资源。
本书可作为高等学校计算机相关专业的教材、软件工程专业的导论课教材,也可作为计算机软件相关领域从业者的参考资料和相关培训的教材。
扫码查看慕课网址
慕课截图如下
目录
向上滑动阅览
第一篇 软件工程基础
第1章 软件发展史及软件工程 3
1.1 软件的发展历程 3
1.2 软件的定义和特点 5
1.3 软件危机 6
1.4 软件工程 7
1.5 软件开发方法 9
1.6 软件工程知识体系 12
1.7 小结 13
1.8 习题 13
第2章 软件生命周期 14
2.1 项目构想和立项 14
2.2 可行性分析 15
2.3 项目开发计划 17
2.3.1 制订项目开发计划 17
2.3.2 项目开发计划评审 19
2.4 需求分析 19
2.4.1 需求的定义和组成 20
2.4.2 需求管理 21
2.5 软件设计 24
2.5.1 软件设计的目标和任务 25
2.5.2 软件设计阶段 26
2.5.3 模块化与模块独立 26
2.5.4 经典软件体系结构 27
2.5.5 设计复审 34
2.6 软件实现 35
2.6.1 程序设计语言的选择 35
2.6.2 软件编码规范 37
2.6.3 软件效率 38
2.7 软件测试 41
2.7.1 软件测试的发展历程 42
2.7.2 软件测试技术 45
2.7.3 软件测试策略 50
2.7.4 软件测试步骤 55
2.7.5 软件测试的原则 56
2.7.6 软件调试 58
2.7.7 软件可靠性 61
2.8 软件维护 61
2.8.1 软件维护分类 62
2.8.2 软件维护实施 62
2.9 小结 67
2.10 习题 67
第二篇 结构化方法
第3章 结构化分析 71
3.1 结构化需求描述方法 71
3.2 结构化需求建模 73
3.2.1 数据流图 73
3.2.2 处理/加工逻辑说明 77
3.2.3 状态转换图 80
3.2.4 数据模型 82
3.3 小结 87
3.4 习题 88
第4章 结构化设计 89
4.1 结构化设计与结构化分析的关系 89
4.2 结构化模块及模块独立性 90
4.2.1 结构化的模块独立性 90
4.2.2 结构化设计启发式规则 97
4.3 系统结构设计 98
4.3.1 系统结构图 99
4.3.2 HIPO图 101
4.3.3 面向数据流的设计方法 101
4.4 数据设计 109
4.4.1 数据元素设计 110
4.4.2 数据结构设计 110
4.4.3 文件格式设计 111
4.4.4 数据库设计 113
4.5 过程设计 116
4.5.1 程序流程图 116
4.5.2 PDL 118
4.5.3 模块过程设计 121
4.6 设计优化 121
4.7 小结 122
4.8 习题 122
第5章 结构化实现 123
5.1 结构化实现与结构化设计的关系 123
5.2 结构化编码 124
5.2.1 结构化程序的源代码组成 124
5.2.2 结构化程序的编译过程 126
5.2.3 结构化程序多文件组织 127
5.2.4 结构化模块集成 129
5.3 结构化测试 132
5.3.1 结构化测试阶段 132
5.3.2 结构化白盒测试覆盖标准 134
5.3.3 结构化白盒测试用例设计 138
5.3.4 结构化黑盒测试用例设计 143
5.3.5 结构化测试实施 146
5.4 小结 147
5.5 习题 147
第三篇 面向对象方法
第6章 统一建模语言 151
6.1 统一建模语言的发展史 151
6.2 UML中的图 152
6.2.1 用例图 152
6.2.2 活动图 154
6.2.3 类图 155
6.2.4 对象图 158
6.2.5 顺序图 158
6.2.6 通信图 162
6.2.7 状态图 164
6.2.8 构件图 166
6.2.9 部署图 167
6.2.10 包图 169
6.3 小结 171
6.4 习题 171
第7章 面向对象分析 172
7.1 业务用例分析 172
7.2 业务用例描述 173
7.3 活动建模 174
7.4 分析模型 176
7.4.1 对象建模 176
7.4.2 交互建模 180
7.4.3 状态建模 182
7.4.4 划分内容主题 183
7.4.5 完善分析模型 184
7.5 面向对象分析评审 185
7.6 小结 186
7.7 习题 186
第8章 面向对象设计 187
8.1 分析模型到设计模型的转换 187
8.2 面向对象设计原则 188
8.2.1 面向对象的模块独立性 188
8.2.2 面向对象设计启发式规则 191
8.2.3 设计模式 198
8.3 面向对象架构设计 201
8.3.1 软件架构设计 202
8.3.2 类方法设计 207
8.3.3 类属性设计 211
8.4 软件构件设计 214
8.4.1 构件设计原则 214
8.4.2 软件构件的设计方法 215
8.5 部署设计 218
8.6 小结 222
8.7 习题 222
第9章 面向对象实现 223
9.1 面向对象编码 223
9.1.1 项目文件组织 223
9.1.2 面向对象业务实现 226
9.2 面向对象测试 228
9.2.1 面向对象测试阶段 228
9.2.2 面向对象测试策略 230
9.2.3 面向对象测试用例设计 231
9.3 小结 239
9.4 习题 240
第四篇 软件过程及管理
第10章 软件过程 243
10.1 瀑布模型 244
10.2 演化模型 246
10.3 快速原型法 247
10.4 增量模型 249
10.5 螺旋模型 251
10.6 喷泉模型 253
10.7 构件组装模型 254
10.8 统一过程 255
10.9 能力成熟度模型 257
10.10 净室软件工程 258
10.11 敏捷开发过程 260
10.11.1 极限编程 261
10.11.2 Scrum 262
10.12 小结 264
10.13 习题 264
第11章 软件项目管理 265
11.1 项目管理概述 265
11.2 项目管理框架 266
11.3 项目阶段管理 268
11.3.1 项目准备与启动 268
11.3.2 项目计划 270
11.3.3 项目的执行与控制 277
11.3.4 项目的收尾与总结 295
11.4 小结 297
11.5 习题 297
第五篇 现代软件开发
第12章 腾讯敏捷软件开发 301
12.1 腾讯敏捷研发理念 301
12.2 腾讯敏捷解决方案 303
12.3 敏捷的核心应用 304
12.3.1 看板 304
12.3.2 需求 305
12.3.3 迭代 306
12.3.4 测试 307
12.3.5 缺陷 308
12.3.6 DevOps 310
12.3.7 报表 311
12.3.8 文档 312
12.4 小结 312
12.5 习题 313
第13章 基于领域驱动的云原生软件开发 314
13.1 云原生概述 314
13.2 云原生架构及其设计原则 317
13.3 领域驱动设计 322
13.4 基于领域的敏捷需求分析 323
13.4.2 业务需求分析 324
13.5 云原生软件架构设计 324
13.5.1 界限上下文划分 325
13.5.2 实体及值对象分析 326
13.5.3 聚合分析与设计 327
13.5.5 存储库设计 331
13.5.6 数据一致性 332
13.5.7 软件前端设计 335
13.6 云原生软件系统实现及部署 336
13.6.1 云原生软件实现 336
13.6.2 容量估算及组件选型 341
13.6.3 系统测试 341
13.6.4 软件发布及部署 342
13.7 小结 343
13.8 习题 344
第14章 人机交互设计 345
14.1 人机交互 345
14.2 交互模型和框架 347
14.3 人机交互设计原则 350
14.4 人机交互界面的设计过程 354
14.5 小结 356
14.6 习题 356
参考文献 357
在公众号书圈后台回复【9787302606840】,下载本书配套的教学资源
软件工程考研大纲(软件工程考研大纲在哪里看)