《软件工程》教学大纲_第1页
《软件工程》教学大纲_第2页
《软件工程》教学大纲_第3页
《软件工程》教学大纲_第4页
《软件工程》教学大纲_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

《软件工程》教学大纲教学目的:本课程的教学目的是通过课堂教学和实践训练,使学生掌握软件工程的基本原理,包括需求分析、软件设计、软件实现和软件测试等,从工程学角度认识软件在大型系统中的设计和应用,能够在用户需求的基础上为一个系统或现有系统的扩展部分开发清晰的、简明的和正式的需求规格说明,使用UML语言进行正确建模,应用设计原则和设计模式进行设计和开发,实现系统的简单图形用户界面,最终集成为一个完整系统进行测试,具备作为软件工程师从事软件开发所需的专业能力。教学任务:本课程从软件生命周期的角度讲解软件工程的基本概念、基本原理和基本方法,内容涉及开发管理、需求建模、设计实现和测试维护等四大部分的相关基础知识,强调软件工程的根本性和永久性原则,诸如可测试性、软件体系结构、模块化和可复用性等,关注软件系统的复杂性问题以及迭代式的开发方法,重视分析问题与解决问题的能力以及软件工程实践训练,培养学生良好的工程化开发习惯。在课程实验中,要求学生以开发团队(一个团队通常由4-5人组成)的方式开发一个具有一定规模的软件系统,侧重培养学生发现问题、独立分析问题和解决问题的能力以及团队协作精神,使学生初步体会到一个软件项目开发的全过程。教学方法:课程讲授:在软件工程理论知识的讲解中注重贯穿实际的软件开发案例,使学生真正理解这些理论知识,建立软件开发的系统化与工程化观念和质量意识,掌握软件工程的最新技术。启发思考:注重鼓励和引导探索式学习,学生通过文献查阅以及与软件企业人员的接触交流,真正体会当前软件工程业界的真实案例和最佳实践。同时,在教学过程中营造轻松活跃的课堂气氛,开展互动式的讨论,鼓励学生结合课程实践中的问题进行专题报告和软件演示。课程实验:注重培养学生分析问题和解决问题的能力,要求学生以小组形式协作完成一定规模的课程实验项目,在实践过程中内化和提升理论知识,真正学会运用软件工程的思想和技术解决实际问题。教学内容结构:软件工程软件工程模块1:开发管理软件工程概述软件开发管理软件配置管理敏捷开发方法需求获取技术基于情景的需求方法UML交互建模面向对象分析UML行为建模模块2:需求建模模块3:设计实现软件体系结构行为驱动开发软件设计代码重构与模式模块4:测试维护软件测试基础软件系统测试软件交付与演化教学单元:软件工程概述教学目标:引导学生从软件的本质特性看待软件开发所面临的挑战,掌握软件工程的基本概念及其要素;了解软件质量的内涵和属性,学会从产品和用户的角度评价什么是好的软件;理解软件过程的基本活动,掌握瀑布模型和迭代开发模型。教学任务:讲解软件开发面临的问题、软件的本质特性、软件工程的基本概念及其要素、软件质量属性与模型、软件开发的基本活动以及常见的软件过程模型。教学方法:由于本科生缺少实际项目的开发经验,单纯讲解软件工程、软件质量和软件过程等概念,会使学生感觉非常枯燥难懂。因此在教学中,需要结合学生熟悉和感兴趣的实例进行启发式讲解,例如历史上一些经典的软件失败案例、学生编写的小程序以及常见的软件系统等,通过对这些实例的分析,引导学生理解和思考软件工程的基本概念和工程化原则,通过介绍一些著名软件公司的做法,激发学生对软件工程进行探索学习的兴趣。软件开发管理教学目标:引导学生认识到人员在软件开发中的重要性,了解不同组织形式的特点,学会选择合适的团队组织;重视软件项目的沟通管理,在项目中运用合适的沟通机制;了解常见的软件估算技术以及如何制定软件项目管理计划。教学任务:讲解软件开发团队的角色分工和组织结构、项目沟通管理、软件估算技术和软件项目管理的主要活动。教学方法:学生在本科阶段通常重视技术内容的学习,而对管理内容兴趣不大或理解不透,因此这部分的讲授应该紧密结合课程实验项目的需要,将相关内容精练到最小限度。与此同时,结合课程实验项目的要求,让学生组建4-5人的开发团队,召开第一次项目启动会议,制定简单的团队章程和项目阶段计划。软件配置管理教学目标:学生应理解软件配置管理的作用和任务,掌握一种常见的软件配置管理工具。结合开发任务的划分,学会使用配置管理工具进行团队成员的开发协作,掌握版本控制、检入检出以及基线管理等技术。教学任务:讲解软件配置管理的基本概念、团队开发的版本控制等内容,介绍当前流行的Git工具安装以及GitHub使用。教学方法:在学习软件工程课程之前,学生通常习惯于单独开发或手工合并代码的工作模式,因此在讲解时应该强调多人协作开发的工作模式,通过描述一些冲突问题的场景,引导学生改变原有的工作模式,尝试使用配置管理工具对实验项目的开发过程进行版本管理。敏捷开发方法教学目标:学生应了解敏捷开发的基本理念和使用场合,掌握Scrum方法的敏捷管理过程以及XP方法的敏捷开发实践,学会在实际项目开发中有选择地应用。教学任务:讲解敏捷方法与传统瀑布模型的根本区别、敏捷方法的核心理念、Scrum团队组织与开发活动,简要介绍用户故事、结对编程、测试驱动开发、持续集成等敏捷开发实践。教学方法:敏捷开发模式比较适合应用于学生课程的实验项目,在初步讲解一些核心理念后,可以用一些直观的图片或视频资料展示敏捷开发的活动场景,也可以通过一些游戏活动让学生更有体会。需求获取技术教学目标:学生应掌握软件需求的基本概念,明确区分功能需求与非功能需求之间的不同。了解需求工程的基本活动,掌握常见的需求获取技术与方法。教学任务:介绍需求工程的活动内容,讲解软件需求的基本概念与类型,重点描述常见的需求获取技术。教学方法:对于没有实际开发经验的学生来说,单纯地讲授软件需求知识通常会使学生感到内容枯燥又难以理解。这部分的讲授应该结合1-2个应用实例,通过认真的分析和讨论,使学生理解软件需求的重要性和需求工程方法。讲解时重点突出各种方法的适用场景,通过结合课程实验项目的讨论,引导学生从用户的角度考虑问题,学会在实际开发中运用需求获取技术。基于情景的需求方法教学目标:学生应了解用户故事的基本概念,掌握编写良好用户故事的方法,学会结合实际开发项目对用户故事进行评估和分解;理解基于情景的需求建模方法,掌握统一建模语言UML用例建模方法。教学任务:讲解用户故事的基本要素和特性、用户故事的分解方法、用户故事类型和用户故事描述,介绍基于用例的情景分析方法以及用户角色的提取与分析技术。教学方法:UML用例建模是需求情景分析的一种重要方法,用户故事则是敏捷方法中的一个重要实践。对于没有实际开发经验的学生,在编写用户故事或者建立用例模型的时候,很容易出现站在开发角度、不考虑商业价值或用户价值、忽视验收标准等问题,因此在相关的基本概念之后,更多地是讲解各种正确的或错误的建模实例以及学生作业中的示例,引导学生学会从用户的角度考虑需求,重视用户故事或用例模型的实际价值。UML交互建模教学目标:学生应了解采用UML进行系统交互建模的主要方法和基本概念,学习UML顺序图,初步掌握运用UML顺序图进行交互建模和分析。教学任务:介绍交互建模的基本过程,详细讲解UML顺序图的组成元素和建模方法,说明软件需求规格说明的基本组成和编写原则。教学方法:介绍UML交互建模方法的基础知识,使学生了解顺序图建模方法的基本思想,通过若干典型系统的实例,了解顺序图的基本建模元素、建模重点、适用场景、建模风格和常见错误等。学生可以结合课程实验项目,熟练掌握UML交互建模方法,能够将所学的知识应用于实际软件系统的建模分析,撰写基于用例的需求规格说明书。面向对象分析教学目标:学生应掌握CRC分析方法和UML类图,学会在软件开发中使用UML建立系统结构模型。教学任务:介绍面向对象分析的基本原理,重点讲解如何使用CRC卡片发现系统的概念类,讲解UML类图的基本元素以及使用UML类图描述系统结构模型。教学方法:深入讲解面向对象分析方法的思路和关键步骤,重点介绍统一建模语言UML类图的基本组成以及几种关系的用法,结合实例讲解系统结构建模方法。UML行为建模教学目标:学生应了解采用UML进行系统行为建模的主要方法和基本概念,学习UML状态图和活动图,初步掌握运用UML行为建模的基本技术。教学任务:介绍行为建模的基本过程,详细讲解UML状态图和活动图的组成元素和建模方法。教学方法:介绍UML行为建模方法的基础知识,使学生了解状态图和活动图建模方法的基本思想,通过若干典型系统的实例,了解状态图和活动图的基本建模元素、建模重点、适用场景、建模风格和常见错误等。软件体系结构教学目标:学生应理解软件体系结构设计的基本原则,认识软件体系结构设计在软件开发中的重要性,了解典型的软件体系结构风格及其在系统设计中的应用。教学任务:介绍系统分解的基本概念和原则,讲解常见的软件体系结构风格、软件体系结构框架以及软件体系结构设计过程。教学方法:介绍软件体系结构的基本概念,说明分解与抽象对于处理软件复杂性的重要作用,从设计目标展开深入讲解软件分解的不同策略;通过应用实例,讲解典型的软件体系结构风格,包括分布式体系结构、管道-过滤器、分层结构、模型-视图-控制器等。行为驱动开发教学目标:学生应理解行为驱动开发的基本思想,学会使用通用语言来定义系统的行为;了解人机交互设计的基本原则和过程,并运用工具进行用户界面原型设计。教学任务:介绍行为驱动开发的基本思想和过程,讲解如何使用通用语言来描述客户想要的系统行为;介绍交互设计的基本原则和过程,简要说明如何运用工具设计用户界面原型。教学方法:从传统开发过程的问题入手,引导学生了解一种新型的测试驱动开发方法的基本思想,再进一步引申到行为驱动开发方法。通过简单的应用实例,讲解使用故事的形式分析和描述客户想要的系统行为。人机交互设计通常是学生进行软件开发的一个薄弱环节,这部分内容的讲解应该结合一些应用实例,使学生能够在分析用户和定义需求的基础上进行交互设计,并运用工具设计界面原型。软件设计教学目标:学生应理解软件设计的基本过程和原则,通过权衡系统设计目标选择合适的系统体系结构;深入理解面向对象设计的基本原则和最佳设计实践,学会在实际项目中运用面向对象方法进行软件设计。教学任务:概要介绍软件设计的基本原则,讲解如何从系统设计目标出发,选择合适的体系结构并定义设计策略;重点讲解单一职责原则、开放封闭原则、Liskov替换原则、依赖倒置原则和接口分离原则等面向对象设计原则。教学方法:良好的设计原则应该体现在软件系统的实际开发中,这部分内容的讲解应该结合若干的应用实例展开。结合课程实验项目,引导学生提出各种不同的设计方案,通过比较和分析这些方案的优劣,根据系统要满足的质量属性权衡和选择合适的设计方案;通过实际案例,讲解常用的面向对象设计原则及其应用。代码重构与模式教学目标:学生应增强对所开发软件的质量意识,掌握软件编码的规范,了解软件重构的基本原则和常用的设计模式,能够应用重构方法和设计模式对已有的代码进行重构。教学任务:介绍编程规范和代码走查方法,讲解良好的编码实践实例;介绍软件重构的原则和主要方法,讲解几种常见的设计模式。教学方法:在学习软件工程之前,学生已经具备了良好的程序设计基础,但可能缺少软件工程的概念和训练。通过分析程序代码实例,从可读性、规范性、正确性、容错性、可重用性等方面讲解良好的编码实践。介绍软件重构的原则和主要方法,讲解常见的设计模式,引导学生应用重构方法和设计模式进行代码重构,掌握编写高质量代码的基本能力。软件测试基础教学目标:学生应正确理解软件测试的目标和原则,了解软件测试的基本策略,包括单元测试、集成测试、系统测试、验收测试等。掌握白盒测试和黑盒测试的基本方法,能够运用一些基本方法编写测试用例。教学任务:介绍软件测试的基本概念和原则,概要讲解软件测试的不同类型和测试模型,重点讲解白盒测试方法和黑盒测试方法。教学方法:测试是软件质量保证的重要手段,但在本课程中没有必要讲解所有内容,只需讲解有关软件测试的基础知识和技术,结合具体实例重点讲解测试用例设计的基本方法。软件系统测试教学目标:学生应了解功能测试和性能测试的基本原理,学会运用合适的软件测试工具进行实际的软件测试,并能够进行缺陷的报告和分析。教学任务:讲解集成测试测试、功能测试类型与工具、性能测试原理与工具、软件缺陷管理等内容。教学方法:介绍集成测试、功能测试和性能测试的基本原理,结合具体实例讲解功能测试和性能测试的设计方案以及测试工具的使用,说明如何报告和管理软件缺陷。软件交付与演化教学目标:学生应了解软件发布与部署工作,理解软件演化的特性与策略,掌握软件维护的类型和过程,了解遗留系统的问题和软件再工程的过程。教学任务:讲解软件交付工作、软件演化法则、软件维护活动和软件再工程等内容。教学方法:这部分内容以讲授基础知识为主,可以结合课程实验项目例子,使学生体会软件发布与部署工作。课程实验:实验概述本课程实验要求学生以开发团队(一个团队通常由4-5人组成)的方式开发一个具有一定规模的软件系统,侧重培养学生发现问题、独立分析问题和解决问题的能力以及团队合作精神,使学生初步体会到一个软件项目开发的全过程。实验内容在第一次实验课上,一个企业、任课教师或助教、被选定的潜在市场代表人物等可以作为软件开发的客户代表,提出软件的问题描述;在后续的开发过程中,与学生保持有效的沟通;最后,应该

温馨提示

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

评论

0/150

提交评论