UML面向?qū)ο蠼TO(shè)計_第1頁
UML面向?qū)ο蠼TO(shè)計_第2頁
UML面向?qū)ο蠼TO(shè)計_第3頁
UML面向?qū)ο蠼TO(shè)計_第4頁
UML面向?qū)ο蠼TO(shè)計_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、UMLUML面向?qū)ο蠼Ec設(shè)計面向?qū)ο蠼Ec設(shè)計 主講:王仁春主講:王仁春UMLUML面向?qū)ο蠼Ec設(shè)計面向?qū)ο蠼Ec設(shè)計 本課程內(nèi)容安排:1、面向?qū)ο蟾拍钆cUML介紹:2、類建模與類圖介紹:3、用例與用例圖介紹:4、順序圖介紹:5、狀態(tài)圖介紹:6、活動圖:7、協(xié)作圖與構(gòu)建圖與部署圖介紹:8、UML在軟件開發(fā)實例中的具體應(yīng)用。第第01講講面向?qū)ο蟾拍钆cUML介紹本講目標(biāo): 1、面向?qū)ο蟮姆治龊驮O(shè)計、面向?qū)ο蟮姆治龊驮O(shè)計 (OOAD) 2、面向?qū)ο蟮幕靖拍睢?、面向?qū)ο蟮幕靖拍睢?3、模型與建模、模型與建模 4、UML的基本概念。的基本概念。 5、UML的組成。的組成。 6、一個、一個UML案

2、例。案例。1、面向?qū)ο蟮姆治龊驮O(shè)計 (OOAD)1.1、面向?qū)ο蟪绦蛟O(shè)計的引入: 隨著信息技術(shù)的發(fā)展,軟件復(fù)雜性的增長隨著信息技術(shù)的發(fā)展,軟件復(fù)雜性的增長 使軟件開發(fā)越來越困難使軟件開發(fā)越來越困難應(yīng)用軟件網(wǎng)絡(luò)操作系統(tǒng)軟件可能是人類制造出來的最復(fù)雜的實體軟件可能是人類制造出來的最復(fù)雜的實體1.2、面向?qū)ο蟮姆治龊驮O(shè)計 (OOAD) 面向?qū)ο蟮姆椒ò凑杖祟惖淖匀凰季S的方式,面對客觀面向?qū)ο蟮姆椒ò凑杖祟惖淖匀凰季S的方式,面對客觀世界建立軟件模型。世界建立軟件模型。 充分體現(xiàn)了對復(fù)雜系統(tǒng)進(jìn)行分解、抽象、模塊化等思想充分體現(xiàn)了對復(fù)雜系統(tǒng)進(jìn)行分解、抽象、模塊化等思想 OOAOOA依照用戶所理解的真實世界

3、中的對象概念,發(fā)現(xiàn)和分依照用戶所理解的真實世界中的對象概念,發(fā)現(xiàn)和分析對象的內(nèi)部構(gòu)成和外部關(guān)系,建立準(zhǔn)確而簡潔的軟件析對象的內(nèi)部構(gòu)成和外部關(guān)系,建立準(zhǔn)確而簡潔的軟件系統(tǒng)的對象模型。系統(tǒng)的對象模型。 OOD OOD 是根據(jù)已建立的系統(tǒng)對象模型,運(yùn)用面向?qū)ο蠹夹g(shù),是根據(jù)已建立的系統(tǒng)對象模型,運(yùn)用面向?qū)ο蠹夹g(shù),進(jìn)行軟件設(shè)計。進(jìn)行軟件設(shè)計。 2、面向?qū)ο蟮幕靖拍?。面向?qū)ο蟮幕靖拍?類與對象類與對象 抽象抽象 封裝封裝 繼承繼承 多態(tài)多態(tài)2.1 類和對象的概念多邊形對象多邊形對象多邊形類多邊形類屬性屬性頂點(diǎn)邊的顏色填充顏色方法方法繪制擦除移動抽象為屬性 1方法 1屬性 3方法 22.2類和對象的關(guān)系

4、:抽象 考察特定應(yīng)用程序相關(guān)問題的某些方面的過程考察特定應(yīng)用程序相關(guān)問題的某些方面的過程2.3類的特性:封裝 信息隱藏的過程信息隱藏的過程 有選擇的數(shù)據(jù)隱藏有選擇的數(shù)據(jù)隱藏 防止意外的數(shù)據(jù)破壞防止意外的數(shù)據(jù)破壞 更易于隔離和修復(fù)錯誤更易于隔離和修復(fù)錯誤類的特性:封裝 封裝是允許有選擇地隱藏類中的屬性和方法的過程封裝是允許有選擇地隱藏類中的屬性和方法的過程在類的外部不能訪問在類的外部可以訪問私有公有類2.4類的特性:繼承 超類是有其他類繼承其特征和行為的類超類是有其他類繼承其特征和行為的類 繼承其他類的類稱為子類繼承其他類的類稱為子類動物動物2.5類的特性:多態(tài)性 同樣的函數(shù)在不同的類上有不同的

5、行為同樣的函數(shù)在不同的類上有不同的行為類:類:形狀方法:方法:繪制移動 初始化子類子類對各個子類實現(xiàn)的方法 將產(chǎn)生不同的結(jié)果2.6 類的其他知識 接口:接口是一個收集方法和常數(shù)表單的契約。當(dāng)類執(zhí)行一個接口,它就許諾聲明在那個接口中執(zhí)行所有的方法。 在不同類中實現(xiàn)取用相同參數(shù)的同名成員函數(shù) 契約,設(shè)計的靈魂 重載在同一類中實現(xiàn)取用不同參數(shù)的同名成員函數(shù) 消息對象之間的交互包含三個方面的內(nèi)容:消息的接收者;接收對象應(yīng)采用的方法;方法所需要的參數(shù)3、模型與建模3.1什么是模型 模型是現(xiàn)實的簡化模型是現(xiàn)實的簡化模型提供了系統(tǒng)的設(shè)計圖。模型可以包含詳細(xì)的規(guī)劃,也可以包含概括性的規(guī)劃,這種規(guī)劃高度概括了正

6、在考慮的系統(tǒng)。好的模型包括那些具有高度抽象性的元素。 模型有助于按原樣或根據(jù)需要使系統(tǒng)可視化 通過模型可以詳細(xì)說明系統(tǒng)的結(jié)構(gòu)或行為 模型可以提供一個指導(dǎo)我們構(gòu)建系統(tǒng)的模板 模型可以記錄已經(jīng)做出的決策3.2、為什么要建模 建模是為了讓我們更好地理解將要開發(fā)的系統(tǒng)。建模是為了讓我們更好地理解將要開發(fā)的系統(tǒng)。User Interface(Visual Basic,Java)Business Logic(C+, Java)Database Server(C+ & SQL)3.3、建模要實現(xiàn)的目的 模型有助于按原樣或根據(jù)需要使系統(tǒng)可視化。模型有助于按原樣或根據(jù)需要使系統(tǒng)可視化。 通過模型可以詳細(xì)

7、說明系統(tǒng)的結(jié)構(gòu)或行為。通過模型可以詳細(xì)說明系統(tǒng)的結(jié)構(gòu)或行為。 模型可以提供一個指導(dǎo)我們構(gòu)建系統(tǒng)的模板。模型可以提供一個指導(dǎo)我們構(gòu)建系統(tǒng)的模板。 模型可以記錄已經(jīng)做出的決策。模型可以記錄已經(jīng)做出的決策。3.4、建模的原則 選擇創(chuàng)建什么模型對于如何處理問題以及如何形成解決方選擇創(chuàng)建什么模型對于如何處理問題以及如何形成解決方案有很深遠(yuǎn)的影響。案有很深遠(yuǎn)的影響。 每一種模型可以在不同的精度級別上表示。每一種模型可以在不同的精度級別上表示。 最佳模型與現(xiàn)實情況是緊密相連的。最佳模型與現(xiàn)實情況是緊密相連的。 一個模型不足以全面地反映實際情況。每個具有一定規(guī)模一個模型不足以全面地反映實際情況。每個具有一定規(guī)

8、模的系統(tǒng)都是通過一組幾乎獨(dú)立的模型來表示的。的系統(tǒng)都是通過一組幾乎獨(dú)立的模型來表示的。 4、UML的基本概念。4.1UML 簡介 統(tǒng)一建模語言UML(Unified Modeling Language)是一種繪制軟件藍(lán)圖的標(biāo)準(zhǔn)語言。 可以用UML對軟件密集型系統(tǒng)進(jìn)行可視化、詳述、構(gòu)造和文檔化。 從企業(yè)信息系統(tǒng)到基于Web的分布式應(yīng)用,甚至嚴(yán)格的實時嵌入式系統(tǒng)都適合于用UML來建模。 它是一種富有表達(dá)力的語言,可以描述開發(fā)所需要的各種視圖,然后以此為基礎(chǔ)開發(fā)系統(tǒng)基礎(chǔ)開發(fā)系統(tǒng)。 4.2UML的語義與語法: 1.UML語義描述基于描述基于UML的精確元模型定義。元模型為的精確元模型定義。元模型為UM

9、L的所有元素在語法和語義上提供了簡單、一致、通用的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達(dá)方法所造成的影響。此外人而異的最佳表達(dá)方法所造成的影響。此外UML還支持對還支持對元模型的擴(kuò)展定義。元模型的擴(kuò)展定義。 2 UML表示法定義定義UML符號的表示法,為開發(fā)者或開符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級的模型,在語準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級

10、的模型,在語義上它是義上它是UML元模型的實例元模型的實例 4.3在不同系統(tǒng)中的應(yīng)用信息系統(tǒng)信息系統(tǒng): : 與數(shù)據(jù)庫有關(guān)的系統(tǒng)與數(shù)據(jù)庫有關(guān)的系統(tǒng)技術(shù)系統(tǒng):處理和控制技術(shù)設(shè)備技術(shù)系統(tǒng):處理和控制技術(shù)設(shè)備嵌入式系統(tǒng):控制像移動電話這樣的設(shè)備以嵌入式系統(tǒng):控制像移動電話這樣的設(shè)備以及家用設(shè)備及家用設(shè)備分布式系統(tǒng):使用分布式系統(tǒng):使用 CORBA CORBA 和類似的面向?qū)皖愃频拿嫦驅(qū)ο髾C(jī)制分布在不同系統(tǒng)上的象機(jī)制分布在不同系統(tǒng)上的數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)系統(tǒng)軟件:操作系統(tǒng)和編寫系統(tǒng)實用程序系統(tǒng)軟件:操作系統(tǒng)和編寫系統(tǒng)實用程序業(yè)務(wù)系統(tǒng):與工作流有關(guān)的系統(tǒng)業(yè)務(wù)系統(tǒng):與工作流有關(guān)的系統(tǒng)5、UML的組成。5.

11、UML的組成 標(biāo)準(zhǔn)建模語言UML的重要內(nèi)容可以由下列五類圖(共9種圖形)來定義:類圖:類圖類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)結(jié)構(gòu)(類的屬性和操作類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。系統(tǒng)的整個生命周期都是有效的。 以洗衣機(jī)為例:類圖如右下:以洗衣機(jī)為例:類圖如右下:對象圖:對象圖是類圖的實例,幾乎使用與類圖完全相同的標(biāo)識。他們的不是類圖的實例,幾乎使用與類圖完全相

12、同的標(biāo)識。他們的不同點(diǎn)在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象同點(diǎn)在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。統(tǒng)某一時間段存在。 如下面:左圖指明對象和它對應(yīng)的類名;右圖盡管指明了對象所屬類,如下面:左圖指明對象和它對應(yīng)的類名;右圖盡管指明了對象所屬類,但并未提供一個具體的對象名,這是匿名對象。但并未提供一個具體的對象名,這是匿名對象。用例圖 用例圖:是從用戶角度描述系統(tǒng)功能,并指出各功能的操用例圖:是從用戶角度描述系統(tǒng)功能,并指

13、出各功能的操作者作者 。 以洗衣機(jī)系統(tǒng)如下:以洗衣機(jī)系統(tǒng)如下:狀態(tài)圖 狀態(tài)圖狀態(tài)圖是對類圖的補(bǔ)充。在實用上并不需要為所有的類畫是對類圖的補(bǔ)充。在實用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。如下為一洗衣過程的狀態(tài)圖。且發(fā)生改變的類畫狀態(tài)圖。如下為一洗衣過程的狀態(tài)圖。順序圖 順序圖顯示對象之間的動態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消順序圖顯示對象之間的動態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互。息發(fā)送的順序,同時顯示對象之間的交互?;顒訄D 活動圖活動圖描述滿足用例要求所要進(jìn)行的

14、活動以及活動間的約描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動束關(guān)系,有利于識別并行活動協(xié)作圖 協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖相似,顯協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對象以及它們之間的關(guān)系。顯示對象以及它們之間的關(guān)系。構(gòu)件圖 構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個部件可能是一個資源代碼部件、一個二進(jìn)制部件或一一個部件可能是一個資源代碼部件、一個二進(jìn)制部件或一個可執(zhí)行部

15、件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件個可執(zhí)行部件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件圖有助于分析和理解部件之間的相互影響程度。圖有助于分析和理解部件之間的相互影響程度。部署圖 配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實際的計算機(jī)和設(shè)備際的計算機(jī)和設(shè)備(用節(jié)點(diǎn)表示用節(jié)點(diǎn)表示)以及它們之間的連接關(guān)系,以及它們之間的連接關(guān)系,也可顯示連接的類型及部件之間的依賴性。在節(jié)點(diǎn)內(nèi)部,也可顯示連接的類型及部件之間的依賴性。在節(jié)點(diǎn)內(nèi)部,放置可執(zhí)行部件和對象以顯示節(jié)點(diǎn)跟可執(zhí)行軟件單元的對放置可執(zhí)行部件和對象以顯示節(jié)點(diǎn)跟可執(zhí)行軟件單元的對應(yīng)關(guān)系。下面為

16、不同品牌計算機(jī)的通信部署圖:應(yīng)關(guān)系。下面為不同品牌計算機(jī)的通信部署圖:UML中幾個圖的關(guān)系用例圖需求類圖(復(fù)雜)狀態(tài)圖順序圖類圖(簡單)活動圖協(xié)作圖UML應(yīng)用領(lǐng)域 最常用的是為軟件系統(tǒng)建模,但不限于軟件系統(tǒng)建模。UML還可用來描述其他非軟件系統(tǒng),如一個機(jī)構(gòu)的組成或機(jī)構(gòu)中的工作流程等。UML應(yīng)用-需求分析階段 UML 的用例視圖可以表示客戶的需求,通過用例建??梢詫ν獠康慕巧约八鼈兯枰南到y(tǒng)功能建模。UML應(yīng)用-分析階段 分析階段主要考慮所要解決的問題。可用UML 的邏輯視圖和動態(tài)視圖來描述,類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu);協(xié)作圖、狀態(tài)圖、順序圖和活動圖描述系統(tǒng)的動態(tài)特征。 在分析階段,只為問題領(lǐng)域

17、的類建模,不定義軟件系統(tǒng)的解決方案的細(xì)節(jié)(如用戶接口的類數(shù)據(jù)庫等)。UML應(yīng)用-設(shè)計階段 在設(shè)計階段把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案,加入新的類來提供技術(shù)基礎(chǔ)結(jié)構(gòu)-用戶接口,數(shù)據(jù)庫操作等。 分析階段的領(lǐng)域問題類被嵌入在這個技術(shù)基礎(chǔ)結(jié)構(gòu)中,設(shè)計階段的結(jié)果是構(gòu)造階段的詳細(xì)的規(guī)格說明。UML應(yīng)用-構(gòu)造階段 在構(gòu)造(或程序設(shè)計)階段把設(shè)計階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計語言的代碼。UML應(yīng)用-測試階段 對系統(tǒng)的測試通常分為單元測試、集成測試、系統(tǒng)測試和接受測試幾個不同級別。 不同的測試小組使用不同的UML 圖作為他們工作的基礎(chǔ)。單元測試使用類圖和類的規(guī)格說明;集成測試典型地使用組件圖和協(xié)作圖;而系

18、統(tǒng)測試實現(xiàn)用例圖來確認(rèn)系統(tǒng)的行為是否符合這些圖中的定義。UML應(yīng)用-構(gòu)造階段 在構(gòu)造(或程序設(shè)計)階段把設(shè)計階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計語言的代碼。6、一個UML案例 順序圖案例 劉備孔明關(guān)羽求戰(zhàn)請擬策略張飛請防守荊州請防守荊州前線孫權(quán)曹操請聯(lián)絡(luò)孫權(quán)請孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍劉備的責(zé)任? 劉備求戰(zhàn)請擬策略請防守荊州請聯(lián)絡(luò)孫權(quán)我必須 迎戰(zhàn)曹操!使用UML表示 孔明請擬策略請聯(lián)絡(luò)孫權(quán)請孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻使用UML表示 關(guān)羽張飛請防守荊州請防守荊州前線關(guān)羽防守荊州張飛防守荊州前線 關(guān)羽防守荊州張飛防守荊州前線劉備迎戰(zhàn)曹操孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻UML的類圖 使用C# 劉備迎戰(zhàn)曹操寫C#程序class 劉備public 迎戰(zhàn)曹操() 孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻寫C#程序class 孔明public 擬定策略() public 聯(lián)合孫權(quán)(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論