课程教案

课程名称 软件工程
课程性质 专业必修课
开课年度 2022年至2023年
开课学期 春季
授课班级 计实验20、大数据20
主讲教师 李欣
课程所属学院(部门) 信息学院
课程所属系(教研室) 计算机系

Table of Contents

1. 课程第1讲   软件工程概述 软件与软件工程的概念

第1周

日期
[2023-02-28 Tue]
地点
瀚学楼202
章节
第一部分 第1章
教学重点
软件工程的出现、软件工程的定义
教学难点
讲授主要内容
  1. 软件的 概念特性分类
  2. 软件危机软件工程
  3. 软件工程的 目标
  4. 软件 生存期
  5. 软件工程 方法 概述
  6. 软件工具 概述
  7. 软件工程 知识体系知识域
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 教材习题1.1 举出你所知道的传统应用软件的例子。
  2. 教材习题1.2 软件就是程序,软件开发就是编程序 这种观点是否正确?为什么?
  3. 教材习题1.4 简述软件的分类,并举例说明。
  4. 教材习题1.5 请给出你所知道的互联网应用软件的例子。传统应用软件与互联网应用软件有哪些不同之处?
  5. 教材习题1.7 什么是软件工程?软件工程要解决的核心问题是什么?
教学后记

2. 课程第2讲   软件工程概述 软件生存期模型

第2周

日期
[2023-03-07 Tue]
地点
瀚学楼202
章节
第一部分 第2章
教学重点
软件生命周期和软件过程
教学难点
软件生命周期和软件过程
讲授主要内容
  1. 瀑布 模型
  2. 快速原型 模型
  3. 增量 模型
  4. 螺旋 模型
  5. 喷泉 模型
  6. 统一过程
  7. 基于构件 的开发模型
  8. 敏捷过程
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题2.1 瀑布模型、快速原型模型、增量模型及螺旋模型都是传统的软件过程模型, 请给出各个模型的特点。每种模型的优点和缺点是什么?适用于哪些场合?
  2. 习题2.3 可以合用几种模型吗?如果可以,举例说明。
  3. 习题2.4 解释喷泉模型的特点及其适用的场合。
  4. 习题2.8 统一过程的4个阶段是什么?
  5. 习题2.11 简述敏捷软件开发的原则。
教学后记

3. 课程第3讲   结构化分析与设计方法 软件需求获取与结构化分析方法

第3周

日期
[2023-03-14 Tue]
地点
瀚学楼202
章节
第二部分 第3章
教学重点
结构化分析方法
教学难点
结构化分析方法
讲授主要内容
  1. 需求获取与需求分析阶段的任务
    • 需求获取的任务和原则
    • 需求获取的过程
    • 软件需求分析阶段的任务
  2. 结构化分析方法
    • 功能建模
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

4. 课程第4讲   结构化分析与设计方法 软件需求获取与结构化分析方法

第4周

日期
[2023-03-21 Tue]
地点
瀚学楼202
章节
第二部分 第3章
教学重点
结构化分析方法
教学难点
结构化分析方法
讲授主要内容
  • 结构化分析方法
    • 功能建模
    • 数据建模
    • 行为建模
    • 数据字典
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

5. 课程第5讲   结构化分析与设计方法 软件需求获取与结构化分析方法 结构化设计方法

第5周

日期
[2023-03-28 Tue]
地点
瀚学楼202
章节
第二部分 第3章、第4章
教学重点
结构化分析方法
教学难点
结构化分析方法
讲授主要内容
  • 结构化分析方法
    • 数据字典
    • 加工规格说明
  • 系统需求规格说明
    • 软件需求规格说明模板
    • SRS和DRD的质量要求
  • 需求评审
    • 正式的需求评审
    • 需求评审中的常见风险
  • 需求管理
    • 需求跟踪
    • 需求变更管理
  • 软件设计的概念及原则
    • 软件设计的概念
    • 软件设计的原则
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题3.4 请根据以下描述画出某库存管理系统的数据流图。 该系统的数据流描述如下:
    1. 根据计划部门转来的收货通知单和已存在的物资编码文件,建立物资采购单流水账。
    2. 根据技术部门的物资验收报告和物资采购单流水账,更新物资台账文件。
    3. 对物资台账分类汇总,将结果存储与物资总账文件中。
    4. 物资出库:物资使用部门填写物资出库单,包括 物资编号、物资名称、物资数量、物资使用部分、负责人、经手人。 系统根据物资总账文件的库存情况判断是否能够出库, 如果能够出库,则记录出库单,并更新物资总账文件。
  2. 习题3.6 一家书店计划开发图书管理系统对书店的业务进行管理, 以提高管理人员及书店工作人员的工作效率,并方便顾客对图书进行检索。 针对以下书店管理系统的基本功能需求建立需求分析模型,包括数据流图(至少画出两层)和ER图。
    1. 采购管理:实现与供货商的图书采购、退货及结算管理,提供月统计报表及任意时间段的统计报表。
    2. 图书信息管理:记录每种图书的信息(包括ISBN号、书名、作者、出版社、出版日期、单价、版次、印次等)、 折扣及库存量,并提供简单的图书查询功能。
    3. 销售管理:实现图书销售功能,记录顾客购买的图书种类、数量,计算总价,打印销售小票,并付款。 提供日/月统计报表及任意时间段的统计报表。
    4. 用户管理:提供用户组(角色)及用户管理功能。
教学后记

6. 课程第6讲   结构化分析与设计方法 结构化设计方法

第6周

日期
[2023-04-04 Tue]
地点
瀚学楼202
章节
第二部分 第4章
教学重点
软件设计
教学难点
软件设计
讲授主要内容
  • 软件设计的概念及原则
    • 软件设计的概念
    • 软件设计的原则
  • 结构化设计
    • 结构化软件设计的任务
    • 结构化设计与结构化分析的关系
    • 模块结构及表示
    • 数据结构及表示
  • 体系结构设计
    • 基于数据流方法的设计过程
    • 典型的数据流类型和系统结构
    • 变换型映射方法
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

7. 课程第7讲   结构化分析与设计方法 结构化设计方法

第7周

日期
[2023-04-11 Tue]
地点
瀚学楼202
章节
第二部分 第4章
教学重点
软件设计
教学难点
软件设计
讲授主要内容
  • 体系结构设计
    • 变换型映射方法
    • 事务型映射方法
    • 模块间的耦合和内聚
    • 软件模块结构的改进方法
  • 接口设计
    • 接口设计概述
    • 人机交互界面
  • 数据设计
    • 文件设计
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

8. 课程第8讲   结构化分析与设计方法 结构化设计方法

第8周

日期
[2023-04-18 Tue]
地点
瀚学楼202
章节
第二部分 第4章
教学重点
软件设计
教学难点
软件设计
讲授主要内容
  • 数据设计
    • 文件设计
    • 数据库设计
  • 过程设计
    • 结构化程序设计
    • 程序流程图
    • N-S图
    • PAD
    • PDL与伪代码
    • 自顶向下、逐步细化的设计过程
  • 软件设计规格说明
  • 软件设计评审
    • 概要设计评审的检查内容
    • 详细设计评审的检查内容
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题4.5 使用数据流图和处理叙述,描述一个具有明显事物流特性的计算机系统。 使用本章所介绍的技术定义数据流的边界,并将DFD映射成软件结构。
  2. 习题4.7 用面向数据流的方法设计第3章习题3.6所描述的图书管理系统的软件结构, 并尽量使用改进方法对模块结构进行精化。
  3. 习题4.9 将大的软件划分成模块有什么好处?是不是模块化分得越小越好? 划分模块的依据是什么?
  4. 习题4.10 什么叫 自顶向下、逐步细化
教学后记

9. 课程第9讲   面向对象分析与设计方法 面向对象方法与UML

第9周

日期
[2023-04-23 Sun]
地点
瀚学楼202
章节
第三部分 第5章
教学重点
教学难点
讲授主要内容
  • 面向对象的概念与开发方法
    • 对象
    • 类与封装
    • 继承
    • 多态
    • 消息通信
    • 面向对象的软件开发方法
  • UML简介
    • UML的产生和发展
    • UML的特点
    • UML的基本模型
  • UML的事物
    • 结构事物
    • 行为事物
    • 分组事物
    • 注释事物
  • UML的关系
    • 依赖关系
    • 关联关系
    • 泛化关系
    • 实现关系
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

10. 课程第10讲   面向对象分析与设计方法 面向对象方法与UML 面向对象分析

第10周

日期
[2023-04-25 Tue]
地点
瀚学楼202
章节
第三部分 第5章、第6章
教学重点
教学难点
讲授主要内容
  • UML的图
    • 用例图
    • 类图
    • 顺序图与通信图
    • 状态图
    • 活动图
    • 构件图与部署图
  • 面向对象分析概述
    • 确定系统边界
    • 面向对象分析的3种模型
  • 建立用例模型
    • 确定业务参与者
    • 确定业务需求用例
    • 创建用例图
  • 建立对象模型
    • 对象模型的5个层次
    • 划分主题
    • 确定类与对象
    • 确定结构
    • 确定属性
    • 确定服务
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
教学后记

11. 课程第11讲   面向对象分析与设计方法 面向对象分析 软件体系结构与设计模式

第11周

日期
[2023-05-09 Tue]
地点
瀚学楼202
章节
第三部分 第6章、第7章
教学重点
教学难点
讲授主要内容
  • 建立对象模型
    • 确定服务
    • 建立类图
  • 建立动态模型
    • 顺序图
    • 通信图
    • 状态图
  • 软件体系结构的基本概念
    • 什么是体系结构
    • 体系结构模式、风格和框架的概念
    • 体系结构的重要作用
  • 典型的体系结构风格
  • 特定领域的软件体系结构
  • 分布式系统结构
  • 体系结构框架
    • 模型-视图-控制器(MVC)
    • J2EE体系结构框架
    • PCMEF与PCBMER框架
  • 设计模式
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题6.1 比较面向对象的分析方法和面向数据流的分析方法,阐述它们各自的特点。
  2. 习题6.2 面向对象分析需要建立的三个模型是什么?
  3. 习题6.4 用例模型中的外部参与者指的是什么?如何确定外部参与者?
  4. 习题6.7 解释关联类的作用。在什么时候需要使用关联类?
  5. 习题7.6 浏览器/服务器体系结构有什么优点和缺点?
  6. 习题7.9 什么是设计模式?常用的设计模式有哪些?
教学后记

12. 课程第12讲   面向对象分析与设计方法 面向对象设计

第12周

日期
[2023-05-16 Tue]
地点
瀚学楼202
章节
第三部分 第8章
教学重点
教学难点
讲授主要内容
  • 面向对象设计过程与准则
  • 体系结构模式及依赖性
  • 系统分解
  • 问题域部分的设计
  • 人机交互部分的设计
  • 任务管理部分的设计
  • 数据管理部分的设计
  • 对象设计
  • 优化对象设计模型
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题8.1 软件模块之间的依赖性可以从哪些角度和抽象层次进行分析?
  2. 习题8.2 消除包之间循环依赖性的方法是什么?
  3. 习题8.3 典型的面向对象设计模型在逻辑上由哪几部分组成? 对每一部分进行设计时所包含的主要内容是什么?
教学后记

13. 课程第13讲   软件实现与测试 软件实现

第13周

日期
[2023-05-23 Tue]
地点
瀚学楼202
章节
第四部分 第9章
教学重点
教学难点
讲授主要内容
  • 程序设计语言
  • 程序设计风格
  • 编码规范
  • 程序效率与性能分析
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题9.2 一般情况下,程序的效率和清晰性相比哪一个更重要?
  2. 习题9.3 程序中的注释是否越多越好?
  3. 习题9.4 如何提高表达式的可读性?
  4. 程序的效率受哪些因素的影响?如何降低这些因素对程序效率的影响?
教学后记

14. 课程第14讲   软件实现与测试 软件测试方法

第14周

日期
[2023-05-30 Tue]
地点
瀚学楼202
章节
第四部分 第10章
教学重点
教学难点
讲授主要内容
  • 软件测试的基本概念
  • 白盒测试的测试用例设计
  • 基本路径覆盖
  • 黑盒测试的测试用例设计
  • 软件测试的策略
  • 人工测试
  • 自动化测试
  • 调试
本次课主体教学方式、方法
  1. 线下授课
  2. 持续改进版教案
  3. 可交互课件
  4. 电子板书
布置作业
  1. 习题10.4 简要说明白盒测试和黑盒测试的区别。 如果认真做了两者之一,还需要再做另一种测试吗?
  2. 现在有一个档案管理系统,允许用户通过输入年月对档案文件进行检索, 系统对查询条件年月的输入限定为1990年1月-2049年12月, 并规定,日期由6位数字组成,前4位表示年,后2位表示月。 使用等价类划分法设计测试用例。
教学后记