- Level Foundation
- Course by Peking University
-
Offered by
About
如果将软件开发人员看作行走江湖的武侠,那么各种软件开发技术就是武侠赖以傍身的武术秘籍。有的秘籍以易学灵巧见长,练习者很快掌握,并有立竿见影的功效,但失之厚重持久;有的秘籍初学乍练顿显困难,虽冥思苦解仍不得要领,需坚持不断的内功修炼方成正果,却是成为武林大侠必备的至宝。本课程有些类似于后者。 《面向对象技术高级课程》深入、系统、完整地讲解当今主流的面向对象软件开发方法的分析、设计、实现及重构方法,深入讲解UML语言的高级技术细节,以及近年来面向对象方法最新的发展趋势。课程集百家之所言,并结合主讲者最新的研究成果,并通过大量、丰富、完整、不同领域、应用不同技术的案例将其中的关键知识点串联起来,便于理解和应用。 本课程并不拘限于某一特定的面向对象的编程语言的编程技巧,但却包含了基于当前主流的面向对象编程语言的多项完整案例。本课程引导选课同学从更为抽象和共性的模型角度描述现实世界和软件世界,即构建分析与设计模型,之后再将其落实到软件编程实现。这种工程化的理念对于开发大型、复杂、困难、攸关软件系统是非常必要的,也是作为高级程序员、系统分析师、软件架构师等高级软件技术职位所必需具有的素质。 作为一门面向广大受众的中文MOOC课程,本次课程力求向不同需求和背景的朋友呈现中华文化氛围、生动有趣的案例、跨专业的广阔的视野、以及深入实用的技术综合。 同时作为一门传授软件专门知识的MOOC课程,本次课程将为具有编程能力的同学带来有趣的软件开发项目作业,在实际的软件开发中感受学以致用的快乐,体会面向对象方法学的深刻内涵。 本次课程仍将邀请面向对象领域著名学者北京大学信息科学技术学院邵维忠教授和麻志毅副教授讲解某些章节,并对面向对象方法学中的某些关键问题进行讨论。Modules
第1节:绪论-软件开发方法的演化与最新趋势
1
Assignment
- 第1节测试
19
Videos
- 1.第二次MOOC开课引言
- 2.系统的概念
- 3.结构的概念
- 4.模型与科学模型
- 5.工程模型
- 6.软件模型
- 7.方法学、方法、语言与图
- 8.软件方法学的历史
- 9.软件方法学的现状
- 10.UML扩展的必要性
- 11.UML扩展的机制
- 12.meta、元与元模型
- 13.元模型与实例
- 14.软件方法的未来发展
- 15.模型驱动的双向工程案例
- 16.小结
- 补充1.软件工程的作用与本课程的价值
- 补充2.模型驱动的双向工程案例(高清)
- 下节介绍
第2节:本课程方法概要与完整的引例及项目作业说明
1
Assignment
- 第2节测试
12
Videos
- 1.本课程的方法中应用的概念与原则(邵维忠教授主讲 11:10)
- 2.本课程的方法中用到的模型与规约(邵维忠教授主讲 9:29)
- 3.本课程中方法中的建模过程(邵维忠教授主讲 4:57)
- 4.本课程中OOA和OOD的关系(邵维忠教授主讲 9:29 )
- 5.引例概述与需求描述(8:10)
- 6.引例需求分析(16:41)
- 7.引例系统分析—类图(14:16)
- 8.引例系统分析—顺序图(13:54)
- 9.引例系统设计—总述(9:37)
- 10.引例系统设计—问题域设计与人机交互设计(17:12)
- 11.引例系统设计—控制驱动设计与数据管理设计(28:16)
- 12.引例系统实现与演示(8:58)
第3节:面向对象方法学概述
1
Assignment
- 第3节测试
13
Videos
- 1.哲学中的对象
- 2.对象与结构
- 3.软件中的对象与面向对象方法学中的原则
- 4.面向对象与基于对象
- 5.封装与信息隐藏
- 6.实例化
- 7.消息传递
- 8.消息的编译原理与消息传递的意义
- 9.泛化与多态
- 10.多态的编程实例
- 11.覆盖、重载、基调与原型
- 12.多态的实现原理
- 13.关联与聚合
第4节:面向对象方法与UML的历史与发展(邵维忠教授主讲)
1
Assignment
- 第4节测试
16
Videos
- 1.几种不同的分析设计方法
- 2.OOA与OOD
- 3.面向对象方法的主要优点
- 4.不同流派的OO方法:Booch方法
- 5.不同流派的OO方法:Coad-Yourdon方法
- 6.不同流派的OO方法:Jacobson方法
- 7.不同流派的OO方法:Rumbaugh方法
- 8.UML的产生背景与发展历史
- 9.UML是什么不是什么
- 10.UML的四层模型结构
- 11.UML中的抽象元类和具体元类
- 12.UML1中的模型图与扩展机制
- 13.UML2概况
- 14.UML的贡献与存在问题
- 15.举例:UML体系结构中的问题
- 16.学习UML的建议
第5节:需求分析——usecase图
1
Assignment
- 第5节测试
1
Peer Review
- 作业:用况图建模作业
10
Videos
- 1.usecase图的历史与黑盒视角
- 2.参与者的概念、分类与关系
- 3.识别参与者的策略与技巧
- 4.用况与简单案例
- 5.用况与参与者及用况之间的关系与案例
- 6.不同学者对包含关系与扩展关系的区别
- 7.用况之间的泛化关系、用况的详细描述、识别策略与注意问题
- 8.用况图的应用场合、复杂案例与建模要点
- 9.用况驱动的方法研究,及用况与用户故事、场景、业务用况的比较研究
- 10.使用Eclipse GMF自制usecase图建模工具的过程演示
第6节:系统分析—类图
1
Assignment
- 第6节测试
1
Peer Review
- 作业:建立类图
10
Videos
- 1.类图引言
- 2.识别类与对象的方法
- 3.识别属性与服务
- 4.识别关系—泛化关系
- 5.泛化关系的识别策略、关联关系
- 6.关联关系的分类与识别策略
- 7.分析模式简介
- 8.聚合与组合关系
- 9.依赖与实现关系
- 10.建立类图实例
第7节:系统分析—交互图
1
Assignment
- 第7节测试
1
Peer Review
- 作业:建立顺序图
6
Videos
- 1.交互图引言
- 2.简单顺序图、同步消息和异步消息
- 3.顺序系统和并发系统与同步消息和异步消息的关系
- 4.简单顺序图实例
- 5.复杂顺序图
- 6.其他交互图、综合案例(用况、类图、顺序图)
第8节:系统分析—状态图
1
Assignment
- 第8节测试
1
Peer Review
- 作业:建立状态图
9
Videos
- 1.状态图引言与基本概念
- 2.状态的表示、内部转换、延迟事件、伪状态与最终状态
- 3.状态图中的动作、活动与转换
- 4.结合点与选择点
- 5.简单状态图的建模实例
- 6.将简单状态图转换为C++代码的方法
- 7.复杂的状态图、历史状态
- 8.并发状态与正交区
- 9.复杂状态图的建模实例
第9节:系统设计—问题域部分的设计
1
Assignment
- 第9节测试
6
Videos
- 1.设计概述、问题域部分设计概述
- 2.基于复用和为了复用的设计
- 3.泛化与聚合的互换
- 4.泛化需要注意的其他问题
- 5.一题多解案例
- 6.设计模式简介
第10节:系统设计—人机交互部分设计与控制驱动部分的设计
1
Assignment
- 第10节测试
10
Videos
- 1.人机交互部分设计简介
- 2.控制驱动设计部分—概述与相关概念
- 3.控制驱动设计引例
- 4.控制驱动设计的步骤及分布式体系结构分类
- 5.识别控制流的策略
- 6.例1:多线程动画
- 7.例1:实现与展示
- 8.例2:电梯模拟控制器
- 9.例2:电梯模拟控制器展示
- 10.线程模式简介
第11节:系统设计—数据管理设计、构件部署设计、活动图&系统实现
1
Assignment
- 第11节测试
9
Videos
- 1.数据管理部分设计概述
- 2.数据管理中数据存储方案与接口的设计
- 3.根据类图设计关系型数据表结构
- 4.关联关系、泛化关系的到数据表的映射
- 5.构件与部署设计概述
- 6.活动图简介
- 7.活动图的语法语义
- 8.活动图表示UML的制定过程
- 9.面向对象的系统实现概述
第12节:综合案例
11
Videos
- 1.网上书店的需求描述
- 2.网上书店的需求分析
- 3.网上书店的系统分析
- 4.网上书店的系统设计:问题域部分
- 5.网上书店的系统设计:人机交互部分
- 6.网上书店的系统设计:数据管理部分
- 7.网上书店的系统展示
- 8.立体五子棋的需求描述与需求分析
- 9.立体五子棋的系统分析
- 10立体五子棋的系统设计
- 11.立体五子棋的系统展示
期末考试
1
Assignment
- 期末考试
Auto Summary
Discover the "Advanced Object-Oriented Technology" course, designed for software developers seeking to master complex OO methodologies. This comprehensive program delves into analysis, design, implementation, and refactoring techniques, with a focus on advanced UML details and recent trends. Taught by esteemed professors from Peking University, it offers practical projects using various OO languages. Ideal for aspiring senior programmers, system analysts, and software architects, this Chinese MOOC provides foundational knowledge through engaging cases and interdisciplinary insights. Available on Coursera with Starter and Professional subscription options.

蒋 严冰

邵 维忠