国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

UML類圖詳解

2019-11-17 04:44:10
字體:
供稿:網(wǎng)友
這是關(guān)于統(tǒng)一建模語言、即UML 里采用的基本圖的文章。在這篇文章中,我將會討論結(jié)構(gòu)圖,這是已經(jīng)在 UML 2 中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會知道這樣做的理由。隨后的文章將會覆蓋結(jié)構(gòu)范疇中包含的其它圖。 我也想提醒讀者,這一系列文章是關(guān)于 UML 記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素 -- 語法和含義有一個基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。這篇文章假定你對面向?qū)ο蟮脑O(shè)計已經(jīng)有了基本的理解。你們當中假如有人需要一些面向?qū)ο蟾拍畹膸椭敲纯梢栽L問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀 “什么是類?”和 什么是繼續(xù)?” 章節(jié),將提供給你足夠的理解,并對該文的閱讀會有所幫助。另外,David Taylor的書《 Object-Oriented Technologies: A Manager's Guide》提供了面向?qū)ο笤O(shè)計的優(yōu)秀,高水平的說明,而無需對計算機編程有高深的理解。UML 2 中的陰和陽在 UML 2 中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個 UML 圖都屬于這二個圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括類,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動態(tài)行為,包括如對象的方法,協(xié)作和活動之類的內(nèi)容。行為圖的實例是活動圖,用例圖和序列圖。大體上的結(jié)構(gòu)圖如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實例進行傳播。除了顯示系統(tǒng)類型和它們的實例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。貫穿整個軟件生命周期,結(jié)構(gòu)圖對于各種團隊成員都是有用的。一般而言,這些圖支持設(shè)計驗證,和個體與團隊間的設(shè)計交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認他們的設(shè)計是否充分。開發(fā)者可以使用類圖,來設(shè)計并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。非凡的類圖 UML 2 把結(jié)構(gòu)圖看成一個分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個主要實例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會把重點集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML 2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個穩(wěn)固的基礎(chǔ)。基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的 UML 模型中這些類型包括:
  • 接口
  • 數(shù)據(jù)類型
  • 組件
UML 為這些類型起了一個非凡的名字:“分類器”。通常地,你可以把分類器當做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。類名類的 UML 表示是一個長方形,垂直地分為三個區(qū),如圖 1 所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當在一個類圖上畫一個類元素時,你必須要有頂端的區(qū)域,下面的二個區(qū)域是可選擇的(當圖描述僅僅用于顯示分類器間關(guān)系的高層細節(jié)時,下面的兩個區(qū)域是不必要的)。圖 1 顯示一個航線班機如何作為 UML 類建模。正如我們所能見到的,名字是 Flight,我們可以在中間區(qū)域看到Flight類的3個屬性:flightNumber,departureTime 和 flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個操作:delayFlight 和 getArrivalTime。UML類圖詳解(圖一)

圖 1: Flight類的類圖類屬性列表類的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。該線用如下格式:
name : attribute type
flightNumber : Integer
繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表 1 所示。表 1:具有關(guān)聯(lián)類型的Flight類的屬性名字屬性名稱屬性類型flightNumberIntegerdepartureTimeDateflightDurationMinutes在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實現(xiàn)的、模型的類型之中。在類圖上顯示具有默認值的特定屬性,有時是有用的(例如,在銀行賬戶應(yīng)用程序中,一個新的銀行賬戶會以零為初始值)。UML 規(guī)范答應(yīng)在屬性列表節(jié)中,通過使用如下的記號作為默認值的標識:
name : attribute type = default value
舉例來說:
balance : Dollars = 0

顯示屬性默認值是可選擇的;圖 2 顯示一個銀行賬戶類具有一個名為 balance的類型,它的默認值為0。UML類圖詳解(圖二) 圖 2:顯示默認為0美元的balance屬性值的銀行賬戶類圖。這是關(guān)于統(tǒng)一建模語言、即UML 里采用的基本圖的文章。在這篇文章中,我將會討論結(jié)構(gòu)圖,這是已經(jīng)在 UML 2 中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會知道這樣做的理由。隨后的文章將會覆蓋結(jié)構(gòu)范疇中包含的其它圖。 我也想提醒讀者,這一系列文章是關(guān)于 UML 記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素 -- 語法和含義有一個基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。這篇文章假定你對面向?qū)ο蟮脑O(shè)計已經(jīng)有了基本的理解。你們當中假如有人需要一些面向?qū)ο蟾拍畹膸椭敲纯梢栽L問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀 “什么是類?”和 什么是繼續(xù)?” 章節(jié),將提供給你足夠的理解,并對該文的閱讀會有所幫助。另外,David Taylor的書《 Object-Oriented Technologies: A Manager's Guide》提供了面向?qū)ο笤O(shè)計的優(yōu)秀,高水平的說明,而無需對計算機編程有高深的理解。UML 2 中的陰和陽在 UML 2 中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個 UML 圖都屬于這二個圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括類,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動態(tài)行為,包括如對象的方法,協(xié)作和活動之類的內(nèi)容。行為圖的實例是活動圖,用例圖和序列圖。大體上的結(jié)構(gòu)圖如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實例進行傳播。除了顯示系統(tǒng)類型和它們的實例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。貫穿整個軟件生命周期,結(jié)構(gòu)圖對于各種團隊成員都是有用的。一般而言,這些圖支持設(shè)計驗證,和個體與團隊間的設(shè)計交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認他們的設(shè)計是否充分。開發(fā)者可以使用類圖,來設(shè)計并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。非凡的類圖 UML 2 把結(jié)構(gòu)圖看成一個分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個主要實例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會把重點集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML 2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個穩(wěn)固的基礎(chǔ)。基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的 UML 模型中這些類型包括:
  • 接口
  • 數(shù)據(jù)類型
  • 組件
UML 為這些類型起了一個非凡的名字:“分類器”。通常地,你可以把分類器當做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。類名類的 UML 表示是一個長方形,垂直地分為三個區(qū),如圖 1 所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當在一個類圖上畫一個類元素時,你必須要有頂端的區(qū)域,下面的二個區(qū)域是可選擇的(當圖描述僅僅用于顯示分類器間關(guān)系的高層細節(jié)時,下面的兩個區(qū)域是不必要的)。圖 1 顯示一個航線班機如何作為 UML 類建模。正如我們所能見到的,名字是 Flight,我們可以在中間區(qū)域看到Flight類的3個屬性:flightNumber,departureTime 和 flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個操作:delayFlight 和 getArrivalTime。UML類圖詳解(圖一)

圖 1: Flight類的類圖類屬性列表類的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。該線用如下格式:
name : attribute type
flightNumber : Integer
繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表 1 所示。表 1:具有關(guān)聯(lián)類型的Flight類的屬性名字屬性名稱屬性類型flightNumberIntegerdepartureTimeDateflightDurationMinutes在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實現(xiàn)的、模型的類型之中。在類圖上顯示具有默認值的特定屬性,有時是有用的(例如,在銀行賬戶應(yīng)用程序中,一個新的銀行賬戶會以零為初始值)。UML 規(guī)范答應(yīng)在屬性列表節(jié)中,通過使用如下的記號作為默認值的標識:
name : attribute type = default value
舉例來說:
balance : Dollars = 0

顯示屬性默認值是可選擇的;圖 2 顯示一個銀行賬戶類具有一個名為 balance的類型,它的默認值為0。UML類圖詳解(圖二) 圖 2:顯示默認為0美元的balance屬性值的銀行賬戶類圖。這是關(guān)于統(tǒng)一建模語言、即UML 里采用的基本圖的文章。在這篇文章中,我將會討論結(jié)構(gòu)圖,這是已經(jīng)在 UML 2 中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會知道這樣做的理由。隨后的文章將會覆蓋結(jié)構(gòu)范疇中包含的其它圖。 我也想提醒讀者,這一系列文章是關(guān)于 UML 記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素 -- 語法和含義有一個基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。這篇文章假定你對面向?qū)ο蟮脑O(shè)計已經(jīng)有了基本的理解。你們當中假如有人需要一些面向?qū)ο蟾拍畹膸椭敲纯梢栽L問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀 “什么是類?”和 什么是繼續(xù)?” 章節(jié),將提供給你足夠的理解,并對該文的閱讀會有所幫助。另外,David Taylor的書《 Object-Oriented Technologies: A Manager's Guide》提供了面向?qū)ο笤O(shè)計的優(yōu)秀,高水平的說明,而無需對計算機編程有高深的理解。UML 2 中的陰和陽在 UML 2 中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個 UML 圖都屬于這二個圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括類,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動態(tài)行為,包括如對象的方法,協(xié)作和活動之類的內(nèi)容。行為圖的實例是活動圖,用例圖和序列圖。大體上的結(jié)構(gòu)圖如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實例進行傳播。除了顯示系統(tǒng)類型和它們的實例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。貫穿整個軟件生命周期,結(jié)構(gòu)圖對于各種團隊成員都是有用的。一般而言,這些圖支持設(shè)計驗證,和個體與團隊間的設(shè)計交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認他們的設(shè)計是否充分。開發(fā)者可以使用類圖,來設(shè)計并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。非凡的類圖 UML 2 把結(jié)構(gòu)圖看成一個分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個主要實例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會把重點集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML 2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個穩(wěn)固的基礎(chǔ)。基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的 UML 模型中這些類型包括:
  • 接口
  • 數(shù)據(jù)類型
  • 組件
UML 為這些類型起了一個非凡的名字:“分類器”。通常地,你可以把分類器當做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。類名類的 UML 表示是一個長方形,垂直地分為三個區(qū),如圖 1 所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當在一個類圖上畫一個類元素時,你必須要有頂端的區(qū)域,下面的二個區(qū)域是可選擇的(當圖描述僅僅用于顯示分類器間關(guān)系的高層細節(jié)時,下面的兩個區(qū)域是不必要的)。圖 1 顯示一個航線班機如何作為 UML 類建模。正如我們所能見到的,名字是 Flight,我們可以在中間區(qū)域看到Flight類的3個屬性:flightNumber,departureTime 和 flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個操作:delayFlight 和 getArrivalTime。UML類圖詳解(圖一)

圖 1: Flight類的類圖類屬性列表類的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。該線用如下格式:
name : attribute type
flightNumber : Integer
繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表 1 所示。表 1:具有關(guān)聯(lián)類型的Flight類的屬性名字屬性名稱屬性類型flightNumberIntegerdepartureTimeDateflightDurationMinutes在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實現(xiàn)的、模型的類型之中。在類圖上顯示具有默認值的特定屬性,有時是有用的(例如,在銀行賬戶應(yīng)用程序中,一個新的銀行賬戶會以零為初始值)。UML 規(guī)范答應(yīng)在屬性列表節(jié)中,通過使用如下的記號作為默認值的標識:
name : attribute type = default value
舉例來說:
balance : Dollars = 0

顯示屬性默認值是可選擇的;圖 2 顯示一個銀行賬戶類具有一個名為 balance的類型,它的默認值為0。UML類圖詳解(圖二) 圖 2:顯示默認為0美元的balance屬性值的銀行賬戶類圖。這是關(guān)于統(tǒng)一建模語言、即UML 里采用的基本圖的文章。在這篇文章中,我將會討論結(jié)構(gòu)圖,這是已經(jīng)在 UML 2 中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會知道這樣做的理由。隨后的文章將會覆蓋結(jié)構(gòu)范疇中包含的其它圖。 我也想提醒讀者,這一系列文章是關(guān)于 UML 記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素 -- 語法和含義有一個基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。這篇文章假定你對面向?qū)ο蟮脑O(shè)計已經(jīng)有了基本的理解。你們當中假如有人需要一些面向?qū)ο蟾拍畹膸椭敲纯梢栽L問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀 “什么是類?”和 什么是繼續(xù)?” 章節(jié),將提供給你足夠的理解,并對該文的閱讀會有所幫助。另外,David Taylor的書《 Object-Oriented Technologies: A Manager's Guide》提供了面向?qū)ο笤O(shè)計的優(yōu)秀,高水平的說明,而無需對計算機編程有高深的理解。UML 2 中的陰和陽在 UML 2 中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個 UML 圖都屬于這二個圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括類,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動態(tài)行為,包括如對象的方法,協(xié)作和活動之類的內(nèi)容。行為圖的實例是活動圖,用例圖和序列圖。大體上的結(jié)構(gòu)圖如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實例進行傳播。除了顯示系統(tǒng)類型和它們的實例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。貫穿整個軟件生命周期,結(jié)構(gòu)圖對于各種團隊成員都是有用的。一般而言,這些圖支持設(shè)計驗證,和個體與團隊間的設(shè)計交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認他們的設(shè)計是否充分。開發(fā)者可以使用類圖,來設(shè)計并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。非凡的類圖 UML 2 把結(jié)構(gòu)圖看成一個分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個主要實例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會把重點集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML 2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個穩(wěn)固的基礎(chǔ)。基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的 UML 模型中這些類型包括:
  • 接口
  • 數(shù)據(jù)類型
  • 組件
UML 為這些類型起了一個非凡的名字:“分類器”。通常地,你可以把分類器當做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。類名類的 UML 表示是一個長方形,垂直地分為三個區(qū),如圖 1 所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當在一個類圖上畫一個類元素時,你必須要有頂端的區(qū)域,下面的二個區(qū)域是可選擇的(當圖描述僅僅用于顯示分類器間關(guān)系的高層細節(jié)時,下面的兩個區(qū)域是不必要的)。圖 1 顯示一個航線班機如何作為 UML 類建模。正如我們所能見到的,名字是 Flight,我們可以在中間區(qū)域看到Flight類的3個屬性:flightNumber,departureTime 和 flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個操作:delayFlight 和 getArrivalTime。UML類圖詳解(圖一)

圖 1: Flight類的類圖類屬性列表類的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。該線用如下格式:
name : attribute type
flightNumber : Integer
繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表 1 所示。表 1:具有關(guān)聯(lián)類型的Flight類的屬性名字屬性名稱屬性類型flightNumberIntegerdepartureTimeDateflightDurationMinutes在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實現(xiàn)的、模型的類型之中。在類圖上顯示具有默認值的特定屬性,有時是有用的(例如,在銀行賬戶應(yīng)用程序中,一個新的銀行賬戶會以零為初始值)。UML 規(guī)范答應(yīng)在屬性列表節(jié)中,通過使用如下的記號作為默認值的標識:
name : attribute type = default value
舉例來說:
balance : Dollars = 0

顯示屬性默認值是可選擇的;圖 2 顯示一個銀行賬戶類具有一個名為 balance的類型,它的默認值為0。UML類圖詳解(圖二) 圖 2:顯示默認為0美元的balance屬性值的銀行賬戶類圖。這是關(guān)于統(tǒng)一建模語言、即UML 里采用的基本圖的文章。在這篇文章中,我將會討論結(jié)構(gòu)圖,這是已經(jīng)在 UML 2 中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會知道這樣做的理由。隨后的文章將會覆蓋結(jié)構(gòu)范疇中包含的其它圖。 我也想提醒讀者,這一系列文章是關(guān)于 UML 記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素 -- 語法和含義有一個基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。這篇文章假定你對面向?qū)ο蟮脑O(shè)計已經(jīng)有了基本的理解。你們當中假如有人需要一些面向?qū)ο蟾拍畹膸椭敲纯梢栽L問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀 “什么是類?”和 什么是繼續(xù)?” 章節(jié),將提供給你足夠的理解,并對該文的閱讀會有所幫助。另外,David Taylor的書《 Object-Oriented Technologies: A Manager's Guide》提供了面向?qū)ο笤O(shè)計的優(yōu)秀,高水平的說明,而無需對計算機編程有高深的理解。UML 2 中的陰和陽在 UML 2 中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個 UML 圖都屬于這二個圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括類,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動態(tài)行為,包括如對象的方法,協(xié)作和活動之類的內(nèi)容。行為圖的實例是活動圖,用例圖和序列圖。大體上的結(jié)構(gòu)圖如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實例進行傳播。除了顯示系統(tǒng)類型和它們的實例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。貫穿整個軟件生命周期,結(jié)構(gòu)圖對于各種團隊成員都是有用的。一般而言,這些圖支持設(shè)計驗證,和個體與團隊間的設(shè)計交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認他們的設(shè)計是否充分。開發(fā)者可以使用類圖,來設(shè)計并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。非凡的類圖 UML 2 把結(jié)構(gòu)圖看成一個分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個主要實例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會把重點集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML 2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個穩(wěn)固的基礎(chǔ)。基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的 UML 模型中這些類型包括:
  • 接口
  • 數(shù)據(jù)類型
  • 組件
UML 為這些類型起了一個非凡的名字:“分類器”。通常地,你可以把分類器當做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。類名類的 UML 表示是一個長方形,垂直地分為三個區(qū),如圖 1 所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當在一個類圖上畫一個類元素時,你必須要有頂端的區(qū)域,下面的二個區(qū)域是可選擇的(當圖描述僅僅用于顯示分類器間關(guān)系的高層細節(jié)時,下面的兩個區(qū)域是不必要的)。圖 1 顯示一個航線班機如何作為 UML 類建模。正如我們所能見到的,名字是 Flight,我們可以在中間區(qū)域看到Flight類的3個屬性:flightNumber,departureTime 和 flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個操作:delayFlight 和 getArrivalTime。UML類圖詳解(圖一)

圖 1: Flight類的類圖類屬性列表類的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。該線用如下格式:
name : attribute type
flightNumber : Integer
繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表 1 所示。表 1:具有關(guān)聯(lián)類型的Flight類的屬性名字屬性名稱屬性類型flightNumberIntegerdepartureTimeDateflightDurationMinutes在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實現(xiàn)的、模型的類型之中。在類圖上顯示具有默認值的特定屬性,有時是有用的(例如,在銀行賬戶應(yīng)用程序中,一個新的銀行賬戶會以零為初始值)。UML 規(guī)范答應(yīng)在屬性列表節(jié)中,通過使用如下的記號作為默認值的標識:
name : attribute type = default value
舉例來說:
balance : Dollars = 0

顯示屬性默認值是可選擇的;圖 2 顯示一個銀行賬戶類具有一個名為 balance的類型,它的默認值為0。UML類圖詳解(圖二) 圖 2:顯示默認為0美元的balance屬性值的銀行賬戶類圖。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平阳县| 新丰县| 临朐县| 兴宁市| 衢州市| 平阴县| 东光县| 宁德市| 游戏| 太仓市| 茶陵县| 万州区| 乌拉特中旗| 社会| 高安市| 本溪市| 山丹县| 莱州市| 阜新市| 阿拉善左旗| 额敏县| 溆浦县| 玛沁县| 井冈山市| 曲麻莱县| 青州市| 汨罗市| 陇西县| 鸡泽县| 青海省| 惠东县| 新泰市| 宜黄县| 望城县| 鄂尔多斯市| 陵川县| 永昌县| 呼玛县| 林州市| 松潘县| 靖宇县|