《软件工程基础》课程教学大纲
课程代码:
课程名称:软件工程基础/Software Engineering Basics
开课学期:
学分/学时:理论3/48+实验1/32
课程类型:必修
适用专业/开课对象:
先修课程:计算机导论、数据结构、面向对象程序设计、数据库原理等
开课单位:
团队负责人:责任教授:
执笔人:核准院长:
一、课程的性质、目的与任务
《软件工程基础》是计算机/软件工程专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程基础》已成为高等学校计算机软件教学体系中的一门核心课程,
本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。
本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,
并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。
二、教学内容及教学基本要求
1. 软件与软件工程(2学时)
通过本章的学习,了解软件的概念和特点;了解软件危机的表现与原因;了解软件工程的概念和知识体系;了解基本的软件开发方法和开发工具。
2. 软件过程(2学时)
通过本章学习,了解软件生命周期的概念;了解常用的软件开发模型:瀑布模型、快速原型模型、增量模型等;了解敏捷开发和极限编程这两种新兴的开发模型的特点;了解几种软件开发模型之间的关系,能够根据开发需求确定使用特定的开发模型。
3. 敏捷软件开发(2学时)
了解敏捷软件开发概念及特点;掌握常见的敏捷软件开发方法;了解Scrum 方法的特点和实施过程;
了解看板与Scrum的区别;了解XP的价值观和核心实践;掌握CI/CD内容及CI/CD 管道和优势;了解DevOps生命周期和涉及工具
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学时)
教学说明及教学基本要求见《软件工程基础》实验教学大纲。
软件工程学什么三、教学方法
本课程教学方法以教师为主导的启发式讲授教学法为主,讨论(提问)式教学为辅,结合课外学习的教学方法。实验以学生动手实验为主,教师的启发式讲授教学法为辅,并结合讨论(提问)式教学,以及结合课外学习的教学方法。1.本课程概念较多,因此教学形式以讲授方式为主。本课程拟采用多媒体PPT 的教学方法,增加课堂信息,浅显通俗地对概念、定义和原理进行解释,增加教学的直观性,教学过程中注意各个知识点的关联性,以使学生更好地理解课程内容。
2.对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。
3.为加强和落实动手能力的培养,每章课后应安排作业,帮助学生学习和应用。
四、课内外教学环节及基本要求
本课程共80个学时,其中理论48个学时,讲授16周(每周3学时);实验32个学时,讲授8周(每周4学时)。
课外学习要求:
1.做好课前预习,预习时以教材为主,了解相关的概念、定义、原理。预习中认真思考,以便带着问题主动地听课。
2.课后要复习,有余力的学生复习时还应阅读参考资料,认真整理课堂听课笔记。
3.要求学生课外自主学习,学生课外阅读的参考资料以本大纲所列参考资料为主。
五、考核内容及方式
本课程成绩由平时成绩和期末考核成绩组合而成,课程成绩以百分制计算,分配比例如下:
1.平时成绩占60%,主要考查作业的完成程度,理论课和实验课的出勤率,实验课的考试结果。其中实验占20%,课程设计占35%,出勤率占5%。
2.期末成绩占40%,采用考试的考核方式。考试采用闭卷形式,题型为选择题、正确/错误题、填空题、简答题,以及应用题。
六、持续改进
本课程根据学生作业、课堂讨论、平时考核情况和学生、教学督导等反馈,及时对教学中不足之处进行改进,并在下一轮课程教学中改进。
七、建议教材及参考资料
建议教材:
[1] 吕云翔,等. 软件工程理论与实践(第2版)[M]. 北京:机械工业出版社,2022
参考资料:
[1] Roger S. Pressman,Bruce R. Maxim. 软件工程: 实践者的研究方法(原书第8版),郑人杰等译[M]. 北京:机械工业出版社,2016
[2] Ian Sommerville. 软件工程(原书第10版),彭鑫等译[M]. 北京:机械工业出版社,2018
[3] 张海藩,吕云翔. 软件工程(第4版)[M]. 北京:人民邮电出版社,2013
[4] 吕云翔,赵天宇. UML面向对象分析、建模与设计(第2版,微课视频版)[M]. 北京:清华大学出版社,2021
《软件工程基础》课程实验教学大纲
发布评论