《軟件工程》UML靜態(tài)與動態(tài)建模機制_第1頁
《軟件工程》UML靜態(tài)與動態(tài)建模機制_第2頁
《軟件工程》UML靜態(tài)與動態(tài)建模機制_第3頁
《軟件工程》UML靜態(tài)與動態(tài)建模機制_第4頁
《軟件工程》UML靜態(tài)與動態(tài)建模機制_第5頁
已閱讀5頁,還剩121頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程UML靜態(tài)與動態(tài)建模機制6.1 UML概述什么是UML?UML表示Unified Modeling LanguageUML把下面一些先進的技術(shù)結(jié)合起來:數(shù)據(jù)建模概念 (實體關(guān)系圖)商業(yè)建模 (工作流)對象建模組件建模行為建模UML是用來對軟件相關(guān)系統(tǒng)進行可視化、規(guī)范、創(chuàng)建和建立文檔的標準語言UML可以用在所有的過程中,貫穿整個開發(fā)周期,并跨越不同的實現(xiàn)技術(shù)6.1 UML概述6.1.1 UML的主要內(nèi)容1面對眾多的建模語言,用戶由于沒有能力區(qū)別不同語言之間的差別,因此很難找到一種比較適合其應用特點的語言;2眾多的建模語言實際上各有千秋;雖然不同的建模語言大多類同,但仍存在某些細微的差別,

2、極大地妨礙了用戶之間的交流。因此在客觀上,極有必要在精心比較不同的建模語言優(yōu)缺點及總結(jié)面向?qū)ο蠹夹g(shù)應用實踐的基礎(chǔ)上,組織聯(lián)合設(shè)計小組,根據(jù)應用需求,取其精華,去其糟粕,求同存異,統(tǒng)一建模語言。為什么需要UML?6.1 UML概述6.1.1 UML的主要內(nèi)容6.1.1 UML的主要內(nèi)容6.1 UML概述 UML(Unified Modeling Language)表示法 UML的符號、文本語法、圖形機制 用來表達應用問題在需求、設(shè)計和實現(xiàn)級的模型 UML語義 用UML表示法描述UML的元模型 元模型為UML的所有語法元素的語義提供定義性說明 UML的可視化建模機制分為靜態(tài)和動態(tài): 靜態(tài)機制包括:

3、用例圖、類圖、對象圖、包圖、構(gòu)件圖、配置圖 動態(tài)機制包括:順序圖、合作圖、狀態(tài)圖、活動圖6.1.2 UML的歷史 80年代末期到90年代,各種OO軟件開發(fā)方法紛紛涌現(xiàn): OOA/OOD, Booch, OMT, OOSE 1994年10月, Booch和Rumbaugh統(tǒng)一Booch93和OMT2, 發(fā)布UML0.8 1995年秋,Jacobson加盟Rational,1996年6月發(fā)布UML0.9, 1996年10月發(fā)布UML0.91 1997年UML獲眾多著名軟件公司的支持,11月被OMG接納 為標準 1998年UML發(fā)展到UML1.4,相應的軟件開發(fā)環(huán)境Rational Rose正式推出

4、6.1 UML概述 2003年UML發(fā)展到UML2.06.1 UML概述6.1.2 UML的歷史Booch OMTUnified Method 0.8OOPSLA 95OOSEOthersUML 0.9UML 1.1UML 1.3UML 1.0UML 2.06.1.3 UML的特點6.1 UML概述 集成眾多OO軟件開發(fā)方法的表示機制的優(yōu)點, 統(tǒng)一化、標準化、系統(tǒng)化 用寬譜語言機制支持軟件開發(fā)全過程 具有較完善、配套的軟件開發(fā)環(huán)境(如Rational Rose) 已成為OO建模語言的事實上的工業(yè)標準,發(fā)展前景廣闊6.1.4 UML的應用范圍6.1 UML概述 UML適用于軟件開發(fā)全過程 可以對

5、任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)進行建模 (如:機械系統(tǒng),信息系統(tǒng),企業(yè)結(jié)構(gòu),等)廣泛地用于應用領(lǐng)域和多種類型的系統(tǒng)建模,如管理信息系統(tǒng)、通信與控制系統(tǒng)、嵌入式實時系統(tǒng)、分布式系統(tǒng)、系統(tǒng)軟件等。近幾年還被運用于軟件再工程、質(zhì)量管理、過程管理、配置管理等方面。不僅僅限于計算機軟件,還可用于非軟件系統(tǒng),例如硬件設(shè)計、業(yè)務處理流程、企業(yè)或事業(yè)單位的結(jié)構(gòu)與行為建模。6.2 UML靜態(tài)建模機制 用戶與計算機之間一次典型的交互作用,引發(fā)系統(tǒng)執(zhí)行一系 列動作,動作執(zhí)行的結(jié)果能被用戶(或外部實體)覺察到6.2 UML靜態(tài)建模機制第六章 UML簡介6.2.1 用例圖1. 用例 用例描述某種用戶(或外部實體)可見

6、的動作, 實現(xiàn)一個具體的完整的用戶目標 用例不同于用戶與軟件系統(tǒng)的交互動作序列描述執(zhí)行者(Actor)與用例,以及用例與用例之間的關(guān)系6.2 UML靜態(tài)建模機制6.2.1 用例圖2. 用例圖6.2 UML靜態(tài)建模機制6.2.1 用例圖6.2 UML靜態(tài)建模機制6.2.1 用例圖3. 用例圖中的關(guān)系 Actor與用例之間的關(guān)系:觸發(fā)執(zhí)行,交換信息擴展關(guān)系:用例A與B相似,但B的動作較A多,含有A所不具備的一些特殊情況下的處理動作,則將B作為A的擴展 使用關(guān)系:如果多個用例A1,An中存在公共的動作B,可將B抽出, Ai使用B(i=1,2,n)6.2 UML靜態(tài)建模機制6.2.1 用例圖6.2 U

7、ML靜態(tài)建模機制6.2.1 用例圖3.用例圖中的關(guān)系 擴展關(guān)系主要用來描述對正常處理行為的變異 使用關(guān)系主要用來避免重復擴展 與 使用 的差異 Actor可與擴展的用例關(guān)聯(lián), 但一般不與 使用 中的公共用例相連接6.2 UML靜態(tài)建模機制6.2.1 用例圖4. 用例模型的獲取 誰使用系統(tǒng)的各項功能 誰需要系統(tǒng)支持其工作4.1 獲取Actor 誰來維護、管理、配置系統(tǒng) 誰對系統(tǒng)產(chǎn)生的結(jié)果感興趣 系統(tǒng)需要與哪些外部實體交互 觀察用戶的工作流程 標識外部事件并觀察用戶的反映6.2 UML靜態(tài)建模機制6.2.1 用例圖4. 用例模型的獲取 要求系統(tǒng)提供哪些功能 系統(tǒng)需要那些輸入/輸出以完成上述功能,

8、輸入源和輸出目標是什么4.2 對Actor提問以獲取用例 Actor要存取、修改的信息有哪些 Actor與系統(tǒng)之間相互提醒的事件有哪些6.2 UML靜態(tài)建模機制6.2.1 用例圖4. 用例模型的獲取 利用“擴展”表示 變異處理行為4.3 標識Actor及用例之間的關(guān)系 每個用例必須至少與一個Actor相連接 利用“使用”抽取公共行為,簡化用例圖4.4 約束6.2 UML靜態(tài)建模機制6.2.2 類圖類圖是UML中OO模型的基礎(chǔ),它們描述系統(tǒng)的靜態(tài)結(jié)構(gòu) 對象的類型、屬性與操作類圖主要描述: 作用于上述關(guān)系之上的約束 類之間的靜態(tài)關(guān)系:關(guān)聯(lián)、子類型、聚集和構(gòu)成、依賴等包圖描述系統(tǒng)的分治結(jié)構(gòu)1. 類圖

9、6.2 UML靜態(tài)建模機制6.2.2 類圖類圖是UML中OO模型的基礎(chǔ),它們描述系統(tǒng)的靜態(tài)結(jié)構(gòu)類的表示關(guān)聯(lián)的表示6.2 UML靜態(tài)建模機制6.2.2 類圖類圖是UML中OO模型的基礎(chǔ),它們描述系統(tǒng)的靜態(tài)結(jié)構(gòu)聚集和構(gòu)成的表示子類型(繼承)的表示6.2 UML靜態(tài)建模機制Order LineQuantity:Integerprice:MoneyisSatisfied:BooleanOrderdispatch(T) close(T)dataReceivedisPrepaidnumber:Stringprice:MoneyCustomercreditRating(): Stringnameaddres

10、sCorporateCustomercontactNamecreditRatingcreditLimitremind()billForMon-th(Integer)EmployeeProductMultiplicity:optional0.110ConstraintMultiplicity:Many-valued*OperationsAttributesif Order.customer.creditRating is “poor”,then Order.isPrepaidmust be true1*1Multiplicity:mandatoryAssociationGeneralizatio

11、nClass*sales repPersonalCustomercreditCard#creditRating()= =“poor”lineitemsRoleName類圖6.2 UML靜態(tài)建模機制6.2.2 類圖 概念層: 描述問題域中的概念及它們之間的靜態(tài)關(guān)系 實現(xiàn)層: 描述類及其關(guān)系 規(guī)范層: 描述類型(去除方法體之后的類)及其關(guān)系 (軟件結(jié)構(gòu))2. 類圖的抽象層次6.2 UML靜態(tài)建模機制6.2.2 類圖 概念層:同OOA/OOD, 描述問題域中的概念的屬性 實現(xiàn)層:隱含類中成員變量的說明 規(guī)范層:隱含get/set方法3. 屬性 定義形式:可見性 屬性名:類型=缺省值約束特性6.2 U

12、ML靜態(tài)建模機制6.2.2 類圖4. 操作 概念層:問題域中的任務描述 實現(xiàn)層:方法體 規(guī)范層:操作的接口描述 定義形式:可見性 操作名(參數(shù)表):返回類型約束特性6.2 UML靜態(tài)建模機制6.2.2 類圖5. 關(guān)聯(lián) 概念層:兩個概念之間的聯(lián)系 關(guān)聯(lián)具有兩個角色(Roles), 可以對角色命名,匿名角色使用目標類作為名字 實現(xiàn)層:隱含 兩個類在各自的成員變量中相互包含或引用例如:class Order private Customer m_customer; private ItemVector m_orderItems; class Customer private OrderVector

13、m_orders; 規(guī)范層:隱含 類型之間的查詢職責和關(guān)系維護職責例如:class Order public Customer getCustomer(); public Enum enumOrderItems(); 關(guān)聯(lián)表示兩個類之間語義上聯(lián)系6.2 UML靜態(tài)建模機制6.2.2 類圖5. 關(guān)聯(lián)關(guān)聯(lián)表示兩個類之間語義上聯(lián)系6.2 UML靜態(tài)建模機制6.2.2 類圖5.1 關(guān)聯(lián)的方向:導航(Navigability) 單向關(guān)聯(lián)與雙向關(guān)聯(lián) 無向關(guān)聯(lián)可視為雙向關(guān)聯(lián),或 未確定6.2 UML靜態(tài)建模機制6.2.2 類圖5.2 關(guān)聯(lián)類關(guān)聯(lián)類用來記錄與關(guān)聯(lián)有關(guān)的信息,提供與關(guān)聯(lián)有關(guān)的操作UML規(guī)定:兩個

14、被關(guān)聯(lián)對象之間,最多只存在一個關(guān)聯(lián)對象Period:dataRangeEmploymentCompany Person*employer0.1Association Class6.2 UML靜態(tài)建模機制6.2.2 類圖5.2 關(guān)聯(lián)類6.2 UML靜態(tài)建模機制6.2.2 類圖5.2 關(guān)聯(lián)類period:dataRangeEmploymentPersonCompany/employer*10.1*10.16.2 UML靜態(tài)建模機制6.2.2 類圖5.3 聚集和構(gòu)成(Composition) 共享聚集:部分可參加多個整體 構(gòu)成:每個部分類的對象只參加一個整體類對象, 部分與整體共存亡UML將聚集區(qū)分

15、為共享聚集和構(gòu)成PolygonColorisFilledStylePointradiusCircleAggregation*Compositionordered3.*111*6.2 UML靜態(tài)建模機制6.2.2 類圖6 繼承 概念層: 一般類具有的屬性操作及關(guān)聯(lián),特殊類也隱含地具有 特殊類還應包含額外的屬性或操作 實現(xiàn)層:特殊類是一般類的子類(在OOPL的意義上) 規(guī)范層:特殊類的接口與一般類的接口相一致6.2 UML靜態(tài)建模機制6.2.2 類圖7 依賴如果對的X修改將導致Y必須修改,則稱Y依賴于X 一個類的對象是另一個類的對象的數(shù)據(jù)成員 發(fā)送消息依賴關(guān)系的起因: 一個類的對象是另一個類的操作

16、參數(shù),等6.2 UML靜態(tài)建模機制6.2.2 類圖8 約束 在代碼實現(xiàn)時,可用斷言來實現(xiàn)約束 約束可作用于關(guān)聯(lián)、屬性、操作和類 定義形式: 字符串6.2 UML靜態(tài)建模機制6.2.2 類圖9 類別模板(Stereotype) UML通過類別模板提供擴充機制 例如,在操作定義時可附加以下類別模板: get_op,set_op,inquiry_op,modifier_op 類別模板是對類、關(guān)聯(lián)等UML語法元素的元級分類, 用來描述它們之間不同的語義類別6.2 UML靜態(tài)建模機制6.2.2 類圖10 多重分類與動態(tài)分類 盡量避免在規(guī)范層和實現(xiàn)層使用多重分類與動態(tài)分類 UML允許一個對象隨屬性值的改變

17、而改變類型 UML允許一個對象具有多個類型6.2 UML靜態(tài)建模機制6.2.2 類圖FemaleMalePersonManagerEngineerSalesmansex(mandatory)Job6.2 UML靜態(tài)建模機制6.2.2 類圖11 派生屬性與派生關(guān)聯(lián) 概念層:派生屬性和派生關(guān)聯(lián)均可省略 如果需要,可顯式強調(diào)兩個類之間的派生關(guān)聯(lián), 但應與原始關(guān)聯(lián)保持一致 實現(xiàn)層:派生屬性可視為內(nèi)部Cache 規(guī)范層:派生屬性可視為類的屬性之間的約束period:dataRangeEmploymentPersonCompany/employer*10.1*10.16.2 UML靜態(tài)建模機制6.2.2

18、類圖12 抽象類與接口 接口:只含抽象方法的類 抽象類:含有抽象方法的類 抽象方法:僅含方法頭,沒有方法體UML分別用abstract和interface表示抽象類與接口InputStream abstractDataInputOrderReaderDataInputStreamGeneralizationRefinementDependence6.2 UML靜態(tài)建模機制6.2.2 類圖6.2 UML靜態(tài)建模機制6.2.2 類圖DetailAccount Windows Window toFront() toBack() X11 Window toFront() toBack() Mac Wi

19、ndow toFront() toBack() Window abstrct toFront() toBack()Dependency6.2 UML靜態(tài)建模機制6.2.2 類圖OrderReaderDataInputStreamInterfaceDataInputDependenceInputSteam6.2 UML靜態(tài)建模機制6.2.2 類圖13 精化(Refinement)B為A的精化:A,B描述同一事物,B在A的基礎(chǔ)上有更詳細的描述或?qū)崿F(xiàn)細節(jié)InputStream abstractDataInputOrderReaderDataInputStreamGeneralizationRefin

20、ementDependence6.2 UML靜態(tài)建模機制6.2.2 類圖14 引用對象和值對象 概念層:不要區(qū)分引用對象與值對象 規(guī)范層與實現(xiàn)層: 對構(gòu)成使用值對象 屬性可使用引用或值對象 其它關(guān)聯(lián)一般使用引用對象6.2 UML靜態(tài)建模機制6.2.2 類圖15 多值角色 如果有多個實例對象參與關(guān)聯(lián), UML假定這些實例對象構(gòu)成的集合無序且無重復 可使用ordered 表示有序的實例對象集合 bag表示允許重復6.2 UML靜態(tài)建模機制6.2.2 類圖17 參數(shù)化類 參數(shù)化類主要用來簡化模型,簡化實現(xiàn),提高可重用性 避免在概念模型中使用參數(shù)化類 Setinsert(T) remove(T)TEm

21、ployeeSetBinding for ParameterBound ElementTemplate Class6.2 UML靜態(tài)建模機制6.2.2 類圖19 類圖的創(chuàng)建方法 根據(jù)項目所處的不同開發(fā)階段, 在不同的抽象層次上創(chuàng)建類圖 僅當必要時,才使用較復雜的語法機制6.2 UML靜態(tài)建模機制6.2.3 對象圖類圖表示類和類與類之間的關(guān)系,對象圖則表示在某一時刻這些類的具體實例和這些實例之間的具體連接關(guān)系。對象圖可以看作類圖的實例,幫助人們理解一個比較復雜的類圖。對象圖也可用于顯示類圖中的對象在某一時刻的連接關(guān)系。對象的圖示方式與類的圖示方式幾乎是一樣的,主要差別在于對象的名字下面要加下劃線

22、。6.2 UML靜態(tài)建模機制6.2.3 對象圖6.2 UML靜態(tài)建模機制6.2.3 對象圖 類圖對象圖6.2 UML靜態(tài)建模機制6.2.4 包(Package)圖1 包類似于OOA/OOD中的主題詞,用于結(jié)構(gòu)化劃分,分而治之2 包的劃分原則: 強內(nèi)聚,松耦合 根據(jù)依賴關(guān)系確定耦合度3 包圖的內(nèi)容: 包間依賴:如果包中的類之間存在依賴關(guān)系, 則包間應存在依賴關(guān)系 包間繼承:專用包必須符合通用包的接口 包的構(gòu)成關(guān)系:包可由一些子包構(gòu)成6.2 UML靜態(tài)建模機制6.2.4 包(Package)圖Order Capture UIAWTMailing ListUIMailing ListApplicat

23、ionCustomersOrdersOrder CaptureApplicationPackageDependency6.2 UML靜態(tài)建模機制6.2.4 包(Package)圖Order Capture UIAWTMailing ListUIMailing ListApplicationOrder CaptureApplicationDomainOrderCustomerSybaseInterfaceOracleInterfaceDatabaseInterfaceabstractQuantityMoneyDateRangeCommon global6.2 UML靜態(tài)建模機制6.2.4 包(P

24、ackage)圖包也可以擁有接口6.2 UML靜態(tài)建模機制架構(gòu)的概念系統(tǒng)架構(gòu)是構(gòu)成系統(tǒng)的各部分(結(jié)構(gòu)、接口、通信機制)的框架性描述。通過定義一個合適的架構(gòu),使得更容易完成下述工作:瀏覽系統(tǒng);找到一個特殊功能的位置或概念;標志加入一個新功能或概念的位置使其更適合總的系統(tǒng)架構(gòu)。架構(gòu)不僅要容易瀏覽,足夠詳細,而且還要具有可伸縮性,即能夠從不同的級別上了解它。6.2 UML靜態(tài)建模機制架構(gòu)的分類可以用很多視圖來描述架構(gòu),每一張視圖集中描述系統(tǒng)的某一個方面。一個較廣的分類方法將架構(gòu)分解成邏輯和物理架構(gòu)。邏輯架構(gòu)主要指定系統(tǒng)的功能特點,通過系統(tǒng)的功能需求來描述;物理架構(gòu)則描述系統(tǒng)的非功能部分,如可靠性、兼

25、容性、資源使用和系統(tǒng)分布;6.2 UML靜態(tài)建模機制邏輯架構(gòu)邏輯架構(gòu)處理系統(tǒng)的功能,將功能分配到系統(tǒng)的各個部分,詳細說明它們是如何工作的。邏輯架構(gòu)包括應用邏輯,但不是將邏輯物理上分布到不同的進程、程序或計算機。邏輯架構(gòu)有助于更清楚地了解系統(tǒng)的結(jié)構(gòu),使得更容易管理和協(xié)調(diào)工作(盡可能有效地利用人力開發(fā)資源)。并不是邏輯架構(gòu)的所有部分都需要在工程中開發(fā)。(如類庫、二進制構(gòu)件和模式只需購買)。6.2 UML靜態(tài)建模機制邏輯架構(gòu)邏輯架構(gòu)解決下面的問題系統(tǒng)提供什么樣的功能?哪一個類存在,類之間是如何聯(lián)系在一起?類和對象是如何協(xié)作來完成系統(tǒng)功能?什么是系統(tǒng)功能的時間約束?許多開發(fā)人員在開發(fā)架構(gòu)時都遵循的一個

26、合適的計劃是什么樣?6.2 UML靜態(tài)建模機制邏輯架構(gòu)UML中的邏輯架構(gòu):用例;類;包;狀態(tài);活動;協(xié)作;序列。6.2 UML靜態(tài)建模機制物理架構(gòu)物理架構(gòu)詳細描述系統(tǒng)的軟件、硬件。描述硬件結(jié)構(gòu),包括不同的節(jié)點以及節(jié)點間如何連接。說明實現(xiàn)邏輯架構(gòu)中定義的概念的代碼模塊的物理結(jié)構(gòu)和相關(guān)性。軟件運行時進程程序和其它組件的分布。物理架構(gòu)試圖有效地利用軟硬件資源。6.2 UML靜態(tài)建模機制物理架構(gòu)物理架構(gòu)解決下面的問題:類和對象物理上分布在哪一個程序或進程中?程序和進程在哪臺計算機上運行?系統(tǒng)中有哪些計算機和其它的硬件設(shè)備?它們是如何連接在一起?不同的代碼文件之間有可關(guān)聯(lián)?如果某一文件被改變,其它的文件

27、是否需要重新編譯? 物理架構(gòu)描述軟硬件的分解,將邏輯架構(gòu)映射到物理架構(gòu),邏輯架構(gòu)中的類和機制被映射到物理架構(gòu)中的組件、進程和計算機。這種映射允許開發(fā)者根據(jù)邏輯架構(gòu)中的類找到它的物理實現(xiàn)。反之亦然;跟蹤程序或組件的描述找到它在邏輯架構(gòu)中的設(shè)計。6.2 UML靜態(tài)建模機制物理架構(gòu)軟件描述軟件的主要概念:組件。在UML 中,組件是指“在一組模型元素實例的物理打包時可重用的部分”。進程和線程。進程表示重量控制流,而線程則代表輕量控制流。對象。6.2 UML靜態(tài)建模機制物理架構(gòu)硬件物理架構(gòu)中的硬件概念可以分為:處理器。執(zhí)行系統(tǒng)中的程序的計算機。設(shè)備。指的是支持設(shè)備,如打印機、路由器、讀卡機等。它們一般被

28、連接到控制它們的處理器上。連接。處理器之間有連接,處理器與設(shè)備之間也有連接。連接表示兩個節(jié)點間的通信機制,可以用物理媒體(如光纖)和軟件協(xié)議(如TCP/IP)來描述。6.2 UML靜態(tài)建模機制6.2.5 構(gòu)件(Component)圖1 構(gòu)件圖表示實現(xiàn)層的軟件結(jié)構(gòu)2 構(gòu)件:軟件項目中的具有相對獨立意義的單元(如源文件,二進制代碼文件, DLL等)3 構(gòu)件圖用來顯示編譯、鏈接或執(zhí)行時構(gòu)件之間的依賴關(guān)系6.2 UML靜態(tài)建模機制6.2.5 構(gòu)件(Component)圖軟件構(gòu)件可以是:源構(gòu)件。源構(gòu)件只在編譯時是有意義,典型情況下它是實現(xiàn)一個或多個類的源代碼文件。二進制構(gòu)件。典型情況下,二進制構(gòu)件是對象

29、代碼,它是源構(gòu)件的編譯結(jié)果。它應該是一個對象代碼文件、一個靜態(tài)庫文件或一個動態(tài)庫文件??蓤?zhí)行構(gòu)件??蓤?zhí)行構(gòu)件是一個可執(zhí)行的程序文件,它是鏈接(靜態(tài)鏈接或動態(tài)鏈接)所有二進制構(gòu)件所得到的結(jié)果。6.2 UML靜態(tài)建模機制6.2.5 構(gòu)件(Component)圖6.2 UML靜態(tài)建模機制編譯時的構(gòu)件編譯時的構(gòu)件是包含工程中產(chǎn)生的代碼的源構(gòu)件。其它的構(gòu)件,如鏈接時和運行時的構(gòu)件是從編譯時的構(gòu)件中產(chǎn)生的。可被編譯時的構(gòu)件使用的某些版類為:file, 表示包含源代碼的文件;page, 表示W(wǎng)eb 頁;document, 表示文檔(包含文檔而不是可編譯的文檔)。從一個編譯時的組件到其它的編譯時的構(gòu)件的相關(guān)性

30、顯示了它需要其它的構(gòu)件中的哪一個才能得到完整的定義。6.2 UML靜態(tài)建模機制編譯時的構(gòu)件6.2 UML靜態(tài)建模機制鏈接時的構(gòu)件鏈接時組件用于鏈接系統(tǒng)時。典型情況下,鏈接時的組件代表編譯時的組件所得到的結(jié)果,或表示編譯一個或多個編譯時的組件所得到的庫。動態(tài)鏈接庫(DLL)是一種特殊情況,它是在運行時而不是在編譯時被鏈接到一個運行時的組件。6.2 UML靜態(tài)建模機制運行時的構(gòu)件運行時的組件表示在執(zhí)行系統(tǒng)時使用的組件。它是通過鏈接時的組件(從對象代碼和庫)產(chǎn)生的。版類application 表示一個可執(zhí)行的程序,版類table 表示一個數(shù)據(jù)庫表。6.2 UML靜態(tài)建模機制6.2.6 配置(Depl

31、oyment)圖1.配置圖描述系統(tǒng)硬件的物理拓撲結(jié)構(gòu) 以及在此結(jié)構(gòu)上執(zhí)行的構(gòu)件2.結(jié)點:物理設(shè)備以及在此結(jié)構(gòu)上執(zhí)行的構(gòu)件4 配置圖中的構(gòu)件在邏輯上可對應包、類及對象 因此,配置圖將顯示運行時刻包、類及對象在物理平臺上的 分布情況3.連接:結(jié)點間的通信及通信類型(通信協(xié)議,網(wǎng)絡類型等)6.2 UML靜態(tài)建模機制6.2.6 配置(Deployment)圖6.2 UML靜態(tài)建模機制6.2.6 配置(Deployment)圖結(jié)點節(jié)點是擁有某些計算資源的物理對象(設(shè)備) ,這些資源包括帶處理器的計算機,一些設(shè)備如打印機、讀卡機、通信設(shè)備等。在查找或確定實現(xiàn)系統(tǒng)所需的硬件資源時標識這些節(jié)點,主要描述節(jié)點兩

32、方面的內(nèi)容:能力(如基本內(nèi)存、計算能力、二級存儲器) ;位置(在所有必須的地理位置上均可得到)??梢詫⒐?jié)點作為類型(節(jié)點是一個類)和實例來顯示,類型描述處理器或設(shè)備類型的特點,實例表示類型的真正出現(xiàn)(機器)。6.2 UML靜態(tài)建模機制6.2.6 配置(Deployment)圖連接節(jié)點間通過通信關(guān)聯(lián)連接在一起。通信關(guān)聯(lián)用一條直線表示,說明在節(jié)點間存在某類通信路徑,節(jié)點通過這條通信路徑交換對象或發(fā)送消息。通信類型用版類來表示,定義通信協(xié)議或使用的網(wǎng)絡。6.2 UML靜態(tài)建模機制6.2.6 配置(Deployment)圖連接6.2 UML靜態(tài)建模機制6.2.6 配置(Deployment)圖構(gòu)件在結(jié)

33、點上的分配6.3 UML動態(tài)建模機制6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖順序圖(序列圖)和合作圖(協(xié)作圖)統(tǒng)稱為交互圖。交互圖通常描述單個用例中的行為順序圖用來描述對象之間動態(tài)的交互關(guān)系,主要強調(diào)對象間消息傳遞的時間序及并發(fā)6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖 順序圖的左邊可帶有描述信息,以闡明消息發(fā)送的時刻, 動作執(zhí)行情況及約束信息等 順序圖的X軸表示不同的對象,Y軸表示時間 對象間的通信表示為對象生命線之間的消息傳遞 消息有簡單、同步、異步之分 消息用消息名及參數(shù)標識 消息可帶有條件表達式,以表示條件或分支 一個對象可通過發(fā)送消息來創(chuàng)

34、建或刪除另一對象 順序圖可顯式表示對象生命的終結(jié)瘦長的矩形塊表示對象存在的時間段6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖An Order EntrywindowAn OrderAn Order LineA Stock ItemA DeliveryItemA ReorderItemObjectPrepare()Message*for all order linesprepare()IterationhasStock:=check()ConditionhasStock remove()Self-Delegati

35、onneedsReordernewReturnhasStocknewCreationneedsRecord:=needsToRecord()6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖a Transactiona TransactionCoordinatora firstTransactionCheckera second TransactionCheckernewAsynchronous MessageActivationnewnewnewotherProcessingsuppressedobjectdeletesitselfalldone?alldone?Self-De

36、legationokbeValid6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖順序圖中的分支6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖順序圖中的約束6.3 UML動態(tài)建模機制6.3.1 順序(Sequence)圖順序圖中的約束6.3 UML動態(tài)建模機制6.3.2 合作(Collaboration)圖 合作圖中的消息可以編號,以表達它們之間的時序 如果對象在交互中被創(chuàng)建/刪除,可在對象名后加 new / destroy 對象間的鏈接類似于類圖中的關(guān)聯(lián)(但沒有多重性表示) 鏈接關(guān)系包括構(gòu)成鏈接、聚集鏈接、限定鏈接等 消息標于鏈接之上合作圖描述相互合作的對象

37、間的交互和鏈接關(guān)系6.3 UML動態(tài)建模機制6.3.2 合作(Collaboration)圖6.3 UML動態(tài)建模機制6.3.2 合作(Collaboration)圖6.3 UML動態(tài)建模機制6.3.2 合作(Collaboration)圖:Order Entry Window:Delivery ItemMacallan line:Order Line:Order:Reorder ItemMacallan stock:Stock Item1:prepare()ObjectMessage2*for all order lines:prepare()7hasStock:new3:hasStock:

38、=check()4:hasStock:remove()5:needsRecorder:=needToRecorder()Sequence Number6needsReorder:newSelf-Delegation6.3 UML動態(tài)建模機制6.3.2 合作(Collaboration)圖:Order Entry Window:Delivery ItemMacallan line:Order Line:Order:Reorder ItemMacallan stock:Stock Item1:prepare()1.1*for all order lines:prepare()1.1.1:hasSt

39、ock:=check()1.1.2:hasStock:remove():needsRecorder:=needToRecorder()Sequence NumberneedsReorder:new1.1.3:hasStock:new6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖 結(jié)點:包含狀態(tài)名,活動(Activity) entry活動:一旦對象進入該狀態(tài),相應的活動被觸發(fā)執(zhí)行 Exit活動:一旦從該狀態(tài)離去,相應的活動被觸發(fā)執(zhí)行 Do活動:當對象位于該狀態(tài)時,執(zhí)行相應的活動,狀態(tài)不變 狀態(tài)轉(zhuǎn)移:狀態(tài)轉(zhuǎn)移由事件觸發(fā) 如果狀態(tài)轉(zhuǎn)移邊上沒有事件,那么當狀態(tài)中的所有活動執(zhí)行

40、 完成之后,自動立刻進行狀態(tài)轉(zhuǎn)移 狀態(tài)轉(zhuǎn)移動作(action)具有原子性,活動則不然狀態(tài)圖刻劃特定對象所有可能的狀態(tài)及狀態(tài)變遷6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖完成遷移 沒有直接事件的狀態(tài)轉(zhuǎn)移,當每一個狀態(tài)下的活動被實現(xiàn)時狀態(tài)發(fā)生轉(zhuǎn)移。6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖狀態(tài)圖刻劃特定對象所有可能的狀態(tài)及狀態(tài)變遷WaitingDispatchingdo/initiatedeliveryCheckingdo/checkitemDeliveredCancelledNot all items checked/get next itemal

41、l items checked&all items availableAll items checked &some items not in stockcancelledcancelledItem Receivedsome items not in stockItem Receivedall items available6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖狀態(tài)圖刻劃特定對象所有可能的狀態(tài)及狀態(tài)變遷WaitingDispatchingdo/initiatedeliveryCheckingdo/checkitemDeliveredCancelledNot all items check

42、ed/get next itemAll items checked &some items not in stockcancelledItem Receivedsome items not in stockItem Receivedall items availableActiveSuperstate nameall items checked&all items available6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖狀態(tài)圖的結(jié)構(gòu)化或關(guān)系:將子狀態(tài)經(jīng)“或”關(guān)系合成后得到Superstate與關(guān)系:用來描述對象中的并發(fā)狀態(tài)變遷6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖WaitingDi

43、spatchingCheckingAuthorizingAuthorizedRejectedDeliveredCancelledend6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖事件說明6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖守衛(wèi)條件6.3 UML動態(tài)建模機制6.3.3 狀態(tài)圖動作表達式6.3 UML動態(tài)建模機制6.3.4 活動(Activity)圖活動圖描述某一行為的動作過程(例如,類的方法、用例、對象內(nèi)部工作流程等) 活動:在概念模型中,活動是某項任務或子任務。 在規(guī)范和實現(xiàn)層,活動對應于類的方法 活動完成后由Trigger引發(fā)后續(xù)活動 Trigger是活動圖的邊 Trigger中可以包含條件 活動圖用并發(fā)條(synchronization bar)表示并發(fā)和同步 多重Trigger也可以表示并發(fā) 對象可以出現(xiàn)在活動圖中,作為活動的輸入/出, 或表示對象與活動之間的相關(guān)性6.3 UML動態(tài)建模機制6.3.4 活動(Activity)圖PourCoffeeDrinkBeverageFindBeverageAddWatertoReservoirPut Filterin MachinePut Coffeein Fil

溫馨提示

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

評論

0/150

提交評論