《软件工程》教学大纲 课程编号:13091130138 课程名称(中文):软件工程 课程名称(英文): Software Engineering 开课单位:信息技术学院,信息管理与信息系统教硏室 学分:3 总学时:54 理论学时:36 实验学时:18 先导课程:离散数学,程序设计基础,数据结构,数据库原理 授课对象:信息管理与信息系统本科生 考核方式:考试 、课程目标与课程任务 软件工程是信息管理与信息系统专业的主干课程。 本课程通过介绍软件工程的基本原理、概念与技术方法,使学生了解应用软件工程方法进行软件开发和软件维 护的必要性,并形成基本的软件工程意识;通过实践操作提高其综合应用专业知识得能力,并逐步形成工程化思维 和工程化开发能力。通过课程学习,使学生理解软件生命周期主线,掌握软件工程的基本理论,为今后系统化分 析、工程化设计实际工程奠定基础 通过本课程的教学,应使学生达到以下要求 1.熟练掌握软件与软件工程的基本概念和基本知识。 2.熟练掌握软件的生命周期与开发模式。 3.掌握结构化程序设计思想。 4掌握面向对象分析、设计与实现方法。 5掌握专业相关软件的评审、测试与维护办法,项目计划书的撰写以及项目管理方法 6能用软件工程的方法参与软件项目的分析、设计、实现与维护过程。 二、课程内容与课程要求 (一)软件工程学概述(2学时) 讲述软件危机的起源及典型表现,软件危机的产生原因,消除软件危机的途径。在此基础上,引入软件工程的 概念,介绍软件工程的基本原理和软件工程所使用的面向对象方法和结构化方法。阐述软件生命周期的概念以及软 件生命周期设计的八个过程。介绍常见的软件过程 1基本要求 (1)了解软件危机的典型表现以及软件危机产生的原因和消除的途径;了解各类常见软件过程 (2)掌握软件工程和软件生命周期的概念:掌握软件生命周期所涉及的各个阶段 2.重点、难点 重点:软件工程的基本原理,软件生命周期中各阶段的基本任务 难点:各类软件过程模型的特点及适用范围 3.说明 通过一些具体的软件危机事例,来说明软件工程的重要性,使学生对本课程产生浓厚的兴趣 (二)可行性研究(4学时)
《软件工程》教学大纲 课程编号:13091130138 课程名称(中文):软件工程 课程名称(英文):Software Engineering 开课单位:信息技术学院,信息管理与信息系统教研室 学 分:3 总 学 时:54 理论学时:36 实验学时:18 先导课程:离散数学,程序设计基础,数据结构,数据库原理 授课对象:信息管理与信息系统本科生 考核方式:考试 一、课程目标与课程任务 软件工程是信息管理与信息系统专业的主干课程。 本课程通过介绍软件工程的基本原理、概念与技术方法,使学生了解应用软件工程方法进行软件开发和软件维 护的必要性,并形成基本的软件工程意识;通过实践操作提高其综合应用专业知识得能力,并逐步形成工程化思维 和工程化开发能力。通过课程学习,使学生理解软件生命周期主线,掌握软件工程的基本理论,为今后系统化分 析、工程化设计实际工程奠定基础。 通过本课程的教学,应使学生达到以下要求: 1.熟练掌握软件与软件工程的基本概念和基本知识。 2.熟练掌握软件的生命周期与开发模式。 3.掌握结构化程序设计思想。 4.掌握面向对象分析、设计与实现方法。 5.掌握专业相关软件的评审、测试与维护办法,项目计划书的撰写以及项目管理方法。 6.能用软件工程的方法参与软件项目的分析、设计、实现与维护过程。 二、课程内容与课程要求 (一)软件工程学概述( 2学时) 讲述软件危机的起源及典型表现,软件危机的产生原因,消除软件危机的途径。在此基础上,引入软件工程的 概念,介绍软件工程的基本原理和软件工程所使用的面向对象方法和结构化方法。阐述软件生命周期的概念以及软 件生命周期设计的八个过程。介绍常见的软件过程。 1.基本要求 (1)了解软件危机的典型表现以及软件危机产生的原因和消除的途径;了解各类常见软件过程。 (2)掌握软件工程和软件生命周期的概念;掌握软件生命周期所涉及的各个阶段。 2.重点、难点 重点:软件工程的基本原理,软件生命周期中各阶段的基本任务。 难点:各类软件过程模型的特点及适用范围。 3.说明 通过一些具体的软件危机事例,来说明软件工程的重要性,使学生对本课程产生浓厚的兴趣。 (二)可行性研究(4学时)
讲述可行性研究的任务和过程。阐述可行性研究中所用到的逻辑模型---系统流程图和数据流图、数据字典等 工具。讲述经济可行性研究中常用的成本效益分析方法 1基本要求 (1)了解可行性研究的内容及过程。 (2)掌握系统流程图、数据流图、数据字典的画法;掌握成本效益分析的方法。 2重点、难点 重点:系统流程图、数据流图和数据字典的画法 难点:系统流程图、数据流图和数据字典的画法 3.说明 可用学生比较熟悉的系统来讲解数据流图的建立、数据字典的建立,以合适的项目为分析对象,要求学生建立 起数据流图。 (三)需求分析(4学时) 讲述需求分析的任务、需求分析的过程以及需求的获取方法;阐述需求分析中描述需求的模型工具-数据流 图、实体联系图和状态转换图:介绍需求分析描述的其他图形工具:阐述需求规格说明的规范以及验证软件需求的 方法 1基本要求 1)了解需求分析的任务、需求分析的过程及需求的获取方法;了解需求规格说明规范。了解数据规范化问 (2)掌握需求建模工具。 2.重点、难点 重点:实体联系图、状态转换图和常用图形工具的使用方法。 难点:各状态转换图等常用图形工具的使用方法 3.说明 提供一份具体需求分析报告供学生分析和学 (四)形式化说明技术(4学时) 讲述非形式化方法的缺点以及形式化说明技术产生的原因,形式化方法的优点,应用形式化方法的准则。阐述 常用的几种形式化说明技术:有穷状态机、 Petri网和Z语言 1基本要求 (1)了解常用的有穷状态机、Peti网和Z语言三种典型的形式化方法 (2)掌握形式化方法的优缺点,应用形式化方法的准则。 2重点、难点 重点:形式化方法的优缺点,应用形式化方法的准则 难点:三种典型的形式化方法,有穷状态机、 Petri网和Z语言 3.说明 本章只要求学生简单了解形式化说明技术的重要性,对几种技术的详细内容不做要求,教师可根据个人兴趣让 学生自行安排 (五)总体设计(4学时) 讲述总体设计的过程、基本原理以及设计时应遵循的启发性规则:介绍总体设计的图形工具:阐述面向数据流 的总体设计方法
讲述可行性研究的任务和过程。阐述可行性研究中所用到的逻辑模型------系统流程图和数据流图、数据字典等 工具。讲述经济可行性研究中常用的成本效益分析方法。 1.基本要求 (1)了解可行性研究的内容及过程。 (2)掌握系统流程图、数据流图、数据字典的画法;掌握成本效益分析的方法。 2.重点、难点 重点:系统流程图、数据流图和数据字典的画法。 难点:系统流程图、数据流图和数据字典的画法。 3.说明 可用学生比较熟悉的系统来讲解数据流图的建立、数据字典的建立,以合适的项目为分析对象,要求学生建立 起数据流图。 (三)需求分析(4学时) 讲述需求分析的任务、需求分析的过程以及需求的获取方法;阐述需求分析中描述需求的模型工具------数据流 图、实体联系图和状态转换图;介绍需求分析描述的其他图形工具;阐述需求规格说明的规范以及验证软件需求的 方法。 1.基本要求 (1)了解需求分析的任务、需求分析的过程及需求的获取方法;了解需求规格说明规范。了解数据规范化问 题。 (2)掌握需求建模工具。 2.重点、难点 重点:实体-联系图、状态转换图和常用图形工具的使用方法。 难点:各状态转换图等常用图形工具的使用方法。 3.说明 提供一份具体需求分析报告供学生分析和学习。 (四)形式化说明技术(4学时) 讲述非形式化方法的缺点以及形式化说明技术产生的原因,形式化方法的优点,应用形式化方法的准则。阐述 常用的几种形式化说明技术:有穷状态机、Petri网和Z语言。 1.基本要求 (1)了解常用的有穷状态机、Petri网和Z语言三种典型的形式化方法。 (2)掌握形式化方法的优缺点,应用形式化方法的准则。 2.重点、难点 重点:形式化方法的优缺点,应用形式化方法的准则。 难点:三种典型的形式化方法,有穷状态机、Petri网和Z语言。 3.说明 本章只要求学生简单了解形式化说明技术的重要性,对几种技术的详细内容不做要求,教师可根据个人兴趣让 学生自行安排。 (五)总体设计(4学时) 讲述总体设计的过程、基本原理以及设计时应遵循的启发性规则;介绍总体设计的图形工具;阐述面向数据流 的总体设计方法
1基本要求 (1)了解软件设计的过程、启发性规则、面向数据流的设计方法 (2)掌握常见的图形设计工具:掌握软件设计的概念和基本原理 2重点、难点 重点:软件设计的概念和基本原理;总体设计的图形设计工具。 难点:面向数据流的设计方法。 3.说明 本章内容非常重要,可让学生结合具体实验进行系统的总体设计。 (六)详细设计(4学时) 讲述结构程序设计的概念,人机界面设计指南,常用详细设计工具的使用方法:阐述 Jackson程序设计方法, 介绍程序复杂程序的定量度量 1基本要求 (1)了解结构化程序设计的概念,了解人机界面设计的指南 (2)掌握过程设计工具:程序流程图、盒图、PAD图、判定表和判定树、PDL语言:掌握面向数据结构的 Jackson方法;掌握程序复杂度的 Macabe度量方法。 2.重点、难点 重点:常用详细设计工具:程序流程图、盒图、PAD图、判定表和判定树、PDL语言:面向数据结构的 Jacks 方法;程序复杂度的 MaCabe度量方法。 难点:面向数据结构的 Jackson方法;程序复杂度的 MaCabe度量方法 3.说明 讲解人机界面设计时,可向学生展示不同系统的多种界面; Jackson方法也结合实例进行讲解。各种各样的详 细设计工具可结合实验教学让学生掌握。 (七)实现(6学时) 讲述程序设计语言的选择及编码风格:阐述软件测试的概念和步骤,单元测试、集成测试和确认测试的方法 白盒测试和黑盒测试技术,软件调试技术和软件可靠性估算方法。 1基本要求 (1)了解编码的风格:软件测试的概念和步骤;了解软件调试技术和软件可靠性估算方法 (2)掌握白盒测试和黑盒测试技术 2.重点、难点 重点:单元测试、集成测试和确认测试的方法,白盒测试和黑盒测试技术 难点:白盒测试和黑盒测试技术的测试用例设计。 3.说明 介绍一些与软件测试技术相关的背景知识,特别是涉及到的数学知识 (八)维护(2学时) 讲述软件维护的定义,软件维护的特点,软件维护过程,软件的可维护性,预防性维护,软件再工程过程。 1基本要求 (1)了解软件维护的特点、软件维护的过程和预防性维护、软件再工程过程 (2)掌握软件维护的概念和软件维护的分类、软件的可维护性 2.重点、难点
1.基本要求 (1)了解软件设计的过程、启发性规则、面向数据流的设计方法。 (2)掌握常见的图形设计工具;掌握软件设计的概念和基本原理。 2.重点、难点 重点:软件设计的概念和基本原理;总体设计的图形设计工具。 难点:面向数据流的设计方法。 3.说明 本章内容非常重要,可让学生结合具体实验进行系统的总体设计。 (六)详细设计(4学时) 讲述结构程序设计的概念,人机界面设计指南,常用详细设计工具的使用方法;阐述Jackson程序设计方法, 介绍程序复杂程序的定量度量。 1.基本要求 (1)了解结构化程序设计的概念,了解人机界面设计的指南。 (2)掌握过程设计工具:程序流程图、盒图、PAD图、判定表和判定树、PDL语言;掌握面向数据结构的 Jackson方法;掌握程序复杂度的MaCabe度量方法。 2.重点、难点 重点:常用详细设计工具:程序流程图、盒图、PAD图、判定表和判定树、PDL语言;面向数据结构的Jackson 方法;程序复杂度的MaCabe度量方法。 难点:面向数据结构的Jackson方法;程序复杂度的MaCabe度量方法。 3.说明 讲解人机界面设计时,可向学生展示不同系统的多种界面;Jackson方法也结合实例进行讲解。各种各样的详 细设计工具可结合实验教学让学生掌握。 (七)实现(6学时) 讲述程序设计语言的选择及编码风格;阐述软件测试的概念和步骤,单元测试、集成测试和确认测试的方法, 白盒测试和黑盒测试技术,软件调试技术和软件可靠性估算方法。 1.基本要求 (1)了解编码的风格;软件测试的概念和步骤;了解软件调试技术和软件可靠性估算方法。 (2)掌握白盒测试和黑盒测试技术。 2.重点、难点 重点:单元测试、集成测试和确认测试的方法,白盒测试和黑盒测试技术。 难点:白盒测试和黑盒测试技术的测试用例设计。 3.说明 介绍一些与软件测试技术相关的背景知识,特别是涉及到的数学知识。 (八)维护(2学时) 讲述软件维护的定义,软件维护的特点,软件维护过程,软件的可维护性,预防性维护,软件再工程过程。 1.基本要求 (1)了解软件维护的特点、软件维护的过程和预防性维护、软件再工程过程。 (2)掌握软件维护的概念和软件维护的分类、软件的可维护性。 2.重点、难点
重点:软件维护的概念和软件维护的分类、软件的可维护性。 难点:软件维护过程 3.说明 应用实例来说明软件维护的重要性,并与学生讨论 (九)面向对象方法学引论(1学时) 讲述面向对象方法学概述,面向对象的概念:阐述面向对象建模的对象模型、动态模型、功能模型以及三种模 型之间的关系。 1基本要求 (1)了解面向对象方法学的要点和面向对象的基本概念:了解动态模型的构建方法。 (2)掌握对象模型和功能模型的构建方法。 2重点、难点 重点:对象模型和功能模型的构建方法 难点:对象模型、功能模型和动态模型的构建过程及三者的关系。 3.说明 将结构化分析的案例和习题改用面向对象方法进行分析,让学生对这两种方法进行对比 (十)面向对象分析(1学时) 讲述面向对象分析的基本过程,需求陈述,如何建立对象模型、功能模型和动态模型。 1基本要求 (1)了解面向对象分析的过程;了解需求陈述的方法。 (2)掌握构建对象模型、功能模型和动态模型的方法。 2.重点、难点 重点:建立对象模型、功能模型和动态模型。 难点:建立动态模型。 3.说明 要求学生结合具体案例,完成一个综合作业,以熟悉面向对象分析的思想。 (十一)面向对象设计(1学时) 讲述面向对象设计准则,软件重用的基本思想,问题域、人机交互、任务管理和数据管理的设计策略。 1基本要求 (1)掌握面向对象的设计准则:掌握软件重用的基本思想。 (2)了解问题域、人机交互、任务管理和数据管理的设计策略 2.重点、难点 重点:面向对象设计准则,软件重用的基本思想。 难点:设计优化。 3.说明 注意将面向对象设计准则和启发规则与结构化方法进行比较。 (十二)面向对象实现(1学时) 介绍面向对象的程序设计语言及编程风格:讲述面向对象的软件测试策略及测试用例的设计方法 1.基本要求 (1)掌握面向对象语言的优点和技术特点,了解面向对象程序设计遵循的新准则
重点:软件维护的概念和软件维护的分类、软件的可维护性。 难点:软件维护过程。 3.说明 应用实例来说明软件维护的重要性,并与学生讨论。 (九)面向对象方法学引论(1学时) 讲述面向对象方法学概述,面向对象的概念;阐述面向对象建模的对象模型、动态模型、功能模型以及三种模 型之间的关系。 1.基本要求 (1)了解面向对象方法学的要点和面向对象的基本概念;了解动态模型的构建方法。 (2)掌握对象模型和功能模型的构建方法。 2.重点、难点 重点:对象模型和功能模型的构建方法。 难点:对象模型、功能模型和动态模型的构建过程及三者的关系。 3.说明 将结构化分析的案例和习题改用面向对象方法进行分析,让学生对这两种方法进行对比。 (十)面向对象分析(1学时) 讲述面向对象分析的基本过程,需求陈述,如何建立对象模型、功能模型和动态模型。 1.基本要求 (1)了解面向对象分析的过程;了解需求陈述的方法。 (2)掌握构建对象模型、功能模型和动态模型的方法。 2.重点、难点 重点:建立对象模型、功能模型和动态模型。 难点:建立动态模型。 3.说明 要求学生结合具体案例,完成一个综合作业,以熟悉面向对象分析的思想。 (十一)面向对象设计(1学时) 讲述面向对象设计准则,软件重用的基本思想,问题域、人机交互、任务管理和数据管理的设计策略。 1.基本要求 (1)掌握面向对象的设计准则;掌握软件重用的基本思想。 (2)了解问题域、人机交互、任务管理和数据管理的设计策略。 2.重点、难点 重点:面向对象设计准则,软件重用的基本思想。 难点:设计优化。 3.说明 注意将面向对象设计准则和启发规则与结构化方法进行比较。 (十二)面向对象实现(1学时) 介绍面向对象的程序设计语言及编程风格;讲述面向对象的软件测试策略及测试用例的设计方法。 1.基本要求 (1)掌握面向对象语言的优点和技术特点,了解面向对象程序设计遵循的新准则
(2)了解面向对象的软件测试策略及测试用例的设计方法 2重点、难点 重点:面向对象程序设计语言的特点 难点:测试策略 3说明 与结构化方法进行比较。 (十三)软件项目管理(2学时) 介绍估计软件规模和软件开发工作量的方法:讲述进度计划管理、人员组织管理、质量管理、软件配置管理等 软件项目管理的具体内容 1基本要求 入(1)掌握软件规模和工作量的估算方法:掌握软件配置管理的意义:掌握进度计划管理的常用工具Gamt图和 程网络图。 (2)了解人员组织、能力成熟度模型:了解质量保证技术。 2重点、难点 重点:软件规模和工作量的估算方法:软件配置管理过程;进度计划管理的工具。 难点:软件规模和工作量的估算方法:软件机构的软件过程CMM的深刻理解。 3.说明 结合具体案例进行讲述,并在课堂上进行讨论 三、教学安排及方式 总学时:54学时,其中理论教学时数36学时,实验教学时数为18学时 内容、课时、环节 讲授 备 第一章软件工程学概述 第二章可行性研究 第三章需求分析 2 第四章形式化说明技术 第五章总体设计 第六章详细设计 第七章实现 44442 第八章维护 第九章面向对象方法学引论 第十章面向对象分析 第十一章面向对象设计 「第十二章面向对象实现 第十三章软件项目管理 123 2 合计 18 四、考核方式 1考核方式
(2)了解面向对象的软件测试策略及测试用例的设计方法。 2.重点、难点 重点:面向对象程序设计语言的特点。 难点:测试策略。 3.说明 与结构化方法进行比较。 (十三)软件项目管理(2学时) 介绍估计软件规模和软件开发工作量的方法;讲述进度计划管理、人员组织管理、质量管理、软件配置管理等 软件项目管理的具体内容。 1.基本要求 (1)掌握软件规模和工作量的估算方法;掌握软件配置管理的意义;掌握进度计划管理的常用工具Gantt图和 工程网络图。 (2)了解人员组织、能力成熟度模型;了解质量保证技术。 2.重点、难点 重点:软件规模和工作量的估算方法;软件配置管理过程;进度计划管理的工具。 难点:软件规模和工作量的估算方法;软件机构的软件过程CMM的深刻理解。 3.说明 结合具体案例进行讲述,并在课堂上进行讨论。 三、教学安排及方式 总学时:54学时,其中理论教学时数36学时,实验教学时数为18学时。 内容、课时、环节 讲授 实验 备注 第一章 软件工程学概述 2 第二章 可行性研究 4 2 第三章 需求分析 4 2 第四章 形式化说明技术 4 第五章 总体设计 4 2 第六章 详细设计 4 4 第七章 实现 4 4 第八章 维护 2 第九章 面向对象方法学引论 1 第十章 面向对象分析 1 第十一章 面向对象设计 1 2 第十二章 面向对象实现 1 第十三章 软件项目管理 2 2 合 计 36 18 四、考核方式 1.考核方式:
笔试(闭卷) 2成绩评定 各教学环节占总分的比例考勤:10%,实验:30%,期末考试:60% 五、推荐教材与参考资料 1推荐教材 张海藩主编《软件工程导论》(第6版,(北京):清华大学出版社,2013.8 2参考资料 (1)蔡敏等,UML基础和Rose建模教程,人民邮电出版社,2006年 (2)李芷,软件工程方法与实践,电子工业出版社,2004年 (3)郑人杰,实用软件工程(第二版),清华大学出版社,1997年 (4)周苏,软件工程学试验科学出版社,2005年 (5)刘小松,UML统一建模基础教程,机械工业出版社,2014年 (6)谢星星,UML统一建模教程与实验指导,清华大学出版社,2015年 (7)Roger S Pressman, Software Engineering-A Practitioner's Approach, 4th Edition, McGraw-Hill, 1996F 执笔人:高海波 审核人:阮晓龙 2018年12月5日
笔试(闭卷)。 2.成绩评定: 各教学环节占总分的比例:考勤:10%,实验:30%,期末考试:60%。 五、推荐教材与参考资料 1.推荐教材: 张海藩主编《软件工程导论》(第6版),(北京):清华大学出版社,2013.8 2.参考资料: (1)蔡敏等,UML基础和Rose建模教程,人民邮电出版社,2006年 (2)李芷,软件工程方法与实践,电子工业出版社,2004年 (3)郑人杰,实用软件工程(第二版),清华大学出版社,1997年 (4)周苏,软件工程学试验.科学出版社,2005年 (5)刘小松,UML统一建模基础教程,机械工业出版社,2014年 (6)谢星星,UML统一建模教程与实验指导,清华大学出版社,2015年 (7)Roger S. Pressman, Software Engineering-A Practitioner’s Approach,4th Edition, McGraw-Hill,1996年 执笔人:高海波 审核人:阮晓龙 2018年 12月5日