软件工程概论试题-治安管理学概论试题
✦
✦
课程名称
软件工程基础/Software Engineering Basics
学分/学时
理论3/48+实验1/32
课程类型
必修课
先修课程
计算机导论、数据结构、面向对象程序设计、数据库原理等
1
课程的性质、目的与任务
“软件工程基础”是计算机/软件工程专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。“软件工程基础”已成为高等学校计算机软件教学体系中的一门核心课程,
本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践”软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。
本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。
2
教学内容及教学基本要求
1. 软件与软件工程(2学时)
通过本章的学习,了解软件的概念和特点;了解软件危机的表现与原因;掌握软件工程的概念和知识体系;了解基本的软件开发方法和开发工具;了解软件工程人员的职业道德。
【课程思政】通过讲述从软件、软件开发到软件工程,引入中国目前面临“卡脖子”的问题,简要介绍案例“中国第一程序员”——求伯君。【工匠精神,科技报国】。
2. 软件过程(2学时)
通过本章学习,了解软件生命周期的概念;熟悉常用的软件开发模型:瀑布模型、快速原型模型、增量模型等;了解敏捷开发和极限编程这两种新兴的开发模型的特点;了解几种软件开发模型之间的关系,能够根据开发需求确定使用特定的开发模型。
【课程思政】通过讲述软件过程,引入中国软件工程发展历程,简要介绍案例“青鸟工程”。【科学探索,勇于实践】。
3. 敏捷软件开发(2学时)
了解敏捷软件开发概念及特点;掌握常见的敏捷软件开发方法;了解Scrum方法的特点和实施过程;了解看板与Scrum的区别;了解XP的价值观和核心实践;掌握CI/CD内容及CI/CD 管道和优势;了解DevOps生命周期和设计工具。
【课程思政】通过讲述敏捷软件开发,引入中国敏捷软件开发的历程,简要介绍案例“PaddlePaddle”。【自主研发软件工程概论试题,敢为人先】。
4. 软件可行性研究与项目开发计划(2学时)
通过本章学习,深刻理解可行性研究的必要性;掌握可行性研究的任务、过程、成本效益分析以及可行性研究报告的主要内容;具体掌握技术可行性、操作可行性、经济可行性的分析方法。了解如何制定项目开发计划。
【课程思政】通过讲述可行性的必要性,引入中国自主研发的可行性,简要介绍案例“汉字激光照排系统”。【奉献精神,创新精神】。
5. 结构化分析(4学时)
通过本章的学习,了解需求分析的任务,熟悉需求获取的方法、分析建模与需求规格说明;掌握结构化分析的方法例如功能建模、数据建模、行为建模、数据字典等;掌握数据建模的实体联系图、数据规范化;掌握描述系统行为模型的状态转换图;了解层次方框图、Warnier图、IPO(HIPO)图。
【课程思政】通过讲述需求分析,引入软件开发中需求分析为什么很必要,简要介绍案例“抖音”。【创新思维,创新精神】。
6. 结构化设计(4学时)
通过本章的学习,了解软件结构化设计的目的、任务,掌握软件架构化设计的过程、设计原理和启发规则;了解用户界面与数据库结构设计的方式;了解体系结构、数据和过程的设计模式;能够根据需求分析结果绘制结构图。
【课程思政】通过讲述结构化设计,引入软件开发中软件设计为什么很重要,简要介绍案例“飞天云操作系统”。【独具匠心,攻坚克难】。
7. 面向对象方法与统一建模语言(6学时)
通过本章的学习,掌握面向对象的基本概念,包括抽象、继承、封装、重载、多态等。熟悉统一建模语言UML的概念与绘制,包括静态建模机制:用例图、类图、对象图、包图与动态建模机制:顺序图、协作图、状态图、活动图。
【课程思政】通过讲述面向对象方法和统一建模语言,引入使用面向对象方法比使用结构化方法的优势,简单介绍案例“微信”。【创新胆量,创新决心】。
8. 面向对象分析(6学时)
通过本章的学习,了解面向对象设计的准则和启发规则,掌握面向对象的对象模型、动态模型和功能模型内容。
【课程思政】通过讲述面向对象分析,引入使用面向对象分析方法比使用面向结构化方法的优势,简单介绍案例“图灵奖华人唯一获得者”—姚期智。【志存高远,勇攀高峰】。
9. 软件体系结构与设计模式(2学时)
通过本章的学习,了解软件体系结构的概念软件工程概论试题,了解典型的软件体系结构风格,了解软件系统的设计模式。
【课程思政】通过讲述软件体系结构与设计模式,引入软件体系结构为什么如此重要,简单介绍案例“北斗卫星导航系统”。【科技探索,科技成就】。
10. 面向对象设计(6学时)
通过本章的学习,了解面向对象设计的准则和启发规则,掌握软件重用的概念和方法,掌握系统分解的方法,掌握设计问题域子系统、设计人机交互子系统、设计任务管理子系统、设计数据管理子系统、设计类中的服务、设计关联以及设计优化的方法。
【课程思政】通过讲述面向对象设计,引入使用面向对象设计方法比使用结构化设计方法的优势,简单介绍案例“鸿蒙操作系统”。【家国情怀,敢为人先】。
11. 软件实现(2学时)
通过本章的学习,了解各种编程语言的发展与特性,了解面向对象语言的特点以及如何选择面向对象的开发工具;掌握良好的程序设计风格与编码规范。
【课程思政】通过讲述软件实现,引入编写代码的重要性,简单介绍案例“杀毒软件之父”——王江民。【实干苦干,勇于担当】。
12. 软件测试(6学时)
通过本章的学习,掌握软件测试的基本概念和测试用例编写方法;掌握软件测试的常用方法例如黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试等。
【课程思政】通过讲述软件测试,引入软件测试是保证软件质量的重要步骤,简单介绍案例“钉钉”。【创新意识,创新兴趣】。
13. 软件维护与软件工程管理(4学时)
通过本章的学习,了解软件维护的过程、分类、副作用等;了解软件估算的概念和方法;掌握软件开发进度计划的制定并使用工具如Gantt图与PERT图。了解软件开发的管理如人员、质量、风险、配置管理的概念;学会编写符合软件工程标准的软件文档。
【课程思政】通过讲述软件维护与软件工程管理,引入软件开发不仅仅是编码,还有别的相关任务需要完成,简单介绍案例“中国的工业软件”。【分析矛盾,发现问题】。
14. 实验(32学时)
教学说明及教学基本要求见《软件工程基础》实验教学大纲。
注:通过教材上的二维码可下载课程思政案例的PPT。
3
教学方法
本课程教学方法以教师为主导的启发式讲授教学法为主,讨论(提问)式教学为辅,结合课外学习的教学方法。实验以学生动手实验为主,教师的启发式讲授教学法为辅,并结合讨论(提问)式教学,以及结合课外学习的教学方法。
1.本课程概念较多,因此教学形式以讲授方式为主。本课程拟采用多媒体PPT的教学方法,增加课堂信息,浅显通俗地对概念、定义和原理进行解释,增加教学的直观性,教学过程中注意各个知识点的关联性,以使学生更好地理解课程内容。
2.对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。
3.为加强和落实动手能力的培养,每章课后应安排作业,帮助学生学习和应用。
4
课内外教学环节及基本要求
本课程共80个学时,其中理论48个学时,讲授16周(每周3学时);实验32个学时,讲授8周(每周4学时)。
课外学习要求:
1.做好课前预习,预习时以教材为主,了解相关的概念、定义、原理。预习中认真思考,以便带着问题主动地听课。
2.课后要复习,有余力的学生复习时还应阅读参考资料,认真整理课堂听课笔记。
3.要求学生课外自主学习,学生课外阅读的参考资料以本大纲所列参考资料为主。
5
考核内容及方式
本课程成绩由平时成绩和期末考核成绩组合而成,课程成绩以百分制计算,分配比例如下:
1.平时成绩占60%,主要考查作业的完成程度,理论课和实验课的出勤率,实验课的考试结果。其中实验占20%,课程设计占35%,出勤率占5%。
2.期末成绩占40%,采用考试的考核方式。考试采用闭卷形式,题型为选择题、正确/错误题、填空题、简答题,以及应用题。
6
持续改进
本课程根据学生作业、课堂讨论、平时考核情况和学生、教学督导等反馈,及时对教学中不足之处进行改进,并在下一轮课程教学中改进。
7
建议教材及参考资料
建议教材:
[1] 吕云翔. 软件工程基础(题库+微课视频版)[M]. 北京:清华大学出版社,2022.
参考资料:
[1] 吕云翔,赵天宇. UML面向对象分析、建模与设计(第2版,微课视频版)[M]. 北京:清华大学出版社,2021.
[2] 吕云翔,黎可为,张中基. 软件工程项目化教程[M]. 北京:清华大学出版社,2023.
✦
“软件工程基础”
课程实验教学大纲(32学时)
✦
教学内容及教学基本要求:
1. 用例图和甘特图的绘制(4学时)
(1)了解用例图和甘特图的概念和作用;掌握使用UML设计工具EA、项目计划管理工具Project的使用。
(2)课程设计指导。
2.GIT的使用(4学时)
(1)了解分布式版本控制系统的概念;掌握GIT的操作方法和在实际项目中的使用流程。
(2)课程设计指导。
3. 前端开发工具的使用(4学时)
(1)了解前端开发的基础知识,包括HTML、CSS、JavaScript语言;掌握常用的前端开发框架如Vue.js的基本使用;能够自行设计出具有基本功能的前端页面。
(2)课程设计指导。
4. 后端开发工具的使用(4学时)
(1)了解前后端分离模式中后端所起的作用;了解后端与数据库的紧密联系;掌握常用的后端开发框架如Django或SpringBoot的基本使用。
(2)课程设计指导。
5. UML图的绘制(4学时)
(1)掌握使用EA工具绘制软件设计过程中的UML图,包括类图、活动图、包图、对象图、顺序图、状态图。
(2)课程设计指导。
6. 数据库模型设计工具的使用(4学时)
(1)了解数据库模型的概念,可以区分概念数据模型、逻辑数据模型和物理数据模型;掌握通过PowerDesigner工具进行数据库的模型设计。
(2)课程设计指导。
7. 软件测试工具的使用(4学时)
(1)了解软件测试的基本过程;掌握单元测试工具Pytest和Junit。
(2)课程设计指导。
8. 上机考试和大作业验收(4学时)
(1)上机考试
(2)课程设计验收。
✦
参考书籍
✦
《软件工程基础(题库·微课视频版)》
ISBN:9787302601142