UML面向?qū)ο蠼;A(chǔ)_第1頁
UML面向?qū)ο蠼;A(chǔ)_第2頁
UML面向?qū)ο蠼;A(chǔ)_第3頁
UML面向?qū)ο蠼;A(chǔ)_第4頁
UML面向?qū)ο蠼;A(chǔ)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UML面向?qū)ο蠼;A(chǔ)UML面向?qū)ο蠼1菊n程內(nèi)容安排:

1、面向?qū)ο蟾拍钆cUML介紹:

2、類建模與類圖介紹:

3、用例與用例圖介紹:

4、順序圖介紹:

5、狀態(tài)圖介紹:

6、活動(dòng)圖:

7、協(xié)作圖與構(gòu)建圖與部署圖介紹:

8、UML在軟件開發(fā)實(shí)例中的具體應(yīng)用。1、面向?qū)ο蟮姆治龊驮O(shè)計(jì)(OOAD)1.1、面向?qū)ο蟪绦蛟O(shè)計(jì)的引入:隨著信息技術(shù)的發(fā)展,軟件復(fù)雜性的增長使軟件開發(fā)越來越困難應(yīng)用軟件網(wǎng)絡(luò)操作系統(tǒng)軟件可能是人類制造出來的最復(fù)雜的實(shí)體1.2、面向?qū)ο蟮姆治龊驮O(shè)計(jì)(OOAD)面向?qū)ο蟮姆椒ò凑杖祟惖淖匀凰季S的方式,面對(duì)客觀世界建立軟件模型。充分體現(xiàn)了對(duì)復(fù)雜系統(tǒng)進(jìn)行分解、抽象、模塊化等思想OOA依照用戶所理解的真實(shí)世界中的對(duì)象概念,發(fā)現(xiàn)和分析對(duì)象的內(nèi)部構(gòu)成和外部關(guān)系,建立準(zhǔn)確而簡(jiǎn)潔的軟件系統(tǒng)的對(duì)象模型。

OOD是根據(jù)已建立的系統(tǒng)對(duì)象模型,運(yùn)用面向?qū)ο蠹夹g(shù),進(jìn)行軟件設(shè)計(jì)。2、面向?qū)ο蟮幕靖拍?。面向?qū)ο蟮幕靖拍铑惻c對(duì)象抽象封裝繼承多態(tài)2.1類和對(duì)象的概念多邊形對(duì)象多邊形類屬性

頂點(diǎn)

邊的顏色

填充顏色方法

繪制

擦除

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

同樣的函數(shù)在不同的類上有不同的行為類:形狀方法:繪制移動(dòng)初始化子類對(duì)各個(gè)子類實(shí)現(xiàn)的方法將產(chǎn)生不同的結(jié)果2.6類的其他知識(shí)接口:

接口是一個(gè)收集方法和常數(shù)表單的契約。當(dāng)類執(zhí)行一個(gè)接口,它就許諾聲明在那個(gè)接口中執(zhí)行所有的方法。 在不同類中實(shí)現(xiàn)取用相同參數(shù)的同名成員函數(shù)契約,設(shè)計(jì)的靈魂

重載

在同一類中實(shí)現(xiàn)取用不同參數(shù)的同名成員函數(shù)消息

對(duì)象之間的交互 包含三個(gè)方面的內(nèi)容:

消息的接收者;接收對(duì)象應(yīng)采用的方法;方法所需要的參數(shù)3、模型與建模

3.1什么是模型模型是現(xiàn)實(shí)的簡(jiǎn)化

模型提供了系統(tǒng)的設(shè)計(jì)圖。模型可以包含詳細(xì)的規(guī)劃,也可以包含概括性的規(guī)劃,這種規(guī)劃高度概括了正在考慮的系統(tǒng)。好的模型包括那些具有高度抽象性的元素。模型有助于按原樣或根據(jù)需要使系統(tǒng)可視化通過模型可以詳細(xì)說明系統(tǒng)的結(jié)構(gòu)或行為模型可以提供一個(gè)指導(dǎo)我們構(gòu)建系統(tǒng)的模板模型可以記錄已經(jīng)做出的決策3.2、為什么要建模建模是為了讓我們更好地理解將要開發(fā)的系統(tǒng)。UserInterface(VisualBasic,Java)BusinessLogic(C++,Java)DatabaseServer(C++&SQL)3.3、建模要實(shí)現(xiàn)的目的模型有助于按原樣或根據(jù)需要使系統(tǒng)可視化。通過模型可以詳細(xì)說明系統(tǒng)的結(jié)構(gòu)或行為。模型可以提供一個(gè)指導(dǎo)我們構(gòu)建系統(tǒng)的模板。模型可以記錄已經(jīng)做出的決策。3.4、建模的原則選擇創(chuàng)建什么模型對(duì)于如何處理問題以及如何形成解決方案有很深遠(yuǎn)的影響。每一種模型可以在不同的精度級(jí)別上表示。最佳模型與現(xiàn)實(shí)情況是緊密相連的。一個(gè)模型不足以全面地反映實(shí)際情況。每個(gè)具有一定規(guī)模的系統(tǒng)都是通過一組幾乎獨(dú)立的模型來表示的。4、UML的基本概念。4.1UML簡(jiǎn)介統(tǒng)一建模語言UML(UnifiedModelingLanguage)是一種繪制軟件藍(lán)圖的標(biāo)準(zhǔn)語言??梢杂肬ML對(duì)軟件密集型系統(tǒng)進(jìn)行可視化、詳述、構(gòu)造和文檔化。從企業(yè)信息系統(tǒng)到基于Web的分布式應(yīng)用,甚至嚴(yán)格的實(shí)時(shí)嵌入式系統(tǒng)都適合于用UML來建模。它是一種富有表達(dá)力的語言,可以描述開發(fā)所需要的各種視圖,然后以此為基礎(chǔ)開發(fā)系統(tǒng)。

4.2UML的語義與語法:1.UML語義描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡(jiǎn)單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達(dá)方法所造成的影響。此外UML還支持對(duì)元模型的擴(kuò)展定義。2.UML表示法定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語義上它是UML元模型的實(shí)例4.3在不同系統(tǒng)中的應(yīng)用信息系統(tǒng): 與數(shù)據(jù)庫有關(guān)的系統(tǒng)技術(shù)系統(tǒng):處理和控制技術(shù)設(shè)備嵌入式系統(tǒng):控制像移動(dòng)電話這樣的設(shè)備以 及家用設(shè)備分布式系統(tǒng):使用CORBA和類似的面向?qū)? 象機(jī)制分布在不同系統(tǒng)上的 數(shù)據(jù)庫系統(tǒng)系統(tǒng)軟件:操作系統(tǒng)和編寫系統(tǒng)實(shí)用程序業(yè)務(wù)系統(tǒng):與工作流有關(guān)的系統(tǒng)5、UML的組成。5.UML的組成

標(biāo)準(zhǔn)建模語言UML的重要內(nèi)容可以由下列五類圖(共9種圖形)來定義:類圖:類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的。以洗衣機(jī)為例:類圖如右下:對(duì)象圖:對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。他們的不同點(diǎn)在于對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類。一個(gè)對(duì)象圖是類圖的一個(gè)實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。如下面:左圖指明對(duì)象和它對(duì)應(yīng)的類名;右圖盡管指明了對(duì)象所屬類,但并未提供一個(gè)具體的對(duì)象名,這是匿名對(duì)象。用例圖用例圖:是從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。以洗衣機(jī)系統(tǒng)如下:狀態(tài)圖狀態(tài)圖是對(duì)類圖的補(bǔ)充。在實(shí)用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個(gè)狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。如下為一洗衣過程的狀態(tài)圖。順序圖順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互?;顒?dòng)圖活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)協(xié)作圖協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系。構(gòu)件圖構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個(gè)部件可能是一個(gè)資源代碼部件、一個(gè)二進(jìn)制部件或一個(gè)可執(zhí)行部件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件圖有助于分析和理解部件之間的相互影響程度。部署圖配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實(shí)際的計(jì)算機(jī)和設(shè)備(用節(jié)點(diǎn)表示)以及它們之間的連接關(guān)系,也可顯示連接的類型及部件之間的依賴性。在節(jié)點(diǎn)內(nèi)部,放置可執(zhí)行部件和對(duì)象以顯示節(jié)點(diǎn)跟可執(zhí)行軟件單元的對(duì)應(yīng)關(guān)系。下面為不同品牌計(jì)算機(jī)的通信部署圖:UML中幾個(gè)圖的關(guān)系用例圖需求類圖(復(fù)雜)狀態(tài)圖順序圖類圖(簡(jiǎn)單)活動(dòng)圖協(xié)作圖UML應(yīng)用領(lǐng)域

最常用的是為軟件系統(tǒng)建模,但不限于軟件系統(tǒng)建模。UML還可用來描述其他非軟件系統(tǒng),如一個(gè)機(jī)構(gòu)的組成或機(jī)構(gòu)中的工作流程等。UML應(yīng)用---需求分析階段UML的用例視圖可以表示客戶的需求,通過用例建??梢詫?duì)外部的角色以及它們所需要的系統(tǒng)功能建模。UML應(yīng)用---分析階段

分析階段主要考慮所要解決的問題??捎肬ML的邏輯視圖和動(dòng)態(tài)視圖來描述,類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu);協(xié)作圖、狀態(tài)圖、順序圖和活動(dòng)圖描述系統(tǒng)的動(dòng)態(tài)特征。在分析階段,只為問題領(lǐng)域的類建模,不定義軟件系統(tǒng)的解決方案的細(xì)節(jié)(如用戶接口的類數(shù)據(jù)庫等)。UML應(yīng)用---設(shè)計(jì)階段在設(shè)計(jì)階段把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案,加入新的類來提供技術(shù)基礎(chǔ)結(jié)構(gòu)---用戶接口,數(shù)據(jù)庫操作等。分析階段的領(lǐng)域問題類被嵌入在這個(gè)技術(shù)基礎(chǔ)結(jié)構(gòu)中,設(shè)計(jì)階段的結(jié)果是構(gòu)造階段的詳細(xì)的規(guī)格說明。UML應(yīng)用---構(gòu)造階段在構(gòu)造(或程序設(shè)計(jì))階段把設(shè)計(jì)階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語言的代碼。UML應(yīng)用---測(cè)試階段對(duì)系統(tǒng)的測(cè)試通常分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和接受測(cè)試幾個(gè)不同級(jí)別。不同的測(cè)試小組使用不同的UML圖作為他們工作的基礎(chǔ)。單元測(cè)試使用類圖和類的規(guī)格說明;集成測(cè)試典型地使用組件圖和協(xié)作圖;而系統(tǒng)測(cè)試實(shí)現(xiàn)用例圖來確認(rèn)系統(tǒng)的行為是否符合這些圖中的定義。6、一個(gè)UML案例

順序圖案例

劉備孔明關(guān)羽求戰(zhàn)請(qǐng)擬策略張飛請(qǐng)防守荊州請(qǐng)防守荊州前線孫權(quán)曹操請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍劉備的責(zé)任?

劉備求戰(zhàn)請(qǐng)擬策略請(qǐng)防守荊州請(qǐng)聯(lián)絡(luò)孫權(quán)我必須

迎戰(zhàn)曹操!!使用UML表示

孔明請(qǐng)擬策略請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻使用UML表示

關(guān)羽張飛請(qǐng)防守荊州請(qǐng)防守荊州前線關(guān)羽防守荊州張飛防守荊州前線

關(guān)羽防守荊州張飛防守荊州前線劉備迎戰(zhàn)曹操孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻UML的類圖

怎么根據(jù)模型來寫代碼呢?

使用C#

劉備迎戰(zhàn)曹操寫C#程序class劉備{public迎戰(zhàn)曹操(){

……}}

孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻寫C#程序class孔明{public擬定策略(){

……}public聯(lián)合孫權(quán)(){

……}private

借東風(fēng)火攻(){

……}}class劉備{public

迎戰(zhàn)曹操(){

……}}使用C#class孔明{public

擬定策略(){

……}public聯(lián)合孫權(quán)(){

……}private

借東風(fēng)火攻(){

……}}class關(guān)羽{public

防守荊州(){

……}}class張飛{public

防守前線(){

……}}準(zhǔn)備填寫public方法內(nèi)容依樣畫葫蘆寫C#程序內(nèi)容

劉備求戰(zhàn)請(qǐng)擬定策略請(qǐng)防守荊州請(qǐng)聯(lián)絡(luò)孫權(quán)寫C#程序class劉備{孔明

k=new孔明關(guān)羽

g=

new關(guān)羽public

迎戰(zhàn)曹操(){

k.擬定策略

g.防守荊州

k.聯(lián)合孫權(quán)}}寫C#程序內(nèi)容

孔明請(qǐng)擬定策略請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻借東風(fēng)火攻寫C#程序class孔明{孫權(quán)

s=new孫權(quán)public

擬定策略(){

……}public聯(lián)合孫權(quán)(){

s.請(qǐng)領(lǐng)兵相助

借東風(fēng)火攻()}private借東風(fēng)火攻(){

……}}寫C#程序內(nèi)容

case

endclass劉備{孔明

k=new

孔明關(guān)羽

g=new關(guān)羽public

迎戰(zhàn)曹操()

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論