UML技術(shù)等五種實(shí)現(xiàn)面向?qū)ο蟮能浖_發(fā)方法解析
上節(jié)我們介紹了UML技術(shù)的一些基礎(chǔ)知識(shí),本節(jié)向大家介紹一下幾種常用的面向?qū)ο蟮能浖_發(fā)方法,主要從五個(gè)方面來介紹,相信通過本節(jié)的學(xué)習(xí)大家對(duì)UML技術(shù)有深一步的理解,下面讓我們一起來學(xué)習(xí)這幾種方法吧。
可視化建模的一個(gè)重要問題是用哪種圖形標(biāo)注方法表示系統(tǒng)的各個(gè)方面。隨著面向?qū)ο蠹夹g(shù)的發(fā)展,出現(xiàn)了幾十種面向?qū)ο蟮能浖_發(fā)方法。其中,Booch、OMT、和OOSE以及較早的Coad/Yourdon(OOA/OOD)方法在面向?qū)ο筌浖_發(fā)界得到了廣泛的認(rèn)可。前三種方法也是UML技術(shù)的直接來源,它們各有特點(diǎn),適合于不同的領(lǐng)域。盡管UML統(tǒng)一了面向?qū)ο蠓椒ǖ膱D形標(biāo)注體系,但是這些方法仍然具有重要的指導(dǎo)作用,在實(shí)際開發(fā)過程中我們可以綜合考慮這幾種方法來進(jìn)行建模。下面將分別介紹這幾種方法的主要思想:
2.4.1Booch方法
Booch方法是GradyBooch從1983年開始研究,1991年后走向成熟的一種方法。Booch方法區(qū)分系統(tǒng)的邏輯和物理結(jié)構(gòu)并描述這兩種結(jié)構(gòu)的靜態(tài)和動(dòng)態(tài)語義。Booch方法被區(qū)分為微觀和宏觀的過程。[3]
微觀開發(fā)過程代表開發(fā)者或開發(fā)小組的日?;顒?dòng),包含以下任務(wù):
在一定抽象層次上表示類和對(duì)象,發(fā)現(xiàn)問題域中的類和對(duì)象,確定對(duì)象需要哪些行為來完成某些功能。
標(biāo)識(shí)類與對(duì)象的語義,目標(biāo)是建立前一階段抽取出來的類的狀態(tài)和行為。
標(biāo)識(shí)類與對(duì)象的聯(lián)系,確定每一個(gè)類對(duì)象的邊界,區(qū)分相互協(xié)作的類對(duì)象,主要用類圖來表達(dá)。
實(shí)現(xiàn)類與對(duì)象,選擇算法和數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)對(duì)象的語義。
宏觀開發(fā)過程是微觀開發(fā)過程的控制框架,這個(gè)更廣的過程確定一些相應(yīng)的成果和活動(dòng),以幫助開發(fā)小組進(jìn)行有效的風(fēng)險(xiǎn)評(píng)價(jià)以及早對(duì)開發(fā)過程進(jìn)行修改。宏觀過程側(cè)重風(fēng)險(xiǎn)和結(jié)構(gòu)方面,對(duì)日程、結(jié)構(gòu)和完整性最為重要,它包含以下階段:
概念化,建立需求。概念化試圖建立系統(tǒng)得核心需求,這是一個(gè)非常具有創(chuàng)造性的過程,所以沒有嚴(yán)格的開發(fā)規(guī)則可循。原型是這項(xiàng)活動(dòng)的基本產(chǎn)品。
分析,開發(fā)所需要行為的模型:分析的目的是通過區(qū)分類和對(duì)象為現(xiàn)實(shí)世界建模,而這些類和對(duì)象來自于問題域的詞匯。這個(gè)階段強(qiáng)調(diào)系統(tǒng)的行為,通過關(guān)注系統(tǒng)的行為,可以區(qū)分出系統(tǒng)的功能點(diǎn),并以此來標(biāo)識(shí)系統(tǒng)外不可見的和可測(cè)試的行為。
設(shè)計(jì),開發(fā)系統(tǒng)的體系結(jié)構(gòu):將產(chǎn)生一個(gè)用于將來實(shí)現(xiàn)的體系結(jié)構(gòu)。
演化,精化設(shè)計(jì)階段的實(shí)現(xiàn):演化的目的是不斷增加和改變實(shí)現(xiàn),直到系統(tǒng)作為一個(gè)產(chǎn)品問世。
維護(hù),進(jìn)行交付使用后的改進(jìn):這個(gè)過程主要是演化階段的繼續(xù),但現(xiàn)在很多對(duì)系統(tǒng)的改變是作為新的需求備加進(jìn)來以及修正系統(tǒng)中的Bug。
Booch方法是UML技術(shù)的主要來源,其面向?qū)ο蟮母拍钍重S富。主要概念有:類、對(duì)象、繼承、元類、消息、域、操作、機(jī)制、模塊、子系統(tǒng)、進(jìn)程等;其模型主要包括:邏輯靜態(tài)視圖(類圖、對(duì)象圖),邏輯動(dòng)態(tài)視圖(順序圖、狀態(tài)圖),物理靜態(tài)視圖(模塊圖、進(jìn)程圖)以及物理動(dòng)態(tài)視圖。
Booch方法的優(yōu)點(diǎn)在它在項(xiàng)目的設(shè)計(jì)和構(gòu)造階段的表達(dá)能力特別強(qiáng),其迭代和增量的思想也是大型軟件開發(fā)中的重要思想。這種方法比較適合系統(tǒng)設(shè)計(jì)和構(gòu)造。
2.4.2OMT方法
OMT(ObjectModelingTechnique)方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾擴(kuò)展應(yīng)用于關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)。Rumbaugh在1991年正式把OMT應(yīng)用于面向?qū)ο蟮姆治龊驮O(shè)計(jì)。這個(gè)方法是在實(shí)體—關(guān)系模型上擴(kuò)展了類、繼承和行為而得到的。
OMT方法從三個(gè)視角描述系統(tǒng),相應(yīng)地提供了三種模型:
對(duì)象模型:描述對(duì)象的靜態(tài)結(jié)構(gòu)和它們之間的關(guān)系,主要的概念包括:類、屬性、操作、繼承、關(guān)聯(lián)、聚集;
動(dòng)態(tài)模型:描述系統(tǒng)那些隨時(shí)間變化的方面,其主要概念有:狀態(tài)、子狀態(tài)和超狀態(tài)、事件、行為、活動(dòng);
功能模型:描述系統(tǒng)內(nèi)部數(shù)據(jù)值的轉(zhuǎn)換,其主要概念有:加工、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流、控制流、角色。
該方法將開發(fā)過程分為四個(gè)階段:分析、系統(tǒng)設(shè)計(jì)、對(duì)象設(shè)計(jì)、實(shí)現(xiàn)。
OMT的來源也決定了它在分析數(shù)據(jù)密集型信息系統(tǒng)時(shí)具有很大優(yōu)勢(shì),是MIS系統(tǒng)建模常用的方法之一。
2.4.3OOSE方法
OOSE(Object-OrientedSoftwareEngineering)是IvarJacobson在1992年提出的一種面向?qū)ο箝_發(fā)方法,以其“用例”驅(qū)動(dòng)(UseCaseDriven)的思想而著稱。
OOSE方法與上述兩種方法有所不同,它涉及到整個(gè)軟件生命周期,包括需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試四個(gè)階段。
該方法中的一個(gè)關(guān)鍵概念就是“用例”。用例是指行為相關(guān)的事物序列,該序列將由用戶在與系統(tǒng)對(duì)話中執(zhí)行。因此,每一個(gè)用例就是一個(gè)外界使用系統(tǒng)的方式,當(dāng)用戶給定一個(gè)輸入,就執(zhí)行一個(gè)用例的實(shí)例并引發(fā)執(zhí)行屬于該用例的一個(gè)事務(wù)。基于這種系統(tǒng)視圖,Jacobson將用例模型與其它五種系統(tǒng)模型相關(guān)聯(lián):需求模型、分析模型、設(shè)計(jì)模型、實(shí)現(xiàn)模型、測(cè)試模型。
OOSE對(duì)以用例作為一種途徑來驅(qū)動(dòng)需求捕獲、分析和高層設(shè)計(jì)提供了極好的支持。使用用例捕獲需求是OOSE對(duì)傳統(tǒng)面向?qū)ο蠼7椒ǖ暮芎玫难a(bǔ)充。這種方法比較適合商業(yè)工程和需求分析。
2.4.4Coad|Yourdon方法
PeterCoad和EdwardYourdon的方法嚴(yán)格區(qū)分了面向?qū)ο蠓治觯∣OA)和面向?qū)ο笤O(shè)計(jì)(OOD)。
在分析階段,該方法用五個(gè)層次及相關(guān)活動(dòng)定義并記錄系統(tǒng)行為,以及系統(tǒng)的輸入和輸出。這五個(gè)層次及活動(dòng)如表所示:
表1-1Coad/Yourdon方法中的OOA層次模型
經(jīng)過五個(gè)層次的活動(dòng)后,分析結(jié)果是一個(gè)分成五個(gè)層次的問題域模型,包括主題、類及對(duì)象、結(jié)構(gòu)、屬性和服務(wù)五個(gè)層次,由類及對(duì)象圖表示。五個(gè)層次活動(dòng)的順序并不重要。在設(shè)計(jì)階段,OOD模型是OOA模型的擴(kuò)展。OOD模型同樣包括OOA模型的五個(gè)層次,但同時(shí)又引進(jìn)了四個(gè)部分:?jiǎn)栴}域部分(PDC):面向?qū)ο蠓治龅慕Y(jié)果直接放入該部分。人機(jī)交互部分(HIC):包括對(duì)用戶分類、描述人機(jī)交互的腳本、設(shè)計(jì)命令層次結(jié)構(gòu)、設(shè)計(jì)詳細(xì)的交互、生成用戶界面的原型、定義HIC類等。任務(wù)管理部分(TMC):識(shí)別任務(wù)(進(jìn)程)、任務(wù)所提供的服務(wù)、任務(wù)的優(yōu)先級(jí)、進(jìn)程的驅(qū)動(dòng)模式,以及任務(wù)與其它進(jìn)程和外界如何通信等。數(shù)據(jù)管理部分(DMC):確定數(shù)據(jù)存儲(chǔ)模式,如使用文件系統(tǒng)、關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)還是面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)等。Coad/Yourdon方法強(qiáng)調(diào)技術(shù)獨(dú)立性,從而實(shí)現(xiàn)了包括OOA/OOD本身在內(nèi)的可復(fù)用性。例如,當(dāng)一個(gè)給定的應(yīng)用系統(tǒng)從圖形用戶界面(GUI)升級(jí)到聲音響應(yīng)接口時(shí),只需替換其中的人機(jī)交互部分,其他部分均無需改動(dòng),因?yàn)橛脩艚缑婕夹g(shù)的改變對(duì)系統(tǒng)的其他部分是透明的。
該方法簡(jiǎn)單、易學(xué),適合于面向?qū)ο蠹夹g(shù)的初學(xué)者使用,但由于該方法在處理能力方面的局限,目前已很少使用。
概括起來,首先,面對(duì)眾多的建模語言,用戶由于沒有能力區(qū)別不同語言之間的差別,因此很難找到一種比較適合其應(yīng)用特點(diǎn)的語言;其次眾多的建模語言實(shí)際上各有千秋;第三,雖然不同的建模語言大多數(shù)雷同,但仍有細(xì)微差別,極大地妨礙了用戶之間的交流。因此,統(tǒng)一建模語言勢(shì)在必行。
統(tǒng)一建模語言UML是由Rational公司的知名專家GradyBooch、JimRumbaugh和IvarJacobson三人聯(lián)合開發(fā)的第三代面向?qū)ο蟮慕UZ言。UML技術(shù)采納和擴(kuò)展了Booch標(biāo)記法、OMT標(biāo)記法和OOSE標(biāo)記法,并包容了其他學(xué)者和軟件廠商的建議,適用于上述三種面向?qū)ο蠓椒ɑ蚱渌梅ǖ挠脩?。?duì)象管理組織(OMG)采納UML作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言.
2.4.5UML方法
UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。UML包括概念的語義,表示法和說明,提供了靜態(tài)、動(dòng)態(tài)、系統(tǒng)環(huán)境及組織結(jié)構(gòu)的模型。它可被交互的可視化建模工具所支持,這些工具提供了代碼生成器和報(bào)表生成器。以將UML模型轉(zhuǎn)換為多種程序設(shè)計(jì)語言代碼,如:可生成XMLDTD代碼,JAVA代碼等,或使用反向生成器工具將程序源代碼轉(zhuǎn)換為UML。它是為支持大部分現(xiàn)存的面向?qū)ο箝_發(fā)過程而設(shè)計(jì)的。總之,UML是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。
任何建模語言都以靜態(tài)建模機(jī)制為基礎(chǔ),UML也不例外。UML技術(shù)采用用例圖、類圖、包圖、對(duì)象圖、構(gòu)件圖和配置圖來建立系統(tǒng)的靜態(tài)模型,屬于靜態(tài)建模機(jī)制;狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖被用來建立系統(tǒng)的動(dòng)態(tài)模型,屬于動(dòng)態(tài)建模機(jī)制。在論文中主要采用類圖、活動(dòng)圖、順序圖相結(jié)合建立對(duì)象模型。類圖用于表示系統(tǒng)中的類與類之間的聯(lián)系,活動(dòng)圖描述領(lǐng)域業(yè)務(wù)流程,順序圖描述對(duì)象間交互動(dòng)作的時(shí)序特性。
可視化建模將模型中的信息用標(biāo)準(zhǔn)圖形元素直觀地表示??梢暬5囊粋€(gè)重要問題是用哪種圖形標(biāo)注方法表示系統(tǒng)的各個(gè)方面。最常用的方法有Booch,對(duì)象建模技術(shù)(OMT)和統(tǒng)一建模語言(UML)。
Booch方法是按其***GradyBooch命名的,他是Rational軟件公司的***科學(xué)家。他開發(fā)了表示模型各個(gè)細(xì)節(jié)的圖注方法。
OMT(對(duì)象建模技術(shù))圖注方法來自JamesRumbaugh博士,OMT使用比Booch更簡(jiǎn)單的圖形表示系統(tǒng)。
UML由面向?qū)ο蠓椒I(lǐng)域的三位著名學(xué)者JamesRumbaugh、GradyBooch和IvarJacobson提出,總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果,并結(jié)合其他眾多的優(yōu)秀的軟件方法和思想演變而成。UML于1997年被國(guó)際對(duì)象管理組織(ObjectManagementGroup,OMG)接受,發(fā)布了UML的標(biāo)準(zhǔn)版。如今,UML已經(jīng)成為公認(rèn)的***的分析和設(shè)計(jì)面向?qū)ο筌浖臉?biāo)準(zhǔn)建模語言。
幾年來,UML技術(shù)不斷演變,加進(jìn)了基于Web的系統(tǒng)、數(shù)據(jù)模型等新思想。
【編輯推薦】