岭南师范学院大学本科专业教学大纲
中文课程名称:软件工程
英文课程名称:Software Engineering
适用专业:计算机科学与技术
制定单位:信息工程学院
执笔人:周迎春
审核人:
单位负责人:
制定时间:
岭南师范学院教务处
二〇一七年一月
《 软件工程 》课程教学大纲
一、课程基本信息
(一)课程代码及课程名称
1.课程代码:08191060
2.课程名称(中/英文): 软件工程/Software Engineering
(二)课程类别及课程性质
专业选修课
(三)学时及学分:
总学时数:44;总学分数:2.5。
其中,讲授学时:36 ,实践(实验)学时:8。
(四)适用专业及开设学期
适用专业:计算机科学与技术(本科)
开设学期:第二学期
(五)先修课程与后续课程
先修课程:高级语言程序设计、数据结构
后续课程:系统分析与设计、软件项目管理
二、课程简介
《软件工程》课程是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、软件开发所需要的过程、活动和任务,以及这些过程、活动和任务的组织、实施和管理;软件开结构化开发方法、面向对象开发方法;软件测试技术;软件项目的软件过程管理;软件开发组织过程改进途径。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为今后更深入地学习和从事软件工程实践打下良好的基础。
三、教学目的与基本要求
(一)该课程教学目的与专业培养要求对应关系矩阵
培养要求
课程名称 | 培养 要求1 | 培养 要求2 | 培养 要求3 | 培养 要求4 | 培养 要求5 | 培养 要求6 | 培养 要求7 | 培养 要求8 | …… | …… |
● | ◎ | ○ | ◎ | ◎ |
说明:表格要清晰展示该课程与每项培养要求达成的关联度情况,关联度强的用“●”标识,关联度中等的用“◎”标识,关联度弱的用“○”标识;每门课程与4-8项(底线为总培养要求的50%)培养要求相关联。
(二)教学目的
通过本课程的学习,使学生具备从事软件开发的基本素质与能力,在理解软件开发本质的基础上,理解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
通过本课程的学习,应使学生达到:
第一、基本掌握软件开发所需要的过程、活动和任务以及相关的活动组织框架。
第二、掌握结构化开发方法,并能针对小型系统,应用这些方法给出问题定义和软件设计,并运用详细设计工具给出模块的详细设计。
第三、掌握面向对象开发方法,并能运用MUL建模方法与RUP过程建立小型系统的用况模型、需求分析模型等。
第四、掌握至少三种软件测试技术:基于路径的白盒测试技术、基于需求规约的事物流测试技术和等价类划分技术。
第五、了解一个软件项目的软件过程管理;了解软件开发组织过程改进途径。
(三)教学要求:
作业:每章布置1-2道习题,以巩固学生的学习效果,促进其多思考,培养学生的创造能力,动手能力。
考试:《软件工程》期末考试的目的是考核学生掌握软件工程的基本知识和基本软件开发原理、方法和运用所学知识解决实际问题的能力。考试试题反映本课程的主要内容和要求,考题内容能覆盖教材的各章节。平时成绩(作业和实验)占30%,期末考试占70%。
四、教学内容
第一章 绪论(共1学时)
(一)本章教学目的和要求
通过本章学习,了解软件工程提出的历史背景,以及软件、软件工程、模型等基本概念,掌握软件开发的本质等。
(二)本章教学重点与难点
重点: 1. 软件与软件工程的概念。
2. 模型概念。
难点:1. 软件开发的本质。
(三)教学内容
第一节 绪论(1学时)
一、软件工程概念的提出。
二、软件开发的本质。
第二章 软件过程(共2学时)
(一)本章教学目的和要求
通过本章学习,了解软件生存周期中的基本过程、支持过程与组织过程,软件生存周期过程以及角色和关系;了解软件项目生存周期过程的控制与规划方法等;掌握软件生存周期模型的概念及其模型之间的区别等。
(二)本章教学重点与难点
重点: 1. 软件生存周期过程。
2. 软件生存周期模型。
难点:1. 软件生存周期模型的比较及运用场合。
(三)教学内容
第一节 软件生存周期过程(1学时)
一、软件生存周期的基本过程。
二、软件生存周期的支持过程。
三、软件生存周期的组织过程。
四、软件生存周期过程以及角色和关系。
第二节 软件生存周期模型(1学时)
一、引言及瀑布模型
二、增量模型、演化模型、螺旋模型、喷泉模型
三、软件项目生存周期过程的规划与控制
第三章 软件需求与软件需求规约(共2学时)
(一)本章教学目的和要求
通过本章学习,了解软件需求和需求规约的概念、表达规约需求的基本手段、需求规约在软件开发中的作用;掌握需求和需求规约的基本特征;掌握需求的分类;掌握需求发现基本技术等。
(二)本章教学重点与难点
重点: 1. 软件需求分类、需求和需求规约的基本特征。
2. 需求发现技术、规约需求的三种语言。
难点:1. 功能需求和非功能需求及它们之间的基本关系。
(三)教学内容
第一节 需求与需求获取(1学时)
一、软件需求定义。
二、软件需求分类。
三、软件需求发现技术。
第二节 需求规约及其格式(1学时)
一、需求规约的定义、基本性质。
二、需求规约格式。
三、表达需求规约的三种语言。
四、需求规约的作用。
第四章 结构化分析方法(共6学时)
(一)本章教学目的和要求
通过本章学习,了解结构化分析方法中运用的基本术语、需求分析的输出及应用中应该注意的问题;掌握结构化模型表示、建模过程需求验证等。
(二)本章教学重点与难点
重点: 1.表达问题域信息的基本术语及其表示。
2.表达功能模型的工具---DFD图。
3.结构化建模过程。
难点:1.结构化模型表示。
2.结构化建模过程、数据结构符和判定树、判定表。
(三)教学内容
第一节 基本术语及模型表示(2学时)
一、结构化分析方法中的基本术语。
二、结构化分析方法中的模型表示。
第二节 建模过程与实例研究(2学时)
一、结构化方法的建模过程。
二、实例研究:飞机预订系统的建模过程。
第三节 结构化应用中注意的问题(2学时)
一、在应用结构化方法中应注意的问题。
二、需求分析的输出。
三、需求验证。
第五章 结构化设计(共4学时)
(一)本章教学目的和要求
通过本章学习,了解结构化总体设计中运用的基本术语、详细设计工具的优缺点以及相互转换;掌握结构化设计的目标及其表示、总体设计、详细设计等。
(二)本章教学重点与难点
重点: 1.变换型数据流图和事物型数据流图。
2.模块以及模块内聚和耦合。
3.详细设计工具:框图、PAD、N-S图和伪代码。
难点:1.变换设计与事物设计。
2.模块化及启发式规则。
(三)教学内容
第一节 总体设计(2学时)
一、总体设计的目标及其表示。
二、数据流图的类型、变换设计与事物设计。
三、模块化及启发式规则。
四、总体设计的实例研究。
第二节 详细设计(2学时)
一、结构化程序设计。
二、详细设计工具:框图、PAD、N-S图和伪代码。
第六章 面向对象方法---MUL(共6学时)
(一)本章教学目的和要求
通过本章学习,了解面向对象方法的基本术语、UML的每一术语所基于的原理以及它们在建模中作用;掌握面向对象方法在创建系统/产品模型中用于表达信息的基本术语以及用于表达模型的用况图、类图、顺序图和状态图等。
(二)本章教学重点与难点
重点: 1.表达客观事物的术语:类、接口、用况、协作等概念。
2.表达关系术语:关联、泛华、实现、依赖等概念。
3.模型表达工具:类图、用况图、状态图、顺序图。
难点:1.类图、用况图、顺序图的构成。
2.状态以及状态图的构成。
3.状态的种类及其描述。
(三)教学内容
第一节 表达客观事物的术语(2学时)
一、类与对象及在建模中的作用。
二、接口、协作、用况。
三、主动类、构件、制品、节点。
第二节 表达关系的术语(2学时)
一、关联、泛化、细化、依赖。
二、表达信息的一种通用机制:包。
第三节 表达模型的工具(2学时)
一、类图、用况图的构成及在模型中的作用。
二、状态图、顺序图的构成及其特点。
第七章 面向对象方法---RUP(共6学时)
(一)本章教学目的和要求
通过本章学习,了解面向对象方法RUP的基本术语、RUP的每一术语所基于的原理以及它们在建模中作用;掌握创建系统/产品需求获取模型、需求分析模型和设计模型中的基本活动与任务,并能运用RUP建立小型简单系统的用况模型、需求分析模型,以及在设计中如何处理共性的非功能需求等。
(二)本章教学重点与难点
重点: 1.需求获取层、需求分析层、软件设计层上的术语。
2.用况之间的基本关系;系统/产品用况模型的构成、系统/产品需求分析模型的构成、系统/产品设计模型和部署模型的构成。
3.设计模型的四层结构;用况细化以及用况和协作之间的基本关系。
难点:1.领域模型、业务模型以及在系统开发中创建的目的 。
2.边界类、实体类、控制类的标识及它们之间的关系和作用。
3.需求获取模型与需求分析模型的比较;需求分析模型与设计模型的比较。
(三)教学内容
第一节 RUP的作用与特点(1学时)
一、RUP作用与特点:以用况为驱动以体系结构为中心。
第二节 核心工作流(2学时)
一、需求获取:列出候选需求、理解系统语境、捕获功能需求。
二、需求分析:基本术语、分析模型的表达、分析主要活动。
第三节 设计(3学时)
一、设计层的术语:设计类、用况细化、设计子系统、接口。
二、设计模型、部署模型的描述、基于RUP方法的工作流。
第八章 软件测试(共6学时)
(一)本章教学目的和要求
通过本章学习,了解软件测试的基本步骤、测试过程模型;掌握基于程序路径的白盒测试技术、基于需求规约的事物流测试技术和等价类划分技术(黑盒测试技术);并能针对简单系统,运用这些测试技术开展相应的软件测试工作,包括用例测试、测试执行以及结果比较。
(二)本章教学重点与难点
重点: 1.软件测试的概念、测试过程模型概念
2.路径测试技术(白盒测试技术)中的被测试对象模型及其创建。
3.基于事物流的测试技术(黑盒测试技术)。
难点:1.事物流与控制流之间的区别以及为测试带来的影响。
2.等价类划分技术测试。
3.软件测试步骤。
(三)教学内容
第一节 软件测试目标及过程模型(1学时)
一、软件测试目标。
二、测试过程模型。
第二节 软件测试技术(3学时)
一、路径测试技术、测试覆盖及其它们之间的基本关系。
二、基于事物流的测试技术:事物流与控制流的区别。
三、等价类划分技术及其他功能测试技术简介。
第三节 软件测试步骤(2学时)
一、单元测试、集成测试。
二、软件有效性测试。
第九章 软件项目管理概述及软件开发工具(共4学时)
(一)本章教学目的和要求
通过本章学习,了解围绕软件开发所需要的软件工程管理过程中软件的规模、成本和进度估算,软件管理过程中的能力成熟度模型CMM的特点。
(二)本章教学重点与难点
重点: 1.软件工程管理中软件规模、成本和进度估算。
2.能力成熟度模型CMM的特点。
难点:1.软件成本和进度估算。
(三)教学内容
第一节 软件工程管理活动(1学时)
一、软件系统/产品规模估算。
二、成本和进度估算。
第二节 能力成熟度模型CMM(2学时)
一、CMM产生背景、CMM的成熟度等级、结构。
二、ISO9000系列标准简介。
第三节 软件开发工具与环境(1学时)
一、基本概念。
二、工具集成模型概念。
五、教学时数分配
《软件工程》课程教学时数分配表
总学时:36 学分:2.5
章次 | 章标题名称 | 学时小计 | 讲授 学时 | 实验 学时 | 实践 学时 | 讨论、习题课等学时 |
第一章 | 绪论 | 1 | 1 | 0 | 0 | 0 |
第二章 | 软件过程 | 2 | 2 | 0 | 0 | 0 |
第三章 | 软件需求与软件需求规约 | 3 | 3 | 1 | 0 | 0 |
第四章 | 结构化分析方法 | 4 | 4 | 0 | 0 | 0 |
第五章 | 结构化设计 | 4 | 4 | 2 | 0 | 0 |
第六章 | 面向对象方法--MUL | 6 | 6 | 0 | 0 | 0 |
第七章 | 面向对象方法--RUP | 6 | 6 | 3 | 0 | 0 |
第八章 | 软件测试 | 6 | 6 | 2 | 0 | 0 |
第九章 | 软件项目管理与开发工具 | 4 | 2 | 0 | 0 | 2 |
六、实验内容与学时分配
《软件工程》课程实验教学一览表
序号 | 项目名称 | 内容提要 | 学时 | 实验类型(演示、验证、综合、设计等) | 是否为 开放实验 |
1 | 软件需求规约文档 | 编写一个小型简单系统,运用合适的需求发现技术,以限定的自然语言给出系统的需求规约 | 1 | 演示 | 否 |
2 | 图书信息管理系统结构化设计 | 给出图书管理信息系统的需求陈述,构建该信息系统的详细结构化建模过程,并在此基础上给出系统的模块结构图。 | 2 | 验证 | 否 |
3 | 面向对象软件建模设计 | 运用面向对象方法建立科技节信息管理系统的模型,构建基于面向对象的用况模型、分析模型及设计模型等。 | 3 | 验证 | 否 |
4 | 软件测试 | 运用白盒测试或者等价类划分方法对实验2或者实验3中的管理信息系统进行测试 | 2 | 验证 | 否 |
七、本课程的实践环节
无
八、主要的教学方法与教学手段
1.课程与教学方法、教学手段对应关系矩阵
课程名称 | 对应的教学方式方法 | ||||||||||||
讲授法 | 启发式 | 讨论法 | 案例法 | 项目教学 | 实验室 实验 | 技能训练 | 研究与设计 | 小组教学 | 个别教学 | 课程作业 | 课外阅读及自学锻炼 | …… | |
软件工程 | √ | √ | √ | √ | √ |
说明:每门课程应使用多种教学方式方法,在相应的教学方式方法中打“√”。
2.主要采用的几种教学方法和手段
主要的教学方法:主要以课堂讲授与实际应用实例相结合。
九、考核与成绩评定
1. 该课程与评价方法对应关系矩阵
课程名称 | 对应的评价方法 | |||||||||
课堂表现 | 实验报告 | 项目作业或报告 | 课程作业或报告 | 口试 | 口头报告 | 上机操作 | 实践操作 | 期中考核 | 期末考核 | |
软件工程 | √ | √ | √ | √ |
说明:每门课程应使用多种评价方式,注重过程评价,实现平时成绩、期中成绩与期末成绩相结合,在相应的评价方法中打“√”。
2.具体考核与成绩评定办法
考核方式:闭卷笔试
成绩评定:平时成绩40%(含课堂表现和实验报告)
期末成绩60%(闭卷笔试)
十、推荐教材及参考书
(一)推荐教材
《软件工程》,王立福主编,北京大学出版社,2009年10月第3版。
(二)参考书
1.《软件工程》,冯玉琳主编,中国科学技术大学出版社,1992年9第1版。
2.《软件工程技术概论》,朱三元主编,科学出版社,2002年1月第1版。
3.《软件工程》,钱乐秋主编,清华大学出版社,2016年3月第2版。
十一、其他需要说明的问题