關于偉創 偉創新聞 偉創案例 網站套餐 聯系方式
只做吸引客戶的精品站!

洛陽軟件開發顧問偉創解讀“uml圖之類圖”

洛陽軟件開發 / 2013/1/28 8:24:10
[核心提示] 面向對象的基礎是類,在面向對象處理中,類圖處于核心地位,它提供了用于定義和使用對象的主要規則,同時,類圖是正向工程的主要資源,是逆向工程的生成物。
洛陽軟件開發顧問偉創解讀“uml圖之類圖”
  類圖地位:
  面向對象的基礎是類,在面向對象處理中,類圖處于核心地位,它提供了用于定義和使用對象的主要規則,同時,類圖是正向工程的主要資源,是逆向工程的生成物,因此類圖是任何面向對象系統額核心,類圖隨之也成了最常用的uml圖類圖是描述類,接口以及他們之間關系的圖,它顯示了系統中各個類的靜態結構。類圖是面向對象系統建模中最常用的基本圖之一,其他許多圖,如狀態圖,組件圖和配置圖都是在類圖的基礎上進一步描述了系統的其他方面的特征。
  類圖的表示:
  名稱屬性操作補充:
  職責:可以在類標記中操作分欄下面另加一個分欄,用于說明類的職責,所謂指責是指類或其他元素的契約或者義務。
  約束:在類的標記中說明類的職責是消除二義性的一種非形式化的方法,而使用約束則是一種形式花的方法。約束指定了類應該滿足的一個或者多個規則。
  類的關聯:
  他體現的是兩個類、或者類與接口之間語義級別的一種強依賴關系,比如我和我的朋友;這種關系比依賴更強、不存在依賴關系的偶然性、關系也不是臨時性的,一般是長期性的,而且雙方的關系一般是平等的、關聯可以是單向、雙向的;表現在代碼層面,為被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯類A引用了一個類型為被關聯類B的全局變量;類的關聯的屬性(二元關聯):
  名稱:關聯的名稱表達了關聯的內容,含義確切的名稱使人更容易理解。
  關聯的端點每個關聯端點都包含以下內容:
  端點上的對象在關聯中扮演什么角色,有多少對象可以參與關聯,對象之間是否按一定順序排列,是否可以用對象的一些特征對該對象進行訪問,一個端點的對象是否可以訪問另一個端點的對象等關聯中的角色:
  示例:
  可見性:
  多重性:
  多重性用來表達一個取值范圍,特定值,無限定的范圍或者一組離散值。
  定序:
  在關聯中使用多重性時,意味著可能有多個對象參與關聯,當有多個對象時,還可以使用定序約束,定序就是指將一組對象按一定的順序排列。在uml規范中,布爾標記值ordered用于說明是否要對對象進行排序。要指出參與關聯的一組對象需要按一定的順序排序,只需將關鍵字{ordered}置于關聯端點處就可以了。
  約束:
  定義了3種擴展機制,即標記,原型和約束。其中,約束定義了附加于模型元素之上的限制條件,保證了模型元素在系統生命周期中的完整性。約束的格式實際上是一個文本字符串(使用特定的語言表達),幾乎可以被附加到模型中德任何元素上。約束使用的語言可以是ocl,某種編程語言甚至也可以是自然語言,如英文,中文。
  約束條件作用對象是靠近它的關聯端點的類,在模型中使用約束時,要是約束條件靠近它所作用的類。在不熟悉ocl之前可以使用自然語言約束。
  限定符:
  當需要使用某些信息作為關鍵字來識別對象集合中的一個對象時,可以使用限定符。限定符定義了被參考對象的一個屬性,并使用該屬性作為直接訪問被參考對象的關鍵字,使用限定符的關聯被稱為受限關聯。
  導航性:
  描述的是一個對象通過鏈進行導航訪問另一對象。也就是說,對一個關聯端點設置導航屬性意味著本端的對象可以被另一端的對象訪問。
  可變性:
  可變性允許建模者對屬于某個關聯的鏈接進行操作,默認情況是允許任何形式的編輯,例如,添加,刪除等。在uml中,可變性默認值可以不在模型中表現出來。但是如果需要對可變性做些限定,則需要將可變性的取值放在特性字符串中。和定序以及約束放在一起。在預定的可變選項中,{frozen}表示鏈一旦被建立,就不能移動或者改變,如果應用程序只允許創建新鏈而不允許刪除鏈,則可以使用{addOnly}選項。
  關聯類關聯類是一種將數據值和鏈接關聯在一起的手段,在uml中,關聯類是一種模型元素,它同時具有關聯和類的特征。關聯類可以像關聯那樣將兩個類連接在一起,并且可以像類一樣具有屬性,關聯類的屬性用來存儲向關聯的信息。
  關聯類和其他的類非常相似,兩者之間的區別就在于對他們的使用需求不同。一般的類描述的是某個實體,即看得見摸得著的東西,而關聯類描述的則是關系。由于關聯類也是一個類,所以關聯類也可以參與其他的關聯。
  或關聯與反身關聯:
  或關聯是指對多個關聯附加約束條件,使類中的對象一次只能參與一個關聯關系。當兩個關聯不能同時發生時,用一條虛線連接這兩個關聯,并且虛線的中間帶有{OR}關鍵字。
  如果參與關聯的對象屬于同一個類,那么關聯直線的起點和終點都是該類。
  聚合:
  聚合關系是在關聯之上進一步的緊密耦合,用來表明一個類實際上擁有但可能共享另一個類的對象。在聚合關系中,其中一個類是整體,它由一個或者多個部分類組成,當整體類不存在時,部分類仍能存在,但是當它們聚集在一起時,就用于組成相應的整體類。表示聚集關系時,要在關聯實線的連接整體類那一端添加一個菱形。
  組成:
  在類的眾多關系中,再加強一步的耦合是組合關系。它與聚合關系的異同之處在于組成的關聯中,整體類同樣都是有部分類組成,但是部分類需要整體類才能存在,當整體類被銷毀時,部分類將同時被銷毀。這正是組合所表達的內涵:為組成類的內在部分建模。表示組成關系的符號與聚集關系類似,但是末端的菱形是實心的。
  泛化關系:
  泛化和繼承用于描述一個類是另一個類的類型。指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關系。
  泛化有兩個用途。
  第一個用途是用來定義下列情況:當一個變量(如參數或過程變量)被聲明承載某個給定類的值時,可使用類(或其他元素)的實例作為值,這被稱作可替代性原則(由 Barbara Liskov 提出)。該原則表明無論何時祖先被聲明了,則后代的一個實例可以被使用。例如,如果一個變量被聲明擁有借貸,那么一個抵押對象就是一個合法的值。
  泛化使得多態操作成為可能,即操作的實現是由它們所使用的對象的類,而不是由調用者確定的。
  泛化的層次和多重繼承:
  泛化的層次:一個子類的超類也可以是另一個超類的子類。
  多重繼承:同一個子類擁有多個父類。
  泛化的約束實現指的是一個class類實現interface接口(可以是多個)的功能;實現是類與接口之間最常見的關系;依賴可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關系是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關系就是依賴;表現在代碼層面,為類B作為參數被類A在某個method方法中使用;類圖關系中依賴表示兩個或多個模型元素之間語義上的關系。它只將模型元素本身連接起來而不需要用一組實例來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指示依賴關系中客戶的變化。
  依賴的種類訪問:允許一個包訪問另一個包【access】
  綁定:為模板參數賦值以生成一個新的模型元素【bind】
  調用:聲明一個類調用其他類的方法【call】
  導出:聲明一個實例可以從另一個實例中到處【derive】
  友元:允許一個元素訪問另一個元素而不論被訪問元素的可見性【friend】
  引入:允許一個包訪問另一個包的內容并未被訪問包的組成部分添加別名【import】
  實例化:關于一個類的方法生成了另一個類的實例的生命【instantate】
  參數:一個操作和他參數之間的關系【parameter】
  實現:說明和其實之間的映射關系【realize】
  精化:聲明具有兩個不同層次上元素的映射關系【refine】
  發送:信號發送者和信號接受者之間的關系【send】
  跟蹤:聲明不同模型中元素之間的連接,沒有映射精確【trace】
  使用:聲明使用一個模型元素需要已存在的另一個模型元素,這樣才能正確實現使用者的功能(調用,實例化,參數,發送)【use】
  對于繼承、實現這兩種關系沒多少疑問,他們體現的是一種類與類、或者類與接口間的縱向關系;其他的四者關系則體現的是類與類、或者類與接口間的引用、橫向關系,是比較難區分的,有很多事物間的關系要想準備定位是很難的,前面也提到,這幾種關系都是語義級別的,所以從代碼層面并不能完全區分各種關系;但總的來說,后幾種關系所表現的強弱程度依次為:組合>聚合>關聯>依賴;
尊重作者原創 除非特別聲明,偉創科技所有均為偉創原創報道,轉載請注明原文鏈接。
原文地址:http://www.tgpeyz.live/SoftWare/View.asp?id=312  所屬類別:軟件開發
相關內容
洛陽軟件開發需要多少錢? 2019/12/6
10種不同類型的軟件開發 2019/11/5
如何更好的完成軟件開發的項目 2018/9/18
偉創技術-婷婷:身為.NET程序員的斷想 2017/2/18
【洛陽網絡公司技術分享】身為.NET程序員的斷想 2016/1/28
猜你喜歡
探秘網站美工和程序之間的真空區域 2012/11/1
賀偉創科技簽約洛陽天涯之旅網站建設合同 2013/4/15
網絡公司在各個階段都要提供優質的服務才行 2014/6/30
UI設計中有哪些原則可以讓作品變的細膩? 2017/4/21
網站設計的基本原則 2012/9/19
如何將關鍵詞沖擊到百度第一 2013/1/26
互聯網理財進入白熱化 2013/11/21
洛陽做一個網站需要多少錢? 2015/8/10
如何保證企業網站的訪問速度 2012/11/16
溫馨提示幾個網站要注意的地方 2013/6/5
偉創熱點
關于我們
公司簡介
我們的優勢
企業文化
公司愿景
加入偉創
偉創官方博客
金牌項目
網站建設
網站優化
軟件開發
整合設計
網站運營
網站套餐
基礎型網站
展示型網站
商務型網站
購物、商店型網站
FLASH動畫型網站
行業、門戶型網站
幫助中心
客戶中心
公司SEO培訓
seo顧問服務
支付方式
聯系我們
我們的位置
關注我們
新浪微博
騰訊微博
人人小站
QQ空間推薦
花瓣網
建站百科全書
Copyright 2007-2012 LYWHY.Inc Sitemap 豫ICP備12012069號-1
Links
洛陽百科
建站百科
大乐透几点开奖