前言
成功地運用J2EE構建企業應用的關鍵和所有復雜的軟件平臺是一樣的:有效的需求溝通、制定正確的分析和設計決定,并且識別最佳的實現選擇。
追求最佳可視化模型的公司可以更快地開發它們的軟件,并且建立更高質量的系統。Unified Modeling Language (UML)就是可視模型化的軟件工業標準。
在這里,我們將向你介紹如何運用UML和Rational Rose 2001a,它是現今最流行的基于UML的軟件模型化和開發工具,可用于開發基于J2EE的企業應用。
什么是UML?
Unified Modeling Language (UML),是始于1997年一個OMG標準,它是一個支持模型化和軟件系統開發的圖形化語言,為軟件開發的所有階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。
使用UML作可視化模型主要是為了了解系統的重要細節,以便項目的需求可以清晰地表達、開發出解決方案體系、并且一個選擇的實現可以清晰地標識和構造。為達到這個目的,需要豐富的符號來表達模型化的軟件系統。UML不但為基本的構造塊提供了符號表示,它還提供了方法來表達基本構造塊之間的復雜關系。這些關系都以UML框圖的形式表示出來。
以下就讓我們來看一下UML和Rational Rose是如何有助于理解、設計和實現J2EE應用的。
理解需求
項目失敗的原因通常是由于需求沒有很好地理解或者進行溝通。我們也可以很容易地理解,無論是口頭或者書面的語言,都是不嚴密的。
你可以應用UML用例模型來開發一個精確的模型來表示系統的需求,然后以這些用例為基礎來推動系統開發的其它方面。用例的作用就好象是項鏈上的一條線,它將所有的珍珠綁定在一起。用例在最終的用戶和系統需求之間建立起一座橋。它們可用來在功能需求和系統實現本身之間進行回溯。用例也可以作為一個連接點,連接到一個詳細的說明需求細節的用例文檔。
圖1展示了一個在線CD商店的部分用例框圖,它們是從文本和口頭的功能需求中提取出來,然后轉為用例。在這個例子中,很明顯購買者(由幾條線條組成的人物,表示為UML中的角色)可以通過4種方式來使用系統(在UML中以橢圓表示一個用例)。
***********圖1********
一個簡單的用例圖
每個用例則通過順序框圖中的一個或者多個場景來精確描述。當然,在需求捕捉和分析的早期階段,順序圖是相對簡單,而且也可能是不完整的。順序圖的這樣一個例子如圖2所示。在Rational Rose中,要為某個用例創建順序圖,你可以在瀏覽器中選擇它,然后從用例的菜單中選擇New>Sequence Diagram。
***********圖2************
一個解釋付費用例的順序圖
概述
在這個面向對象應用程序開發不斷變化的時代,在合理時間內開發和管理高質量應用程序變得越來越困難。為了面對這種挑戰,制定出每個公司都能使用的通用對象模型語言,統一建模語言(UML)。UML是信息技術行業的藍圖,是詳細描述系統結構的方法。利用這個藍圖,我們越來越容易建立和維護系統,保證系統能適應需求的改變。一個系統的模型建得好,就為滿足用戶需求、保證系統的穩定性和質量、提高系統的擴展性打下了良好的基礎。ROSE是用UML快速開發應用程序的工具之一,它是一個面向對象的建模工具。
UML統一建模語言
UML,Unified Modeling Language,統一建模語言,是一種面向對象的建模語言,它的主要作用是幫助我們對軟件系統進行面向對象的描述和建模,它可以描述這個軟件開發過程從需求分析直到實現和測試的全過程。UML通過建立各種類、類之間的關聯、類/對象怎樣相互配合實現系統的動態行為等成分(這些都稱為模型元素)來組建整個模型,刻畫客觀世界。UML提供了各種圖形,比如Use Case圖、類圖、順序圖、協作圖、狀態圖等,來把這些模型元素及其關系可視化,讓人們可以清楚容易的理解模型。我們可以從多個視角來考察模型,從而更加全面的了解模型,這樣同一個模型元素可能會出現在多個圖中,對應多個圖形元素。
由視圖view,圖diagram,模型元素model element和通用機制general mechanism等幾個部分組成 .視圖是表達系統的某一方面特征的UML建模元素的子集,由多個圖構成,是在某一個抽象層上,對系統的抽象表示.圖是模型元素集的圖形表示,通常為弧(關系)和頂點(其他模型元素)相互連接構成的.模型元素代表面向對象中的類、對象、消息和關系等概念,是構成圖的最基本的常用概念.通用機制用于表示其它信息,比如注釋、模型元素的語義等。另外,它還提供擴展機制,使UML語言能夠適應一個特殊的方法(或過程),或擴充至一個組織或用戶.
UML是用來描述模型的,用模型來描述系統的結構或靜態特征,以及行為或動態特征。從不同的視角為系統的構架建模,形成系統的不同視圖(VIEW)。
用例視圖(use case view),強調從用戶的角度看到的或需要的系統功能,是被稱為參與者的外部用戶所能觀察到的系統功能的模型圖;
邏輯視圖(logical view),展現系統的靜態或結構組成及特征,也稱為結構模型視圖(structural model view)或靜態視圖(static view);
并發視圖(concurrent view),體現了系統的動態或行為特征,也稱為行為模型視圖(behavioral model view)、動態視圖(dynamic view);
組件視圖(component view),體現了系統實現的結構和行為特征,也稱為實現模型視圖(implementation model view) ;
配置視圖(deployment view),體現了系統實現環境的結構和行為特征,也稱為環境模型視圖(environment model view)或物理視圖(physical view)。
建模工具Rose 之游
ROSE是美國Rational公司的面向對象建模工具,利用這個工具,我們可以建立用UML描述的軟件系統的模型,而且可以自動生成和維護C++、Java、VB、Oracle等語言和系統的代碼。
ROSE是個菜單驅動應用程序,用工具欄幫助使用常用特性。它的界面分為三個部分--Browser窗口、Diagram窗口和Document窗口。Browser窗口用來瀏覽、創建、刪除和修改模型中的模型元素;Diagram窗口用來顯示和創作模型的各種圖;而Document窗口則是用來顯示和書寫各個模型元素的文檔注釋。
Rose界面
Rose模型的四個視圖是Use Case視圖 、Logical視圖、Component視圖和Deployment視圖。每個視圖針對不同對象,具有不同用途。Use Case視圖包括系統中的所有角色、案例和Use Case圖,還包括一些Sequence圖和Collaboration圖。
Use Case視圖
Logical視圖關注系統如何實現使用案例中提到的功能。它提供系統的詳細圖形,描述組件間如何關聯。除其它內容之外,Logical視圖還包括需要的特定類、Class圖和State Transition 圖。利用這些細節元素,開發人員可以構造系統的詳細設計。
Logical視圖
Component視圖包括模型代碼庫、執行庫和其它組件的信息。組件是代碼的實際模塊。Component視圖的主要用戶是負責控制代碼和編譯部署應用程序的人。有些組件是代碼庫,有些組件是運行組件,如執行文件或動態鏈接庫(DLL)文件。
Collaboration圖關注系統的部署,可能與系統的邏輯結構不同。整個小組都用Collaboration圖了解系統部署,但用戶是發布應用程序的人員。
Rose的九種圖
用例圖use case diagram,描述系統功能
類圖class diagram,描述系統的靜態結構
對象圖object diagram,描述系統在某個時刻的靜態結構
序列圖sequence diagram,按時間順序描述系統元素間的交互
協作圖Collaboration diagram,按照時間和空間順序描述系統元素間的交互和它們之間的關系
狀態圖state diagram,描述了系統元素的狀態條件和響應
活動圖activity diagram,描述了系統元素的活動
組件圖component diagram,描述了實現系統的元素的組織
配置圖deployment diagram,描述了環境元素的配置,并把實現系統的元素映射到配置上
根據它們在不同架構視圖的應用,可以把9種圖分成:
用戶模型視圖:用例圖
結構模型視圖:類圖、對象圖
行為模型視圖:序列圖、協作圖、狀態圖、活動圖(動態圖)
實現模型視圖:組件圖
環境模型視圖:配置圖