解析UML的要點(diǎn)與應(yīng)用

字號:

UML(Unified Modeling Language)伙伴組織于1996年由Rational公司創(chuàng)立。對象管理組織(OMG)于1997年11月采納了它。此后,UML繼續(xù)改進(jìn),目前最新的版本是UML1.3。 UML是多種方法相互借鑒、相互融合、趨于一致、走向標(biāo)準(zhǔn)化的產(chǎn)物。這樣的統(tǒng)一建模語言將為軟件開發(fā)商及其用戶帶來諸多便利。美國等計(jì)算機(jī)技術(shù)發(fā)達(dá)國家已有大量的軟件開發(fā)組織開始用UML進(jìn)行系統(tǒng)建模,學(xué)習(xí)和使用UML已經(jīng)成為一種潮流。我國軟件界對UML也相當(dāng)關(guān)注,許多研究人員和技術(shù)人員已在幾年前就開始了對UML的學(xué)習(xí)和研究。
    現(xiàn)在有更多的人想學(xué)習(xí)UML,但由于UML的復(fù)雜性,僅通過UML的標(biāo)準(zhǔn)文獻(xiàn)和國內(nèi)目前的關(guān)于UML的資料來掌握使用它不是一件輕松的事。對它的使用,關(guān)鍵是要用它簡明準(zhǔn)確地建立模型。這樣,人們就可以從全局把握復(fù)雜系統(tǒng)的全貌及其組成間的聯(lián)系。為了達(dá)到這樣的目的,本文要闡明UML的要點(diǎn),并對UML所推薦的軟件建模過程RUP(Rational Unified Process)做一簡介,以作為一種應(yīng)用UML的過程指導(dǎo)。
    UML的定義有兩個(gè)主要組成部分:語義和表示法。UML的語義用自然語言描述,表示法定義了UML的可視化標(biāo)準(zhǔn)表示符號,這決定了UML是一種可視化的建模語言。這些圖形符號和文字用于建立應(yīng)用級的模型,在語義上,模型是元模型的實(shí)例。此外UML的定義還給出了語法結(jié)構(gòu)的精確規(guī)約。對于一般建模者,應(yīng)重點(diǎn)掌握基本的概念與表示法,并熟練運(yùn)用它們,建立元模型則是研究方法學(xué)的人的研究重點(diǎn)。
    要點(diǎn):對系統(tǒng)的組織
    UML是一種可視化的建模語言,對其各建模元素可進(jìn)行詳細(xì)說明,并能生成所建模型的文檔。使用UML時(shí),要從不同的角度觀察系統(tǒng),為此定義了一個(gè)概念“視圖”。視圖是對系統(tǒng)的模型在某方面的投影,注重于系統(tǒng)的某個(gè)方面。每個(gè)視圖是圖的協(xié)作,UML定義了9種圖。下表是UML中的5種視圖,各視圖在靜態(tài)和動態(tài)方面表示了系統(tǒng)的模型。
    用況視圖由用況圖組成,描述可被最終用戶、分析人員和測試者看到的系統(tǒng)行為;設(shè)計(jì)視圖包含類圖、對象圖、交互圖、狀態(tài)圖和活動圖,主要反映系統(tǒng)的功能需求;進(jìn)程視圖包含類圖、對象圖、交互圖、狀態(tài)圖和活動圖,主要描述形成系統(tǒng)并發(fā)與同步機(jī)制的線程和進(jìn)程;實(shí)現(xiàn)視圖包含構(gòu)件圖、交互圖、狀態(tài)圖和活動圖,反映用于裝配與發(fā)布物理系統(tǒng)的構(gòu)件和文件,主要針對系統(tǒng)發(fā)布的配置管理,可以用各種方法裝配它們。部署視圖包含部署圖、交互圖、狀態(tài)圖和活動圖,主要描述對組成物理系統(tǒng)的部件的分布、交付和安裝。根據(jù)實(shí)際需要,可以組合使用這些視圖。
    由視圖可以定義模型,模型在語義上是閉合的,它從特定的角度(系統(tǒng)的規(guī)約或者設(shè)計(jì))在一定抽象層次上描述目標(biāo)系統(tǒng)??梢园岩晥D組織成模型,開發(fā)人員可從各視角觀察使用模型。
    用以描述系統(tǒng)的模型可以是結(jié)構(gòu)性的,強(qiáng)調(diào)系統(tǒng)的組織;也可以是行為性的,強(qiáng)調(diào)系統(tǒng)的動態(tài)方面。例如,RUP有9種模型,分別是業(yè)務(wù)模型、領(lǐng)域模型、用況模型(也稱需求模型)、分析模型、設(shè)計(jì)模型、過程模型、部署模型、實(shí)現(xiàn)模型和測試模型,用于從不同的角度表示系統(tǒng)。
    系統(tǒng)是一組反映不同側(cè)面的子系統(tǒng)的集合,為了完成特定的目的要對這些子系統(tǒng)進(jìn)行組織(在邏輯、功能和物理位置上是高內(nèi)聚、低耦合的)。
    子系統(tǒng)是一組元素的聚集,其中的元素還可以是子系統(tǒng)。它由一組模型從不同的角度進(jìn)行描述。子系統(tǒng)本身幾乎應(yīng)是獨(dú)立的,有自己應(yīng)用的環(huán)境,相互間不重疊,它們之間用接口聯(lián)系。
    UML的概念模型
    為了理解UML,需要掌握UML的概念模型,這要求學(xué)習(xí)三個(gè)要素:UML的基本構(gòu)造塊、支配這些構(gòu)造塊如何放在一起的規(guī)則和一些運(yùn)用于整個(gè)UML的機(jī)制,下面逐一予以介紹。
    1. 基本構(gòu)造塊
    UML中有三種基本構(gòu)造塊,分別是事物、關(guān)系和圖。
    事物分結(jié)構(gòu)事物(包括類、接口、協(xié)作、用況、主動類、構(gòu)件和節(jié)點(diǎn))、行為事物(包括交互和狀態(tài)機(jī))、分組事物(包)和注釋事物(注解)。
    UML中有四種關(guān)系,分別是依賴、關(guān)聯(lián)、泛化和實(shí)現(xiàn)關(guān)系。
    對于上述兩種構(gòu)造塊,通過研讀相應(yīng)的書籍,絕大多數(shù)不難掌握,這里就不再贅述。下面對UML中的圖的要點(diǎn)進(jìn)行闡述。
    類圖:類圖展示了一組類、接口和協(xié)作及它們間的關(guān)系,在建模中所建立的最常見的圖就是類圖。用類圖說明系統(tǒng)的靜態(tài)設(shè)計(jì)視圖,包含主動類的類圖——專注于系統(tǒng)的靜態(tài)進(jìn)程視圖。系統(tǒng)可有多個(gè)類圖,單個(gè)類圖僅表達(dá)了系統(tǒng)的一個(gè)方面。要在高層給出類的主要職責(zé),在低層給出類的屬性和操作。
    對象圖:對象圖展示了一組對象及它們間的關(guān)系。用對象圖說明類圖中所反應(yīng)的事物實(shí)例的數(shù)據(jù)結(jié)構(gòu)和靜態(tài)快照。對象圖表達(dá)了系統(tǒng)的靜態(tài)設(shè)計(jì)視圖或靜態(tài)過程視圖,除了現(xiàn)實(shí)和原型的方面的因素外,它與類圖作用是相同的。
    用況圖:用況圖展現(xiàn)了一組用況、參與者以及它們間的關(guān)系??梢杂糜脹r圖描述系統(tǒng)的靜態(tài)使用情況。在對系統(tǒng)行為組織和建模方面,用況圖的是相當(dāng)重要的。
    交互圖:交互圖展現(xiàn)了按一定的目的進(jìn)行的一種交互,它由在一個(gè)上下文中的一組對象及它們間交互的信息組成。交互圖也可用于描述一個(gè)用況的行為。順序圖和協(xié)作圖都是交互圖,順序圖和協(xié)作圖可以相互轉(zhuǎn)換。
    順序圖:展現(xiàn)了一組對象和由這組對象收發(fā)的消息,用于按時(shí)間順序?qū)刂屏鹘!S庙樞驁D說明系統(tǒng)的動態(tài)視圖。
    協(xié)作圖:展現(xiàn)了一組對象,這組對象間的連接以及這組對象收發(fā)的消息。它強(qiáng)調(diào)收發(fā)消息的對象的結(jié)構(gòu)組織,按組織結(jié)構(gòu)對控制流建模。