摘要:在系統開發(fā)過程中,建模是最核心的工作。建模的過程可以對系統進行可視化的控制,其目的是為了更好的理解、分析、設計和實現所構造的系統。 本文介紹了UML的內容,闡述了RUP的主要內容并探討了一種面向對象建模方法
關鍵詞:UML;RUP;建模語言;軟件開發(fā)過程;建模方法
中圖分類號:ITP391文獻標識碼:A
在系統開發(fā)過程中,建模是最核心的工作。建模的過程可以對系統進行可視化的控制,其目的是為了更好的理解、分析、設計和實現所構造的系統。本文就面向對象軟件開發(fā)方法中的核心-面向對象的建模方法進行了探討。
1 統一建模語言UML概述
統一建模語言UML(Unified Modeling Language)是由單一元模型支持的一組圖示法,它給出了一套用于建模的元素及其表示符號并定義了它們的語義。
UML是在已有的三大面向對象方法的基礎上,抽象出的支持面向對象建模全過程的模型語言。它已成為一種通用的建模語言和事實上的工業(yè)標準。UML的出現是面向對象領域的重大突破。
UML用于建模的圖形元素主要包括用例圖、類圖、對象圖、順序圖、活動圖、協作圖、狀態(tài)圖、構件圖和配置圖,其中用例圖、對象圖、類圖、構件圖和配置圖屬于系統的靜態(tài)模型;順序圖、活動圖、協作圖、狀態(tài)圖屬于系統的動態(tài)模型。圖1給出了UML包括的9種圖形及其關系。
圖1
UML的應用領域可分為橫向應用領域和縱向應用領域:
1.1 橫向應用領域:最直接的應用是為軟件建模,構造各種類型系統的模型;也可描述各種領域的業(yè)務模型。
1.2 縱向應用領域:適用于軟件開發(fā)生命周期的全過程,即可用來描述軟件開發(fā)全過程中各個階段相對應的模型,如需求模型,分析模型,設計模型和實現模型等。
由UML兩個應用領域可以看出,UML作為建模語言,不僅可以用來描述軟件的系統模型,而且還可以描述領域業(yè)務模型。這樣一來,由軟件開發(fā)人員建立的系統模型和領域專家建立的領域業(yè)務模型就通過UML聯系在一起,這樣可消除傳統軟件開發(fā)方法中需求分析、分析、設計、實現和測試之間存在的脫節(jié)。
2 UML在統一軟件開發(fā)過程中的建模方法
軟件開發(fā)方法的核心是建模;在系統開發(fā)全過程中,建立系統模型是最核心的工作。因此,系統模型的建立是至關重要的,是項目實施的藍圖。UML作為標準的建模工具語言,支持從需求分析開始的軟件開發(fā)全過程,用它建立起的系統模型可以完全獨立于最終系統實現的語言模型,更具一般的通用性。用戶、分析人員、測試人員、管理人員及其他涉及項目人員都可從UML建立的系統模型中獲得有用的信息。
UML是建模的標準語言,而不是一種面向對象的建模方法。正如M·Fowler在專門介紹UML的著作中指出的:“UML被稱作一種建模語言,而不是一種方法。至少從原則上講,大部分方法是由一種建模語言和一種開發(fā)過程共同組成的”。統一過程RUP(Rational Unified Process)是目前最流行且最完善的開發(fā)過程。RUP是由提出UML的三位方法學家提出的,它與UML形成最好的結合,是UML推薦使用的軟件開發(fā)過程。
RUP是一個二維結構的開發(fā)過程,可以從兩個層次來理解這一過程。一方面,它體現了開發(fā)過程的動態(tài)結構,用階段和迭代描述。RUP把一個開發(fā)周期分成了四個連續(xù)的階段,即初始階段、細化階段、構造階段和移交階段;其中每一個階段又要經歷若干次的迭代,每次迭代都有一個核心工作流。另一方面,它體現了開發(fā)過程的靜態(tài)結構,用活動、產品、工人和工作流描述。它描述了一次迭代的核心工作流。核心工作流主要有五個:需求、分析、設計、實現、測試。
RUP和UML的結合,形成了一種面向對象的建模方法。RUP實際上是一個二維結構的層次迭代模型,它為面向對象的建模提供了一個過程指導框架。在一個階段中若干次迭代的過程就是UML建模的過程,最終都會生成從需求層次、分析層次、設計層次、實現層次和測試層次分別映射出的各個核心工作流階段相對應的模型。
一般情況下,UML和RUP統一開發(fā)過程的集成應用存在如下映射關系:(1)需求分析:此階段建立用例模型來描述需求。可用用例圖、活動圖、順序圖、協作圖和狀態(tài)圖來描述。(2)分析:此階段建立分析模型來描述分析。可用類圖、對象圖、順序圖、協作圖、狀態(tài)圖和活動圖來描述。(3)設計:此階段建立設計模型和開發(fā)模型來描述設計。可用類圖、對象圖、順序圖、協作圖、狀態(tài)圖和活動圖等來描述。(4)實現:實現階段通過建立實現模型來描述實現。用例圖顯示系統需求和結果;類圖顯示類的靜態(tài)結構和類之間的關系;類的規(guī)格說明詳細顯示必要的屬性和操作;狀態(tài)圖顯示類的對象可能狀態(tài),所需處理的轉移以及觸發(fā)這些轉移的操作;還可用構件圖、順序圖和協作圖來描述。以上這些圖可為編碼提供依據。(5)測試:此階段通過引用其他模型來描述測試。在RUP中,用例模型是整個開發(fā)過程的基礎和線索,貫穿于系統的各個階段。以用例來驅動系統開發(fā),使得能夠很清晰的闡述一個系統是如何實現其功能的。在以上每個工作流階段,都是系統開發(fā)的一個里程碑,前一階段用UML建立的模型可應用到下一階段,為下一階段的工作起到輔助作用。
結束語
UML能夠對系統整個開發(fā)過程提供靈活、一致、易讀的表達;UML和RUP的結合,不僅指導和推動著軟件開發(fā)的全過程,而且還形成了一種建模方法-面向對象的建模方法。該方法的建立和應用,解決了面向對象軟件開發(fā)方法的核心問題,還可提高軟件的生產率和重用性,降低軟件成本。
參考文獻
[1](美)克魯奇特 Rational統一過程引論(中譯本)(第2版)[M].北京:機械工業(yè)出版社,2002.
[2]邵維忠,楊芙清.面向對象的系統分析[M].北京:清華大學出版社,1998.
[3]王瑞金,段會川等.統一建模語言及其實例[J].計算機應用研究,2002:80-84.