云南民族大学本科课程教学大纲
《软件工程》课程理论教学大纲
课程基本信息
【课程名称】:软件工程 【英文译名】:Soft Engineering
【适用专业】:计算机科学与技术专业本科 【学 分 数】:3
【学时安排】:理论 46 学时
【先修课程】:《大学计算机基础》,《C语言程序设计》,《数据结构》和《数据库原理及其应用》
【开课学院及教研室】:数学与计算机科学学院计算机科学与技术教研室
一、本课程教学目的和课程性质
《软件工程》是我国计算机类专业本科生必修的8门核心课程之一,同时也是软件工程师资格考试和计算机等级考试的必考重要科目。本课程以《软件工程导论》(张海潘编著)和《UML基础和ROSE建模教程》这两本教材所讲内容为基础,在讲述软件工程基本原理、概念、技术和方法基础上,对当前主流软件开发技术,比如敏捷开发过程、面向对象开发方法和UML面向对象建模技术等进行了重点讲解和剖析,并采用课堂讲授和上机实验相结合的方式。通过本课程的学习,使得学生不仅了解软件需求分析、设计、实现和测试等软件开发全过程的相关原理和概念,掌握当前UML建模等主流软件开发方法和技术,而且具备使用ROSE等主流建模工具进行实际软件项目开发的能力。
二、本课程的基本要求
(一)掌握基本原理
1、掌握软件工程的基本概念、基本原理和主要开发方法; 2、了解软件工程各领域的发展方向;
1
信息工程学院
3、了解如何用工程化的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范;
4、掌握UML面向对象建模的基本方法和技术。 (二)具备下列基本技能
1、初步具有实际的软件开发技能; 2、初步具备软件项目管理的能力;
3、熟悉项目开发的整个流程,包括软件生命周期、软件概要设计、详细设计、编码实现、软件调试和软件测试,能写出符合规范的文档;
4、能熟练使用Rational ROSE等主流UML建模工具通过对软件系统的面向对象分析和设计来进行面向对象的建模。
三、课程内容及学时安排
《软件工程》的教学分为理论教学和实验教学两个环节,本部分为理论教学大纲。
第1章、软件工程学概述
1、内容体系: 1) 软件危机 2) 软件工程 3) 软件生命周期 4) 软件过程。
2、知识点:产生软件危机的原因及解决途径,软件工程的基本原理,软件工程方法学,软件生命周期中各阶段的基本任务,软件过程模型。 3、重点:软件工程的基本原理,软件生命周期中各阶段的基本任务。 4、难点:各类软件过程模型的特点及适用范围。
5、教学建议:通过一些具体的软件危机事例来充分说明软件工程的重要性,使学生对本课程产生浓厚的兴趣。
第2章、可行性研究
1、内容体系: 1) 可行性研究的任务 2) 可行性研究过程
2
云南民族大学本科课程教学大纲
3) 系统流程图 4) 数据流图 5) 数据字典
6) 成本/效益分析。
2、知识点:可行性研究的任务,系统流程图、数据流图和数据字典的画法,成本/效益分析的方法。
3、重点:系统流程图、数据流图和数据字典的画法。 4、难点:数据流图和数据字典的画法。
5、教学建议:可用学生比较熟悉的系统来讲解数据流图和数据字典的建立,以合适的项目为分析对象,要求学生建立起数据流图,作为课后作业,并对学生作业进行分析和讨论。
第3章、需求分析
1、内容体系: 1) 需求分析的任务
2) 与用户沟通获取需求的方法 3) 分析建模与规格说明 4) 实体—联系图 5) 数据规范化 6) 状态转换图 7) 其他图形工具 8) 验证软件需求。
2、知识点:分析建模、规格说明和数据的规范化,实体-联系图、状态转换图和常用图形工具的使用方法,验证软件需求的方法。
3、重点:实体-联系图、状态转换图和常用图形工具的使用方法。 4、难点:状态转换图等常用图形工具的使用方法。
5、教学建议:可提供一份具体需求分析报告供学生分析和学习。
第4章、形式化说明技术
1、内容体系:
1) 形式化说明技术概述 2) 有穷状态机
3
信息工程学院
3) Petri网 4) Z语言。
2、知识点:形式化方法的优缺点,有穷状态机、Petri网和Z语言三种典型的形式化方法,应用形式化方法的准则。
3、重点:形式化方法的优缺点,应用形式化方法的准则。 4、难点:有穷状态机、Petri网和Z语言三种典型的形式化方法。
5、教学建议:本章只要求学生简单了解形式化说明技术的重要性,对几种技术的详细内容不做要求,老师了根据个人兴趣让学生自行安排。
第5章、总体设计
1、内容体系: 1) 设计过程 2) 设计原理 3) 启发规则
4) 描绘软件结构的图形工具 5) 面向数据流的设计方法。
2、知识点:总体设计的过程,软件设计的概念和原理、启发式规则,常用图形工具的使用方法,面向数据流的设计方法。
3、重点:软件设计的概念和原理、启发式规则,面向数据流的设计方法。 4、难点:面向数据流的设计方法。
5、教学建议:本章内容非常重要,可让学生用第三章的需求分析实例进行总体设计。
第6章、详细设计
1、内容体系: 1) 结构程序设计 2) 人机界面设计 3) 过程设计的工具 4) 面向数据结构的设计方法 5) 程序复杂程度的定量度量。
2、知识点:结构程序设计的概念,人机界面设计,常用的详细设计工具使用方法,Jackson程序设计方法,程序复杂程序的定量度量。
4
云南民族大学本科课程教学大纲
3、重点:常用的详细设计工具,包括流程图、盒图、PAD图、判定树和判定表的使用方法,Jackson程序设计方法以及程序复杂性定量度量方法McCabe基本思路。
4、难点:Jackson程序设计方法以及程序复杂性定量度量McCabe的方法。 5、教学建议:讲解人机界面设计中,可向学生展示不同系统的多种界面;Jackson方法也结合实例进行讲解。
第7章、实现
1、内容体系: 1) 编码
2) 软件测试基础, 3) 单元测试 4) 集成测试 5) 确认测试 6) 白盒测试技术 7) 黑盒测试技术 8) 调试
9) 软件可靠性。
2、知识点:软件测试的有关的基本概念和步骤,单元测试、集成测试和确认测试的方法,白盒测试和黑盒测试技术,软件调试技术和软件可靠性估算方法。 3、重点:单元测试、集成测试和确认测试的方法,白盒测试和黑盒测试技术。 4、难点:白盒测试和黑盒测试技术的测试用例设计。
5、教学建议:介绍一些与软件测试技术相关的背景知识,特别是涉及到的一些数学知识。
第8章、维护
1、内容体系:软件维护的定义,软件维护的特点,软件维护过程,软件的可维护性,预防性维护,软件再工程过程。
2、知识点:软件维护的定义、特点及软件再工程过程,软件维护的过程,软件可维护性的概念以及决定软件可维护性的因素。 3、重点:软件维护的过程,软件的可维护性。 4、难点:软件维护的过程。
5