安徽大学本科教学课程教案课程代码:ZJ36030课程名称:软件工程方法论授课专业:软件工程授课教师:章程职称/学位:讲师/博士开课时间:二○一六至二○一七学年第二学期第一次课程教学方案周次1课时数2教学章节第1章软件和软件工程目标要求通过本章的学习,了解软件的本质、分类及其开发中存在的问题,理解软件工程的过程、方法和工具,掌握软件工程实践的框架和原则。重点难点重点:(1)软件的3个特性;(2)软件工程的3个层次;(3)软件的过程框架;(4)软件工程整体实践的7个原则。难点:软件的过程框架教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业P15:1.5、1.8板书设计教学课件《第1章软件和软件工程》第一次教学活动设计教学环节内容设计与手段导入新课1.全面地介绍《软件工程方法论》的课程内容、课程目的和课程要求2.提问:软件和软件工程的区别和联系;什么是方法论?3.导入第一章的课程内容4.提问:以前接触过哪些常见的软件过程?讲授内容第1章软件和软件工程第一节软件的本质(一)定义软件1.软件的形式化定义软件的三个要素:①指令的集合;②数据结构;③软件描述信息。2.软件的三个特性(二)软件应用领域1.计算机软件的七大分类2.“遗留软件”及其存在的问题第二节软件工程软件工程的三个层次:过程层、方法层、工具层。第三节软件过程1.软件过程框架:包含活动和普适性活动2.5个活动3.普适性活动第四节软件工程实践(一)实践的精髓四个实践精髓(二)一般原则软件工程整体实践的7个原则归纳总结通过本章的学习,了解软件的本质、分类及其开发中存在的问题,理解软件工程的过程、方法和工具,掌握软件工程实践的框架和原则。第二次课程教学方案周次2课时数2教学章节第2章过程模型目标要求通过本章的学习,掌握通用过程模型,掌握惯用的过程模型。重点难点重点:(1)通用过程模型;(2)惯用过程模型;(3)专用过程模型。难点:(1)过程流;(2)任务集;教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业P37:2.2、2.5、2.6板书设计教学课件《第2章过程模型》第二次教学活动设计教学环节内容设计与手段导入新课1.回顾上一章内容2.导入第二章的课程内容3.布置作业讲授内容第2章过程模型第一节通用过程模型(一)定义框架模型(二)明确任务集(三)过程模式第二节惯用过程模型四种惯用过程模型:(一)瀑布模型(二)增量过程模型(三)演化过程模型(四)协调模型第三节专用过程模型三种过程模型:(一)基于构建的开发(二)形式化方法模型(三)面向方面的软件开发第四节统一过程统一过程的5个阶段:(一)起始阶段(二)细化阶段(三)构建阶段(四)转换阶段(五)生产阶段归纳总结通过本章的学习,掌握通用过程模型,掌握惯用的过程模型。第三次课程教学方案周次3课时数2教学章节第3章敏捷开发目标要求通过本章的学习,阐述软件工程中敏捷理念的四个关键问题:自我组织团队对所开展工作具有控制力的重要性;团队成员之间以及开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;强调快速软件交付以让客户满意。并对最广泛应用的敏捷过程极限编程(XP)做出讲解。掌握用敏捷开发的方法以适应现代软件工程的需求。重点难点重点:(1)敏捷过程;(2)极限编程。难点:(1)敏捷原则;(2)极限编程过程。教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业P57:3.2、3.4板书设计教学课件《第3章敏捷开发》第三次教学活动设计教学环节内容设计与手段导入新课1.回顾上一章内容2.导入第三章的课程内容讲授内容第一节什么是敏捷普遍存在的变化是基本动力鼓励沟通第二节敏捷及变更的成本费用第三节敏捷过程是什么(一)敏捷原则(二)敏捷开发的战略(三)人的因素第四节极限编程最广泛应用的敏捷软件开发方法极限编程的权限、过程工业极限编程。第五节其他敏捷过程模型除了极限编程之外的几种较普遍应用的敏捷过程模型:(1)自适应软件开发;(2)Scrum;(3)动态系统开发方法;(4)Crystal;(5)特征驱动开发;(6)精益软件开发;(7)敏捷建模;(8)敏捷统一过程。归纳总结通过本章的学习,阐述软件工程中敏捷理念的四个关键问题:自我组织团队对所开展工作具有控制力的重要性;团队成员之间以及开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;强调快速软件交付以让客户满意。并对最广泛应用的敏捷过程极限编程(XP)做出讲解。掌握用敏捷开发的方法以适应现代软件工程的需求。第四次课程教学方案周次4课时数2教学章节第4章理解需求目标要求通过本章的学习,阐述在与客户沟通活动和为一般软件过程定义的建模活动过程中,软件团队成员要实施的7个需求工程职能:起始、导出、精化、协商、规格说明、确认和管理。掌握需求工程可以为设计和构建活动建立一个可靠坚固的基础。重点难点重点:需求工程难点:(1)开发用例;(2)分析模式。教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业(一)为什么我们说需求模型表现了系统的时间快照?(二)用你自己的话描述一个分析模式。(三)在需求工程活动的谈判情境中,“双赢”意味着什么?板书设计教学课件《第4章理解需求》第四次教学活动设计教学环节内容设计与手段导入新课1.回顾上一章内容2.导入第四章的课程内容讲授内容4.1需求工程起始——询问一系列问题以建立……对问题的基本理解需要解决方案的人所期望解决方案的性质项目利益相关者和开发人员之间达成初步交流合作的效果导出——引出所有利益相关者的需求精化——创建一个分析模型,用以说明软件的数据、功能和行为等需求协商——对开发者和客户来说是现实的、达成一致的可交付系统规格说明——可以是以下一项或任意组合:一份写好的文档一套模型一个形式化的数学模型一组使用场景(用例)一个原型确认——一种审查机制,即找出:内容或解释上的错误可能需要进一步解释澄清的地方丢失的信息不一致性(这是建造大型产品或系统时遇到的主要问题)冲突的需求或不可实现的(不能达到的)需求需求管理4.2建立根基确认利益相关者(stakeholders)“你认为我还应该和谁交谈”识别多重观点(软件分析师应从不同涉众的角度去识别、表述他们需求。)协同合作首次提问4.3导出需求会议由软件工程师和利益相关者共同举办和参与制定筹备和参与会议的规则建议拟定一个会议议程由一个“调解人”(可以是客户,开发人员或其他人)控制会议采用“方案论证手段”(可以是工作表、活动挂图、不干胶贴纸或电子公告牌、聊天室或虚拟论坛)。目的是识别问题提出问题解决方案协商不同的方法确定一套解决需求问题的初步方案4.4开发用例一组用户场景,描述系统的线程使用从“参与者”的点-视角来描述每一个场景——人或设备以某种方式与软件交互4.5构建需求模型分析模型的元素基于场景的元素功能说明——处理软件功能的描述用例——描述“参与者”和系统之间的交互作用基于类的元素由场景暗示行为元素状态图面向数据流元素数据流图归纳总结通过本章的学习,阐述在与客户沟通活动和为一般软件过程定义的建模活动过程中,软件团队成员要实施的7个需求工程职能:起始、导出、精化、协商、规格说明、确认和管理。掌握需求工程可以为设计和构建活动建立一个可靠坚固的基础。第五次课程教学方案周次5课时数2教学章节第5章需求建模:场景、信息与类分析5.1需求分析5.2基于场景建模5.3补充用例的UML模型目标要求通过本次课的学习,掌握需求分析的概念,掌握基于场景建模的方法,掌握流程图和泳道图的画法。重点难点重点:需求分析,基于场景的建模难点:(1)用例;(2)泳道图。教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业P1095.7板书设计教学课件《第5章需求建模:场景、信息与类分析》第五次教学活动设计教学环节内容设计与手段导入新课1.回顾上一章内容2.导入第五章基于场景建模的课程内容讲授内容5.1需求分析–确定软件的操作特性–指明软件和其他系统元素的接口–规定软件必须满足的约束–需求分析让软件工程师(有时这个角色也被称作分析或建模师):–细化在前期需求工程任务中建立的基础需求–建立描述用户场景、功能活动、问题类及它们之间的关系、系统和类行为以及数据流变换时等模型5.2基于场景建模–新建初始用例–细化初始用例–编写正规的用例5.3补充用例的UML模型–开发活动图–泳道图归纳总结通过本次课的学习,掌握需求分析的概念,掌握基于场景建模的方法,掌握流程图和泳道图的画法。第六次课程教学方案周次6课时数2教学章节第5章需求建模:场景、信息与类分析5.4数据建模的概念5.5基于类的建模目标要求通过本次课的学习,掌握数据建模的概念,掌握基于类的建模的方法,掌握CRC卡的方法。重点难点重点:数据对象,基于类的建模难点:(1)关系;(2)CRC建模。教学方式√课堂讲授□小组活动□实验演示□难点答疑□提问□作业讲评□实践教学□考试测验□其他活动媒体资源□文字教材√电子教案□录像材料□录音材料□直播课堂□CAI课件□IP课件□其他资源:课后作业P1095.5,5.8板书设计教学课件《第5章需求建模:场景、信息与类分析》第六次教学活动设计教学环节内容设计与手段导入新课1.回顾上一次课内容2.导入第五章基于类建模的课程内容讲授内容5.4数据建模的概念•检查数据对象的独立处理•注意力集中在数据域•创建客户级抽象的模型•指出数据对象之间的相互联系5.5基于类的建模•基于类建模表示:–系统操作的对象–应用于对象间能有效控制的操作(也称为方法或服务)–对象间的关系(某种层级)–定义出现在类之间的协作•基于类的模型的元素包括类和对象、属性、操作、CRC模型、协作图和包。1、识别分析类•通过检查需求模型开发的使用场景,对系统开发的用例进行“语法解析”[Abb83]–带有下划线的每个名词或名词词组可以确定为类,并将这些名词输入到一个简单的表中。–标注同义词。–如果要求某个类(名词)实现一个解决方案,那么这个类就是解决方案空间的一部分;否则,如果只要求某个类描述一个解决方案,那么这个类就是问题空间的一部分。2、定义属性•属性描述了已经选择包含在需求模型中的类。3、定义操作•做语法解析的处理说明,关注动词•操作可以划分为4种类型:–(1)以某种方式操作数据(例如:添加、删除、重新格式化、选择)–(2)执行计算的操作–(3)请求某个对象的状态的操作–(4)监视某个对象发生某个控制事件的操作4、CRC模型•类-职责-协作者(CRC)建模[Wir90]提供了一个简单方法,可以识别和组织与系统或产品需求相关的类。Ambler[Amb95]用如下文字解释CRC建模:–CRC模型实际上是表示类的标准索引卡的集合。这些卡片分为三部分,顶部写类名,卡片主体左侧部分列出类的职责,右侧部分列出类的协作者。归纳总结通过本次课的学习,掌握数据建模的概念,掌握基于类的建模的方法,掌握CRC卡的方法。第七次课程教学方案周次7课时数2教学章节第6章需求建模:流程、行为和模式6.1需求建模策略6.2面向流程建模目标要求通过本次课的学习,掌握需求建模的策略,掌握画数据流程图的方法。重点难点重点:面向流程建模难点: