小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

UML 基礎(chǔ)

 星光閃亮圖書館 2017-09-22

UML的基本結(jié)構(gòu)


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

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

        

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

       

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

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

         

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

       

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


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

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

 

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

繼承(泛化)

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

       實(shí)現(xiàn)

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

      依賴

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

      關(guān)聯(lián)

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

雙向關(guān)聯(lián):

單向關(guān)聯(lián):

      聚合

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

      組合

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

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

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




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

 

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

      用例圖有三種構(gòu)成元素,分別是:角色,用例,關(guān)系

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

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

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

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

  2)涉及到哪些維護(hù)人員

  3)使用哪些外設(shè)

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

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


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

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

 

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

  概述級

 

  用戶目標(biāo)級

 

  子功能級

 

 

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

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

 

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

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

 

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

 

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



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

 

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

 

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

 

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

 

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

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

 

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

 

 

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

 

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

UML構(gòu)建系統(tǒng)通常是從構(gòu)造系統(tǒng)的基本詞匯開始,用于描述系統(tǒng)的邊界,也就是說用來決定哪些抽象是要建模系統(tǒng)中的一部分,哪些抽象是處于要建模系統(tǒng)之外。這是非常重要的一項(xiàng)工作,因?yàn)橄到y(tǒng)最基本的元素在這里被確定??梢杂妙悎D描述抽象和它們的職責(zé)。


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

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

 

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

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


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


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


三、對象圖實(shí)例


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


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

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

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

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

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

4、軟件算法。

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



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



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

        

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




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



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

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

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




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




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

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

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



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




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



構(gòu)件圖(Component Diagram)—UML圖(八)

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


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



        

           下面這張圖是個(gè)構(gòu)件圖的實(shí)例:



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

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

        

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


         

         下面這張圖是一個(gè)部署圖的實(shí)例:



             補(bǔ)充一點(diǎn),節(jié)點(diǎn)和構(gòu)件的聯(lián)系與區(qū)別:

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

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



    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多