軟件工程實踐課件_第1頁
軟件工程實踐課件_第2頁
軟件工程實踐課件_第3頁
軟件工程實踐課件_第4頁
軟件工程實踐課件_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京理工大學(xué)

軟件工程實踐吳際北京航空航天大學(xué)北京理工大學(xué)

軟件工程實踐吳際1第十二講面向?qū)ο蠓椒ㄅcUML介紹第十二講面向?qū)ο蠓椒ㄅcUML介紹2內(nèi)容和目的我們的座標(biāo)面向?qū)ο蠓椒嫦驅(qū)ο螅耗芘c不能統(tǒng)一建模語言UML內(nèi)容和目的我們的座標(biāo)3我們的座標(biāo)應(yīng)用開發(fā)的變化開發(fā)工具和手段的發(fā)展開發(fā)方法和技術(shù)的發(fā)展我們的座標(biāo)應(yīng)用開發(fā)的變化4應(yīng)用開發(fā)的變化70年代:小型機(或服務(wù)器)上的數(shù)學(xué)程序80年代:單機(或以太網(wǎng))上的、文本界面(或簡單圖形界面)、計算型應(yīng)用90年代:互聯(lián)網(wǎng)(Internet)、豐富圖形界面、事務(wù)處理型應(yīng)用,要求快速提交產(chǎn)品現(xiàn)在,分布于Internet、Intranet,多種界面形式(基于WebBrowser、ApplicationGUI等),多種事務(wù)處理的集成(電子商務(wù)、信息管理),多種標(biāo)準的支持(XML,J2EE,Corba,.NET),多種平臺的支持(Windows,Linux,Unix,…)應(yīng)用開發(fā)的變化70年代:小型機(或服務(wù)器)上的數(shù)學(xué)程序5開發(fā)工具和手段的發(fā)展70年代:基于匯編代碼的調(diào)試器80年代:基于高級語言的調(diào)試器(TurboC,MicrosoftC,BorlandC,TurboPascal)90年代:集成了調(diào)試器、編輯器、配置管理、框架代碼構(gòu)造、及時編碼提示、應(yīng)用GUI界面編輯等的集成開發(fā)環(huán)境,如VisualStudio,Delphi現(xiàn)在:在集成開發(fā)環(huán)境基礎(chǔ)上,提供更強大的開發(fā)平臺支持(.NET,JDK),同時更關(guān)注應(yīng)用的平臺無關(guān)性和運行安全性開發(fā)工具和手段的發(fā)展70年代:基于匯編代碼的調(diào)試器6開發(fā)方法和技術(shù)的發(fā)展70年代:結(jié)構(gòu)化方法(設(shè)計、編碼)80年代:結(jié)構(gòu)化方法(分析、設(shè)計、編碼),狀態(tài)圖,需求工程90年代:面向?qū)ο蠓治?、設(shè)計、編碼,對象建?,F(xiàn)在:商務(wù)建模(businessmodeling)、面向?qū)ο蠼#ǚ治?、設(shè)計),體系結(jié)構(gòu)設(shè)計(構(gòu)件化)開發(fā)方法和技術(shù)的發(fā)展70年代:結(jié)構(gòu)化方法(設(shè)計、編碼)7面向?qū)ο蠓椒ńY(jié)構(gòu)化與面向?qū)ο蟮奶岢雒嫦驅(qū)ο蠓椒ㄌ卣髅嫦驅(qū)ο笾饕髋擅嫦驅(qū)ο蠓椒ńY(jié)構(gòu)化與面向?qū)ο蟮奶岢?結(jié)構(gòu)化與面向?qū)ο蟮奶岢鯟FD&DFD:自頂而下的層次分解策略任何一層有變動,其下面的所有層次都必須重新進行層次分解層次間的解釋關(guān)系使得難以維護層次間的一致性強調(diào)數(shù)據(jù)、功能分解,但忽略了數(shù)據(jù)、功能的整合數(shù)據(jù)與功能分離的結(jié)構(gòu)化認知觀點,實際偏離了人認知世界的基本原則:以實體為單位,以關(guān)系為核心盡管有缺點,但結(jié)構(gòu)化仍有可借鑒之處:結(jié)構(gòu)化原則數(shù)據(jù)字典狀態(tài)圖結(jié)構(gòu)化與面向?qū)ο蟮奶岢鯟FD&DFD:自頂而下的層次分解9WhatdoyouthinkaboutOO?大幕拉開:面向?qū)ο竺嫦鄬ο蟮哪繕?biāo):以人的(獲接近于人的)認知方法和原則來描述事物完全不同于結(jié)構(gòu)化的描述手段:類、對象繼承多態(tài)消息WhatdoyouthinkaboutOO?大幕拉10類、對象是核心面向?qū)ο蠓治?、設(shè)計、編碼的基本單位數(shù)據(jù)與功能的有效封裝可直接映射到現(xiàn)實或抽象的實體關(guān)系、狀態(tài)、行為開發(fā)管理的基本單位類測試就是“單元測試”!類、對象是核心面向?qū)ο蠓治觥⒃O(shè)計、編碼的基本單位11繼承:面向?qū)ο蠊谏厦髦槿绻麤]有繼承,誰能在一個小時之內(nèi),只使用SDK接口編寫出Notepad?如果使用繼承,你只需十分鐘(或更少)!繼承至少提供了兩個方向的設(shè)計支持:重用抽象、接口(COM、DCOM、Bean)沒有繼承,幾乎不可能有通用的容器類(ContainerorCollector)可供使用多繼承:你使用過多少次?繼承:面向?qū)ο蠊谏厦髦槿绻麤]有繼承,誰能在一個小時之內(nèi),只使12多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞多態(tài)(polymorphism):多種形態(tài),統(tǒng)一語義接口描述了通訊協(xié)議多態(tài)使得基于接口的通訊能夠自適應(yīng)Arg1,agr2,…多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞多態(tài)(polymorphism)13多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞兩種多態(tài):同一個類中的不同形態(tài)接口不同子類以不同形態(tài)實現(xiàn)(或重載)父類接口典型例子:畫圖程序中GraphManager類的Draw,Move,Open,…典型例子:文檔編輯中針對不同對象的統(tǒng)一的Cut/Copy/Paste操作多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞兩種多態(tài):14消息:可能讓你失望不要試圖用信息理論或通訊理論中的消息來理解也不要用操作系統(tǒng)中的消息(事件)來理解所謂兩個對象間的一個消息就是一個對象使用了另一個對象的操作(operation),簡單說就是對象的操作調(diào)用!Windows中的SendMessage和PostMessage根本就與面向?qū)ο鬅o關(guān)!消息:可能讓你失望不要試圖用信息理論或通訊理論中的消息來理解15對象狀態(tài)對象狀態(tài)只決定于對象的數(shù)據(jù),和全局數(shù)據(jù)、非對象的局部數(shù)據(jù)無關(guān)對象狀態(tài)和對象行為之間的關(guān)系:<s1,b1>,<s2,b2>,b1=b2iffs1=s2.如果你的程序不滿足這條定理,有兩種情況:類的某個方法使用了全局變量類的某個方法中的局部變量初始值不確定對象狀態(tài)對象狀態(tài)只決定于對象的數(shù)據(jù),和全局數(shù)據(jù)、非對象的局部16對象關(guān)系:無法讓人滿意目前的面向?qū)ο筇峁┝巳N對象關(guān)系描述手段:繼承聚集(組成)關(guān)聯(lián):對象之間有關(guān)系!然而,現(xiàn)實世界中實體之間的關(guān)系豐富多彩,豈止這三種?對象關(guān)系:無法讓人滿意目前的面向?qū)ο筇峁┝巳N對象關(guān)系描述手17面向?qū)ο蠓治瞿繕?biāo):使用對象來描述問題域,進而抽象出問題域類,并把求解問題的約束分配到問題域類關(guān)注:是否完整、清晰的描述了問題域及約束雷區(qū):使用DFD,然后把每個處理節(jié)點都抽象為一個類雷區(qū):很快就在某個局部(通常為方法)進入算法、編碼面向?qū)ο蠓治瞿P偷膬r值(領(lǐng)域重用、測試)面向?qū)ο蠓治瞿繕?biāo):使用對象來描述問題域,進而抽象出問題域類,18面向?qū)ο笤O(shè)計目標(biāo):引入類(族)實現(xiàn)問題域類(在概念層次上),同時把系統(tǒng)約束分解、落實到類的方法層次關(guān)注:體系結(jié)構(gòu)、接口、效率雷區(qū):有些類是‘上帝’,而有些類只是‘弱智的代表’雷區(qū):盲目追求所謂封裝、抽象類面向?qū)ο笤O(shè)計模型的價值(設(shè)計pattern,風(fēng)險跟蹤、測試)面向?qū)ο笤O(shè)計目標(biāo):引入類(族)實現(xiàn)問題域類(在概念層次上),19適合面向?qū)ο蟮拈_發(fā)過程必須能夠管理面向?qū)ο蠓治?、設(shè)計、實現(xiàn)、測試、維護各階段的模型的一致性需要給出一套基于類的開發(fā)任務(wù)管理方法(任務(wù)定義、風(fēng)險管理、任務(wù)評審)能夠在開發(fā)的不同階段提供不同的知識庫(不僅僅是類庫?。┮怨┲赜肦UP是個不錯的選擇適合面向?qū)ο蟮拈_發(fā)過程必須能夠管理面向?qū)ο蠓治?、設(shè)計、實現(xiàn)、20面向?qū)ο螅耗芘c不能Can使你以更有效的手段描述、實現(xiàn)系統(tǒng)提高系統(tǒng)的重用度有效縮短開發(fā)周期Cannot避免錯誤,尤其是分析、設(shè)計錯誤自動生成精巧的算法面向?qū)ο螅耗芘c不能Can21統(tǒng)一建模語言UML引論建模技術(shù)UML的模型圖UML的基本視圖UML的目的、主要特點和和應(yīng)用領(lǐng)域統(tǒng)一建模語言UML引論22引論WhyUnified?UML是一種建模語言UML的設(shè)計目標(biāo)UML的發(fā)展歷程引論WhyUnified?23WhyUnified?面對眾多的建模語言,用戶沒有能力區(qū)別不同語言之間的差別。在眾多的建模語言中,實際上各有千秋,需要取長補短,日臻完善。雖然不同的建模語言大多相同,但仍存在某些細微的差別,這極大地妨礙了用戶之間的交流。WhyUnified?面對眾多的建模語言,用戶沒有能力區(qū)別24UML是一種建模語言建模方法=建模語言+建模過程。建模語言定義了用于表示設(shè)計的符號(通常是圖形符號);建模過程描述進行設(shè)計所需要遵循的步驟。標(biāo)準建模語言UML是一種建模語言,而不是一種方法,它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語及其圖形符號,為人們建立了便于交流的共同語言。UML是一種建模語言建模方法=建模語言+建模過程。建25UML的設(shè)計目標(biāo)UML是由Booch,Rumbaugh和Jacobson發(fā)起,在Booch方法、OMT方法和OOSE方法的基礎(chǔ)上,集眾家之長,幾經(jīng)修改而成。UML的設(shè)計目標(biāo)是:運用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型(不僅僅針對軟件)建立起從概念模型直至可執(zhí)行體之間明晰的對應(yīng)關(guān)系著眼于那些有重大影響的問題。創(chuàng)建一種對人和機器都適用的建模語言。UML的設(shè)計目標(biāo)UML是由Booch,Rumbaugh和26

UML的發(fā)展歷程1994.10,Booch和Rumbaugh將Booch93和OMT-2統(tǒng)一,1995.10.發(fā)布UM0.8。1995年秋,經(jīng)過Booch等三人的努力,1996.6和1996.10發(fā)布UML0.9和UML0.91。1996年成立UML成員協(xié)會,有700多公司支持UML,占領(lǐng)OO市場的85%。1997.1發(fā)布UML1.0,1997.9發(fā)布UML1.1。1997.11OMG采納UML1.1作為OO技術(shù)的標(biāo)準建模語言。此后,UML的維護工作由CrisKobryn領(lǐng)導(dǎo)的OMG版本修改小組RTF(RevisionTaskForce)負責(zé).1998.6:UMLV.1.1(編輯修改版).1999.6:UMLV.1.3(技術(shù)終訂版).目前正處于UMLV.2.0階段UML的發(fā)展歷程1994.10,Booch和Rumba27UML的發(fā)展歷程(續(xù))公眾反饋OOPSLA95UnifiedMethod0.8工業(yè)化標(biāo)準化統(tǒng)一化分散的各部分

Booch93OMT-21996.6和1996.10UML0.9&0.91

1997.11.171997.9公布UML1.1

1997.1公布UML1.0合作伙伴意見UML1.1被OMG

接納為標(biāo)準其他方法Booch91OMT-1OOSE1999.6UML1.3UML的發(fā)展歷程(續(xù))公眾OOPSLA95Unifi28建模技術(shù)構(gòu)造模型的目的建模技術(shù)要點系統(tǒng)的多種特性建模技術(shù)構(gòu)造模型的目的29構(gòu)造模型的目的在著手解決一個復(fù)雜問題之前,對解決方案進行檢測。用于同客戶和其他相關(guān)人員進行交流。加強視覺效果。對復(fù)雜問題進行適度簡化。模型是對事物的抽象。人們常常在正式建造實物之前,先建立模型,以便更透徹地了解它的本質(zhì),抓住問題的要害。構(gòu)造模型的目的在著手解決一個復(fù)雜問題之前,對解決方案進行檢測30建模技術(shù)要點構(gòu)造模型的基本技術(shù)是抽象,應(yīng)突出與問題有關(guān)的特征,將與問題無關(guān)的性質(zhì)略去。不必追求絕對的真實和完全,只需從期望的目的角度看其是否充分。應(yīng)當(dāng)刻畫問題的關(guān)鍵方面,略去相對次要的因素。建模語言應(yīng)支持人的由模糊到清晰、由粗到細逐漸完善的認識過程。應(yīng)采用可視化圖形建模語言。建模技術(shù)要點構(gòu)造模型的基本技術(shù)是抽象,應(yīng)突出與問題有關(guān)的特征31系統(tǒng)的多種特性在功能和性能方面:功能正確,性能良好(效率要高)。在非功能方面:魯棒性、可擴充性、可再用性、兼容性、可移值性、可驗證性、完整性以及易使用性等方面要好。一個系統(tǒng)應(yīng)具有多方面的特點:一個系統(tǒng)要從多個視角去描述。一個視圖可能包含多個模型圖,每張模型圖都應(yīng)當(dāng)簡單明了,易于交流。系統(tǒng)的多種特性在功能和性能方面:功能正確,性能良好(效率要高32UML的模型圖UML定義了5類、共9種模型圖:用例圖:從用戶角度描述系統(tǒng)的功能,并指出各功能的操作者。靜態(tài)圖:類圖、對象圖和包圖(在UML1.1中,包圖不再看作一種獨立的模型圖)。

行為圖:狀態(tài)圖,活動圖。交互圖:順序圖,合作圖。實現(xiàn)圖:構(gòu)件圖描述部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系;配置圖定義系統(tǒng)中軟硬件的物理構(gòu)架。UML的模型圖UML定義了5類、共9種模型圖:用例圖33關(guān)于保險業(yè)務(wù)的一張用例圖保險銷售人員客戶客戶統(tǒng)計表簽署保險文件銷售統(tǒng)計表關(guān)于保險業(yè)務(wù)的一張用例圖保險銷售人員客戶客戶統(tǒng)計表簽署34靜態(tài)圖:類圖、對象圖和包圖靜態(tài)圖包括類圖、對象圖和包圖,用以描述模型中類及其實例之間的靜態(tài)關(guān)系。類圖用于定義系統(tǒng)中的類,包括描述類之間的關(guān)系(關(guān)聯(lián)、繼承、聚合)以及類的內(nèi)部結(jié)構(gòu),即類的屬性和操作。對象圖顯示類的對象實例,一個對象圖是類圖的一個實例。包圖由包或類組成,主要表示包與包、或包與類之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。靜態(tài)圖:類圖、對象圖和包圖靜態(tài)圖包括類圖、對象圖和包圖,用以35關(guān)于金融貿(mào)易的一張類圖客戶業(yè)務(wù)量商人11..*

Owns1..*1..*

HandlesContains0..*0..*證券債券互助基金股票關(guān)于金融貿(mào)易的一張類圖客戶業(yè)務(wù)量商人136類圖和對象圖類圖展示類Uses0..11..*計算機名字:String內(nèi)存:Integer作者名字:String年齡:Integer小影:作者名字=“王小影”年齡=32小影的工作PC:計算機名字=“DellPIV”內(nèi)存=256MB小影的工作PC:計算機名字=“HPPIII”內(nèi)存=128對象圖展示類的實例類圖和對象圖類圖展示類Uses0..11..*計算機37行為圖:狀態(tài)圖,活動圖行為圖包括狀態(tài)圖和活動圖,描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。狀態(tài)圖描述一類對象的所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件?;顒訄D描述為滿足用例要求所要進行的活動以及活動間的約束關(guān)系。使用活動圖可以很方便地表示并行活動。行為圖:狀態(tài)圖,活動圖行為圖包括狀態(tài)圖和活動圖,描述系統(tǒng)的動38一部電梯的狀態(tài)圖上升[幾層]在第一層上升[幾層]向第一層下降下降狀態(tài)空閑狀態(tài)上升狀態(tài)到達[第幾層]到達[第幾層]下降[幾層]超時[]一部電梯的狀態(tài)圖上升[幾層]在第一層上升[幾層]向第一層下降39一臺打印機服務(wù)器的活動圖創(chuàng)建附加文件顯示"磁盤已滿"的信息顯示"正在打印"的信息[磁盤已滿][尚有磁盤空間]打印機,打印[文件]刪除顯示信息的對話框一臺打印機服務(wù)器的活動圖創(chuàng)建附加文件顯示"磁盤已滿"顯示"正40交互圖:順序圖,合作圖交互圖包括順序圖和合作圖,它描述對象間的交互(動態(tài)合作)關(guān)系。順序圖:用以顯示對象之間在時間順序方面的動態(tài)合作關(guān)系。因此,如果強調(diào)時間和順序,應(yīng)當(dāng)使用順序圖。合作圖:著重描述對象間的通信方面的動態(tài)合作關(guān)系。因此,如果強調(diào)通信關(guān)系,則可以選擇合作圖。交互圖:順序圖,合作圖交互圖包括順序圖和合作圖,它描述對象間41一臺打印機服務(wù)器的順序圖:計算機:打印服務(wù)程序:打印機:打印隊列〔打印機空閑〕打印〔文件〕〔打印機忙〕打印〔文件〕打印〔文件〕一臺打印機服務(wù)器的順序圖:計算機:打印服務(wù)程序:打印機42一臺打印機服務(wù)器的合作圖[打印機忙]1.2保存[文件]:計算機:打印隊列1:打印[文件]:打印服務(wù)程序:打印機[打印機空閑]1.1打印[文件]一臺打印機服務(wù)器的合作圖[打印機忙]:計算機:打印隊列143實現(xiàn)圖:構(gòu)件圖,配置圖實現(xiàn)圖包括構(gòu)件圖和配置圖。構(gòu)件圖:描述部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系。配置圖:定義系統(tǒng)中(特別是在分布式及網(wǎng)絡(luò)環(huán)境中)軟硬件的物理構(gòu)架。實現(xiàn)圖:構(gòu)件圖,配置圖實現(xiàn)圖包括構(gòu)件圖和配置圖。44反映程序代碼構(gòu)件之間

依賴關(guān)系的構(gòu)件圖

main.obj:主類comhnd.obj:命令處理器Whnd.obj:窗口處理器client.exe:客戶程序graphic.dll:圖形庫comhnd.cpp:命令處理器Whnd.cpp:窗口處理器

main.cpp:主類反映程序代碼構(gòu)件之間

依賴關(guān)系的構(gòu)件圖main.obj:45描述系統(tǒng)物理構(gòu)架的配置圖《DecNet協(xié)議》客戶A:個人電腦PC客戶B:個人電腦PC《TCP/IP協(xié)議》《TCP/IP協(xié)議》服務(wù)器:02數(shù)據(jù)庫服務(wù)器:VAX描述系統(tǒng)物理構(gòu)架的配置圖《DecNet協(xié)議》客戶A:客戶B:46UML的基本視圖UML的用例視圖UML的邏輯視圖UML的構(gòu)件視圖UML的并發(fā)視圖UML的配置視圖UML的基本視圖UML的用例視圖47UML的五類基本視圖構(gòu)件示圖用例視圖配置視圖邏輯視圖并發(fā)視圖UML的五類基本視圖構(gòu)件示圖用例視圖配置視圖邏輯視圖并發(fā)視圖48UML的五類基本視圖(續(xù))用例視圖:從系統(tǒng)外部執(zhí)行者的角度理解、展示系統(tǒng)功能。邏輯視圖:從系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為的角度展示系統(tǒng)內(nèi)部功能性設(shè)計。構(gòu)件示圖:展示代碼構(gòu)件的組織結(jié)構(gòu)。并發(fā)視圖:展示系統(tǒng)的并發(fā)性,刻畫并發(fā)系統(tǒng)中的通訊和同步問題。配置視圖:展示系統(tǒng)的物理的體系結(jié)構(gòu),其中用到的計算機和各種設(shè)備稱作節(jié)點。UML的五類基本視圖(續(xù))用例視圖:從系統(tǒng)外部執(zhí)行者的角度理49UML的用例視圖從系統(tǒng)外部執(zhí)行者的角度理解系統(tǒng)的功能:它描述執(zhí)行者與系統(tǒng)的交互,其執(zhí)行者可以是一個用戶,也可以是另一個系統(tǒng)。用例圖面向客戶、建模人員、開發(fā)人員和測試人員,是系統(tǒng)模型圖的核心。用例視圖:用例圖和活動圖描述。一張用例圖是系統(tǒng)的一種用途的描述;一組用例圖描述了整個系統(tǒng)所期望的用途。UML的用例視圖從系統(tǒng)外部執(zhí)行者的角度理解系統(tǒng)的功能:它描述50UML的邏輯視圖描述系統(tǒng)如何提供要求的功能:靜態(tài)結(jié)構(gòu):類(界面,內(nèi)部結(jié)構(gòu));對象;關(guān)系用類圖和對象圖描述。動態(tài)行為:對象之間相互發(fā)送消息而引發(fā)的動態(tài)合作關(guān)系用狀態(tài)圖、順序圖、合作圖和活動圖描述各種特性:永久性,并發(fā)性主要是面向設(shè)計人員和開發(fā)人員UML的邏輯視圖描述系統(tǒng)如何提供要求的功能:51UML的構(gòu)件視圖描述實現(xiàn)的各個模塊及其相互之間的關(guān)系:模塊的內(nèi)部結(jié)構(gòu)模塊間的依賴關(guān)系關(guān)于各構(gòu)件的一些附加信息:資源分配(構(gòu)件的責(zé)任)其它管理信息,如開發(fā)工作的進展報告等主要面向開發(fā)人員構(gòu)件視圖:由構(gòu)件圖組成,其中構(gòu)件表示不同類型的代碼模塊UML的構(gòu)件視圖描述實現(xiàn)的各個模塊及其相互之間的關(guān)系:52UML的并發(fā)視圖系統(tǒng)中進程和處理器的劃分與任務(wù)的分配屬于非功能性特性:著眼于資源的有效利用并行執(zhí)行,并發(fā)地執(zhí)行多線程控制,處理線程之間的通信和同步處理來自外部環(huán)境的同步事件面向開發(fā)人員和系統(tǒng)集成人員描述并發(fā)視圖的主要模型圖:動態(tài)圖:狀態(tài)圖,合作圖,活動圖實現(xiàn)圖:構(gòu)件圖,配置圖UML的并發(fā)視圖系統(tǒng)中進程和處理器的劃分與任務(wù)的分配53UML的配置視圖展示系統(tǒng)的物理配置,如計算機和其它設(shè)備(統(tǒng)稱結(jié)點)及其相互之間的連接關(guān)系,包括在物理的體系結(jié)構(gòu)中如何配置構(gòu)件的映像關(guān)系。面向開發(fā)、集成和測試人員。配置視圖用配置圖描述。UML的配置視圖展示系統(tǒng)的物理配置,如計算機和其它設(shè)備(統(tǒng)稱54面向?qū)ο竺枋龅娜齻€層面概念層說明層實現(xiàn)層BusinessModelArchitectureDetailing 1:層次間沒有分解對應(yīng)關(guān)系 2:每個面向?qū)ο竺枋鲈囟伎蓪?yīng)到這三個層面!面向?qū)ο竺枋龅娜齻€層面概念層說明層實現(xiàn)層Busi55UML的主要特點、目的和應(yīng)用領(lǐng)域UML的主要特點使用UML的目的UML的應(yīng)用領(lǐng)域UML的主要特點、目的和應(yīng)用領(lǐng)域UML的主要特點56

UML的主要特點UML統(tǒng)一了Booch,OMT和OOSE等方法中的基本概念:用例圖從OOSE來;類圖從OMT和Booch等方法來;實現(xiàn)圖(構(gòu)件圖和配置圖)從Booch的模塊圖和過程圖來。UML吸取了OO技術(shù)領(lǐng)域各流派的長處:狀態(tài)圖從Harel而來;活動圖從工作流圖而來;合作圖從Booch的對象圖和Fusion的對象交互作用圖等而來;等等。在演變過程中UML提出了一些新的概念。UML的主要特點UML統(tǒng)一了Booch,OMT和OOSE57使用UML的目的軟件開發(fā)的過程猶如雕琢一件藝術(shù)品,由無形到有形,由粗到細。但軟件開發(fā)的最終形式必須生成程序代碼。因此當(dāng)考慮使用UML時,一定要想清楚,使用UML的目的以及對編寫代碼有何幫助。學(xué)習(xí)面向?qū)ο蠹夹g(shù)和領(lǐng)域?qū)<医涣鲙椭斫馊质褂肬ML的目的軟件開發(fā)的過程猶如雕琢一件藝術(shù)品,由無形到有58學(xué)習(xí)面向?qū)ο蠹夹g(shù)UML的各種模型圖,其中用例圖描述系統(tǒng)的功能及其外部的使用者,確定誰使用系統(tǒng)以及做什么。類圖描述系統(tǒng)的靜態(tài)構(gòu)架,即構(gòu)成系統(tǒng)的各種對象類及其相互關(guān)系。對象圖是類圖的實例化,描述系統(tǒng)在某個時刻可能包含的對象和相互關(guān)系。行為圖和交互圖描述系統(tǒng)的動態(tài)行為。構(gòu)件圖和配置圖描述系統(tǒng)實現(xiàn)體的構(gòu)成及其在硬件環(huán)境中的配置情況。學(xué)習(xí)面向?qū)ο蠹夹g(shù)UML的各種模型圖,其中用例圖描述系統(tǒng)的功能59和領(lǐng)域?qū)<医涣饔行У姆椒ㄊ鞘褂糜美?。一個用例描述了系統(tǒng)的某一側(cè)面,所有用例構(gòu)成了系統(tǒng)的整個外觀。用例也有助于制訂項目規(guī)劃和對問題進行深入理解。類圖很有用,但應(yīng)注重在概念層上使用。應(yīng)將每個類對應(yīng)用戶心中一個概念,并用用戶的語言來命名和定義。對于側(cè)重于工作流過程的應(yīng)用系統(tǒng),活動圖非常有用?;顒訄D也有助于對實際業(yè)務(wù)流程中的并行特性進行自然描述。和領(lǐng)域?qū)<医涣饔行У姆椒ㄊ鞘褂糜美?。一個用例描述了系統(tǒng)的某一60幫助理解全局對于大型項目,常常只見樹木不見森林,采用UML有助于理解全局。譬如,類圖可了解系統(tǒng)中有哪些類型的事物,哪些需要作進一步的考察。對大型軟件,無論概念層、說明層或?qū)崿F(xiàn)層,其模型都可能十分龐大。此時通常需要分層次地繪制很多張模型圖,并為整個軟件系統(tǒng)建立全局路線圖。在較高的抽象層次,用包圖刻畫類圖的分組情況。幫助理解全局對于大型項目,常常只見樹木不見森林,采用UML有61UML的應(yīng)用領(lǐng)域UML是一個通用的標(biāo)準建模語言,可對任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)進行建模。UML適用于系統(tǒng)開發(fā)的不同階段:需求分析階段用用例;分析階段用類圖;實現(xiàn)階段用動態(tài)模型;構(gòu)造階段用OO編程語言。在測試階段:單元測試用類圖;集成測試用部件圖和合作圖;系統(tǒng)測試用用例圖。在應(yīng)用標(biāo)準建模語言UML時,需要有相應(yīng)的開發(fā)工具來支持。UML的應(yīng)用領(lǐng)域UML是一個通用的標(biāo)準建模語言,可對任何具有62小結(jié)關(guān)于面向?qū)ο蠹夹g(shù)的評論;基本的模型元素;關(guān)于視圖與模型圖的評注。小結(jié)關(guān)于面向?qū)ο蠹夹g(shù)的評論;63關(guān)于面向?qū)ο蠹夹g(shù)的評論OO技術(shù)的構(gòu)造方法把軟件系統(tǒng)當(dāng)作結(jié)構(gòu)化抽象數(shù)據(jù)類型實現(xiàn)的集合。UML為OO技術(shù)提供了強有力的支持。在OO構(gòu)架中,每個模塊建造在一個數(shù)據(jù)抽象(一組數(shù)據(jù)結(jié)構(gòu))上,由作為正式接口一部分的服務(wù)及其特性來描述。OO系統(tǒng)的模塊稱為類,其接口對應(yīng)于表示抽象數(shù)據(jù)類型規(guī)格說明中功能的服務(wù)。OO技術(shù)允許一個抽象數(shù)據(jù)類型有多個實現(xiàn)。關(guān)于面向?qū)ο蠹夹g(shù)的評論OO技術(shù)的構(gòu)造方法把軟件系統(tǒng)當(dāng)作結(jié)構(gòu)化64基本的模型元素

類屬性操作包狀態(tài)結(jié)點用例界面構(gòu)件對象屬性操作注釋體基本的模型元素類包狀態(tài)結(jié)點用例界面構(gòu)件對象注釋體65關(guān)于視圖與模型圖的評注不同的視圖可以有少量的重疊,一張圖可以同時屬于多個視圖。圖與圖之間應(yīng)有內(nèi)在聯(lián)系,最終由這些圖描繪系統(tǒng)的全貌。視圖之間和圖與圖之間,須便于交叉瀏覽和追蹤分析檢查。視圖:展示系統(tǒng)的不同側(cè)面;是由一組模型圖構(gòu)成的一個抽象;一組視圖構(gòu)成一個系統(tǒng)的完整畫卷。模型圖:描述視圖內(nèi)容的圖形;UML有九種不同類型的模型圖。模型元素:模型圖用到各種OO概念(如類、對象、消息等)以及這些概念之間的關(guān)系(如關(guān)聯(lián)、依賴和泛化等);一種元素可在多種圖中出現(xiàn),但其表示符號和語義不變。關(guān)于視圖與模型圖的評注不同的視圖可以有少量的重疊,一張圖可66謝謝!吳際82317649(O)wuji@謝謝!吳際67北京理工大學(xué)

軟件工程實踐吳際北京航空航天大學(xué)北京理工大學(xué)

軟件工程實踐吳際68第十二講面向?qū)ο蠓椒ㄅcUML介紹第十二講面向?qū)ο蠓椒ㄅcUML介紹69內(nèi)容和目的我們的座標(biāo)面向?qū)ο蠓椒嫦驅(qū)ο螅耗芘c不能統(tǒng)一建模語言UML內(nèi)容和目的我們的座標(biāo)70我們的座標(biāo)應(yīng)用開發(fā)的變化開發(fā)工具和手段的發(fā)展開發(fā)方法和技術(shù)的發(fā)展我們的座標(biāo)應(yīng)用開發(fā)的變化71應(yīng)用開發(fā)的變化70年代:小型機(或服務(wù)器)上的數(shù)學(xué)程序80年代:單機(或以太網(wǎng))上的、文本界面(或簡單圖形界面)、計算型應(yīng)用90年代:互聯(lián)網(wǎng)(Internet)、豐富圖形界面、事務(wù)處理型應(yīng)用,要求快速提交產(chǎn)品現(xiàn)在,分布于Internet、Intranet,多種界面形式(基于WebBrowser、ApplicationGUI等),多種事務(wù)處理的集成(電子商務(wù)、信息管理),多種標(biāo)準的支持(XML,J2EE,Corba,.NET),多種平臺的支持(Windows,Linux,Unix,…)應(yīng)用開發(fā)的變化70年代:小型機(或服務(wù)器)上的數(shù)學(xué)程序72開發(fā)工具和手段的發(fā)展70年代:基于匯編代碼的調(diào)試器80年代:基于高級語言的調(diào)試器(TurboC,MicrosoftC,BorlandC,TurboPascal)90年代:集成了調(diào)試器、編輯器、配置管理、框架代碼構(gòu)造、及時編碼提示、應(yīng)用GUI界面編輯等的集成開發(fā)環(huán)境,如VisualStudio,Delphi現(xiàn)在:在集成開發(fā)環(huán)境基礎(chǔ)上,提供更強大的開發(fā)平臺支持(.NET,JDK),同時更關(guān)注應(yīng)用的平臺無關(guān)性和運行安全性開發(fā)工具和手段的發(fā)展70年代:基于匯編代碼的調(diào)試器73開發(fā)方法和技術(shù)的發(fā)展70年代:結(jié)構(gòu)化方法(設(shè)計、編碼)80年代:結(jié)構(gòu)化方法(分析、設(shè)計、編碼),狀態(tài)圖,需求工程90年代:面向?qū)ο蠓治?、設(shè)計、編碼,對象建?,F(xiàn)在:商務(wù)建模(businessmodeling)、面向?qū)ο蠼#ǚ治?、設(shè)計),體系結(jié)構(gòu)設(shè)計(構(gòu)件化)開發(fā)方法和技術(shù)的發(fā)展70年代:結(jié)構(gòu)化方法(設(shè)計、編碼)74面向?qū)ο蠓椒ńY(jié)構(gòu)化與面向?qū)ο蟮奶岢雒嫦驅(qū)ο蠓椒ㄌ卣髅嫦驅(qū)ο笾饕髋擅嫦驅(qū)ο蠓椒ńY(jié)構(gòu)化與面向?qū)ο蟮奶岢?5結(jié)構(gòu)化與面向?qū)ο蟮奶岢鯟FD&DFD:自頂而下的層次分解策略任何一層有變動,其下面的所有層次都必須重新進行層次分解層次間的解釋關(guān)系使得難以維護層次間的一致性強調(diào)數(shù)據(jù)、功能分解,但忽略了數(shù)據(jù)、功能的整合數(shù)據(jù)與功能分離的結(jié)構(gòu)化認知觀點,實際偏離了人認知世界的基本原則:以實體為單位,以關(guān)系為核心盡管有缺點,但結(jié)構(gòu)化仍有可借鑒之處:結(jié)構(gòu)化原則數(shù)據(jù)字典狀態(tài)圖結(jié)構(gòu)化與面向?qū)ο蟮奶岢鯟FD&DFD:自頂而下的層次分解76WhatdoyouthinkaboutOO?大幕拉開:面向?qū)ο竺嫦鄬ο蟮哪繕?biāo):以人的(獲接近于人的)認知方法和原則來描述事物完全不同于結(jié)構(gòu)化的描述手段:類、對象繼承多態(tài)消息WhatdoyouthinkaboutOO?大幕拉77類、對象是核心面向?qū)ο蠓治?、設(shè)計、編碼的基本單位數(shù)據(jù)與功能的有效封裝可直接映射到現(xiàn)實或抽象的實體關(guān)系、狀態(tài)、行為開發(fā)管理的基本單位類測試就是“單元測試”!類、對象是核心面向?qū)ο蠓治?、設(shè)計、編碼的基本單位78繼承:面向?qū)ο蠊谏厦髦槿绻麤]有繼承,誰能在一個小時之內(nèi),只使用SDK接口編寫出Notepad?如果使用繼承,你只需十分鐘(或更少)!繼承至少提供了兩個方向的設(shè)計支持:重用抽象、接口(COM、DCOM、Bean)沒有繼承,幾乎不可能有通用的容器類(ContainerorCollector)可供使用多繼承:你使用過多少次?繼承:面向?qū)ο蠊谏厦髦槿绻麤]有繼承,誰能在一個小時之內(nèi),只使79多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞多態(tài)(polymorphism):多種形態(tài),統(tǒng)一語義接口描述了通訊協(xié)議多態(tài)使得基于接口的通訊能夠自適應(yīng)Arg1,agr2,…多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞多態(tài)(polymorphism)80多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞兩種多態(tài):同一個類中的不同形態(tài)接口不同子類以不同形態(tài)實現(xiàn)(或重載)父類接口典型例子:畫圖程序中GraphManager類的Draw,Move,Open,…典型例子:文檔編輯中針對不同對象的統(tǒng)一的Cut/Copy/Paste操作多態(tài):面向?qū)ο蟆赃m應(yīng)’中樞兩種多態(tài):81消息:可能讓你失望不要試圖用信息理論或通訊理論中的消息來理解也不要用操作系統(tǒng)中的消息(事件)來理解所謂兩個對象間的一個消息就是一個對象使用了另一個對象的操作(operation),簡單說就是對象的操作調(diào)用!Windows中的SendMessage和PostMessage根本就與面向?qū)ο鬅o關(guān)!消息:可能讓你失望不要試圖用信息理論或通訊理論中的消息來理解82對象狀態(tài)對象狀態(tài)只決定于對象的數(shù)據(jù),和全局數(shù)據(jù)、非對象的局部數(shù)據(jù)無關(guān)對象狀態(tài)和對象行為之間的關(guān)系:<s1,b1>,<s2,b2>,b1=b2iffs1=s2.如果你的程序不滿足這條定理,有兩種情況:類的某個方法使用了全局變量類的某個方法中的局部變量初始值不確定對象狀態(tài)對象狀態(tài)只決定于對象的數(shù)據(jù),和全局數(shù)據(jù)、非對象的局部83對象關(guān)系:無法讓人滿意目前的面向?qū)ο筇峁┝巳N對象關(guān)系描述手段:繼承聚集(組成)關(guān)聯(lián):對象之間有關(guān)系!然而,現(xiàn)實世界中實體之間的關(guān)系豐富多彩,豈止這三種?對象關(guān)系:無法讓人滿意目前的面向?qū)ο筇峁┝巳N對象關(guān)系描述手84面向?qū)ο蠓治瞿繕?biāo):使用對象來描述問題域,進而抽象出問題域類,并把求解問題的約束分配到問題域類關(guān)注:是否完整、清晰的描述了問題域及約束雷區(qū):使用DFD,然后把每個處理節(jié)點都抽象為一個類雷區(qū):很快就在某個局部(通常為方法)進入算法、編碼面向?qū)ο蠓治瞿P偷膬r值(領(lǐng)域重用、測試)面向?qū)ο蠓治瞿繕?biāo):使用對象來描述問題域,進而抽象出問題域類,85面向?qū)ο笤O(shè)計目標(biāo):引入類(族)實現(xiàn)問題域類(在概念層次上),同時把系統(tǒng)約束分解、落實到類的方法層次關(guān)注:體系結(jié)構(gòu)、接口、效率雷區(qū):有些類是‘上帝’,而有些類只是‘弱智的代表’雷區(qū):盲目追求所謂封裝、抽象類面向?qū)ο笤O(shè)計模型的價值(設(shè)計pattern,風(fēng)險跟蹤、測試)面向?qū)ο笤O(shè)計目標(biāo):引入類(族)實現(xiàn)問題域類(在概念層次上),86適合面向?qū)ο蟮拈_發(fā)過程必須能夠管理面向?qū)ο蠓治?、設(shè)計、實現(xiàn)、測試、維護各階段的模型的一致性需要給出一套基于類的開發(fā)任務(wù)管理方法(任務(wù)定義、風(fēng)險管理、任務(wù)評審)能夠在開發(fā)的不同階段提供不同的知識庫(不僅僅是類庫?。┮怨┲赜肦UP是個不錯的選擇適合面向?qū)ο蟮拈_發(fā)過程必須能夠管理面向?qū)ο蠓治?、設(shè)計、實現(xiàn)、87面向?qū)ο螅耗芘c不能Can使你以更有效的手段描述、實現(xiàn)系統(tǒng)提高系統(tǒng)的重用度有效縮短開發(fā)周期Cannot避免錯誤,尤其是分析、設(shè)計錯誤自動生成精巧的算法面向?qū)ο螅耗芘c不能Can88統(tǒng)一建模語言UML引論建模技術(shù)UML的模型圖UML的基本視圖UML的目的、主要特點和和應(yīng)用領(lǐng)域統(tǒng)一建模語言UML引論89引論WhyUnified?UML是一種建模語言UML的設(shè)計目標(biāo)UML的發(fā)展歷程引論WhyUnified?90WhyUnified?面對眾多的建模語言,用戶沒有能力區(qū)別不同語言之間的差別。在眾多的建模語言中,實際上各有千秋,需要取長補短,日臻完善。雖然不同的建模語言大多相同,但仍存在某些細微的差別,這極大地妨礙了用戶之間的交流。WhyUnified?面對眾多的建模語言,用戶沒有能力區(qū)別91UML是一種建模語言建模方法=建模語言+建模過程。建模語言定義了用于表示設(shè)計的符號(通常是圖形符號);建模過程描述進行設(shè)計所需要遵循的步驟。標(biāo)準建模語言UML是一種建模語言,而不是一種方法,它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語及其圖形符號,為人們建立了便于交流的共同語言。UML是一種建模語言建模方法=建模語言+建模過程。建92UML的設(shè)計目標(biāo)UML是由Booch,Rumbaugh和Jacobson發(fā)起,在Booch方法、OMT方法和OOSE方法的基礎(chǔ)上,集眾家之長,幾經(jīng)修改而成。UML的設(shè)計目標(biāo)是:運用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型(不僅僅針對軟件)建立起從概念模型直至可執(zhí)行體之間明晰的對應(yīng)關(guān)系著眼于那些有重大影響的問題。創(chuàng)建一種對人和機器都適用的建模語言。UML的設(shè)計目標(biāo)UML是由Booch,Rumbaugh和93

UML的發(fā)展歷程1994.10,Booch和Rumbaugh將Booch93和OMT-2統(tǒng)一,1995.10.發(fā)布UM0.8。1995年秋,經(jīng)過Booch等三人的努力,1996.6和1996.10發(fā)布UML0.9和UML0.91。1996年成立UML成員協(xié)會,有700多公司支持UML,占領(lǐng)OO市場的85%。1997.1發(fā)布UML1.0,1997.9發(fā)布UML1.1。1997.11OMG采納UML1.1作為OO技術(shù)的標(biāo)準建模語言。此后,UML的維護工作由CrisKobryn領(lǐng)導(dǎo)的OMG版本修改小組RTF(RevisionTaskForce)負責(zé).1998.6:UMLV.1.1(編輯修改版).1999.6:UMLV.1.3(技術(shù)終訂版).目前正處于UMLV.2.0階段UML的發(fā)展歷程1994.10,Booch和Rumba94UML的發(fā)展歷程(續(xù))公眾反饋OOPSLA95UnifiedMethod0.8工業(yè)化標(biāo)準化統(tǒng)一化分散的各部分

Booch93OMT-21996.6和1996.10UML0.9&0.91

1997.11.171997.9公布UML1.1

1997.1公布UML1.0合作伙伴意見UML1.1被OMG

接納為標(biāo)準其他方法Booch91OMT-1OOSE1999.6UML1.3UML的發(fā)展歷程(續(xù))公眾OOPSLA95Unifi95建模技術(shù)構(gòu)造模型的目的建模技術(shù)要點系統(tǒng)的多種特性建模技術(shù)構(gòu)造模型的目的96構(gòu)造模型的目的在著手解決一個復(fù)雜問題之前,對解決方案進行檢測。用于同客戶和其他相關(guān)人員進行交流。加強視覺效果。對復(fù)雜問題進行適度簡化。模型是對事物的抽象。人們常常在正式建造實物之前,先建立模型,以便更透徹地了解它的本質(zhì),抓住問題的要害。構(gòu)造模型的目的在著手解決一個復(fù)雜問題之前,對解決方案進行檢測97建模技術(shù)要點構(gòu)造模型的基本技術(shù)是抽象,應(yīng)突出與問題有關(guān)的特征,將與問題無關(guān)的性質(zhì)略去。不必追求絕對的真實和完全,只需從期望的目的角度看其是否充分。應(yīng)當(dāng)刻畫問題的關(guān)鍵方面,略去相對次要的因素。建模語言應(yīng)支持人的由模糊到清晰、由粗到細逐漸完善的認識過程。應(yīng)采用可視化圖形建模語言。建模技術(shù)要點構(gòu)造模型的基本技術(shù)是抽象,應(yīng)突出與問題有關(guān)的特征98系統(tǒng)的多種特性在功能和性能方面:功能正確,性能良好(效率要高)。在非功能方面:魯棒性、可擴充性、可再用性、兼容性、可移值性、可驗證性、完整性以及易使用性等方面要好。一個系統(tǒng)應(yīng)具有多方面的特點:一個系統(tǒng)要從多個視角去描述。一個視圖可能包含多個模型圖,每張模型圖都應(yīng)當(dāng)簡單明了,易于交流。系統(tǒng)的多種特性在功能和性能方面:功能正確,性能良好(效率要高99UML的模型圖UML定義了5類、共9種模型圖:用例圖:從用戶角度描述系統(tǒng)的功能,并指出各功能的操作者。靜態(tài)圖:類圖、對象圖和包圖(在UML1.1中,包圖不再看作一種獨立的模型圖)。

行為圖:狀態(tài)圖,活動圖。交互圖:順序圖,合作圖。實現(xiàn)圖:構(gòu)件圖描述部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系;配置圖定義系統(tǒng)中軟硬件的物理構(gòu)架。UML的模型圖UML定義了5類、共9種模型圖:用例圖100關(guān)于保險業(yè)務(wù)的一張用例圖保險銷售人員客戶客戶統(tǒng)計表簽署保險文件銷售統(tǒng)計表關(guān)于保險業(yè)務(wù)的一張用例圖保險銷售人員客戶客戶統(tǒng)計表簽署101靜態(tài)圖:類圖、對象圖和包圖靜態(tài)圖包括類圖、對象圖和包圖,用以描述模型中類及其實例之間的靜態(tài)關(guān)系。類圖用于定義系統(tǒng)中的類,包括描述類之間的關(guān)系(關(guān)聯(lián)、繼承、聚合)以及類的內(nèi)部結(jié)構(gòu),即類的屬性和操作。對象圖顯示類的對象實例,一個對象圖是類圖的一個實例。包圖由包或類組成,主要表示包與包、或包與類之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。靜態(tài)圖:類圖、對象圖和包圖靜態(tài)圖包括類圖、對象圖和包圖,用以102關(guān)于金融貿(mào)易的一張類圖客戶業(yè)務(wù)量商人11..*

Owns1..*1..*

HandlesContains0..*0..*證券債券互助基金股票關(guān)于金融貿(mào)易的一張類圖客戶業(yè)務(wù)量商人1103類圖和對象圖類圖展示類Uses0..11..*計算機名字:String內(nèi)存:Integer作者名字:String年齡:Integer小影:作者名字=“王小影”年齡=32小影的工作PC:計算機名字=“DellPIV”內(nèi)存=256MB小影的工作PC:計算機名字=“HPPIII”內(nèi)存=128對象圖展示類的實例類圖和對象圖類圖展示類Uses0..11..*計算機104行為圖:狀態(tài)圖,活動圖行為圖包括狀態(tài)圖和活動圖,描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。狀態(tài)圖描述一類對象的所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件?;顒訄D描述為滿足用例要求所要進行的活動以及活動間的約束關(guān)系。使用活動圖可以很方便地表示并行活動。行為圖:狀態(tài)圖,活動圖行為圖包括狀態(tài)圖和活動圖,描述系統(tǒng)的動105一部電梯的狀態(tài)圖上升[幾層]在第一層上升[幾層]向第一層下降下降狀態(tài)空閑狀態(tài)上升狀態(tài)到達[第幾層]到達[第幾層]下降[幾層]超時[]一部電梯的狀態(tài)圖上升[幾層]在第一層上升[幾層]向第一層下降106一臺打印機服務(wù)器的活動圖創(chuàng)建附加文件顯示"磁盤已滿"的信息顯示"正在打印"的信息[磁盤已滿][尚有磁盤空間]打印機,打印[文件]刪除顯示信息的對話框一臺打印機服務(wù)器的活動圖創(chuàng)建附加文件顯示"磁盤已滿"顯示"正107交互圖:順序圖,合作圖交互圖包括順序圖和合作圖,它描述對象間的交互(動態(tài)合作)關(guān)系。順序圖:用以顯示對象之間在時間順序方面的動態(tài)合作關(guān)系。因此,如果強調(diào)時間和順序,應(yīng)當(dāng)使用順序圖。合作圖:著重描述對象間的通信方面的動態(tài)合作關(guān)系。因此,如果強調(diào)通信關(guān)系,則可以選擇合作圖。交互圖:順序圖,合作圖交互圖包括順序圖和合作圖,它描述對象間108一臺打印機服務(wù)器的順序圖:計算機:打印服務(wù)程序:打印機:打印隊列〔打印機空閑〕打印〔文件〕〔打印機忙〕打印〔文件〕打印〔文件〕一臺打印機服務(wù)器的順序圖:計算機:打印服務(wù)程序:打印機109一臺打印機服務(wù)器的合作圖[打印機忙]1.2保存[文件]:計算機:打印隊列1:打印[文件]:打印服務(wù)程序:打印機[打印機空閑]1.1打印[文件]一臺打印機服務(wù)器的合作圖[打印機忙]:計算機:打印隊列1110實現(xiàn)圖:構(gòu)件圖,配置圖實現(xiàn)圖包括構(gòu)件圖和配置圖。構(gòu)件圖:描述部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系。配置圖:定義系統(tǒng)中(特別是在分布式及網(wǎng)絡(luò)環(huán)境中)軟硬件的物理構(gòu)架。實現(xiàn)圖:構(gòu)件圖,配置圖實現(xiàn)圖包括構(gòu)件圖和配置圖。111反映程序代碼構(gòu)件之間

依賴關(guān)系的構(gòu)件圖

main.obj:主類comhnd.obj:命令處理器Whnd.obj:窗口處理器client.exe:客戶程序graphic.dll:圖形庫comhnd.cpp:命令處理器Whnd.cpp:窗口處理器

main.cpp:主類反映程序代碼構(gòu)件之間

依賴關(guān)系的構(gòu)件圖main.obj:112描述系統(tǒng)物理構(gòu)架的配置圖《DecNet協(xié)議》客戶A:個人電腦PC客戶B:個人電腦PC《TCP/IP協(xié)議》《TCP/IP協(xié)議》服務(wù)器:02數(shù)據(jù)庫服務(wù)器:VAX描述系統(tǒng)物理構(gòu)架的配置圖《DecNet協(xié)議》客戶A:客戶B:113UML的基本視圖UML的用例視圖UML的邏輯視圖UML的構(gòu)件視圖UML的并發(fā)視圖UML的配置視圖UML的基本視圖UML的用例視圖114UML的五類基本視圖構(gòu)件示圖用例視圖配置視圖邏輯視圖并發(fā)視圖UML的五類基本視圖構(gòu)件示圖用例視圖配置視圖邏輯視圖并發(fā)視圖115UML的五類基本視圖(續(xù))用例視圖:從系統(tǒng)外部執(zhí)行者的角度理解、展示系統(tǒng)功能。邏輯視圖:從系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為的角度展示系統(tǒng)內(nèi)部功能性設(shè)計。構(gòu)件示圖:展示代碼構(gòu)件的組織結(jié)構(gòu)。并發(fā)視圖:展示系統(tǒng)的并發(fā)性,刻畫并發(fā)系統(tǒng)中的通訊和同步問題。配置視圖:展示系統(tǒng)的物理的體系結(jié)構(gòu),其中用到的計算機和各種設(shè)備稱作節(jié)點。UML的五類基本視圖(續(xù))用例視圖:從系統(tǒng)外部執(zhí)行者的角度理116UML的用例視圖從系統(tǒng)外部執(zhí)行者的角度理解系統(tǒng)的功能:它描述執(zhí)行者與系統(tǒng)的交互,其執(zhí)行者可以是一個用戶,也可以是另一個系統(tǒng)。用例圖面向客戶、建模人員、開發(fā)人員和測試人員,是系統(tǒng)模型圖的核心。用例視圖:用例圖和活動圖描述。一張用例圖是系統(tǒng)的一種用途的描述;一組用例圖描述了整個系統(tǒng)所期望的用途。UML的用例視圖從系統(tǒng)外部執(zhí)行者的角度理解系統(tǒng)的功能:它描述117UML的邏輯視圖描述系統(tǒng)如何提供要求的功能:靜態(tài)結(jié)構(gòu):類(界面,內(nèi)部結(jié)構(gòu));對象;關(guān)系用類圖和對象圖描述。動態(tài)行為:對象之間相互發(fā)送消息而引發(fā)的動態(tài)合作關(guān)系用狀態(tài)圖、順序圖、合作圖和活動圖描述各種特性:永久性,并發(fā)性主要是面向設(shè)計人員和開發(fā)人員UML的邏輯視圖描述系統(tǒng)如何提供要求的功能:118UML的構(gòu)件視圖描述實現(xiàn)的各個模塊及其相互之間的關(guān)系:模塊的內(nèi)部結(jié)構(gòu)模塊間的依賴關(guān)系關(guān)于各構(gòu)件的一些附加信息:資源分配(構(gòu)件的責(zé)任)其它管理信息,如開發(fā)工作的進展報告等主要面向開發(fā)人員構(gòu)件視圖:由構(gòu)件圖組成,其中構(gòu)件表示不同類型的代碼模塊UML的構(gòu)件視圖描述實現(xiàn)的各個模塊及其相互之間的關(guān)系:119UML的并發(fā)視圖系統(tǒng)中進程和處理器的劃分與任務(wù)的分配屬于非功能性特性:著眼于資源的有效利用并行執(zhí)行,并發(fā)地執(zhí)行多線程控制,處理線程之間的通信和同步處理來自外部環(huán)境的同步事件面向開發(fā)人員和系統(tǒng)集成人員描述并發(fā)視圖的主要模型圖:動態(tài)圖:狀態(tài)圖,合作圖,活動圖實現(xiàn)圖:構(gòu)件圖,配置圖UML的并發(fā)視圖系統(tǒng)中進程和處理器的劃分與任務(wù)的分配120UML的配置視圖展示系統(tǒng)的物理配置,如計算機和其它設(shè)備(統(tǒng)稱結(jié)點)及其相互之間的連接關(guān)系,包括在物理的體系結(jié)構(gòu)中如何配置構(gòu)件的映像關(guān)系。面向開發(fā)、集成和測試人員。配置視圖用配置圖描述。UML的配置視圖展示系統(tǒng)的物理配置,如計算機和其它設(shè)備(統(tǒng)稱121面向?qū)ο竺枋龅娜齻€層面概念層說明層實現(xiàn)層BusinessModelArchitectureDetailing

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論