《软件工程理论与实践教学教案.docx》由会员分享,可在线阅读,更多相关《软件工程理论与实践教学教案.docx(57页珍藏版)》请在优知文库上搜索。
1、程称课名软件工程基础程号课编授课时间专业及班级修课人数总学时学分课程类型必修课公=(基础)专业(学科)基础课()专业课()选修课专业限选课()专业任选课()全校任选课()授课方式理论课()实践课()学时分配课堂讲授学时;实践环节学时考核方式考试()考查()是否采用多媒体是否采用双语使用教材:(名称、作者、出版社及出版时间)教学参考书:(名称、作者、出版社及出版时间)教研室审查意见章节名称第1章软件工程概述(1)课次1(总第1次)课时2授课形式理论课案例讨论课口实验课口习题课其他口教学目的及要求 了解此课程的教学安排和考核方式。 了解软件的概念、特点。 了解软件危机的产生原因及其表现。 掌握软件
2、工程的概念,以及软件工程的基本原则。 通过案例“青鸟工程1”,进行思政教育。教学重点课程的教学安排和考核方式软件工程的概念教学难点无环节/时间授课内容教学方法课程导入10分钟一、课程的教学安排和考核方式讲授正式授课80分钟一、课程的教学安排和考核方式(续)二、软件计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬拷贝和电子表格等多种方式存在的软件文档。三、软件危机软件危机就是指人们在开发软件和维护软件过程中所遇到的一系列的问题。软件危机出现的原因可以概括为以下几点。忽视软件开发前期的需求分析。开
3、发过程缺乏统一的、规范化的方法论的指导。软件开发是一项复杂的工程,人们需要用科学的工程化的思想来组织和指导软件开发的各个阶段。而这种工程学的视角正是很多软件开发人员所没有的,他们往往简单地认为软件开发就是程序设计。文档资料不齐全或不准确。软件文档的重要性没有得到软件开发人员和用户的足够重视。软件文档是软件开发团队成员之间交流和沟通的重要平台,还是软件开发项目管理的重要工具。如果人们不能充分重视软件文档的价值,这样势必会给软件开发带来很多不便。忽视与用户之间、开发组成员之间的交流。忽视测试的重要性。不重视维护或由于上述原因造成维护工作的困难。由于软件的抽象性和复杂性使得软件在运行之前,对开发过程
4、的进展情况很难估计。再加上软件错误的隐蔽性和改正的复杂性,这些都使得软件开发和维护在客观上比较困难。从事软件开发的专业人员对这个产业认识不充分,缺乏经验。软件产业相对于其他工业产业而言,是一个比较年轻,发展不成熟的产业,人们在对它的没若完善的质量保笳体系。完善的质量保证体系的建立需要有严格的评审制度,同时还需要有科学的软件测试技术及质量维护技术。软件的质量得不到保证,使得开发出来的软件产品往往不能满足人们的需求,同时人们还可能需要花费大量的时间、资金和精力去修复软件的缺陷,从而导致了软件质量的下降和开发预算超支等后果。讲授四、软件工程1 .软件工程的概念软件工程是以借鉴传统工程的原则、方法,以
5、提高质量、降低成本为目的,指导计算机软件开发和维护的工程学科。2 .软件工程研究的内容(1)软件开发技术(2)软件开发过程管理3 .软件工程目标和原则(1)用分阶段的生命周期计划进行严格的管理(2)坚持进行阶段评审(3)实行严格的版本控制(4)采用现代程序设计技术(5)软件工程结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性五、课程思政:简要介绍案例“青鸟工程1”思考题和作业P2123习题扩展阅读无章节名称第1章软件工程概述(2)课次1(总第2次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 掌握软件过程的定义和基本活动。 熟悉常用
6、的几种软件过程模型。 了解软件开发的方法。 了解与软件开发项目相关的常用工具。 了解软件工程人员的职业道德。 通过案例“青鸟工程2”,进行思政教育教学重点软件过程模型软件工程人员的职业道德教学难点软件过程模型环节/时间授课内容教学方法课程导入10分钟一、软件过程概述软件的诞生和生命周期是一个过程,即软件过程。过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。讲授正式授课80分钟二、软件生命周期(1)软件生命周期的概念软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验
7、收、产品发布、投入是用以及产品版本的不断更新,到最终该产品被淘汰的全过程。(2)传统软件生命周期的各个阶段可行性研究需求分析软件设计编码软件测试软件维护(3)软件过程模型瀑布模型:开发人员必须等前一阶段的任务完成后,才能开始后一阶段的工作,并且前一阶段的输出往往是后一阶段的输入(图1-2)快速原型模型:在初步的需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,反复循环几次,直到客户确认为止(图1-3)增量模型:把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。(图1-4)螺旋模型:用于风险较大的大型软件项目开发,将瀑布
8、模型与快速原型模型结合起来,并且加入了这两种模型忽略了的风险分析(图1-5)喷泉模型:分析模型和设计模型采用相同的符号标示体系,各阶段之间没有明显的界限,而且常常重复、迭代地进行(图1-6)基于组件的开发模型:使用现有的组件以及系统框架进行产品开发(图1-7)统一软件开发过程模型:基于UML的一种面向对象的软件开发模型,采用迭代和增量递进的开发策略,并以用例驱动为特点,集中了多个软件开发模型的优点(图1-8)(4)软件过程实例略三、软件开发方法1.基本的软件开发方法(1)结构化方法:采用自顶向下、逐步求精的讲授指导思想,应用广泛,技术成熟(2)面向数据结构方法:从目标系统的输入、输出数据结构入
9、手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图(3)面向对象方法:自底向上和自顶向下相结合,以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包括了所有对象的数据结构。(4)形式化方法2 .开源软件开发方法3 .群体化软件开发方法四、软件工程工具结合表1-3、表1-4进行讲解五、软件工程人员的职业道德(1)保护客户数据(2)知识产权(3)版权拥有权(4)许可协议(5)道德问题解决方案(6)道德教育六、“小型网上书店系统”案例介绍七、课程思政:简要介绍案例“青鸟工程2”思考题和作业P2123习题扩展阅读无章节名称第2章敏捷软件开发(1)课次1(总第3次)课时2授课形式理
10、论课案例讨论课口实验课习题课其他口教学目的及要求了解“敏捷软件开发宣言”的4个价值观和12条原则理解重要的敏捷软件开发实践,例如Scrum中的Sprint用户故事、Backlog等通过案例“微信1”,进行思政教育教学重点用户故事Scrum教学难点用户故事Scrum环节/时间授课内容教学方法课程导入10分钟一、敏捷软件开发方法(1)4个价值观:个体与交互高于过程和工具、可运行软件高于详尽的文档、与客户协作高于合同(契约)谈判、对变更及时响应高于遵循计划(2)12条原则讲授正式授课80分钟二、Scrum1.概述Scrum用不断迭代的框架方法来管理复杂产品的开发,成为当前十分流行的敏捷管理方法。1)
11、 3种角色:产品经理、敏捷专家、SCnIm团队2) SCrUm会议:整理产品需求清单、确定迭代规划、梳理产品需求清单、每日站会、迭代演示、迭代回顾3) SCrUm项目所需的常用工件:SCrUm任务板、用户故事、燃尽图(IS2-2)2 .SprintSprint是Scrum团队一起完成增量工作的实际时间段3 .每日站会每天在同一时间和地点举行的超短会议,以保持会议的简单性4 .用户故事用户故事是从用户的角度来描述用户渴望得到讲授的功能(1) 3要素:角色、活动、商业价值(2) 3C原则:卡片、交谈、确认(3) INVEST原则:独立、可协商、有价值、可估算、短小、可测试结合表2-1、表2-2、表
12、2-3进行讲述5.BacklogBacklog是Scrum中经过优先级排序的动态刷新的产品需求清单,用来制订发布计划和迭代计划6.结对编程结对编程,即两个程序员肩并肩地坐在同一台计算机前合作编程,在一个程序员编程的同时,另一个负责检查代码的正确性和可读性三、课程思政:简要介绍案例“微信1”思考题和作业P4143习题扩展阅读无章节名称第2章敏捷软件开发(2)课次1(总第4次)课时2授课形式理论课案例讨论课口实验课习题课其他口教学目的及要求理解面向敏捷软件开发的Kanban、XP方法理解敏捷软件开发和DeVC)PS是一种理念,而CI/CD是实现这两种理念的一种方法通过案例“微信2”,进行思政教育教
13、学重点CI/CD教学难点CI/CD环节/时间授课内容教学方法课程导入10分钟回顾上一次所讲的内容讲授正式授课80分钟一、看板1.概述看板作为可视化框架可以用于敏捷方法,能够清晰地向团队成员展示整个项目进度原则:可视化工作流程、限制WIP、管理和改进流程、制订明确的执行策略、持续改进2.看板和SCrUm的区别看板对团队的个人能力要求较高,更灵活,适合新开发的产品,而SCrUm适合成熟一些的产品和团队,结合表2-4进行讲授二、极限编程极限编程是一种实践性较强的规范化的软件开发方法,它强调用户需求和团队工作,结合图2-4进行讲授。(1)4个价值观:交流、简单、反馈、勇气(2)12个核心实践三、CI/
14、CD(1)概述持续集成(CD持续交付(CD)持续测试(2) CI/CD的优势更快、更可靠的版本发布、更高的可见性、早期错误检测、快速反馈循环、更快乐的开发和运维团队四、DevOps1 .DevOps生命周期策划、开发、集成、部署、运维、学习2 .敏捷软件开发、CI/CDDevOps五、敏捷软件开发实例讲授六、课程思政:简要介绍案例“微信2”思考题和作业P4143习题扩展阅读无章节名称第3章可行性研究与项目开发计划课次1(总第5次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 了解可行性研究的目的、意义和内容 掌握可行性研究的主要步骤 了解项目开发计划的内容 通过案例“钉钉软件”,进行思政教育教学重点可行性研究的任务、过程、成本效益分析教学难点成本效益分析环节/时间授课内容教学方法课程导入10分钟引入项目的立项讲授正式授课80分钟一