第一階段:
構架(jia)全景視圖——核心開發過程(cheng)
項目展示
展示以往成(cheng)功實施UML&OOAD與UP的項目實例
以構(gou)架為中(zhong)心(xin)的(de)開發(fa)過(guo)程(cheng)——UP統一軟(ruan)件過程
全(quan)面說明UP統一(yi)軟件過程的(de)內容,包括(kuo)角色,工件,和活動(業務(wu)、需(xu)求等九大科(ke)目);
講解(jie)軟件開發所經歷的從(cong)業(ye)務建(jian)(jian)模(mo)(領域(yu)建(jian)(jian)模(mo))、到需(xu)求建(jian)(jian)模(mo)(用例(li)建(jian)(jian)模(mo))、進而(er)到架、建(jian)(jian)模(mo)、行為(wei)(應用)建(jian)(jian)模(mo)、數據建(jian)(jian)模(mo),后到測試建(jian)(jian)模(mo)的整個(ge)過程(cheng)
闡述迭代(dai)模(mo)型,詳細(xi)講解RUP的(de)先啟階段(duan)和精化階段(duan)的(de)迭代內容
對比(bi)RUP重(zhong)量級過(guo)程與輕(qing)量級過(guo)程XP、Agile
Process的(de)差別,以(yi)及各自的(de)適用范圍
講解UML
9種圖形及應用
用例(li)驅動(dong)的需求開發
對比用(yong)例(li)方法(fa)與傳統需(xu)求開發方法(fa)的(de)優劣;用(yong)例(li)模型在(zai)表(biao)達(da)功能需(xu)求中的(de)核心作用(yong);
解(jie)釋收集(ji)信息的過程,解(jie)釋作用域專家的角色
寫一個明確的(de)problem
statements
確定建設(she)和維護數據字(zi)典(dian)的(de)重要性
闡釋(shi)如何正確使用(yong)用(yong)例技術來捕獲客戶(hu)的(de)功能(neng)需求;
需(xu)求建模實驗
通過(guo)一個簡化的項目實例(li),講解如何建立需求(用例(li))模型;針對(dui)選定的項目實例(li),指導學員(yuan)使(shi)用文檔、活動圖/序列(lie)圖等途徑詳述系統用例的(de)規格
面(mian)向對(dui)象分析
闡述從分析模型(xing)(xing)到(dao)設計模型(xing)(xing),終(zhong)到(dao)實施模型(xing)(xing)的(de)整個演(yan)化(hua)過程;
講解(jie)分(fen)析類(lei)的概(gai)念(nian),說明邊界類(lei)、實體類(lei)和控制類(lei)的劃(hua)分(fen)與職責(ze)分(fen)配方(fang)法
講解如何從(cong)用(yong)(yong)例行為中識別(bie)分析類(lei),并將(jiang)相(xiang)關行為向分析類(lei)進行職責分配(pei);說明使用(yong)(yong)序(xu)列圖與協(xie)作(zuo)圖來(lai)幫(bang)助(zhu)用(yong)(yong)例分析的途徑(jing);
說明如何在較(jiao)大規模的系統中(zhong),將眾(zhong)多的分析類組(zu)織成分析包和(he)服務包
面(mian)向(xiang)對象分(fen)析實(shi)驗
依(yi)照項目實例已建(jian)立的(de)(de)需(xu)求(qiu)模(mo)型,講(jiang)解進(jin)行用(yong)(yong)例分(fen)析的(de)(de)過程(cheng);針對選定的(de)(de)項目實例,識別分(fen)析類,使用(yong)(yong)序(xu)列圖(tu)或協作(zuo)圖(tu)來(lai)描述基(ji)于這些分(fen)析類來(lai)實現用(yong)(yong)例行為(wei)所代表的(de)(de)系統(tong)功能需(xu)求(qiu);
第二階段:
構架分析
軟件構架導論
闡(chan)述(shu)軟(ruan)件構(gou)架是什(shen)么(me),講解為什(shen)么(me)需要軟(ruan)件構(gou)架,闡(chan)述(shu)構(gou)架基線(xian)的概念;
介紹(shao)迭代開發(fa)各個(ge)階段(duan)需要解(jie)決的(de)各類關鍵(jian)風險,分析構架基(ji)線是如何(he)規避項目開發(fa)風險的(de)
回顧(gu)RUP的分(fen)析設計過程(cheng),說明構架分(fen)析、設計在(zai)其中的關鍵位置;
介紹構架設計的相關(guan)理論(lun)(元(yuan)模型體(ti)系(xi)),以及業界主流的構架體(ti)系(xi)模型
構架風格與模式
闡述構架風(feng)格的概念,介紹(shao)常見的相關構架風(feng)格;
講解構(gou)架模式和(he)框(kuang)架,以及如(ru)何應(ying)用構(gou)架模式與框(kuang)架來(lai)創建(jian)健壯(zhuang)的構(gou)架;
重點講述層(ceng)次(ci)模(mo)式,深入探討應用層(ceng)次(ci)模(mo)式來(lai)幫助開(kai)發系統初始(shi)的構架(jia)層(ceng)
軟件構架分析
分(fen)(fen)析(xi)抽象概念在(zai)構架分(fen)(fen)析(xi)中的作用;介紹(shao)如何使用分(fen)(fen)析(xi)模式、GRASP模式(shi)來精(jing)化實體模型(xing);
講解如何開發系統的界面導航圖來框定系統的主體功能行為;
闡述(shu)構架(jia)機制(zhi)的(de)概念,深入說明分(fen)析(xi)機制(zhi),講解如何使用分(fen)析(xi)機制(zhi)來修(xiu)飾(shi)分(fen)析(xi)類之(zhi)設計(ji)約束;
介紹新(xin)的代碼(ma)注(zhu)釋技術,講解如何使用(yong)ejb3.0的annotation來(lai)修飾(shi)設(she)計約束(分析(xi)機制特(te)征),并利(li)用已有框(kuang)架直接進(jin)入實現
第三階段:
構架(邏輯)設(she)計
軟件構架(邏輯)設計
闡述軟(ruan)件構架設(she)計(ji)所面(mian)臨的挑戰,說明構架設(she)計(ji)的質量目標:可維護性(xing)(xing)、可擴展性(xing)(xing)、可重用性(xing)(xing)、互操作性(xing)(xing)等;講解構架設(she)計(ji)相關的一(yi)些原則;
選擇構(gou)架(jia)級技術(shu)方案的指(zhi)南,講解如何(he)針對系統特征來確定構(gou)架(jia)級技術(shu)方案;
介紹SEI-ATAM構架(jia)折衷分析方法;并講解構架(jia)設(she)計(ji)如何反(fan)作用于系統行(xing)為(wei);
闡述(shu)設(she)計模型的組(zu)織結構(gou),說明如何進(jin)行構(gou)架級的分(fen)包,以及(ji)劃(hua)分(fen)子系統、定義接(jie)口(kou)等;
AOP面向(xiang)方面的軟件(jian)開發技術(shu);講解(jie)如何使用AOP來實現為靈活的設計機制;
面向對象設計原則與模式
講解面向(xiang)對(dui)象設計(ji)中的(de)重要的(de)原(yuan)則(ze),包括(kuo)類的(de)設計(ji)原(yuan)則(ze)和包的(de)設計(ji)原(yuan)則(ze);
結(jie)合實例闡述在(zai)實際(ji)設計(ji),特別是構架設計(ji)中,應(ying)用設計(ji)原則的(de)(de)方法、途徑;說明保(bao)持平臺相關的(de)(de)細節和應(ying)用的(de)(de)分離,如何應(ying)用封裝,抽象(abstraction)和委派(delegation)的原(yuan)則等;
闡述軟件構造中(zhong)的(de)冗(rong)余,說(shuo)明(ming)在(zai)構架設計中(zhong)如何識別和利(li)用復(fu)用機會(hui);結構上的(de)去(qu)冗(rong)余途徑,
探討元(yuan)數據驅動技術在(zai)產品(pin)二(er)次開發上的應(ying)用策(ce)略(lve);
J2EE/Java
Lite與dot.Net構(gou)架框架、以及基于(yu)服務的(de)構(gou)架SOA
系統(tong)地闡(chan)述業務密集型(xing)軟件系統(tong)的主流分層(ceng)(ceng)構架設(she)(she)(she)計(ji)途徑:從表示層(ceng)(ceng)設(she)(she)(she)計(ji)、應(ying)用控制(zhi)邏(luo)(luo)輯(ji)設(she)(she)(she)計(ji)、到業務邏(luo)(luo)輯(ji)層(ceng)(ceng)的工作流設(she)(she)(she)計(ji)、以及業務服務構件設(she)(she)(she)計(ji),終到數(shu)據(ju)訪問層(ceng)(ceng)設(she)(she)(she)計(ji)等;
介紹當前業務軟件(jian)主流構架應(ying)用框架以及中間件(jian)體系,包括:
J2EE重量級方案(以(yi)J2EE核心構架模(mo)式為主)
Java
Lite輕量級方案(圍繞(rao)Struts+Spring+Hibernate)
dot.Net方案(以(yi)微軟的(de)核心構(gou)架模式為(wei)主)
闡述SOA構架(jia)設計方案,說明(ming)SOA是一種獨立性強、依賴性弱(ruo),具有更(geng)優良的(de)可復用性的(de)基于(yu)構件CBD的構(gou)架開發方案(an);介紹實現SOA的常用技(ji)術:Web
Services;
介紹基(ji)于(yu)SOA的JBoss構架實例(li);
第四階段:
構(gou)架(物理(li))設計與(yu)團隊協(xie)作(zuo)
軟件構架(jia)(物理)設計
闡述源碼的并(bing)行(xing)開發管(guan)理,進而講(jiang)解構件視圖(實施(shi)模型)的概(gai)念;
闡述軟件系統中的(de)并(bing)發(fa)需(xu)求,進而講解進程視(shi)(shi)圖的(de)概(gai)念(即通常說(shuo)的(de)物理設計視(shi)(shi)圖);
闡述軟件系(xi)統(tong)中的(de)分布需求,進而講解部(bu)署視(shi)圖的(de)概念(即通常說(shuo)的(de)物理設計視(shi)圖);
軟件構架(數據)設計與對象持久化(hua)
講解對業務密集系統意義(yi)重大的(de)數據(ju)庫(ku)設計與數據(ju)建模;
闡述(shu)對象(xiang)持(chi)久(jiu)化的概念(nian),描述(shu)持(chi)久(jiu)化機制,包括對應的分析、設計和實施(shi)等(deng)機制;
闡述Object-Relationship
Mapping對(dui)象關系映(ying)射(she)(she)的概念,結合實(shi)例說明實(shi)現對(dui)象關系映(ying)射(she)(she)的途(tu)徑和(he)方法,并給出(chu)基于(yu)Hibernate或ejb3.0的持久化實現;
數據訪問模式(shi),例如在線訪問、Data
Access Object、Data
Transfer Object、離線數據模(mo)式等
軟件構架文檔與(yu)構架質(zhi)量評估(gu)
進一步深(shen)入(ru)闡述4+1視圖(tu)的(de)概念,講解RUP的軟件(jian)構(gou)架文檔;
說明軟件(jian)構(gou)(gou)架文檔(dang)的內容,并給(gei)出編(bian)寫軟件(jian)構(gou)(gou)架文檔(dang),和(he)用(yong)它來指(zhi)導目(mu)標系統開發的指(zhi)南;
說明構架設計流程中,解決方案的(de)構思、概念(nian)設計的(de)創建、邏(luo)輯設計的(de)創建、物理設計的(de)創建等(deng)如何(he)對應(ying)到RUP的4+1視(shi)圖(tu);
項目開(kai)發目錄(lu)結構配(pei)置管理
講解(jie)如(ru)何定義項目開(kai)發目錄(lu)結構,以(yi)支持團隊(dui)的協作開(kai)發;
講解如(ru)何使用配置(zhi)管(guan)理工(gong)具來(lai)支持項(xiang)目開發目錄結構的共享使用;
說明目錄(lu)結構的(de)設計(ji)原則和方(fang)法;