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