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

