第一阶段:
构架全景视图——核心开发过程
项目展示
展示以往成功实施UML&OOAD与UP的项目实例
以构架为中心的开发过程——UP统一软件过程
全面说明UP统一软件过程的内容,包括角色,工件,和活动(业务、需求等九大科目);
讲解软件开发所经历的从业务建模(领域建模)、到需求建模(用例建模)、进而到架、建模、行为(应用)建模、数据建模,后到测试建模的整个过程
阐述迭代模型,详细讲解RUP的先启阶段和精化阶段的迭代内容
对比RUP重量级过程与轻量级过程XP、Agile
Process的差别,以及各自的适用范围
讲解UML
9种图形及应用
用例驱动的需求开发
对比用例方法与传统需求开发方法的优劣;用例模型在表达功能需求中的核心作用;
解释收集信息的过程,解释作用域专家的角色
写一个明确的problem
statements
确定建设和维护数据字典的重要性
阐释如何正确使用用例技术来捕获客户的功能需求;
需求建模实验
通过一个简化的项目实例,讲解如何建立需求(用例)模型;针对选定的项目实例,指导学员使用文档、活动图/序列图等途径详述系统用例的规格
面向对象分析
阐述从分析模型到设计模型,终到实施模型的整个演化过程;
讲解分析类的概念,说明边界类、实体类和控制类的划分与职责分配方法
讲解如何从用例行为中识别分析类,并将相关行为向分析类进行职责分配;说明使用序列图与协作图来帮助用例分析的途径;
说明如何在较大规模的系统中,将众多的分析类组织成分析包和服务包
面向对象分析实验
依照项目实例已建立的需求模型,讲解进行用例分析的过程;针对选定的项目实例,识别分析类,使用序列图或协作图来描述基于这些分析类来实现用例行为所代表的系统功能需求;
第二阶段:
构架分析
软件构架导论
阐述软件构架是什么,讲解为什么需要软件构架,阐述构架基线的概念;
介绍迭代开发各个阶段需要解决的各类关键风险,分析构架基线是如何规避项目开发风险的
回顾RUP的分析设计过程,说明构架分析、设计在其中的关键位置;
介绍构架设计的相关理论(元模型体系),以及业界主流的构架体系模型
构架风格与模式
阐述构架风格的概念,介绍常见的相关构架风格;
讲解构架模式和框架,以及如何应用构架模式与框架来创建健壮的构架;
重点讲述层次模式,深入探讨应用层次模式来帮助开发系统初始的构架层
软件构架分析
分析抽象概念在构架分析中的作用;介绍如何使用分析模式、GRASP模式来精化实体模型;
讲解如何开发系统的界面导航图来框定系统的主体功能行为;
阐述构架机制的概念,深入说明分析机制,讲解如何使用分析机制来修饰分析类之设计约束;
介绍新的代码注释技术,讲解如何使用ejb3.0的annotation来修饰设计约束(分析机制特征),并利用已有框架直接进入实现
第三阶段:
构架(逻辑)设计
软件构架(逻辑)设计
阐述软件构架设计所面临的挑战,说明构架设计的质量目标:可维护性、可扩展性、可重用性、互操作性等;讲解构架设计相关的一些原则;
选择构架级技术方案的指南,讲解如何针对系统特征来确定构架级技术方案;
介绍SEI-ATAM构架折衷分析方法;并讲解构架设计如何反作用于系统行为;
阐述设计模型的组织结构,说明如何进行构架级的分包,以及划分子系统、定义接口等;
AOP面向方面的软件开发技术;讲解如何使用AOP来实现为灵活的设计机制;
面向对象设计原则与模式
讲解面向对象设计中的重要的原则,包括类的设计原则和包的设计原则;
结合实例阐述在实际设计,特别是构架设计中,应用设计原则的方法、途径;说明保持平台相关的细节和应用的分离,如何应用封装,抽象(abstraction)和委派(delegation)的原则等;
阐述软件构造中的冗余,说明在构架设计中如何识别和利用复用机会;结构上的去冗余途径,
探讨元数据驱动技术在产品二次开发上的应用策略;
J2EE/Java
Lite与dot.Net构架框架、以及基于服务的构架SOA
系统地阐述业务密集型软件系统的主流分层构架设计途径:从表示层设计、应用控制逻辑设计、到业务逻辑层的工作流设计、以及业务服务构件设计,终到数据访问层设计等;
介绍当前业务软件主流构架应用框架以及中间件体系,包括:
J2EE重量级方案(以J2EE核心构架模式为主)
Java
Lite轻量级方案(围绕Struts+Spring+Hibernate)
dot.Net方案(以微软的核心构架模式为主)
阐述SOA构架设计方案,说明SOA是一种独立性强、依赖性弱,具有更优良的可复用性的基于构件CBD的构架开发方案;介绍实现SOA的常用技术:Web
Services;
介绍基于SOA的JBoss构架实例;
第四阶段:
构架(物理)设计与团队协作
软件构架(物理)设计
阐述源码的并行开发管理,进而讲解构件视图(实施模型)的概念;
阐述软件系统中的并发需求,进而讲解进程视图的概念(即通常说的物理设计视图);
阐述软件系统中的分布需求,进而讲解部署视图的概念(即通常说的物理设计视图);
软件构架(数据)设计与对象持久化
讲解对业务密集系统意义重大的数据库设计与数据建模;
阐述对象持久化的概念,描述持久化机制,包括对应的分析、设计和实施等机制;
阐述Object-Relationship
Mapping对象关系映射的概念,结合实例说明实现对象关系映射的途径和方法,并给出基于Hibernate或ejb3.0的持久化实现;
数据访问模式,例如在线访问、Data
Access Object、Data
Transfer Object、离线数据模式等
软件构架文档与构架质量评估
进一步深入阐述4+1视图的概念,讲解RUP的软件构架文档;
说明软件构架文档的内容,并给出编写软件构架文档,和用它来指导目标系统开发的指南;
说明构架设计流程中,解决方案的构思、概念设计的创建、逻辑设计的创建、物理设计的创建等如何对应到RUP的4+1视图;
项目开发目录结构配置管理
讲解如何定义项目开发目录结构,以支持团队的协作开发;
讲解如何使用配置管理工具来支持项目开发目录结构的共享使用;
说明目录结构的设计原则和方法;