软件工程-理论与实践(附微课视频第3版)-教学大纲(含课程思政)_第1页
软件工程-理论与实践(附微课视频第3版)-教学大纲(含课程思政)_第2页
软件工程-理论与实践(附微课视频第3版)-教学大纲(含课程思政)_第3页
软件工程-理论与实践(附微课视频第3版)-教学大纲(含课程思政)_第4页
软件工程-理论与实践(附微课视频第3版)-教学大纲(含课程思政)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程基础》课程教学大纲课程代码:课程名称:软件工程基础/SoftwareEngineeringBasics开课学期:学分/学时:理论3/48+实验0.5/16课程类型:必修适用专业/开课对象:先修课程:计算机导论、数据结构、面向对象程序设计、数据库原理等开课单位:团队负责人: 责任教授:执笔人: 核准院长:一、课程的性质、目的与任务《软件工程基础》是计算机/软件工程专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程基础》已成为高等学校计算机软件教学体系中的一门核心课程,本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践”软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计、实验,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。二、教学内容及教学基本要求1.课程安排以及软件工程概述(4学时)了解此课程的教学安排和考核方式。了解软件的概念、特点;了解软件危机的产生原因及其表现;掌握软件工程的概念,以及软件工程的基本原则;掌握软件过程的定义和基本活动;熟悉常用的几种软件过程模型;了解软件开发的方法;了解与软件开发项目相关的常用工具;了解软件工程人员的职业道德。。教学重点:课程的教学安排和考核方式;软件工程的概念;软件工程人员的职业道德教学难点:软件过程模型课程思政:通过讲述软件工程,引入中国软件工程发展历程,简要介绍案例“青鸟工程”。2.敏捷软件开发(4学时)理解敏捷软件开发方法和敏捷宣言的基本原则;理解重要的敏捷开发实践,例如Sprint、用户故事、Backlog等;理解面向敏捷开发的Scrum、Kanban、XP方法;理解敏捷开发和DevOps是一种理念,而CI/CD是实现这两者理念的一种方法。教学重点:用户故事、Scrum、CI/CD教学难点:用户故事、Scrum、CI/CD课程思政:通过讲述敏捷软件开发,引入中国目前面临“卡脖子”的问题,简要介绍案例“微信”。3.可行性研究与项目开发计划(2学时)了解可行性研究的目的、意义和内容;掌握可行性研究的主要步骤;了解项目开发计划的内容。教学重点:可行性研究的任务、过程、成本效益分析教学难点:成本效益分析课程思政:通过讲述可行性的必要性,引入中国自主研发的可行性,简要介绍案例“钉钉软件”。4.需求分析与结构化分析(4学时)了解需求分析的任务和原则;熟悉进行需求分析的步骤和方法;了解需求管理;熟悉需求分析的常用方法;了解软件原型设计;掌握结构化分析的几种常用建模方法;掌握结构化分析的几种图形工具。教学重点:需求分析的常用方法;结构化分析方法;软件原型教学难点:软件原型;结构化分析方法课程思政:通过讲述需求分析,引入软件开发中需求分析为什么很必要,简要介绍案例“汉字激光照排系统”。5.软件设计与结构化设计(4学时)了解软件设计的意义和目标;掌握软件设计的原则;了解软件设计的分类;了解软件体系结构;了解结构化设计与结构化分析的关系;熟悉表示软件结构的图形工具;掌握面向数据流的软件设计方法;熟悉面向数据结构的设计方法;熟悉接口设计和数据设计;掌握过程设计的工具和方法;了解软件设计评审。教学重点:软件设计的原则;面向数据流的软件设计方法教学难点:软件体系结构;面向数据结构的设计方法课程思政:通过讲述结构化设计,引入软件开发中软件设计为什么很重要,简要介绍案例“高斯数据库”。6.软件实现(2学时)了解编程语言的发展与分类;了解选择编程语言时所需考虑的因素;掌握良好的编程风格与编码规范;了解代码重用;了解分析和评价代码的质量。教学重点:良好的编程风格与编码规范教学难点:良好的编程风格与编码规范课程思政:通过讲述软件实现,引入编写代码的重要性,简要介绍案例“杀毒软件之父”—王江民。7.软件测试(4学时)掌握软件测试的原则;了解软件测试的常用模型;了解软件测试的分类;了解测试用例和测试用例设计方法;掌握等价类划分法;熟悉黑盒测试的其他方法;掌握逻辑覆盖法;熟悉白盒测试的其他方法;熟悉软件测试的一般步骤,以及每个阶段性测试的关注点;了解回归测试、自动化测试;熟悉软件调试。教学重点:等价类划分法;逻辑覆盖法;单元测试教学难点:等价类划分法;逻辑覆盖法;单元测试课程思政:通过讲述软件测试,引入软件测试是保证软件质量的重要步骤,简单介绍案例“中国的工业软件”。8.软件维护(2学时)熟悉软件部署与软件交付;了解软件维护的过程和分类;了解软件的可维护性;了解软件维护的副作用;了解软件运维;了解软件再工程—逆向工程、重构、正向工程。教学重点:软件维护的过程教学难点:软件再工程—逆向工程、重构、正向工程课程思政:通过讲述软件维护与软件工程管理,引入软件开发不仅仅是编码,还有别的相关任务需要完成,简要介绍案例“12306”。9.面向对象方法与UML(4学时)理解面向对象的基本概念;理解面向对象软件工程方法的特征与优势;掌握面向对象的实施步骤;了解统一建模语言UML;掌握UML的9种图。教学重点:用例图、类图、顺序图、活动图教学难点:用例图、类图、顺序图、活动图课程思政:通过讲述面向对象方法和统一建模语言,引入使用面向对象方法比使用结构化方法的优势,简要介绍案例“抖音”。10.面向对象分析(4学时)理解面向对象分析的过程和原则;掌握面向对象建模的3种模型,对象模型、动态模型和功能模型。教学重点:对象模型、动态模型和功能模型教学难点:对象模型、动态模型和功能模型课程思政:通过讲述面向对象分析,引入使用面向对象分析方法比使用面向结构化方法的优势,简要介绍案例“北斗卫星导航系统”。11.面向对象设计(4学时)了解面向对象设计与结构化设计的不同,理解面向对象设计与面向对象分析的关系;理解面向对象设计的过程、原则和启发规则;熟悉面向对象系统的分解方法;熟悉面向对象问题域、人机交互、任务管理和数据管理各子系统的设计方法;掌握对象设计的方法;熟悉软件系统的设计模式。教学重点:面向对象问题域、人机交互、任务管理和数据管理各子系统的设计方法教学难点:面向对象问题域、人机交互、任务管理和数据管理各子系统的设计方法课程思政:通过讲述面向对象设计,引入使用面向对象设计方法比使用结构化设计方法的优势,简要介绍案例“银河麒麟”。12.面向对象实现(2学时)了解面向对象语言的选择;熟悉面向对象程序设计风格。教学重点:面向对象程序设计风格教学难点:面向对象程序设计风格课程思政:通过讲述面向对象程序设计风格的重要性,简要介绍案例“PaddlePaddle”。13.面向对象测试(2学时)了解面向对象测试与传统测试的区别;熟悉面向对象的单元测试、集成测试、系统测试和回归测试;理解面向对象测试用例设计的基本概念和面向对象编程对测试的影响;了解基于故障的测试、基于场景的测试以及表层结构和深层结构的测试。教学重点:向对象的单元测试教学难点:基于故障的测试;基于场景的测试;表层结构和深层结构的测试课程思政:通过讲述面向对象测试与传统测试的区别,引入面向对象测试为什么如此重要,简要介绍案例“WPS”。14.软件工程管理(6学时)了解软件估算的概念、方法、原则与技巧;掌握制定软件开发进度计划的方法;了解软件开发人员组织的形式;了解软件开发风险管理的概念;了解软件质量保证的措施;了解软件配置管理的相关概念;熟悉软件工程标准与软件文档的概念;熟悉软件过程能力成熟度模型;了解软件项目管理的相关内容。教学重点:软件开发风险管理;软件质量保证的措施;软件过程能力成熟度模型教学难点:软件过程能力成熟度模型课程思政:通过讲述软件工程管理,引入软件开发不仅仅是编码,还需要软件工程管理,简要介绍案例“任正飞”。15.实验(16学时)教学说明及教学基本要求见《软件工程基础》实验教学大纲。三、教学方法本课程教学方法以教师为主导的启发式讲授教学法为主,讨论(提问)式教学为辅,结合课外学习的教学方法。实验以学生动手实验为主,教师的启发式讲授教学法为辅,并结合讨论(提问)式教学,以及结合课外学习的教学方法。1.本课程概念较多,因此教学形式以讲授方式为主。本课程拟采用多媒体PPT的教学方法,增加课堂信息,浅显通俗地对概念、定义和原理进行解释,增加教学的直观性,教学过程中注意各个知识点的关联性,以使学生更好地理解课程内容。2.对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。3.为加强和落实动手能力的培养,每章课后应安排作业,帮助学生学习和应用。四、课内外教学环节及基本要求本课程共64个学时,其中理论48个学时,讲授16周(每周3学时);实验16个学时,讲授8周(每周2学时)。课外学习要求:1.做好课前预习,预习时以教材为主,了解相关的概念、定义、原理。预习中认真思考,以便带着问题主动地听课。2.课后要复习,有余力的学生复习时还应阅读参考资料,认真整理课堂听课笔记。3.要求学生课外自主学习,学生课外阅读的参考资料以本大纲所列参考资料为主。五、考核内容及方式本课程成绩由平时成绩和期末考核成绩组合而成,课程成绩以百分制计算,分配比例如下:1.平时成绩占60%,主要考查作业的完成程度,理论课和实验课的出勤率,实验课的考试结果。其中实验占20%,课程设计占35%,出勤率占5%。2.期末成绩占40%,采用考试的考核方式。考试采用闭卷形式,题型为选择题、正确/错误题、填空题、简答题,以及应用题。六、持续改进本课程根据学生作业、课堂讨论、平时考核情况和学生、教学督导等反馈,及时对教学中不足之处进行改进,并在下一轮课程教学中改进。七、建议教材及参考资料建议教材:吕云翔.软件工程—理论与实践(附微课视频第3版)[M].北京:人民邮电出版社,2024参考资料:[1]吕云翔,赵天宇,丛硕.UML与Rose建模实用教程[M].北京:人民邮电出版社,2016[2]吕云翔,黎可为,张中基.软件工程项目化教程[M].北京:清华大学出版社,2023《软件工程基础》课程实验教学大纲教学内容及教学基本要求1.用例图和甘特图的绘制(2学时)了解用例图和甘特图的概念和作用;掌握使用UML设计工具EA、项目计划管理工具Project的使用。2.GIT的使用(2学时)了解分布式版本控制系统的概念;掌握GIT的操作方法和在实际项目中的使用流程。3.前端开发工具的使用(2学时)了解前端开发的基础知识,包括HTML、CSS、JavaScript语言;掌握常用的前端开发框架如Vue.js的基本使用;能够自行设计出具有基本功能的前端页面。4.后端开发工具的使用(2学时)了解前后端分离模式中后端所起的作用;了解后端与数据库的紧密联系;掌握常用的后端开发框架如Django或Spring

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论