




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
陳鑫大連理工大學(xué)軟件學(xué)院email:軟件工程2023/1/10大連理工大學(xué)軟件學(xué)院2統(tǒng)一建模語(yǔ)言UML面向?qū)ο蠓治雠c設(shè)計(jì)方法的發(fā)展在20世紀(jì)80年代末到90年代中出現(xiàn)了一個(gè)高潮,統(tǒng)一建模語(yǔ)言UML就是這個(gè)高潮的產(chǎn)物。UML是由面向?qū)ο蠓椒I(lǐng)域的三位著名專(zhuān)家GradyBooch,JamesRumbaugh和IvarJacobson提出的,統(tǒng)一了表示方法,融入了眾多優(yōu)秀的軟件方法和思想,把面向?qū)ο蠓椒ㄌ岣叩揭粋€(gè)嶄新的高度,標(biāo)志著面向?qū)ο蠼7椒ㄟM(jìn)入了第三代。2023/1/10大連理工大學(xué)軟件學(xué)院3UML得到世界知名公司的使用和支持,并于1997年11月17日被OMG組織采納,成為面向?qū)ο蠼?biāo)準(zhǔn)語(yǔ)言。UML也是國(guó)際標(biāo)準(zhǔn)化組織的標(biāo)準(zhǔn)之一。UML已經(jīng)迅速成長(zhǎng)為一個(gè)事實(shí)上的工業(yè)標(biāo)準(zhǔn)。不論在計(jì)算機(jī)學(xué)術(shù)界、軟件產(chǎn)業(yè)界還是在商業(yè)界,UML已經(jīng)逐漸成為人們?yōu)楦鞣N系統(tǒng)建模、描述系統(tǒng)體系結(jié)構(gòu)、商業(yè)體系結(jié)構(gòu)和商業(yè)過(guò)程時(shí)使用的統(tǒng)一工具,而且在實(shí)踐過(guò)程中人們還在不斷擴(kuò)展它的應(yīng)用領(lǐng)域。2023/1/10大連理工大學(xué)軟件學(xué)院41概述2靜態(tài)建模機(jī)制3動(dòng)態(tài)建模機(jī)制4描述物理架構(gòu)的機(jī)制5使用和擴(kuò)展UML6小結(jié)2023/1/10大連理工大學(xué)軟件學(xué)院51概述UML的產(chǎn)生和發(fā)展UML的結(jié)構(gòu)UML是一種標(biāo)準(zhǔn)的圖形化(即可視化)建模語(yǔ)言,由圖和元模型組成。圖是UML的語(yǔ)法,而元模型給出圖的含義,是UML的語(yǔ)義。UML的語(yǔ)義UML的語(yǔ)義是定義在一個(gè)四層(四個(gè)抽象級(jí)別)建模概念框架中的,這四層分別是:大連理工大學(xué)軟件學(xué)院1概述下一層是上一層的基礎(chǔ),上一層是下一層的實(shí)例元元模型(meta_metamodel)層由UML最基本的元素“事物(thing)”組成,代表要定義的所有事物。元元模型示例大連理工大學(xué)軟件學(xué)院1概述元模型(metamodel)層由UML基本元素組成,包括面向?qū)ο蠛兔嫦驑?gòu)件的概念。這一層的每個(gè)概念都是元元模型中“事物”概念的實(shí)例(通過(guò)版類(lèi)化)。元模型示例大連理工大學(xué)軟件學(xué)院1概述模型(model)層由UML模型組成,這一層的每個(gè)概念都是元模型層中概念的實(shí)例(通過(guò)版類(lèi)化)。這一層的模型通常稱(chēng)為類(lèi)模型或類(lèi)型模型。模型實(shí)例大連理工大學(xué)軟件學(xué)院1概述用戶(hù)模型(usermodel)層由UML模型的例子組成,這一層中的每個(gè)概念都是模型層的一個(gè)實(shí)例(通過(guò)分類(lèi)),也是元模型層模型的一個(gè)實(shí)例(通過(guò)版類(lèi)化)。這一層的模型通常稱(chēng)為對(duì)象模型或?qū)嵗P?。大連理工大學(xué)軟件學(xué)院1概述用戶(hù)模型實(shí)例2023/1/10大連理工大學(xué)軟件學(xué)院11UML的表示法UML由視圖(view)、圖(diagram)、模型元素(modelelement)和通用機(jī)制(generalmechanism)等幾個(gè)部分組成。視圖為了完整地描述一個(gè)系統(tǒng),往往需要描述該系統(tǒng)的許多方面。用視圖可以表示被建模系統(tǒng)的各個(gè)方面,即,從不同目的出發(fā)可以為系統(tǒng)建立多個(gè)模型,這些模型都描述同一個(gè)系統(tǒng),只是描述的角度不同,它們之間具有一致性。圖圖是用來(lái)表達(dá)一個(gè)視圖的內(nèi)容的,通常,一個(gè)視圖由多張圖組成。UML語(yǔ)言共定義了9種不同的圖,把它們有機(jī)地結(jié)合起來(lái)就可以描述系統(tǒng)的所有視圖。大連理工大學(xué)軟件學(xué)院UML的視圖主要有以下5種:2023/1/10大連理工大學(xué)軟件學(xué)院13模型元素可以在圖中使用的概念(例如,用例、類(lèi)、對(duì)象、消息和關(guān)系),統(tǒng)稱(chēng)為模型元素。模型元素在圖中用相應(yīng)的視圖元素(圖形符號(hào))表示。一個(gè)模型元素可以用在多個(gè)不同的圖中,不管怎樣使用,它總是具有相同的含義和相同的符號(hào)表示。通用機(jī)制UML語(yǔ)言利用通用機(jī)制為圖附加一些額外的信息,比如,可以在“筆記”中書(shū)寫(xiě)注釋?zhuān)蛴谩皹?biāo)簽值”說(shuō)明模型元素的性質(zhì)等。此外,它還提供擴(kuò)展機(jī)制(例如,版類(lèi)、標(biāo)簽值、約束),使UML能夠適應(yīng)一種特殊方法或滿(mǎn)足某些特殊用戶(hù)的需要。2023/1/10大連理工大學(xué)軟件學(xué)院14UML的圖用例圖(use-casediagram)用例是對(duì)系統(tǒng)提供的功能(即系統(tǒng)的具體用法)的描述。用例圖從用戶(hù)的角度描述系統(tǒng)功能,并指出各個(gè)功能的操作者。用例圖定義了系統(tǒng)的功能需求。2023/1/10大連理工大學(xué)軟件學(xué)院15靜態(tài)圖(staticdiagram)這類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),屬于這類(lèi)圖的有類(lèi)圖(classdiagram)和對(duì)象圖(objectdiagram)。類(lèi)圖不僅定義系統(tǒng)中的類(lèi),表示類(lèi)與類(lèi)之間的關(guān)系(例如,關(guān)聯(lián)、依賴(lài)、泛化和細(xì)化等關(guān)系),也表示類(lèi)的內(nèi)部結(jié)構(gòu)(類(lèi)的屬性和操作)。類(lèi)圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命期內(nèi)都是有效的。2023/1/10大連理工大學(xué)軟件學(xué)院16對(duì)象圖是類(lèi)圖的實(shí)例,它使用幾乎與類(lèi)圖完全相同的圖示符號(hào)。兩者之間的差別在于,對(duì)象圖表示的是類(lèi)的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類(lèi)。由于對(duì)象有生命周期,因此對(duì)象圖只能在系統(tǒng)的某個(gè)時(shí)間段內(nèi)存在。一般說(shuō)來(lái),對(duì)象圖沒(méi)有類(lèi)圖重要,它主要用來(lái)幫助對(duì)類(lèi)圖的理解,也可用在協(xié)作圖中,表示一組對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系。2023/1/10大連理工大學(xué)軟件學(xué)院17行為圖(behaviordiagram)這類(lèi)圖描述系統(tǒng)的動(dòng)態(tài)行為和組成系統(tǒng)的對(duì)象間的交互關(guān)系,包括狀態(tài)圖(statediagram)和活動(dòng)圖(activitydiagram)兩種圖形。狀態(tài)圖描述類(lèi)的對(duì)象可能具有的所有狀態(tài),以及引起狀態(tài)變化的事件,狀態(tài)變化稱(chēng)作狀態(tài)轉(zhuǎn)換。通常,狀態(tài)圖是對(duì)類(lèi)圖的補(bǔ)充。2023/1/10大連理工大學(xué)軟件學(xué)院18實(shí)際使用時(shí),并不需要為每個(gè)類(lèi)都畫(huà)狀態(tài)圖,僅需要為那些有多個(gè)狀態(tài),且其行為在不同狀態(tài)有所不同的類(lèi)畫(huà)狀態(tài)圖?;顒?dòng)圖描述為滿(mǎn)足用例要求而進(jìn)行的動(dòng)作以及動(dòng)作間的關(guān)系。活動(dòng)圖是狀態(tài)圖的一個(gè)變種,它是另一種描述交互的方法。2023/1/10大連理工大學(xué)軟件學(xué)院19交互圖(interactivediagram)這類(lèi)圖描述對(duì)象間的交互關(guān)系,包括順序圖(sequencediagram)和協(xié)作圖(collaborationdiagram)兩種圖形。順序圖顯示若干個(gè)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系,它強(qiáng)調(diào)對(duì)象之間發(fā)送消息的先后次序,描述對(duì)象之間的交互過(guò)程。協(xié)作圖與順序圖類(lèi)似,也描述對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。除了顯示對(duì)象間發(fā)送的消息之外,協(xié)作圖還顯示對(duì)象及它們之間的關(guān)系(稱(chēng)為上下文相關(guān))。2023/1/10大連理工大學(xué)軟件學(xué)院20由于順序圖和協(xié)作圖都描述對(duì)象間的交互關(guān)系,所以建模者可以選擇其中一種表示對(duì)象間的協(xié)作關(guān)系:如果需要強(qiáng)調(diào)時(shí)間和順序,最好選用順序圖;如果需要強(qiáng)調(diào)上下文相關(guān),最好選擇協(xié)作圖。2023/1/10大連理工大學(xué)軟件學(xué)院21實(shí)現(xiàn)圖(implementationdiagram)這類(lèi)圖提供關(guān)于系統(tǒng)實(shí)現(xiàn)方面的信息,構(gòu)件圖(componentdiagram)和配置圖(deploymentdiagram)屬于這類(lèi)圖。構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各個(gè)構(gòu)件之間的依賴(lài)關(guān)系。構(gòu)件可能是源代碼、二進(jìn)制文件或可執(zhí)行文件。使用構(gòu)件圖有助于分析和理解構(gòu)件之間的相互影響。2023/1/10大連理工大學(xué)軟件學(xué)院22配置圖定義系統(tǒng)中軟件和硬件的物理體系結(jié)構(gòu)。通常,配置圖中顯示實(shí)際的計(jì)算機(jī)和設(shè)備(用節(jié)點(diǎn)表示),以及各個(gè)節(jié)點(diǎn)之間的連接關(guān)系,也可以顯示連接的類(lèi)型及構(gòu)件之間的依賴(lài)關(guān)系。在節(jié)點(diǎn)內(nèi)部顯示可執(zhí)行的構(gòu)件和對(duì)象,以清晰地表示出哪個(gè)軟件單元運(yùn)行在哪個(gè)節(jié)點(diǎn)上。2023/1/10大連理工大學(xué)軟件學(xué)院23UML的應(yīng)用領(lǐng)域UML是一種建模語(yǔ)言,是一種標(biāo)準(zhǔn)的表示方法,而不是一種完整的方法學(xué)。UML的最終用途——為不同領(lǐng)域的人提供統(tǒng)一的交流方法。UML適用于系統(tǒng)開(kāi)發(fā)的全過(guò)程,它的應(yīng)用貫穿于從需求分析到系統(tǒng)建成后測(cè)試的各個(gè)階段。2023/1/10大連理工大學(xué)軟件學(xué)院24需求分析:可以用用例來(lái)捕獲用戶(hù)的需求。描述對(duì)系統(tǒng)感興趣的外部角色及其對(duì)系統(tǒng)的功能要求(用例)。分析:分析階段主要關(guān)心問(wèn)題域中的基本概念(例如,抽象、類(lèi)和對(duì)象等)和機(jī)制,需要識(shí)別這些類(lèi)以及它們相互間的關(guān)系,用UML的邏輯視圖和動(dòng)態(tài)視圖來(lái)描述。類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),協(xié)作圖、順序圖、活動(dòng)圖和狀態(tài)圖描述系統(tǒng)的動(dòng)態(tài)行為。在這個(gè)階段只為問(wèn)題域的類(lèi)建模,而不定義軟件系統(tǒng)的解決方案細(xì)節(jié)(例如,處理用戶(hù)接口、數(shù)據(jù)庫(kù)、通信和并行性等問(wèn)題的類(lèi))。2023/1/10大連理工大學(xué)軟件學(xué)院25設(shè)計(jì):把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案,加入新的類(lèi)來(lái)定義軟件系統(tǒng)的技術(shù)方案細(xì)節(jié)。設(shè)計(jì)階段用和分析階段類(lèi)似的方式使用UML。構(gòu)造(編碼):這個(gè)階段的任務(wù)是把來(lái)自設(shè)計(jì)階段的類(lèi)轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的代碼。2023/1/10大連理工大學(xué)軟件學(xué)院26測(cè)試:對(duì)系統(tǒng)的測(cè)試通常分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試等幾個(gè)不同步驟。UML模型可作為測(cè)試階段的依據(jù),不同測(cè)試小組使用不同的UML圖作為工作的依據(jù):?jiǎn)卧獪y(cè)試使用類(lèi)圖和類(lèi)規(guī)格說(shuō)明;集成測(cè)試使用構(gòu)件圖和協(xié)作圖;系統(tǒng)測(cè)試使用用例圖來(lái)驗(yàn)證系統(tǒng)的行為;驗(yàn)收測(cè)試由用戶(hù)進(jìn)行,用與系統(tǒng)測(cè)試類(lèi)似的方法,驗(yàn)證系統(tǒng)是否滿(mǎn)足在分析階段確定的所有需求。2023/1/10大連理工大學(xué)軟件學(xué)院272靜態(tài)建模機(jī)制任何建模語(yǔ)言都以靜態(tài)建模機(jī)制為基礎(chǔ),UML也不例外。UML的靜態(tài)建模機(jī)制包括用例圖、類(lèi)圖、對(duì)象圖和包等。用例圖2023/1/10大連理工大學(xué)軟件學(xué)院28用例模型用例模型描述的是外部執(zhí)行者(actor)所理解的系統(tǒng)功能。用例模型用于需求分析階段,需要系統(tǒng)開(kāi)發(fā)者和用戶(hù)反復(fù)討論,描述了開(kāi)發(fā)者和用戶(hù)對(duì)需求規(guī)格達(dá)成的共識(shí)。首先,描述了待開(kāi)發(fā)系統(tǒng)的功能需求;其次,把系統(tǒng)看作黑盒,從外部執(zhí)行者的角度來(lái)理解系統(tǒng);第三,驅(qū)動(dòng)了需求分析之后各階段的開(kāi)發(fā)工作,不僅在開(kāi)發(fā)過(guò)程中保證了系統(tǒng)所有功能的實(shí)現(xiàn),而且被用于驗(yàn)證和檢測(cè)所開(kāi)發(fā)的系統(tǒng),從而影響到開(kāi)發(fā)工作的各個(gè)階段和UML的各個(gè)模型。在UML中,一個(gè)用例模型由若干個(gè)用例圖來(lái)描述,用例圖的主要元素是用例和執(zhí)行者。2023/1/10大連理工大學(xué)軟件學(xué)院29用例一個(gè)用例是用戶(hù)與計(jì)算機(jī)系統(tǒng)之間的一次典型的交互作用,代表的是系統(tǒng)的一個(gè)完整的功能。UML把用例定義成系統(tǒng)執(zhí)行的一系列動(dòng)作,動(dòng)作的結(jié)果能被外部執(zhí)行者察覺(jué)到。在UML用例圖中,用例表示為一個(gè)橢圓。如“售貨”、“供貨”和“取貨款”都是典型的用例。用例有以下特點(diǎn)。用例代表某些用戶(hù)可見(jiàn)的功能,實(shí)現(xiàn)一個(gè)具體的用戶(hù)目標(biāo)。用例由執(zhí)行者激活,并提供確切的值給執(zhí)行者。用例可大可小,但它必須是對(duì)一個(gè)具體的用戶(hù)目標(biāo)實(shí)現(xiàn)的完整描述。2023/1/10大連理工大學(xué)軟件學(xué)院30自動(dòng)售貨機(jī)系統(tǒng)用例圖2023/1/10大連理工大學(xué)軟件學(xué)院31執(zhí)行者執(zhí)行者是與系統(tǒng)交互的人或物,它代表外部實(shí)體,例如,用戶(hù)、硬件設(shè)備或與本系統(tǒng)交互的另一個(gè)軟件系統(tǒng)。使用用例并與系統(tǒng)交互的任何人或物都是執(zhí)行者。實(shí)踐表明,執(zhí)行者對(duì)確定用例是非常有用的。面對(duì)一個(gè)大型、復(fù)雜的系統(tǒng),要列出用例清單往往很困難,這時(shí)可以先列出執(zhí)行者清單,再針對(duì)每個(gè)執(zhí)行者列出它的用例。這樣做可以使問(wèn)題變得容易很多。2023/1/10大連理工大學(xué)軟件學(xué)院32用例之間的關(guān)系用例間可以有擴(kuò)展、包含和泛化三種關(guān)系。擴(kuò)展關(guān)系將基用例中一段相對(duì)獨(dú)立并且可選的動(dòng)作,用擴(kuò)展(Extend)用例加以封裝。包含關(guān)系使用包含(Include)用例來(lái)封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基(Base)用例復(fù)用。泛化關(guān)系(實(shí)際應(yīng)用較少)子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。2023/1/10大連理工大學(xué)軟件學(xué)院332023/1/10大連理工大學(xué)軟件學(xué)院34建立用例模型幾乎在任何情況下都需要使用用例,通過(guò)用例可以獲取用戶(hù)需求,規(guī)劃和控制項(xiàng)目。獲取用例是需求分析階段的主要工作之一,而且是首先要做的工作。大部分用例將在項(xiàng)目的需求分析階段產(chǎn)生,并且隨著開(kāi)發(fā)工作的深入還會(huì)發(fā)現(xiàn)更多用例,這些新發(fā)現(xiàn)的用例都應(yīng)及時(shí)補(bǔ)充進(jìn)已有的用例集中。用例集中的每個(gè)用例都是對(duì)系統(tǒng)的一個(gè)潛在的需求。包含、擴(kuò)展及泛化的關(guān)系泛化與包含用例屬于無(wú)條件發(fā)生的用例,而擴(kuò)展屬于有條件發(fā)生的用例。泛化中的子用例提供的是直接服務(wù),而包含中的被包含用例提供的是間接服務(wù)。擴(kuò)展用例提供的也是直接服務(wù),但擴(kuò)展用例的發(fā)生是有條件的。泛化中的子用例和擴(kuò)展中的擴(kuò)展用例均可以作為基本用例事件的備選擇流而存在。2023/1/10大連理工大學(xué)軟件學(xué)院352023/1/10大連理工大學(xué)軟件學(xué)院36發(fā)現(xiàn)執(zhí)行者為獲取用例首先要找出系統(tǒng)的執(zhí)行者,可以通過(guò)請(qǐng)系統(tǒng)的用戶(hù)回答一些問(wèn)題的辦法來(lái)發(fā)現(xiàn)執(zhí)行者。獲取用例事實(shí)上,從識(shí)別執(zhí)行者起獲取用例的過(guò)程就已經(jīng)開(kāi)始了。一旦識(shí)別出了執(zhí)行者,就可以對(duì)每個(gè)執(zhí)行者提出問(wèn)題以獲取用例。2023/1/10大連理工大學(xué)軟件學(xué)院37類(lèi)圖和對(duì)象圖類(lèi)圖類(lèi)圖描述類(lèi)和類(lèi)與類(lèi)之間的靜態(tài)關(guān)系,它是從靜態(tài)角度表示系統(tǒng)的,因此類(lèi)圖屬于一種靜態(tài)模型。類(lèi)圖是構(gòu)建其他圖的基礎(chǔ),沒(méi)有類(lèi)圖就沒(méi)有狀態(tài)圖、協(xié)作圖等其他圖,也就無(wú)法表示系統(tǒng)其他方面的特性。
定義類(lèi)類(lèi)的屬性UML描述屬性的語(yǔ)法格式為: 可見(jiàn)性屬性名:類(lèi)型名=初值{性質(zhì)串} 其中,屬性名和類(lèi)型名必須有,其他部分根據(jù)需要可有可無(wú)。2023/1/10大連理工大學(xué)軟件學(xué)院38類(lèi)的圖形符號(hào)2023/1/10大連理工大學(xué)軟件學(xué)院39屬性的可見(jiàn)性(即可訪問(wèn)性)通常分為三種:公有的(public)、私有的(private)和保護(hù)的(protected),分別用加號(hào)(+)、減號(hào)(-)和井號(hào)(#)表示。如果在屬性名前面沒(méi)有標(biāo)注任何符號(hào),則表示該屬性的可見(jiàn)性尚未定義。注意,這里沒(méi)有缺省的可見(jiàn)性。屬性名和類(lèi)型名之間用冒號(hào)(:)分隔。類(lèi)型名表示該屬性的數(shù)據(jù)類(lèi)型,它可以是基本數(shù)據(jù)類(lèi)型,如整數(shù)、實(shí)數(shù)、布爾型等,也可以是用戶(hù)自定義的類(lèi)型,一般說(shuō)來(lái),可用的類(lèi)型由所涉及的程序設(shè)計(jì)語(yǔ)言決定。2023/1/10大連理工大學(xué)軟件學(xué)院40屬性的缺省值用初值表示,類(lèi)型名和初值之間用等號(hào)隔開(kāi)。最后是用花括號(hào)括起來(lái)的性質(zhì)串,列出該屬性所有可能的取值。枚舉類(lèi)型的屬性經(jīng)常使用性質(zhì)串,串中每個(gè)枚舉值之間用逗號(hào)分隔。當(dāng)然,也可以用性質(zhì)串說(shuō)明該屬性的其他信息,比如,約束說(shuō)明{只讀}表明該屬性是只讀屬性。例如,“發(fā)貨單”類(lèi)的屬性“管理員”,在UML類(lèi)圖中像下面那樣描述:
-管理員:String=“未定”2023/1/10大連理工大學(xué)軟件學(xué)院41類(lèi)的操作UML描述操作的語(yǔ)法格式為:可見(jiàn)性操作名(參數(shù)表):返回值類(lèi)型{性質(zhì)串}其中,可見(jiàn)性和操作名是不可缺少的。操作的可見(jiàn)性通常分為公有(用加號(hào)表示)和私有(用減號(hào)表示)兩種,其含義與屬性可見(jiàn)性的含義相同。參數(shù)表由若干個(gè)參數(shù)(用逗號(hào)隔開(kāi))構(gòu)成。參數(shù)的語(yǔ)法格式為:參數(shù)名:參數(shù)類(lèi)型名=缺省值2023/1/10大連理工大學(xué)軟件學(xué)院42關(guān)系如前所述,類(lèi)圖由類(lèi)和它們之間的關(guān)系組成。定義了類(lèi)之后,就可以定義類(lèi)之間的各種關(guān)系了。類(lèi)與類(lèi)之間通常有關(guān)聯(lián)、泛化(繼承)、依賴(lài)和細(xì)化等四種關(guān)系。關(guān)聯(lián)關(guān)系①普通關(guān)聯(lián)普通關(guān)聯(lián)是最常見(jiàn)的關(guān)聯(lián)關(guān)系,只要在類(lèi)與類(lèi)之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示。普通關(guān)聯(lián)的圖示符號(hào)是連接兩個(gè)類(lèi)之間的直線,如圖15.4所示。如果關(guān)聯(lián)是單向的,則稱(chēng)為導(dǎo)航關(guān)聯(lián),其符號(hào)是用實(shí)線箭頭連接兩個(gè)類(lèi)。2023/1/10大連理工大學(xué)軟件學(xué)院43在類(lèi)圖中還可以表示關(guān)聯(lián)中的數(shù)量關(guān)系,即參與關(guān)聯(lián)的對(duì)象的個(gè)數(shù)。在UML中用重?cái)?shù)(類(lèi)似于第6章中的階)說(shuō)明數(shù)量或數(shù)量范圍,例如,0··1表示0到1個(gè)對(duì)象0··*或*表示0到多個(gè)對(duì)象1··15表示1到15個(gè)對(duì)象3表示3個(gè)對(duì)象如果圖中未明確標(biāo)出關(guān)聯(lián)的重?cái)?shù),則缺省重?cái)?shù)是1。2023/1/10大連理工大學(xué)軟件學(xué)院442023/1/10大連理工大學(xué)軟件學(xué)院45②關(guān)聯(lián)的角色在任何關(guān)聯(lián)中都會(huì)涉及到參與此關(guān)聯(lián)的對(duì)象所扮演的角色(即起的作用),在某些情況下顯式標(biāo)明角色名有助于別人理解類(lèi)圖。如果沒(méi)有顯式標(biāo)出角色名,意味用類(lèi)名作為角色名。③限定關(guān)聯(lián)④關(guān)聯(lián)類(lèi)為了說(shuō)明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息??梢砸胍粋€(gè)關(guān)聯(lián)類(lèi)來(lái)記錄這些信息。關(guān)聯(lián)中的每個(gè)連接與關(guān)聯(lián)類(lèi)的一個(gè)對(duì)象相聯(lián)系。關(guān)聯(lián)類(lèi)通過(guò)一條虛線與關(guān)聯(lián)連接。2023/1/10大連理工大學(xué)軟件學(xué)院46自關(guān)聯(lián)2023/1/10大連理工大學(xué)軟件學(xué)院472023/1/10大連理工大學(xué)軟件學(xué)院48⑤聚集聚集也稱(chēng)為聚合,是關(guān)聯(lián)的特例。聚集表示類(lèi)與類(lèi)之間的關(guān)系是整體與部分的關(guān)系。如果在聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成,則該聚集稱(chēng)為共享聚集。如果部分類(lèi)完全隸屬于整體類(lèi),部分與整體共存,整體不存在了部分也會(huì)隨之消失(或失去存在階值了),則該聚集稱(chēng)為復(fù)合聚集(簡(jiǎn)稱(chēng)為組成)。2023/1/10大連理工大學(xué)軟件學(xué)院492023/1/10大連理工大學(xué)軟件學(xué)院50泛化關(guān)系UML中的泛化關(guān)系就是通常所說(shuō)的繼承關(guān)系。具體類(lèi)完全擁有通用類(lèi)信息,還附加一些其他信息。UML對(duì)泛化關(guān)系要求:具體類(lèi)應(yīng)與通用類(lèi)完全一致,通用類(lèi)具有的屬性、操作和關(guān)聯(lián),具體類(lèi)也都隱含具有。具體類(lèi)應(yīng)包含通用類(lèi)所沒(méi)有的額外信息。允許使用通用類(lèi)實(shí)例的地方,也應(yīng)能夠使用具體元素的實(shí)例(Liskov替換原則)。2023/1/10大連理工大學(xué)軟件學(xué)院51泛化可劃分成普通泛化和受限泛化。①普通泛化②受限泛化可以給泛化關(guān)系附加約束條件,說(shuō)明該泛化關(guān)系的使用方法或擴(kuò)充方法,稱(chēng)為受限泛化。預(yù)定義的約束有4種:多重、不相交、完全和不完全。這些約束都是語(yǔ)義約束。2023/1/10大連理工大學(xué)軟件學(xué)院52抽象類(lèi)示例2023/1/10大連理工大學(xué)軟件學(xué)院53復(fù)雜類(lèi)圖示例2023/1/10大連理工大學(xué)軟件學(xué)院54多重繼承示例2023/1/10大連理工大學(xué)軟件學(xué)院55依賴(lài)和細(xì)化①依賴(lài)關(guān)系依賴(lài)關(guān)系描述兩個(gè)模型元素(類(lèi)、用例等)之間的語(yǔ)義關(guān)系:其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素不是獨(dú)立的,它依賴(lài)于獨(dú)立的模型元素,如果獨(dú)立的模型元素改變,將影響依賴(lài)于它的元素。與關(guān)聯(lián)關(guān)系區(qū)別為對(duì)象間表現(xiàn)非固定關(guān)系,如自行車(chē)與打氣筒的關(guān)系。2023/1/10大連理工大學(xué)軟件學(xué)院56依賴(lài)關(guān)系2023/1/10大連理工大學(xué)軟件學(xué)院57關(guān)聯(lián)關(guān)系2023/1/10大連理工大學(xué)軟件學(xué)院58②細(xì)化關(guān)系當(dāng)對(duì)同一事物在不同抽象層次上描述時(shí),這些描述之間具有細(xì)化關(guān)系。細(xì)化是UML中的術(shù)語(yǔ),表示對(duì)事物更詳細(xì)一層的描述。假設(shè)兩個(gè)元素A和B描述同一個(gè)事物,它們的區(qū)別是抽象層次不同,如果B是在A的基礎(chǔ)上的更詳細(xì)的描述,則稱(chēng)B細(xì)化了A,或稱(chēng)A細(xì)化成了B。細(xì)化主要用于模型之間的合作,表示各開(kāi)發(fā)階段不同抽象層次的模型的相關(guān)性,常用于跟蹤模型的演變。2023/1/10大連理工大學(xué)軟件學(xué)院59細(xì)化關(guān)系的圖示2023/1/10大連理工大學(xué)軟件學(xué)院61對(duì)象圖對(duì)象是類(lèi)的實(shí)例,對(duì)象之間的連接是類(lèi)之間關(guān)聯(lián)的實(shí)例,因此,對(duì)象圖可以看作是類(lèi)圖的實(shí)例,能幫助人理解一個(gè)比較復(fù)雜的類(lèi)圖。在UML中,對(duì)象圖與類(lèi)圖具有幾乎完全相同的表示形式,主要差別是對(duì)象的名字下面要加一條下劃線。2023/1/10大連理工大學(xué)軟件學(xué)院62對(duì)象名有下列三種表示格式:第一種格式形如:對(duì)象名:類(lèi)名即對(duì)象名在前,類(lèi)名在后,中間用冒號(hào)連接。第二種格式形如::類(lèi)名這種格式用于尚未給對(duì)象命名的情況,注意,類(lèi)名前的冒號(hào)不能省略。第三種格式形如:對(duì)象名這種格式不帶類(lèi)名(即省略類(lèi)名)。2023/1/10大連理工大學(xué)軟件學(xué)院63對(duì)象圖示例2023/1/10大連理工大學(xué)軟件學(xué)院64包包(package)是一種組合機(jī)制。模型元素通過(guò)內(nèi)在的語(yǔ)義關(guān)系連在一起,形成一個(gè)高內(nèi)聚、低耦合的整體就叫做包。包通常用于對(duì)模型的組織管理,因此有時(shí)又把包稱(chēng)為子系統(tǒng)。包的內(nèi)容包的內(nèi)容可以是一個(gè)類(lèi)圖也可以是另一個(gè)包圖。包與包之間不能共用一個(gè)相同的模型元素。包的依賴(lài)和繼承包與包之間允許建立依賴(lài)、泛化和細(xì)化等關(guān)系。2023/1/10大連理工大學(xué)軟件學(xué)院65包圖示例2023/1/10大連理工大學(xué)軟件學(xué)院663動(dòng)態(tài)建模機(jī)制對(duì)象通過(guò)通信相互協(xié)作的方式以及系統(tǒng)中的對(duì)象在系統(tǒng)生命期中改變狀態(tài)的方式,是系統(tǒng)的動(dòng)態(tài)行為。消息在UML的所有動(dòng)態(tài)圖(狀態(tài)圖、順序圖、協(xié)作圖和活動(dòng)圖)中,消息都表示為連接發(fā)送者和接收者的一根箭頭線,箭頭的形狀表示消息的類(lèi)型,如圖所示。2023/1/10大連理工大學(xué)軟件學(xué)院67消息的類(lèi)型2023/1/10大連理工大學(xué)軟件學(xué)院68UML定義了三種消息。簡(jiǎn)單消息:表示簡(jiǎn)單的控制流,它只是表示控制從一個(gè)對(duì)象傳給另一個(gè)對(duì)象,而沒(méi)有描述通信的任何細(xì)節(jié)。同步消息:表示嵌套的控制流,操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可以繼續(xù)執(zhí)行自己的操作。異步消息:表示異步控制流,發(fā)送者發(fā)出消息后不用等待消息處理完就可以繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。把簡(jiǎn)單消息和同步消息合并成一個(gè)消息(見(jiàn)圖),這樣的消息意味著操作調(diào)用一旦完成就立即返回。2023/1/10大連理工大學(xué)軟件學(xué)院69狀態(tài)圖狀態(tài)圖描述一個(gè)特定對(duì)象的所有可能的狀態(tài)以及引起狀態(tài)轉(zhuǎn)換的事件。狀態(tài)圖表示單個(gè)對(duì)象在其生命期中的行為。一個(gè)狀態(tài)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉(zhuǎn)移。狀態(tài)在狀態(tài)圖中定義的狀態(tài)可能有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))、中間狀態(tài)和復(fù)合狀態(tài)。UML中表示初態(tài)和終態(tài)的符號(hào)與第6章所用的符號(hào)相同。在一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有多個(gè)。2023/1/10大連理工大學(xué)軟件學(xué)院70第一部分為狀態(tài)的名稱(chēng);第二部分為狀態(tài)變量的名字和值,這部分是可選的;第三部分是活動(dòng)表,這部分也是可選的。在活動(dòng)表中經(jīng)常使用下述三種標(biāo)準(zhǔn)事件:entry(進(jìn)入)、exit(退出)和do(做)。entry事件指定進(jìn)入該狀態(tài)的動(dòng)作exit事件指定退出該狀態(tài)的動(dòng)作do事件則指定在該狀態(tài)下的動(dòng)作,這些標(biāo)準(zhǔn)事件一般不做它用。2023/1/10大連理工大學(xué)軟件學(xué)院71活動(dòng)部分的語(yǔ)法如下:事件名(參數(shù)表)/動(dòng)作表達(dá)式其中,“事件名”可以是任何事件的名稱(chēng),包括上述三種標(biāo)準(zhǔn)事件;需要時(shí)可為事件指定參數(shù)表,其語(yǔ)法格式與類(lèi)的操作的參數(shù)表語(yǔ)法格式相似;動(dòng)作表達(dá)式指定應(yīng)做的動(dòng)作。2023/1/10大連理工大學(xué)軟件學(xué)院72狀態(tài)轉(zhuǎn)換狀態(tài)圖中兩個(gè)狀態(tài)之間帶箭頭的連線稱(chēng)為狀態(tài)轉(zhuǎn)換。狀態(tài)的變遷通常是由事件觸發(fā)的,在這種情況下應(yīng)在表示狀態(tài)轉(zhuǎn)換的箭頭線上標(biāo)出觸發(fā)轉(zhuǎn)換的事件表達(dá)式;如果在箭頭線上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動(dòng)執(zhí)行完之后自動(dòng)觸發(fā)轉(zhuǎn)換。事件表達(dá)式的語(yǔ)法如下:事件說(shuō)明[守衛(wèi)條件]/動(dòng)作表達(dá)式∧發(fā)送子句2023/1/10大連理工大學(xué)軟件學(xué)院73其中,事件說(shuō)明的語(yǔ)法為:事件名(參數(shù)表)。守衛(wèi)條件是一個(gè)布爾表達(dá)式。如果同時(shí)使用守衛(wèi)條件和事件說(shuō)明,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式成立時(shí),狀態(tài)轉(zhuǎn)換才發(fā)生。如果只有守衛(wèi)條件沒(méi)有事件說(shuō)明,則只要守衛(wèi)條件為真狀態(tài)轉(zhuǎn)換就發(fā)生。動(dòng)作表達(dá)式是一個(gè)過(guò)程表達(dá)式,當(dāng)狀態(tài)轉(zhuǎn)換開(kāi)始時(shí)執(zhí)行該表達(dá)式。發(fā)送子句是動(dòng)作的特例,它被用來(lái)在狀態(tài)轉(zhuǎn)換期間發(fā)送消息。2023/1/10大連理工大學(xué)軟件學(xué)院74電梯的狀態(tài)圖2023/1/10大連理工大學(xué)軟件學(xué)院75順序圖順序圖描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖有兩個(gè)坐標(biāo)軸:縱坐標(biāo)軸表示時(shí)間,橫坐標(biāo)軸表示不同的對(duì)象。順序圖中的對(duì)象用一個(gè)矩形框表示,框內(nèi)標(biāo)有對(duì)象名(對(duì)象名的表示格式與對(duì)象圖中相同)。從表示對(duì)象的矩形框向下的垂直虛線是對(duì)象的“生命線”,用于表示在某段時(shí)間內(nèi)該對(duì)象是存在的。2023/1/10大連理工大學(xué)軟件學(xué)院76對(duì)象間的通信用對(duì)象生命線之間的水平消息線來(lái)表示,消息箭頭的形狀表明消息的類(lèi)型(同步、異步或簡(jiǎn)單)。當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了。激活用對(duì)象生命線上的細(xì)長(zhǎng)矩形框表示。消息通常用消息名和參數(shù)表來(lái)標(biāo)識(shí)。消息還可以帶有條件表達(dá)式,用以表示分支或決定是否發(fā)送消息。如果用條件表達(dá)式表示分支,則會(huì)有若干個(gè)互斥的箭頭,也就是說(shuō),在某一時(shí)刻僅可發(fā)送分支中的一個(gè)消息。2023/1/10大連理工大學(xué)軟件學(xué)院77順序圖2023/1/10大連理工大學(xué)軟件學(xué)院78協(xié)作圖協(xié)作圖用于描述相互協(xié)作的對(duì)象間的交互關(guān)系和鏈接關(guān)系(鏈接是關(guān)聯(lián)的實(shí)例)。順序圖和協(xié)作圖都描述對(duì)象間的交互關(guān)系,但順序圖著重表現(xiàn)交互的時(shí)間順序,協(xié)作圖則著重表現(xiàn)交互對(duì)象的靜態(tài)鏈接關(guān)系。協(xié)作圖中對(duì)象的圖示與順序圖中一樣。如果一個(gè)對(duì)象在消息交互中被創(chuàng)建,則在對(duì)象名之后標(biāo)以{new},類(lèi)似地,如果一個(gè)對(duì)象在交互期間被刪除,則在對(duì)象名之后標(biāo)以{destroy}。2023/1/10大連理工大學(xué)軟件學(xué)院79對(duì)象間的鏈接關(guān)系類(lèi)似于類(lèi)圖中的關(guān)聯(lián)(但沒(méi)有重?cái)?shù)標(biāo)志)。通過(guò)在對(duì)象間的鏈接上標(biāo)注帶有消息標(biāo)簽的消息,來(lái)表示對(duì)象間的消息傳遞。協(xié)作圖從初始化整個(gè)交互過(guò)程的消息開(kāi)始。2023/1/10大連理工大學(xué)軟件學(xué)院80書(shū)寫(xiě)消息標(biāo)簽的語(yǔ)法規(guī)則如下:前綴[守衛(wèi)條件]序列表達(dá)式返回值:=消息說(shuō)明前綴前綴的語(yǔ)法為:序列號(hào),…/。前綴是用于同步線程或路徑的表達(dá)式,意思是在發(fā)送當(dāng)前消息之前應(yīng)該把指定序列號(hào)的消息處理完。若有多個(gè)序列號(hào)則用逗號(hào)隔開(kāi)。最后用斜線標(biāo)志前綴的結(jié)束。消息標(biāo)簽中可以沒(méi)有前綴。守衛(wèi)條件守衛(wèi)條件的語(yǔ)法與狀態(tài)圖中的相同。2023/1/10大連理工大學(xué)軟件學(xué)院81序列表達(dá)式常用的序列表達(dá)式的語(yǔ)法如下:序列號(hào)recurrence:序列號(hào)用于指定消息發(fā)送的順序。在協(xié)作圖中沒(méi)有時(shí)間軸,因此把消息按順序編號(hào):消息1總是消息序列的開(kāi)始消息,消息1.1是處理消息1的過(guò)程中的第1條嵌套消息,依此類(lèi)推。recurrence語(yǔ)法為:*[循環(huán)子句]或[條件子句]
循環(huán)子句用于指定循環(huán)的條件,而條件子句通常用于表示分支條件。序列表達(dá)式用冒號(hào)標(biāo)志結(jié)束。在序列表達(dá)式中必須有序列號(hào),而recurrence部分是可選的。2023/1/10大連理工大學(xué)軟件學(xué)院82消息說(shuō)明消息說(shuō)明由消息名和參數(shù)表組成,其語(yǔ)法與狀態(tài)圖中事件說(shuō)明的語(yǔ)法相同。返回值表示操作調(diào)用(即消息)的結(jié)果。決定選用哪種圖的原則是,當(dāng)對(duì)象及其鏈接有利于理解交互時(shí)選擇協(xié)作圖,當(dāng)只需了解時(shí)間順序時(shí)選擇順序圖。2023/1/10大連理工大學(xué)軟件學(xué)院83電梯的協(xié)作圖2023/1/10大連理工大學(xué)軟件學(xué)院84活動(dòng)圖活動(dòng)圖描述動(dòng)作及動(dòng)作之間的關(guān)系?;顒?dòng)圖是另一種描述交互的方式,描述采取何種動(dòng)作,動(dòng)作的結(jié)果是什么(動(dòng)作狀態(tài)改變),何時(shí)發(fā)生(動(dòng)作序列),以及在何處發(fā)生(泳道)。2023/1/10大連理工大學(xué)軟件學(xué)院852023/1/10大連理工大學(xué)軟件學(xué)院864描述物理架構(gòu)的機(jī)制系統(tǒng)架構(gòu)(或稱(chēng)為體系結(jié)構(gòu))是對(duì)構(gòu)成系統(tǒng)的各個(gè)部分的框架性描述。在UML中,架構(gòu)的定義是:架構(gòu)是系統(tǒng)的組織結(jié)構(gòu)??梢赃f歸地把架構(gòu)分解成:通過(guò)接口交互的部分,連接各個(gè)部分的關(guān)系,組裝各個(gè)部分的約束。2023/1/10大連理工大學(xué)軟件學(xué)院87邏輯架構(gòu)和物理架構(gòu)系統(tǒng)架構(gòu)分為邏輯架構(gòu)和物理架構(gòu)兩大類(lèi)。邏輯架構(gòu)完整地描述系統(tǒng)的功能,把功能分配到系統(tǒng)的各個(gè)部分,詳細(xì)說(shuō)明它們是如何工作的。在UML中,用于描述邏輯架構(gòu)的圖有:用例圖、類(lèi)圖、對(duì)象圖、狀態(tài)圖、活動(dòng)圖、協(xié)作圖和順序圖。物理架構(gòu)關(guān)心的是實(shí)現(xiàn),因此可以用實(shí)現(xiàn)圖建模,構(gòu)件圖顯示代碼本身的靜態(tài)結(jié)構(gòu),配置圖顯示系統(tǒng)運(yùn)行時(shí)的結(jié)構(gòu)。2023/1/10大連理工大學(xué)軟件學(xué)院88構(gòu)件圖構(gòu)件圖描述軟件構(gòu)件及構(gòu)件之間的依賴(lài)關(guān)系,顯示代碼的靜態(tài)結(jié)構(gòu)。構(gòu)件是邏輯架構(gòu)中定義的概念和功能(例如,類(lèi)、對(duì)象及它們之間的關(guān)系)在物理架構(gòu)中的實(shí)現(xiàn)。典型情況下,構(gòu)件是開(kāi)發(fā)環(huán)境中的實(shí)現(xiàn)文件。軟件構(gòu)件可以是:源構(gòu)件:源構(gòu)件僅在編譯時(shí)才有意義。典型情況下,它是實(shí)現(xiàn)一個(gè)或多個(gè)類(lèi)的源代碼文件。2023/1/10大連理工大學(xué)軟件學(xué)院89二進(jìn)制構(gòu)件:典型情況下,二進(jìn)制構(gòu)件是對(duì)象代碼,它是源構(gòu)件的編譯結(jié)果。它可以是一個(gè)對(duì)象代碼文件,一個(gè)靜態(tài)庫(kù)文件或一個(gè)動(dòng)態(tài)庫(kù)文件。二進(jìn)制構(gòu)件僅在鏈接時(shí)有意義,如果二進(jìn)制構(gòu)件是動(dòng)態(tài)庫(kù)文件,則在運(yùn)行時(shí)有意義(動(dòng)態(tài)庫(kù)只在運(yùn)行時(shí)由可執(zhí)行的構(gòu)件裝入)??蓤?zhí)行構(gòu)件:可執(zhí)行構(gòu)件是一個(gè)可執(zhí)行的程序文件,它是鏈接所有二進(jìn)制構(gòu)件所得到的結(jié)果。一個(gè)可執(zhí)行構(gòu)件代表在處理器(計(jì)算機(jī))上運(yùn)行的可執(zhí)行單元。2023/1/10大連理工大學(xué)軟件學(xué)院90構(gòu)件是類(lèi)型,僅僅可執(zhí)行構(gòu)件才可能有實(shí)例(當(dāng)它們代表的程序在處理器上執(zhí)行時(shí))。構(gòu)件圖只把構(gòu)件顯示成類(lèi)型顯示構(gòu)件的實(shí)例必須使用配置圖。2023/1/10大連理工大學(xué)軟件學(xué)院91構(gòu)件圖示例2023/1/10大連理工大學(xué)軟件學(xué)院92配置圖配置圖描述處理器、硬件設(shè)備和軟件構(gòu)件在運(yùn)行時(shí)的架構(gòu),它顯示系統(tǒng)硬件的物理拓?fù)浣Y(jié)構(gòu)及在此結(jié)構(gòu)上執(zhí)行的軟件。使用配置圖可以顯示硬件節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑、節(jié)點(diǎn)上運(yùn)行的軟件構(gòu)件、軟件構(gòu)件包含的邏輯單元(對(duì)象、類(lèi))等。配置圖常用于幫助人理解分布式系統(tǒng)。2023/1/10大連理工大學(xué)軟件學(xué)院93節(jié)點(diǎn)和連接節(jié)點(diǎn)(node)代表一個(gè)物理設(shè)備及在其上運(yùn)行的軟件系統(tǒng)。節(jié)點(diǎn)間的連線表示系統(tǒng)之間進(jìn)行交互的通信線路,在UML中稱(chēng)為連接。通信類(lèi)型用版類(lèi)表示,寫(xiě)在表示連接的線旁,以指定所用的通信協(xié)議或網(wǎng)絡(luò)類(lèi)型。構(gòu)件和接口在配置圖中,構(gòu)件代表可執(zhí)行的物理代碼模塊(可執(zhí)行構(gòu)件的實(shí)例),在邏輯上它可以與類(lèi)圖中的包或類(lèi)對(duì)應(yīng)。因此,配置圖顯示運(yùn)行時(shí)各個(gè)包或類(lèi)在節(jié)點(diǎn)中的分布情況。在面向?qū)ο蠓椒ㄖ?,并不是?lèi)和構(gòu)件等元素的所有屬性和操作都對(duì)外可見(jiàn),它們對(duì)外提供的可見(jiàn)操作和屬性稱(chēng)為接口。接口用一端是小圓圈的直線來(lái)表示。2023/1/10大連理工大學(xué)軟件學(xué)院94對(duì)象在一個(gè)面向?qū)ο蟮能浖到y(tǒng)中運(yùn)行著許多個(gè)對(duì)象。由于可以把構(gòu)件看作是與包或類(lèi)對(duì)應(yīng)的物理代碼模塊,因此,構(gòu)件中應(yīng)該包含一些運(yùn)行的對(duì)象。配置圖中的對(duì)象與對(duì)象圖中的對(duì)象表示方法相同。2023/1/10大連理工大學(xué)軟件學(xué)院952023/1/10大連理工大學(xué)軟件學(xué)院965使用和擴(kuò)展UML使用UML的準(zhǔn)則不要試圖使用所有的圖形和符號(hào)應(yīng)該根據(jù)項(xiàng)目的特點(diǎn),選用最適用的圖形和符號(hào)。一般來(lái)說(shuō),應(yīng)該優(yōu)先選用簡(jiǎn)單的圖形和符號(hào),例如,用例、類(lèi)、關(guān)聯(lián)、屬性和繼承等概念是最常用的。不要為每個(gè)事物都畫(huà)一個(gè)模型應(yīng)該把精力集中于關(guān)鍵的領(lǐng)域。最好只畫(huà)幾張關(guān)鍵的圖,經(jīng)常使用并不斷更新、修改這幾張圖。2023/1/10大連理工大學(xué)軟件學(xué)院97應(yīng)該分層次地畫(huà)模型圖根據(jù)項(xiàng)目進(jìn)展的不同階段
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭教育輔導(dǎo)合同:學(xué)院與家長(zhǎng)共同簽署
- 建筑機(jī)電安裝合同
- 零售店鋪?zhàn)赓U合同細(xì)則
- 戰(zhàn)略合作合同保密規(guī)定2025
- 建筑勞務(wù)分包臨時(shí)合同
- 土地使用權(quán)出讓合同范例
- 代課教師正式合同模板
- 跨國(guó)玉米技術(shù)合作框架合同
- 畢業(yè)未就業(yè)合同樣本:就業(yè)創(chuàng)業(yè)見(jiàn)習(xí)
- 大型水利設(shè)施工程勞務(wù)分包合同
- AQ 6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范知識(shí)培訓(xùn)
- 水滸傳讀書(shū)分享會(huì)
- GB/T 44744-2024糧食儲(chǔ)藏低溫儲(chǔ)糧技術(shù)規(guī)程
- 房地產(chǎn)市場(chǎng)報(bào)告 -【成都】【銳理】2024年10月丨房地產(chǎn)市場(chǎng)月報(bào)
- 《護(hù)理禮儀與人際溝通》第五章
- 危急值的考試題及答案
- 《算法設(shè)計(jì)與分析基礎(chǔ)》(Python語(yǔ)言描述) 課件 第1章 緒論
- 灌砂法壓實(shí)度自動(dòng)計(jì)算表(華巖軟件)
- 中華民族共同體的歷史、現(xiàn)實(shí)與未來(lái)
- 魯科版小學(xué)四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案(適合山東科學(xué)技術(shù)版教材)
- 新漢語(yǔ)水平考試(HSK6級(jí))真題
評(píng)論
0/150
提交評(píng)論