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