国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
UML 基礎

UML的基本結(jié)構


       通過對UML的學習,整理出了上面這幅UML概要結(jié)構圖,主要是UML事物,UML關系和UML圖,還有很多規(guī)格說明,符號,修飾,擴展機制等等元素沒有體現(xiàn),其實,圖中的三大塊加上那么多邊邊角角的元素,高度濃縮概括起來,可以把UML這門課的主要內(nèi)容描述為:

       在軟件生命周期中,準確地把 UML事物和UML關系通過一定規(guī)則組合,利用Rose繪制成UML的9種圖,以幫助我們開發(fā)出高質(zhì)量的軟件。

        

         簡略來說,UML的9種圖在軟件生命周期中各個階段的應用主要體現(xiàn)在:

       

1、在需求分析階段:主要采用用例圖來描述需求(角色、功能、外部交互等);
2、在分析階段:明確解決問題的細節(jié),主要采用類圖來描述靜態(tài)結(jié)構,采用順序圖,協(xié)作圖,活動圖,狀態(tài)圖來描述系統(tǒng)動態(tài)行為;
3、在設計階段:給出解決方案,主要采用類圖、包,對類的接口進行設計;
4、在實現(xiàn)階段:將類用一種面向?qū)ο笳Z言實現(xiàn);
5、測試階段:單元測試使用類圖和類的規(guī)格說明書。集成測試使用類圖,包,構件圖和協(xié)作圖。系統(tǒng)測試使用用例圖來測試系統(tǒng)的功能;

6、集成和交付階段:主要采用構件圖、包、部署圖;

         

       以上只是很簡略地說明了UML的應用,在下面的博客中,我們將介紹充分利用UML,面向?qū)ο蟮能浖_發(fā)過程,即RUP(Rational Unified Process)

       

       補(欠了一點東西,終于補全了):什么是RUP——http://blog.csdn.net/shan9liang/article/details/6723229


UML中幾種類間關系:繼承、實現(xiàn)、依賴、關聯(lián)、聚合、組合的聯(lián)系與區(qū)別

一、表示符號上的區(qū)別

 

二、具體區(qū)別與聯(lián)系

繼承(泛化)

       指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關系,可分單重繼承,多重繼承(java不支持);在Java中此類關系通過關鍵字extends明確標識。

       實現(xiàn)

      指的是一個class類實現(xiàn)interface接口(可以是多個)的功能;實現(xiàn)是類與接口之間最常見的關系;在Java中此類關系通過關鍵字implements明確標識

      依賴

      可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A;比如某個老師要授課,則需要有這么一門課讓他教授,此時老師與課之間的關系就是依賴;表現(xiàn)在代碼層面,為類Course作為參數(shù)被類Professor在Teach方法中使用;

      關聯(lián)

      它體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強依賴關系,普通關聯(lián)關系的兩個類處于同一層次上,關聯(lián)可以是單向(只有一個類知道另外一個類的公共屬性和操作)的也可以是雙向(兩個類都知道另一個類的公共屬性和操作)的;大多數(shù)關聯(lián)應該是單向的,單向關系更容易建立和維護,有助于尋找可服用的類。

雙向關聯(lián):

單向關聯(lián):

      聚合

      聚合是關聯(lián)關系的一種特例,他體現(xiàn)的是整體與部分、擁有的關系,即has-a的關系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享;比如書本與暑假、公司與員工的關系等;具體表現(xiàn)為,如果A由B聚合成,表現(xiàn)為A包含有B的全局對象,但是B對象可以不在A創(chuàng)建的時刻創(chuàng)建。

      組合

      組合也是關聯(lián)關系的一種特例,他體現(xiàn)的是一種contains-a的關系,這種關系比聚合更強,也稱為強聚合;他同樣體現(xiàn)整體與部分間的關系,但此時整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束,也可以理解為如果A由B組成,表現(xiàn)為A包含有B的全局對象,并且B對象在A創(chuàng)建的時刻創(chuàng)建。比如你和你的大腦或一本書和它的書頁。

      綜上所述,對于繼承、實現(xiàn)這兩種關系比較簡單,他們體現(xiàn)的是一種類與類、或者類與接口間的縱向關系;其他的四者關系則體現(xiàn)的是類與類、或者類與接口間的引用、橫向關系,這幾種關系都是語義級別的,所以從代碼層面并不能完全區(qū)分各種關系;從后幾種關系所表現(xiàn)的強弱程度來看,依次為:組合>聚合>關聯(lián)>依賴。在面向?qū)ο蟮脑O計過程中,能采取強度較大的關系,決不能采取強度小的關系。

     隨著學習深入,會加上代碼實現(xiàn)!




      從上面的用例圖模型,我們可以大致了解用例圖所描述的是什么。下面進行詳細介紹。

 

      用例圖,即用來描述什么角色通過某某系統(tǒng)能做什么事情的圖,用例圖關注的是系統(tǒng)的外在表現(xiàn),系統(tǒng)與人的交互,系統(tǒng)與其它系統(tǒng)的交互。

      用例圖有三種構成元素,分別是:角色,用例,關系

1、角色(Actor):即使用本系統(tǒng)的有哪些角色,不同的角色使用的系統(tǒng)功能部分是不同的,在用例圖中用小人表示。

值得注意的是,角色可能是人,也可能不是人,而是另外的一個系統(tǒng),本系統(tǒng)與另外一個系統(tǒng)交互的話,可以將另外一個系統(tǒng)畫成某某角色。

分析得到角色的原則,也可以看做是我們在獲得角色時,需要思考的內(nèi)容:

  1)有哪些直接使用系統(tǒng)的人

  2)涉及到哪些維護人員

  3)使用哪些外設

  4)相連的其他系統(tǒng)

  5)還有哪些人和事物對這個系統(tǒng)產(chǎn)生的結(jié)果感興趣。


2、用例:即系統(tǒng)具有的功能,在用例圖中用橢圓圈表示,圈里用文字描述該用例,一般為動賓短語。

值得注意的是,某個用例不一定是只屬于一個角色的,有些用例是同時屬于多個角色的,即被多個角色“共享”。

 

在這里圖書館信息系統(tǒng)說明一下,用例的粒度與范圍

  概述級

 

  用戶目標級

 

  子功能級

 

 

3、關系:即角色與用例之間的關系,在用例圖中用線條表示,

線條是指角色與用例之間的線條,這些線條是用來聯(lián)系角色(小人)和用例(圈圈)的,表示某某角色能“做”什么用例。

 

線條有兩種:無箭頭的,有箭頭的。

有箭頭的線條,表示角色與系統(tǒng)交互的過程中,數(shù)據(jù)的流向,如果箭頭指向用例,就說明角色需要往系統(tǒng)輸入數(shù)據(jù),如果箭頭指向角色,說明系統(tǒng)往角色輸出數(shù)據(jù)。沒有箭頭的線條,則沒有明確表示數(shù)據(jù)的流向。

 

有的時候,用例圖在細化到子功能級別時,還會出現(xiàn)虛線箭頭,如上圖所示。

 

綜上所述,并結(jié)合繪制用例圖需要注意的一些細節(jié),整理出以下這張圖來更加形象的說明用例圖。



類圖(Class Diagram)是描述類、接口、協(xié)作以及它們之間關系的圖。

 

類圖是系統(tǒng)中靜態(tài)視圖的一部分,靜態(tài)視圖可以包括許多的類圖。

 

靜態(tài)視圖用于為軟件系統(tǒng)進行結(jié)構建模,它構造系統(tǒng)的詞匯和關系,而結(jié)構模型的可視化就是通過類圖來實現(xiàn)的。

 

類圖由以下基本元素構成:類;接口;協(xié)作;關系(依賴、泛化、實現(xiàn)和關聯(lián))。

 

如果對類圖中的關系模糊,可以看我的另一篇博客:

 http://blog.csdn.net/shan9liang/article/details/6705728

 

下面用一張圖來概括類圖的基本內(nèi)容:

 

 

通常以下述3種方法之一使用類圖:

 

1、對系統(tǒng)的詞匯建模

UML構建系統(tǒng)通常是從構造系統(tǒng)的基本詞匯開始,用于描述系統(tǒng)的邊界,也就是說用來決定哪些抽象是要建模系統(tǒng)中的一部分,哪些抽象是處于要建模系統(tǒng)之外。這是非常重要的一項工作,因為系統(tǒng)最基本的元素在這里被確定。可以用類圖描述抽象和它們的職責。


2、對簡單協(xié)作建模

現(xiàn)實世界中的事物大多是相互聯(lián)系、相互影響的,將這些事物抽象成類后,情況也是如此。所要構造的軟件系統(tǒng)中的類很少有孤立存在的。它們總是和其他類協(xié)同工作,以實現(xiàn)強于單個類的語義。因此,在抽象了系統(tǒng)詞匯后,系統(tǒng)分析師還必須將這些詞匯中是事物協(xié)同工作的方式可視化和詳述。

 

3、對邏輯數(shù)據(jù)庫模式建模

在設計一個數(shù)據(jù)庫是,通常使用數(shù)據(jù)庫模式來描述數(shù)據(jù)庫的概念設計。數(shù)據(jù)庫模式建模是對數(shù)據(jù)庫概念設計的藍本,可以使用類圖對這些數(shù)據(jù)庫的模式進行建模。


一、用一張圖來介紹一下對象圖的基本內(nèi)容


二、對象圖與類圖的基本區(qū)別


三、對象圖實例


活動圖(Activity Diagram)—UML圖(四)


 “活動圖”可通過一系列操作將業(yè)務流程或軟件進程以工作流的形式顯示出來。這些操作可以由人、軟件組件或計算機來執(zhí)行。

使用活動圖可以描述多種類型的流程,如下:

1、用戶和您的系統(tǒng)之間的業(yè)務流程或工作流。 

2、某一用例中執(zhí)行的步驟。 

3、軟件協(xié)議,即允許在組件間進行的交互序列。

4、軟件算法。

  • 下面用一張圖來介紹活動圖的基本內(nèi)容



    下面是用rose 和 onenote結(jié)合畫的一張活動圖的實例,基本囊括了活動圖的重要元素。



狀態(tài)圖用來描述一個特定的對象的所有可能的狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移。與活動圖的主要區(qū)別體現(xiàn)在:狀態(tài)圖側(cè)重從行為的結(jié)果來描述,而活動圖側(cè)重從行為的動作來描述?;顒訄D可能涉及多個對象,而狀態(tài)圖只涉及一個特定的對象。

        

       下面,通過一張圖來描述狀態(tài)圖的基本內(nèi)容。




        下面是一張狀態(tài)圖的實例圖,描述了一個溫度控制器的狀態(tài)圖。



時序圖(Sequence Diagram)—UML圖(六)

時序圖(Sequence Diagram)是顯示對象之間交互的圖,這些對象是按時間順序排列的。時序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。

       下面這張圖介紹了時序圖的基本內(nèi)容:




          下面這張圖是時序圖的實例,創(chuàng)建課程時序圖:




協(xié)作圖(Collaboration Diagram)—UML圖(七)

協(xié)作圖(Collaboration Diagram /Communication Diagram,也叫合作圖)是一種交互圖(interaction diagram),強調(diào)的是發(fā)送和接收消息的對象之間的組織結(jié)構。一個協(xié)作圖顯示了一系列的對象和在這些對象之間的聯(lián)系以及對象間發(fā)送和接收的消息。對象通常是命名或匿名的類的實例,也可以代表其他事物的實例,例如協(xié)作、組件和節(jié)點。使用協(xié)作圖來說明系統(tǒng)的動態(tài)情況。

       下面這張圖介紹協(xié)作圖的基本內(nèi)容:



          下面一張圖是一個協(xié)作圖的實例,創(chuàng)建課程的協(xié)作圖:




          由于協(xié)作圖和時序圖在語意上是相通的,所以可以互相轉(zhuǎn)換,下面是利用ROSE把上面的協(xié)作圖轉(zhuǎn)換成的時序圖的實例:



構件圖(Component Diagram)—UML圖(八)

  構件圖是顯示代碼自身結(jié)構的實現(xiàn)級別的圖表。構件圖由諸如源代碼文件、二進制代碼文件、可執(zhí)行文件或動態(tài)鏈接庫 (DLL) 這樣的構件構成,并通過依賴關系相連接


      下面這張圖介紹了構件圖的基本內(nèi)容:



        

           下面這張圖是個構件圖的實例:



部署圖(Deployment Diagram)—UML圖(九)

 UML部署圖描述了一個運行時的硬件結(jié)點,以及在這些結(jié)點上運行的軟件組件的靜態(tài)視圖。 部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構的機器之間的中間件。

        

        下面這張圖介紹了部署圖的基本內(nèi)容:


         

         下面這張圖是一個部署圖的實例:



             補充一點,節(jié)點和構件的聯(lián)系與區(qū)別:

節(jié)點的概念和構件有許多相同之處,例如二者有多名稱,都可以參與依賴、泛化和關聯(lián)關系,都可以被嵌套,都可以有實例,都可以參與交互。

但它們之間也存在明顯的區(qū)別:構件是參與系統(tǒng)執(zhí)行的事物,而節(jié)點是執(zhí)行構件的事物;構件表示邏輯元素的物理打包,而節(jié)點表示構件的物理部署



本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
UML 的九種模型圖
UML和面向?qū)ο蠓治雠c設計總結(jié)
UML是什么?常用的幾種圖有哪些?
UML 圖
EA12創(chuàng)建九種常見的UML圖
UML模型圖
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服