GDOU-B-11-213
《软件工程》课程教学大纲
课程编号 英文课程名 开课院(系) 信息学院 开课系 1620056 学分 3.5 总学时 62 理论 52 实验/上机 10 Software Engineering 计算机科学与技术系 修订时间 2005年3月6日 课 程 简 介
课程简介: 《软件工程》是计算机科学与技术专业、计算机软件工程专业、计算机网络工程专业的一门专业基础课,旨在使学生掌握软件工程的基本概念、原理和方法,从软件开发技术、软件工程管理和软件工程环境等几个方面了解如何将系统的、规范化的和可以度量的工程方法运用于软件开发和维护中。通过本课程的学习,基本掌握结构化方法、面向对象方法等软件开发技术,初步了解软件复用的概念及基于构件的开发方法,同时对软件工程管理和环境等内容有一个总体的了解。
课 程 大 纲
一、课程的性质与任务:
软件工程是计算机专业学生的一门专业必修课。主要讲授软件开发方法和软件工程的基本理论、基本方法、基本技术,学会运用系统工程学的基本方法,定量分析软件及其开发过程的各种特性,科学管理软件工程,同时让学生了解软件开发的最新方法和发展动态。
二、课程的目的与基本要求:
通过本课程的学习, 要求学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的发展方向;如何用过程化及面向对象的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范。平时成绩(作业和实验)占30%,期末考试占70%。 三、面向专业:
计算机科学与技术 四、先修课程:
“计算机操作系统”“数据库系统原理”“C语言程序设计”和“数据结构”等。 五、本课程与其它课程的联系:
学习本课程要求有一定的程序设计经验,应至少学习一门程序设计语言课程。本课程涉及到数据结构、数据库、操作系统等的一些知识和概念,因此先导课程为数据
结构、数据库原理、操作系统。本课程将为信息系统开发打下坚实基础。 六、教学内容安排、要求、学时分配及作业:
第一章 软件危机及软件工程 2学时 1 教学内容
1.1 软件危机 1.2 软件工程
1.3 技术审查及管理复审 2 教学目的及要求
了解软件的特点,软件生产发展的三个阶段,各阶段的特点,软件危机的产生及其表现形式;初步了解软件的生存周期模型;理解软件工程的定义及特点,软件生存期各阶段的特点和内容;深刻理解软件危机产生的原因。 3 教学重点
软件危机的产生、表现、原因;软件工程的定义;软件生存周期概念。 第二章 可行性研究 6学时 1 教学内容
2.1 可行性研究任务 2.4 数据流图 2.2 可行性研究步骤 2.5 数据字典
2.3 系统流程图 2.6 成本/效益分析 2 教学目的及要求
深刻理解可行性研究的必要性,掌握可行性研究的任务及可行性研究的具体步骤;了解系统流程图的作用及符号表示,重点掌握数据流图的画法及数据字典的编写。
3 教学重点
可行性研究的任务及步骤,数据流图的画法及数据字典的编写。 4 教学难点
数据流图的画法。 第三章 需求分析 6学时 1 教学内容
3.1 需求分析的任务 3.4 图形工具 3.2 分析过程 3.5验证软件要求 3.3 概念模型和规范化 2 教学目的及要求
深刻理解需求分析阶段的概念及任务,熟练掌握数据流图的细化及ER图,IOP图的画法。 3 教学重点及难点
需要分析过程,各种图形工具的应用。 第四章 总体设计 6学时 1 教学内容
4.1 总体设计的过程
4.2 软件设计的概念和原理 4.3 启发式规则 4.4 图形工具
4.5 面向数据流的设计方法
2 教学目的及要求
深刻理解软件总体设计的基本任务,软件设计的基本原理。理解模块化,抽象,信息隐蔽,模块独立性等概念,明确度量模块独立性的校准---偶和性及内聚性。熟练掌握结构化设计方法(要求能划分数据流的类型,将其能换成软件结构图,并能根据优化准则将其优化。) 3 教学重点与难点
(1) 将交换流和事务流类型的数据流图,转换成软件结构图; (2) 将一个复杂型数据流图转换成软件结构图并优化。 第五章 详细设计 8学时 1 教学内容
5.1 结构程序设计 5.4 Warnier程序设计方法 5.2 详细设计的工具 5.5 程序复杂程序的定量度量 5.3 Jackson程序设计的方法 2 教学目的及要求
能熟练的使用详细设计描述工具来设计模块中的算法及程序的逻辑结构.理解Jackson方法的概念及程序复杂度的度量方法,学会使用Jackson方法设计输入输出数据结构和程序结构。 3 教学重点及难点
流程图、PAD图、过程设计语言的简单应用;用Jackson方法设计小型项目。 第六章 编码 2学时 1 教学内容
6.1 程序设计语言 6.2 程序设计途径 2 教学目的及要求
了解几种常见的程序设计语言的特点,领会程序设计中应注意的问题,注意培养良好的编程风格。
3 教学重点及难点
领会写程序的风格。 第七章 测试 8学时 1 教学内容
7.1基本概念 7.4验收测试 7.2单元测试 7.5设计测试方案 7.3集成测试 7.6调试 2 教学的要求
总的要求是掌握测试阶段的内容,测试方法及测试步骤。
(1)深刻理解白盒,黑盒测试技术。深刻理解测试过程中单元测试,集成测试,验收测试的任务及使用的方法;
(2)掌握调试程序的方法; (3)熟练掌握的技能是:能针对某一问题采用白盒法或黑盒法进行测试用例的设计。 3 教学重点与难点。
白盒与黑盒测试方法;单元测试,集成测试的方法;自顶向下及自底向上结合模块的步骤;渐增式及非渐增式测试的区别;归纳法与演绎法调试策略;测试用例的设计。 第八章 维护 4学时 1 教学内容
8.1软件维护定义 8.3维护过程
8.2维护的特点 8.4可维护性 2 教学目的及要求
总的要求是:掌握软件维护的内容、特点、方法、技术、文档。
(1)了解软件维护的各种困难,软件维护的特点,软件维护的文档; (2)理解软件维护的内容,维护任务的实施; (3)深刻理解如何提高软件的维护性。 3 教学重点与难点
(1)领会改正性维护、适应性维护、完善性维护、预防性维护; (2)可维护性的定义、可维护性的度量及提高可维护性的方法。 第九章 面向对象的方法 6学时 1 教学内容
9.1 面向对象概述 9.4 面向对象的设计 9.2 面向对象的模型 9.5面向对象的实现 9.3 面向对象的分析 2 教学目的及要求
(1)深刻理解对象、类、类的层次结构、方法和消息的实质、深刻理解对象模型、动态模型、功能模型的元素、结构和构造方法;
(2)掌握的技能:画对象图、画状态图、画数据流程图;确定对象类、确定关联、确定属性,识别继承。 3 教学重点与难点
建立对象模型、动态模型、功能模型,掌握面向对象的分析、面向对象的设计、面向对象的实现的过程。 第十章 管理技术 4学时 1 教学内容
10.1 成本估计 10.4 质量保证 10.2 进度计划 10.5 项目计划 10.3 人员组织 2 教学目的及要求
总的要求:了解软件开发成本结算、软件项目进度安排、软件项目计划内容及软件质量的定义、质量保证的基本概念。
(1)理解软件开发成本结算的CoCoMo模型;软件项目进度安排中的Ganto图与工程网络图;
(2)深入理解软件项目计划的重要性及各个环节之间的联系。 3 教学重点与难点
软件开发成本结算、软件项目进度安排、软件项目计划内容。
七、实验名称与类别: 序号 1 2 3 4 系统分析和总体设计 系统详细设计 系统编码 系统测试 实验名称 学时 实验类别 2 2 2 2 综合型 操作型 操作型 操作型 5
系统维护 2 操作型 注:实验类别指:演示型、操作型、验证型、综合型、设计型、研究创新型
八、实验目的、内容与要求
实验1: 系统分析和总体设计 实验目的:
模拟一实际系统,要求学生对该系统的可行性进行研究、需求分析以及总体设计。 实验内容:
利用Visio(或Rose)图形制作软件画出系统流程图及数据流图,并利用S-Designer(或PowerDesigner、E-Rwin)写出该系统的数据字典,并画出系统的功能图、结构图。 实验要求:
完成可行性分析报告,系统需求分析说明书,系统总体设计方案等文档。
实验2: 系统详细设计 实验目的:
模拟一实际系统,继续实验一的工作,要求学生对该系统进行详细设计。 实验内容:
利用图形制作软件画出系统的程序流程图。 实验要求:
完成系统详细设计说明书。
实验3: 系统编码 实验目的:
模拟一实际系统,继续实验二的工作,要求学生对该系统进行编码。 实验内容:
利用PowerBuilder或VB等程序设计工具,对所设计的系统编码。 实验要求:
完成系统编码并进行调试运行。
实验4: 系统测试 实验目的:
模拟一实际系统,继续实验三的工作,要求学生对该系统进行测试。 实验内容:
设计测试方案,分别进行单元测试、集成测试、验收测试。 实验要求:
完成系统测试报告。
实验5: 系统维护 实验目的:
模拟一实际系统,继续实验四的工作,要求学生对该系统进行维护。 实验内容:
对系统进行改正性、适应性、完善性维护。