课程概述

本课程为国家级一流线上课程、国家级精品在线开放课程。

通过学习本课程,使学生了解和掌握软件工程的基本概念和知识,包括软件工程的范畴、软件过程、软件生命周期模型、软件需求、面向对象分析、面向对象设计、实现与集成、维护、测试。要求学生能够掌握和运用面向对象软件工程的理论和方法,分析设计软件项目。具体主要包括:掌握软件工程专业工程基础理论知识和专业知识,且能将其应用于解决相关问题;运用用例图、类图、时序图等面向对象软件工程分析和设计的方法描述目标软件的规格说明和设计;掌握软件生命周期要素,了解多种软件生命周期模型,了解软件项目管理、软件团队及软件复用的基本概念和方法。

为了满足和方便广大同学的各种学习需要,本慕课中的课件、测试题、论坛等均为双语、即中英文。

证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


预备知识

暂无

授课大纲

第一章 引言

1.1 软件的概念

1.2 软件危机与软件工程

1.3 软件工程职业道德和从业规范

第一章 单元测试

第二章 软件过程

2.1 软件过程

2.2 软件测试

第二章 单元测试

第三章 软件需求

3.1 什么是需求

3.2 获取需求

3.3 快速原型

3.4 需求案例

第三章 单元测试

第四章 面向对象范型

4.1 内聚

4.2 耦合

4.3 数据封装与信息隐藏

4.4 类的继承

4.5 类的聚合

4.6 类的关联

4.7 多态与动态绑定

4.8 OO范型

4.9 UML

第四章 单元测试

第五章 面向对象分析

5.1 用例建模

5.2 用例图

5.3 类建模

5.4 动态建模

5.5 测试OOA

第五章 单元测试

第六章 面向对象设计

6.1 软件系统设计

6.2 面向对象设计

第七章 实现与集成

7.1 编程语言

7.2 良好的编程习惯

7.3 实现与集成

第七章 单元测试

第八章 维护

8.1 维护的必要性

8.2 对维护人员的要求

第八章 单元测试

第九章 软件生命周期模型

9.1 软件生命周期模型

第九章 单元测试

第十章 软件项目管理

10.1 软件项目管理基本概念

10.2 软件项目管理知识体系

10.3 软件项目管理--范围管理

10.4 软件项目管理--组织结构

10.5 软件项目管理--时间管理

10.6 软件项目管理--成本管理

参考资料

教材:

张爽,软件工程原理与方法(微课版),第一版,北京:人民邮电出版社,2023.12.

参考教材:

1. Stephen R. Schach, 面向对象软件工程(中译本),1th Edition, McGraw Hill北京:机械工业出版社,2009.3.

2. (美)布鲁格,面向对象软件工程:使用UML、模式与Java(中译本),第3版,清华大学出版社,2011.2.

3. Stephen R. Schach, Object-Oriented Software Engineering,1th Edition, McGraw Hill北京:机械工业出版社,2009.3.

4. Roger S. Pressman, Software Engineering-A Practitioner’s Approach,6th Edition,McGraw Hill,2001-1.

5. Karl E. Wiegers,Software Requirements,Microsoft Press,2000.

6. Mark Priestley,Practical Object-Oriented Design with UML,2nd Edition,McGraw Hill,2004.

7. Ron Patton,Software Testing,2nd Edition,Pearson Education,2006.

8. Pankaj Talote,Software Project Management in Practice,Pearson Addison Wesley,2002.

常见问题

零基础能学习《软件工程》吗?没有问题,你也可以成为软件人!

欢迎大家学习《软件工程》!

在当今信息时代,软件已经成为我们生活、生产和学习中重要的、不可或缺的一部分了,就像同学们现在在线观看和学习我们这门课程的慕课。

软件和其他实体一样,也要经历一个从开发、到使用和维护的过程。那么,如何才能做到:如期地、预算范围内地、交付用户基本满意的软件系统呢?这就是软件工程要解决的问题。

我们这门课将利用实际案例向大家讲解如何运用最先进的面向对象软件工程的思想、方法和原理来分析、设计、实现和维护软件系统。希望大家 学习这门课程之后,会对软件工程有更深入的了解、心得和掌握。