《软件工程基础》教学大纲
一、教学目的与任务
(一)课程的教学目的
软件工程学是用来指导计算机软件开发和维护的工程性学科,是计算机专业的一门重要的专业课程,它对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。
通过本课程的教学,要使学生了解软件的基本概念和软件工程的目标,通过对传统软件工程方法 (面向过程) 、面向对象的软件工程方法和软件工程新技术新发展的介绍,使学生掌握开发高质量软件的方法;通过对软件开发过程和过程管理技术的学习,使学生了解如何进行软件度量和管理,怎样进行质量保证活动,从而能够有效地策划和管理软件开发活动。按照软件工程的国家标准来表达和描述软件工程知识,使软件工程技术具有很强的可操作性。
(二)教学环节和学时分配
本课程的相应教学环节分为两大部份:理论课和实践课。
理论课每周3学时,学分为3,
实践课每周2学时,学分为1
总学分为4
总学时为3*17+2*16=51+32=83
二、教学内容与基本要求
(一)软件工程学概述(3理论学时+2实践学时)
1.教学内容
- 软件危机
- 软件工程
- 软件生命周期
- 软件过程
2.基本要求
- 了解什么叫软件危机
- 掌握软件工程的基本定义
- 掌握传统的软件生命周期概念
- 了解软件过程相关概念和意义
(二)可行性研究(3理论学时+2实践学时)
1.教学内容
- 可行性研究的任务
- 可行性研究过程
- 系统流程图
- 数据流图
- 数据字典
- 成本/效益分析
2.基本要求
- 了解可行性研究的任务和可行性研究过程
- 掌握系统流程图
- 掌握数据流图和数据字典
- 了解成本/效益分析方法
(三)需求分析(3理论学时+2实践学时)
1..教学内容
- 需求分析的任务
- 与用户沟通获取需求的方法
- 分析建模与规格说明
- 实体联系图
- 数据规范化
- 状态转换图
- 其他图形工具
- 验证软件需求
2.基本要求
- 了解需求分析的任务
- 了解与用户沟通获取需求的方法
- 了解分析建模与规格说明
- 掌握实体联系图
- 理解数据规范化
- 掌握状态转换图
- 了解其他图形工具和验证软件需求
(四)总体设计和详细设计(9理论学时+6实践学时)
1.教学内容
- 设计过程
- 设计原理
- 启发规则
- 描绘软件结构的图形工具
- 面向数据流的设计方法
- 结构程序设计
- 人机界面设计
- 过程设计的工具
- 面向数据结构的设计方法
2.基本要求
- 了解设计过程和设计原理
- 理解启发规则
- 掌握描绘软件结构的图形工具
- 掌握面向数据流的设计方法
- 掌握结构程序设计的思想和人机界面设计
- 了解过程设计的工具
- 掌握面向数据结构的设计方法
(五)实现和维护(4.5理论学时+3实践学时)
1.教学内容
- 编码
- 软件测试基础
- 单元测试
- 集成测试
- 确认测试
- 白盒测试技术
- 黑盒测试技术
- 调试
- 软件维护的定义
- 软件维护的特点
- 软件维护过程
- 软件的可维护性
- 预防性维护
- 软件再工程过程
2.基本要求
- 了解编码和软件测试基础
- 掌握单元测试和集成测试、确认测试
- 掌握白盒测试技术和黑盒测试技术
- 掌握调试概念和技巧
- 掌握软件维护的定义和特点
- 掌握软件维护过程
- 了解软件的可维护性和预防性维护
- 了解软件再工程过程
(六)面向对象方法学引论(4.5理论学时+3实践学时)
1.教学内容
- 面向对象方法学概述
- 面向对象的概念
- 面向对象建模
- 对象模型
- 动态模型
- 功能模型
- 三种模型之间的关系
2.基本要求
- 了解面向对象方法学和面向对象的概念
- 了解面向对象建模
- 了解对象模型、动态模型和功能模型以及三种模型之间的关系
(七)面向对象分析(4.5理论学时+3实践学时)
1.教学内容
- 面向对象分析的基本过程
- 需求陈述
- 建立对象模型
- 建立动态模型
- 建立功能模型
- 定义服务
2.基本要求
- 掌握面向对象分析的基本过程
- 了解需求陈述
- 掌握建立三种模型
- 掌握如何定义服务
(八)面向对象设计(4.5理论学时+3实践学时)
1.教学内容
- 面向对象设计的准则
- 启发规则
- 软件重用
- 系统分解
- 设计问题域子系统
- 设计人机交互子系统
- 设计任务管理子系统
- 设计数据管理子系统
- 设计类中的服务
- 设计关联
- 设计优化
2.基本要求
- 了解面向对象设计的准则和启发规则
- 了解软件重用
- 掌握系统分解
- 掌握设计问题域子系统
- 掌握设计人机交互子系统
- 掌握设计任务管理子系统
- 掌握设计数据管理子系统
- 掌握设计类中的服务和设计关联,以及设计优化
(九)面向对象实现(4.5理论学时+3实践学时)
1.教学内容
- 程序设计语言
- 程序设计风格
- 测试策略
- 设计测试用例
2.基本要求
- 了解程序设计语言和程序设计风格
- 掌握测试策略
- 掌握设计测试用例
(十)软件项目管理(3理论学时+2实践学时)
1.教学内容
- 估算软件规模
- 工作量估算
- 进度计划
- 人员组织
- 质量保证
- 软件配置管理
- 能力成熟度模型
2.基本要求
- 了解如何估算软件规模
- 掌握工作量估算
- 掌握进度计划
- 了解人员组织形式
- 了解质量保证
- 了解软件配置管理
- 了解能力成熟度模型
三、学时分配表
(一)软件工程学概述 3理论学时+2实践学时
(二)可行性研究 3理论学时+2实践学时
(三)需求分析 3理论学时+2实践学时
(四)总体设计和详细设计 9理论学时+6实践学时
(五)实现和维护 3理论学时+2实践学时
(六)软件项目管理 3理论学时+2实践学时
(七)习题课 3理论学时+2实践学时
(八)面向对象方法学引论 4.5理论学时+3实践学时
(九)面向对象分析 4.5理论学时+3实践学时
(十)面向对象设计 4.5理论学时+3实践学时
(十一)面向对象实现 4.5理论学时+3实践学时
(十二)复习课 3理论学时
(十三)机动(可能法定假期) 3理论学时+2实践学时
合计: 51理论学时 + 32实践学时
四、有关说明
实践课将结合CASE工具学习使用和项目实例分析设计开展,主要内容包括:
- 软件工程的工具、环境和CASE
- 软件工程标准化
- 软件开发绘图工具VISIO
- 系统分析与建模工具PowerDesigner
- 软件自动化测试工具WinRunner
- 软件项目管理工具Project
- 软件配置管理工具VSS
- 具体项目实例的分析设计