Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Peking University

软件工程

Peking University via Coursera

This course may be unavailable.

Overview

欢迎大家选修北京大学开设的软件工程MOOC课程。
随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是将工程化的方法运用到软件的开发、运行和维护之中,以达到提高软件质量,降低开发成本的目的。软件工程已经成为当今最活跃、最热门的学科之一。
本次软件工程MOOC课程是一门导论性课程,在11周、21次课的时间里,我们将全面介绍软件工程所涉及的各方面知识,包括软件过程、软件需求、结构化分析和设计方法、面向对象分析和设计方法、敏捷开发方法、软件测试、软件项目管理、软件开发工具和环境。通过课程讲授,让大家初步了解软件开发和维护的方法学,为进一步深入学习各专题打下基础。
课程还包含了实践环节,通过一个小型软件项目,大家可以体验软件开发的各个环节,并形成项目管理的意识。

一、本次课程的安排如下:
第1周 软件工程概论、软件过程
第2周 软件需求
第3周 结构化方法1
第4周 结构化方法2
第5周 面向对象方法1
第6周 面向对象方法2
第7周 面向对象方法3
第8周 面向对象方法4、敏捷开发方法
第9周 软件测试
第10周 软件项目管理
第11周 软件开发工具和环境

二、课程实践
本课程提供了三个实践题目,每个实践题目已列出三点基本需求,可在课程介绍的讲义中查看。请结合自身兴趣爱好从中任选其一,在仔细阅读并思考基本需求的基础之上额外补充一个需求,以此作为系统需求完成本次课程实践。
课程实践分为三个阶段,分别在第4周、第7周和第10周进行结构化方法、面向对象方法、软件测试和项目管理的实践,完成相应的文档报告。
实践成绩由同学互评给出,每位同学需要给其他三位同学的报告评分。

三、课程评分方案
在新的课程版本里,我们将课程实践所占的分数从30%降低到了12%。但我们依然鼓励同学们积极地完成课程实践的练习,加深对课程的理解。
(1)平时Quiz占88%
(2)课程实践占12%


祝大家学习愉快!

Syllabus

软件工程概论和软件过程
本周讲授软件和软件工程的基本概念,了解软件工程的知识框架。讲授软件生存周期过程和软件生存周期模型,介绍常见的软件生存周期模型。

软件需求
需求是软件开发的第一步。本周介绍软件需求的基本概念和分类,常见的需求发现方法,以及软件需求规约的相关知识。

结构化方法-1
结构化方法是经典的软件开发方法。本周介绍结构化分析方法和结构化设计方法的第一部分,讲解如何根据捕获到的需求进行分析,形成软件需求规格说明书,进而对软件进行总体设计。

结构化方法-2
结构化设计方法分为总体设计和详细设计两个步骤,本周继续介绍总体设计的体系结构设计、接口设计和数据设计部分,以及如何进行详细设计。

面向对象方法-1
面向对象方法是另一个经典的软件开发方法,从本周开始,我们将用四周的时间全面介绍该方法。本周我们学习统一建模语言UML,面向对象方法可采用UML来描述客体以及客体之间的关系。

面向对象方法-2
本周继续介绍UML。UML除了提供描述客体以及客体之间关系的术语以外,还提供了诸多建模工具,掌握这些建模工具对学习面向对象方法至关重要。

面向对象方法-3
在学习了UML的基础上,本周介绍面向对象分析和设计方法,讲解如何以面向对象的世界观、采取一定的步骤和方法来进行软件的分析和设计。

面向对象方法-4和敏捷开发方法
本周的第一次课讲授面向对象方法的最后一部分:面向对象设计中的人机交互、控制驱动、数据管理部分的设计,以及面向对象编程。第二次课介绍敏捷开发方法。敏捷开发方法与传统重过程的开发方法不同,强调对快速变化的需求的适应。

软件测试
测试是软件开发过程中非常重要的一个环节。本周从软件测试的概念入手,介绍测试的基本方法和常用技术,讲解软件测试的具体步骤。

软件项目管理
良好的项目管理是软件项目成功的重要因素,本周介绍项目管理的基本概念以及软件项目管理的概念,讲授CMM和ISO9000两大项目管理规范。

软件开发工具与环境
本周介绍常见的软件开发工具和环境,对具体软件开发有重要帮助。

Taught by

孙艳春

Reviews

Start your review of 软件工程

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.