第一階段:
構架全景視圖——核心開發過程
項目展示
展示以往成功實施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視圖;
項目開發目錄結構配置管理
講解如何定義項目開發目錄結構,以支持團隊的協作開發;
講解如何使用配置管理工具來支持項目開發目錄結構的共享使用;
說明目錄結構的設計原則和方法;