课程概况
本课程系统完整地讲解当今主流的面向对象软件开发方法的分析、设计、实现及重构方法。深入讲解UML语言的高级技术细节,以及近年来面向对象方法最新的发展趋势,结合最新研究成果,通过大量、丰富、完整、不同领域、应用不同技术的案例将其中的关键知识点串联起来,便于理解和应用。
本课程集理论性、实用性、研究性、前沿性一体,为工程硕士研究生日后从事大型软件系统的分析设计、系统重构以及建立企业软件开发架构,或从事软件方法学领域应用基础研究提供启发性理论指导及借鉴。
本课程包含多个完整的案例,涵盖了对不同类型多种软件开发平台建模的各个阶段的完整案例。结合软件建模领域的发展趋势,增加了分析模式、设计模式、软件重构及模型驱动方面等知识点的介绍。对UML中的高级的概念和国际上面向对象方法学大师的著作与思想也逐渐补充讲解,体现课程的理论深度。
本课程将邀请面向对象领域著名学者北京大学信息科学技术学院邵维忠教授和麻志毅副教授讲解某些章节,并对面向对象方法学中的某些关键问题进行讨论。
课程大纲
第1周: 绪论:软件开发方法的演化与最新趋势
介绍贯穿于课程始终的基本概念:系统、模型、方法学、方法、语言等,回顾软件开发方法学的历史、现状,并展望未来
第2周: 面向对象技术概论
讲述面向对象方法学中的原则与发展历史以及问题
第3周:面向对象分析与设计引例(空战游戏)
以一个完整的案例示范完整的面向对象的需求分析、系统分析和系统设计的过程和模型。
第4周:面向对象的需求分析:Usecace图
介绍面向对象需求分析模型的语义与建立过程,示例,并讨论其中的深入话题
第5周:面向对象的系统分析:类图
介绍类图的语义与建立过程,示例,并讨论其中的深入话题
第6周:面向对象的系统分析:交互图
介绍交互图的语义与建立过程,示例,并讨论其中的深入话题
第7周:面向对象的系统分析:状态图
介绍状态图的语义与建立过程,示例,并讨论其中的深入话题
第8周:面向对象的系统设计:概述与问题域部分的设计
介绍面向对象设计的范围界定、概要与组成部分,以及其中问题域部分的设计方法与策略
第9周:面向对象的系统设计:控制驱动部分的设计
介绍控制驱动部分的设计方法与策略与案例
第10周:面向对象的系统设计:人机交互部分与数据管理部分的设计
介绍人机交互部分与数据管理部分的设计方法与策略与案例
第11周:面向对象的系统设计:构件与部署的设计
介绍构件与部署分与数据管理部分的设计方法与策略与案例
第12周:面向对象分析与设计完整案例
介绍各种类型的面向对象分析与设计完整案例
预备知识
选课者最好具有一门面向对象的编程语言的基本知识和软件工程的基本知识。
参考资料
邵维忠、杨芙清,面向对象的分析与设计,清华大学出版社,2013
麻志毅、邵维忠,面向对象方法基本教程, 高等教育出版社,2004
Martin Fowler著,徐家福译,UML精粹(第3版)清华大学出版社, 2005
Grady Booch等著,邵维忠等译, UML用户指南(第2版 )人民邮电出版社, 2006
Joshua Kerievsky著, 杨光等译 重构与模式 人民邮电出版社, 2013.1
Martin Fowler著,陈师(注释), Analysis Patterns: Reusable Object Models ,人民邮电出版社,2007