软件工程
软件工程
10万+ 人选课
更新日期:2025/08/01
开课时间2025/02/17 - 2025/06/15
课程周期17 周
开课状态已结课
每周学时-
课程简介

欢迎大家选修北京大学开设的软件工程MOOC课程。


随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是将工程化的方法运用到软件的开发、运行和维护之中,以达到提高软件质量,降低开发成本的目的。软件工程已经成为当今最活跃、最热门的学科之一。


本次软件工程MOOC课程是一门导论性课程,我们将全面介绍软件工程所涉及的各方面知识,包括软件过程、软件需求、结构化分析和设计方法、面向对象分析和设计方法、敏捷开发方法、软件测试、软件项目管理、软件开发工具和环境。通过课程讲授,让大家初步了解软件开发和维护的方法学,为进一步深入学习各专题打下基础。


课程还包含了实践环节,通过一个小型软件项目,大家可以体验软件开发的各个环节,并形成项目管理的意识。

课程大纲

第一周:软件工程概论

软件的定义及特点

软件工程的起源和概念

软件开发的本质和基本手段

软件工程框架

补充材料-软件工程新视野

软件的定义及特点

软件工程的起源和概念

软件开发的本质和基本手段

软件工程框架

第一周:软件过程

软件生存周期过程的概念

软件生存周期过程的分类

软件生存周期模型的概念

常见的软件生存周期模型

软件生存周期过程的概念

软件生存周期过程的分类

软件生存周期模型的概念

常见的软件生存周期模型

第一周:课程介绍

课程宣传片

课程简介

第二周:软件需求

需求的作用

需求的定义

需求的分类

需求发现

需求规约的概念和格式

需求规约的作用

项目的需求及需求规约

需求的作用

需求的定义

需求发现

需求规约的作用

需求规约的概念和格式

需求的分类

第三周:结构化分析方法

结构化分析方法的概念

结构化分析模型

结构化分析过程

需求规格说明书

【补充】结构化分析案例

【补充】需求验证

结构化分析方法的概念

结构化分析模型

结构化分析过程

需求规格说明书

第三周:结构化设计方法-1

结构化设计概念

初始模块结构图的设计

初始模块结构图精化的原则

【补充】总体设计案例

结构化设计概念

初始模块结构图的设计

初始模块结构图精化的原则

第四周:结构化设计方法-2

初始模块结构图精化的启发式规则

接口设计

数据设计

初始模块结构图精化的启发式规则

接口设计

数据设计

第四周:结构化设计方法-3

详细设计工具

软件设计规约

结构化方法总结

【补充】软件设计评审

详细设计工具

软件设计规约

结构化方法总结

第一次课程实践

第五周:UML-1

面向对象的概念

UML的概念

表达客观事物的术语——类

面向对象的概念

UML的概念

表达客观事物的术语——类

第五周:UML-2

表达客观事物的术语——接口及其他

控制复杂性的术语——包

表达关系的术语——关联

表达关系的术语——泛化、细化、依赖及如何使用

表达客观事物的术语——接口及其他

控制复杂性的术语——包

表达关系的术语——关联

表达关系的术语——泛化、细化、依赖及如何使用

第六周:UML-3

UML的模型表达工具_概述

UML的模型表达工具_静态建模——类图

UML模型表达工具_动态建模——用况图

UML的模型表达工具_概述

UML的模型表达工具_静态建模——类图

UML模型表达工具_动态建模——用况图

第六周:UML-4

顺序图

状态图

UML总结

顺序图

状态图

UML总结

第七周:面向对象分析

面向对象分析概述

识别类

识别属性和操作

识别对象之间的关系

【补充】面向对象分析案例

面向对象分析概述

识别类

识别属性和操作

识别对象之间的关系

第七周:面向对象设计-1

面向对象设计概述

问题域部分的概念

如何进行问题域部分的设计

面向对象设计概述

问题域部分的概念

如何进行问题域部分的设计

第二次课程实践

第八周:面向对象设计-2

人机交互部分的设计

控制驱动和数据管理部分的设计

【补充】面向对象设计案例

人机交互部分的设计

控制驱动和数据管理部分的设计

第八周:编码实现

程序设计范型和面向对象编程语言的特点发展

如何选择编程语言

【补充】代码风格与编程规范

程序设计范型和面向对象编程语言的特点发展

如何选择编程语言

第八周:敏捷开发方法

敏捷开发概述

极限编程

敏捷设计

Scrum模型

敏捷开发概述

极限编程

敏捷设计

Scrum模型

第九周:软件测试-1

软件测试的概念

软件测试过程模型和原则

白盒测试技术

软件测试的概念

软件测试过程模型和原则

白盒测试技术

第九周:软件测试-2

黑盒测试技术

软件测试的步骤

黑盒测试技术

软件测试的步骤

第十周:项目管理

项目管理的概念

项目管理框架和要素

软件项目管理的概念

【补充】软件质量

项目管理的概念

项目管理框架和要素

软件项目管理的概念

第十周:CMM

ISO9000标准

CMM概念及发展

CMM的基本内容

CMM五级标准

CMM概念及发展

CMM的基本内容

CMM五级标准

ISO9000标准

第三次课程实践

第十一周:软件开发工具与环境

软件开发工具及环境的定义

工具集成模型

常用的软件开发工具和环境

补充材料-移动web软件分析与优化

软件开发工具及环境的定义

工具集成模型

常用的软件开发工具和环境

第十二周(补充内容):软件维护与再工程

软件维护的概念

软件维护活动

程序修改

软件再工程模型

逆向工程