6. 课程安排 Day 1 软件构架与OOAD 阐述软件构架及其表述的概念,理清对构架的认识误区,介绍RUP分析设计流程,说明构架分析、设计在其中的关键位置 9:00 – 10:00 软件构架分析 阐述4+1视图的概念,讲解软件构架分析及其在分析设计过程中的地位;讲解分析机制,说明使用分析机制来修饰非功能需求的途径;讲解关键的系统概念在构架分析中的核心作用;说明如何开发初始的构架层;并给出解决方案中技术选择的指南 10:10 – 12:00 点评与现场自由交流 解答学员的各类疑问,探讨实际项目中的各类问题 13:30 – 14:00 构架模式与框架 讲解构架模式和框架,以及如何应用构架模式与框架来创建健壮的构架;重点讲述层次模式,深入探讨应用层次模式来帮助开发系统初始的构架层 14:00 – 15:00 构架分析习作 指导学员确定系统主要的分析机制,为主要的分析类修饰分析机制;并开发系统初始的构架层 15:10 – 17:00 Day 2 软件构架设计 阐述软件构架设计及其在分析设计过程中的地位;讲解设计与实施机制,说明它们如何帮助将分析类映射到设计元素;讲解类与子系统的设计技巧;阐述构架设计中如何识别和利用复用机会;说明如何设计模型组织结构 9:00 – 10:30 面向对象设计原则 讲解面向对象设计中的最重要的原则,包括类的设计原则和包的设计原则;结合实例阐述在实际设计特别时构架设计中应用设计原则的方法、途径 10:40 – 12:00 点评与现场自由交流 点评学员上一次建模实践的习作成果;解答学员的各类疑问,探讨实际项目中的各类问题 13:30 – 14:00 构架设计习作 指导学员将系统主要的分析机制对应到设计和实施机制;精化系统初始的构架层,以体现设计、实施机制的实现,以及在复用策略的指导下引入第三方构件等;具体设计一些包的接口 14:00 –17:00 Day 3 软件构架文档与4+1视图 进一步深入阐述4+1视图的概念,讲解RUP的软件构架文档;讲解进程视图、实施视图和部署视图的作用和意义;结合一个实例说明软件构架文档的内容,并给出编写软件构架文档,和用它来指导目标系统开发的指南 9:00 – 10:50 获取团队协作成功的关键 分析团队协作与个人独立开发的根本差异;讲述保持概念的完整性和一致性对团队协作的极端重要性;介绍双向工程的概念,说明如何保证项目设计与实施的一致性 11:00 – 12:00 现场自由交流 解答学员的各类疑问,探讨实际项目中的各类问题 13:30 – 14:00 项目开发目录结构 讲解如何定义项目开发目录结构,以支持团队的协作开发;说明目录结构的设计原则和方法 14:00 –15:00 对象持久化与数据建模 阐述对象持久化的概念;描述持久化机制,包括分析、设计和实施机制;讲解对业务密集系统意义重大的数据建模;阐述Object-Relationship Mapping对象关系映射的概念,并结合实例说明实现对象关系映射的途径和方法 15:10 –16:30 总结 对3天的课程进行总结 16:40 – 17:00 讲师介绍 胡协刚 国内知名软件架构师简介:拥有非常丰富的工作经验(其中有2年硬件开发的特别经历);曾经参与、负责、领导多个软件项目的开发。擅长软件系统体系架构的分析与设计,对软件系统的总体结构和行为有深刻理解;OOP/OOAD功底深厚,精通UML语言,并在多个项目中成功实施面向对象的开发;熟悉软件工程知识体系的主体框架(如SW-CMM 1.1/CMMI 1.02),掌握主流软件过程Rational RUP;掌握多种CASE工具(特别是Rational的整个系列工具),并有在项目中实际运用的丰富经验。目前主要为软件开发企业提供项目构架设计与开发、咨询、顾问、教练mentor等不同形式的服务,并开展企业内训、公开授课等工作 软件的质量本质上是由其构架所决定的,构架控制着软件的全局,包含软件所有最重要方面的重大决定;而通常情况下,开发团队最缺的就是称职的软件架构师,因而造成系统缺乏整体的设计和控制,使得软件产品的结构混乱(缺乏统一和一致设计),实施风格各异,最终的交付的是一盘散沙的产品;显然成为一个架构师是极其困难的事,这将是一个长期的成长过程;然而通过系统的培训来减缓学习曲线,帮助学员站在较高的起点来了解构架分析与设计的全貌,顺利地入门,和少走弯路,则是完全可能和有必要的。 本课程包括软件构架分析与设计、构架开发实践两个部分。 本课程介绍了软件构架的基本理论和实际应用技术,涵盖了构架分析到构架设计的各个步骤。其中包括4+1视图,构架描述和构架文档的作用,如何进行构架分析、确定构架分析机制,如何从分析机制对应到设计机制和实施机制,构架模式的应用,层次模型的开发,包的设计原则、类的设计原则,以及构架模式、J2EE/dot.Net构架框架等。 为了让学员更深入地掌握相关内容,课程安排了围绕一个简单而完整的软件项目实例的构架建模实践习作。
1. 课程目的使学员能:基本掌握RUP的分析设计门类中的构架分析设计部分,理解4+1视图、构架建模的理论知识,掌握软件构架文档、设计模型、构架机制和包设计原则的应用的基本内容和方法,能够初步按照RUP进行构架开发。
2. 课程对象该课程主要面向架构师(首要对象)、其他开发人员和项目经理。
3. 学员基础 1. 要求学员具备一定的OO基础,具有一定的面向对象的分析、设计经验更佳;
2. 要求学员有使用任何一种面向对象的语言的编程基础;
3. 培训学员需要具备一定的UML基础知识,对UML的各种概念有一定的了解,知道各种模型图的大致概念和意思。
4. 最好接受过《面向对象分析与设计》或类似课程的培训。
4. 课程任务 1. 深入理解构架的重要性 2. 系统地掌握构架开发的技术和方法 3. 掌握构架分析的步骤和方法 4. 理解构架模式,及其在构架分析、设计中的应用 5. 理解软件构架分析的基本概念,理解软件需求特别是非功能需求对构架设计的影响,了解分析机制、设计机制等贯穿构架的重要概念; 6. 了解软件构架设计的基本概念,理解面向对象之包的设计原则及其在构架设计中的应用; 7. 了解软件构架的4+1视图概念,熟悉进程视图与进程/线程设计的途径,掌握构件视图和部署视图的建模方法; 8. 了解面向对象的持久化概念,熟悉数据建模的方法,了解对象—关系映射(Object-Relation Mapping)的基本内容。
5. 授课方式整个课程围绕一个简单的软件项目实例来展开,通过讲解和指导学员完成一系列练习,让学员对构架分析和构架设计的方法和过程等产生较深刻的感性认识;通过答疑和习作评点,使学员进一步深入理解软件构架的理论和方法,并纠正一些错误或模糊的认识。课程中还穿插一些讲师与学员的自由交流活动,解答与探讨实际项目中的各类问题。 |