<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 188,comments - 176,trackbacks - 0

    用例圖
    主要用來(lái)圖示化系統(tǒng)的主事件流程,它主要用來(lái)描述客戶(hù)的需求,即用戶(hù)希望系統(tǒng)具備的完成一定功能的動(dòng)作,通俗地理解用例就是軟件的功能模塊,所以是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn),設(shè)計(jì)人員根據(jù)客戶(hù)的需求來(lái)創(chuàng)建和解釋用例圖,用來(lái)描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系,用例圖包含了用例和參與者,用例之間用關(guān)聯(lián)來(lái)連接以求把系統(tǒng)的整個(gè)結(jié)構(gòu)和功能反映給非技術(shù)人員(通常是軟件的用戶(hù)),對(duì)應(yīng)的是軟件的結(jié)構(gòu)和功能分解。


    用例是從系統(tǒng)外部可見(jiàn)的行為,是系統(tǒng)為某一個(gè)或幾個(gè)參與者(Actor)提供的一段完整的服務(wù)。從原則上來(lái)講,用例之間都是獨(dú)立、并列的,它們之間并不存在著包含從屬關(guān)系。但是為了體現(xiàn)一些用例之間的業(yè)務(wù)關(guān)系,提高可維護(hù)性和一致性,用例之間可以抽象出包含(include)、擴(kuò)展(extend)和泛(generalization)幾種關(guān)系。

    共性:都是從現(xiàn)有的用例中抽取出公共的那部分信息,作為一個(gè)單獨(dú)的用例,然后通后過(guò)不同的方法來(lái)重用這個(gè)公共的用例,以減少模型維護(hù)的工作量。



    1、包含(include)

     

       包含關(guān)系:使用包含(Inclusion)用例來(lái)封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基(Base)用例復(fù)用。基用例控制與包含用例的關(guān)系,以及被包含用例的事件流是否會(huì)插入到基用例的事件流中。基用例可以依賴(lài)包含用例執(zhí)行的結(jié)果,但是雙方都不能訪問(wèn)對(duì)方的屬性。 

      包含關(guān)系對(duì)典型的應(yīng)用就是復(fù)用,也就是定義中說(shuō)的情景。但是有時(shí)當(dāng)某用例的事件流過(guò)于復(fù)雜時(shí),為了簡(jiǎn)化用例的描述,我們也可以把某一段事件流抽象成為一個(gè)被包含的用例;相反,用例劃分太細(xì)時(shí),也可以抽象出一個(gè)基用例,來(lái)包含這些細(xì)顆粒的用例。這種情況類(lèi)似于在過(guò)程設(shè)計(jì)語(yǔ)言中,將程序的某一段算法封裝成一個(gè)子過(guò)程,然后再?gòu)闹鞒绦蛑姓{(diào)用這一子過(guò)程。 

      例如:業(yè)務(wù)中,總是存在著維護(hù)某某信息的功能,如果將它作為一個(gè)用例,那新建、編輯以及修改都要在用例詳述中描述,過(guò)于復(fù)雜;如果分成新建用例、編輯用例和刪除用例,則劃分太細(xì)。這時(shí)包含關(guān)系可以用來(lái)理清關(guān)系。




    2、擴(kuò)展(extend)

    擴(kuò)展關(guān)系:將基用例中一段相對(duì)獨(dú)立并且可選的動(dòng)作,用擴(kuò)展(Extension)用例加以封裝,再讓它從基用例中聲明的擴(kuò)展點(diǎn)(Extension Point)上進(jìn)行擴(kuò)展,從而使基用例行為更簡(jiǎn)練和目標(biāo)更集中。擴(kuò)展用例為基用例添加新的行為。擴(kuò)展用例可以訪問(wèn)基用例的屬性,因此它能根據(jù)基用例中擴(kuò)展點(diǎn)的當(dāng)前狀態(tài)來(lái)判斷是否執(zhí)行自己。但是擴(kuò)展用例對(duì)基用例不可見(jiàn)。

    對(duì)于一個(gè)擴(kuò)展用例,可以在基用例上有幾個(gè)擴(kuò)展點(diǎn)。  

    例如,系統(tǒng)中允許用戶(hù)對(duì)查詢(xún)的結(jié)果進(jìn)行導(dǎo)出、打印。對(duì)于查詢(xún)而言,能不能導(dǎo)出、打印查詢(xún)都是一樣的,導(dǎo)出、打印是不可見(jiàn)的。導(dǎo)入、打印和查詢(xún)相對(duì)獨(dú)立,而且為查詢(xún)添加了新行為。因此可以采用擴(kuò)展關(guān)系來(lái)描述:




     
    4、泛化(generalization)

     

    泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實(shí)際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在。

    例如,業(yè)務(wù)中可能存在許多需要部門(mén)領(lǐng)導(dǎo)審批的事情,但是領(lǐng)導(dǎo)審批的流程是很相似的,這時(shí)可以做成泛化關(guān)系表示: 




       上面是我參考的一篇文章,覺(jué)得將三種關(guān)系的區(qū)別講得很清晰,在此基礎(chǔ)上結(jié)合自己的系統(tǒng),對(duì)項(xiàng)目(在線(xiàn)購(gòu)物系統(tǒng))的用例做了整體的描繪。

       *****************************************************************

       (1)系統(tǒng)整體用例圖

        


       
       (商品用例圖)
       
       
       
        
       
       
      (購(gòu)買(mǎi)信息用例)
       
       

       
       (用戶(hù)資料用例)

       
       

       
       
    按照先整體用例,后子系統(tǒng)用例來(lái)進(jìn)行描繪的,歡迎大家提出好的建議!


    轉(zhuǎn):UML中擴(kuò)展和泛化的區(qū)別 

            泛化表示類(lèi)似于OO術(shù)語(yǔ)“繼承”或“多態(tài)”。UML中的Use Case泛化過(guò)程是將不同Use Case之間的可合并部分抽象成獨(dú)立的父Use Case,并將不可合并部分單獨(dú)成各自的子Use Case;包含以及擴(kuò)展過(guò)程與泛化過(guò)程類(lèi)似,但三者對(duì)用例關(guān)系的優(yōu)化側(cè)重點(diǎn)是不同的。如下:
             ●泛化側(cè)重表示子用例間的互斥性;
             ●包含側(cè)重表示被包含用例對(duì)Actor提供服務(wù)的間接性;
             ●擴(kuò)展側(cè)重表示擴(kuò)展用例的觸發(fā)不定性;詳述如下:


           既然用例是系統(tǒng)提供服務(wù)的UML表述,那么服務(wù)這個(gè)過(guò)程在所有用例場(chǎng)景中是必然發(fā)生的,但發(fā)生按照發(fā)生條件可分為如下兩種情況:
            ⒈無(wú)條件發(fā)生:肯定發(fā)生的;
            ⒉有條件發(fā)生:未必發(fā)生,發(fā)生與否取決于系統(tǒng)狀態(tài);

            因此,針對(duì)用例的三種關(guān)系結(jié)合系統(tǒng)狀態(tài)考慮,泛化與包含用例屬于無(wú)條件發(fā)生的用例,而擴(kuò)展屬于有條件發(fā)生的用例。進(jìn)一步,用例的存在是為Actor提供服務(wù),但用例提供服務(wù)的方式可分為間接和直接兩種,依據(jù)于此,泛化中的子用例提供的是直接服務(wù),而包含中的被包含用例提供的是間接服務(wù)。同樣,擴(kuò)展用例提供的也是直接服務(wù),但擴(kuò)展用例的發(fā)生是有條件的。

            另外一點(diǎn)需要提及的是:泛化中的子用例和擴(kuò)展中的擴(kuò)展用例均可以作為基本用例事件的備選擇流而存在。
     




     


    posted on 2007-06-05 21:32 cheng 閱讀(5606) 評(píng)論(10)  編輯  收藏 所屬分類(lèi): UML

    FeedBack:
    # re: UML中的用例圖分析[未登錄](méi)
    2007-06-06 08:17 | Sunshine
    兄弟,上面的圖鏈接到您自個(gè)本地電腦,只有你自己看得到啊。改下好啵?  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-06 10:10 | ddd
    LZ,

    請(qǐng)問(wèn), uml的工具,有沒(méi)有能直接生成test case代碼的。。。

    謝謝。。。  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-06 10:56 | cheng
    OK,現(xiàn)在可以了。用MyEclipse的UML插件描繪的圖感覺(jué)不是很清晰:(  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-06 10:57 | cheng
    UML工具,case工具我只知道有將代碼生成類(lèi)圖的反向工程,你說(shuō)的用例圖我沒(méi)用過(guò),呵呵。  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-07 17:37 | 饒志華
    非常有借鑒意義,謝謝!  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析[未登錄](méi)
    2007-06-07 18:26 | cheng
    謝謝,自己接觸UML時(shí)間不長(zhǎng),在這里還請(qǐng)各位XDJM們提出高見(jiàn)了。  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-10 10:56 | 營(yíng)
    你寫(xiě)的真不錯(cuò)  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2007-06-10 23:44 | 三告習(xí)習(xí)
    哈哈~~~~~~~
    好,還沒(méi)有系統(tǒng)研究過(guò)UML,從帖子上總算對(duì)用例圖的三個(gè)關(guān)系明白些少了  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2009-02-16 16:22 | ddd
    給個(gè)圖啊  回復(fù)  更多評(píng)論
      
    # re: UML中的用例圖分析
    2009-02-16 21:49 | cheng
    @ddd
    現(xiàn)在可以了,我自己畫(huà)的圖重新上傳到BLOG服務(wù)器上去了。轉(zhuǎn)載的文章的圖由于以前文章鏈接沒(méi)找到,后續(xù)找到了再來(lái)補(bǔ)充上去。  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 你是我的城池营垒免费观看完整版| 亚洲欧美日韩久久精品| 久久精品无码免费不卡| 免费a级毛片在线观看| 国产成人亚洲精品91专区高清| 久久久久亚洲精品影视| 国产免费人成视频在线播放播 | 亚洲色大成网站www| 亚洲人成电影网站免费| 亚洲色成人四虎在线观看| 最新免费jlzzjlzz在线播放| 亚洲欧洲免费无码| 免费观看四虎精品国产永久| 特级毛片A级毛片100免费播放| 亚洲?V乱码久久精品蜜桃| 精品无码一级毛片免费视频观看| 亚洲码国产精品高潮在线| 怡红院免费全部视频在线视频| 亚洲∧v久久久无码精品| h在线观看视频免费网站| 亚洲人成色4444在线观看| 免费一区二区视频| 久久av免费天堂小草播放| 久久噜噜噜久久亚洲va久| 91成人免费在线视频| 九九精品国产亚洲AV日韩| 国产国拍亚洲精品福利| 久久久久高潮毛片免费全部播放| 亚洲欧洲另类春色校园小说| 日本成人在线免费观看| 中文字幕乱码免费看电影| 亚洲一区二区久久| 亚洲人成无码www久久久| 久久免费观看国产精品88av| 亚洲精品福利你懂| 亚洲日本韩国在线| 91成人在线免费观看| 黄页免费视频播放在线播放| 亚洲国产成人久久综合碰碰动漫3d| 大学生一级毛片免费看| 一级全免费视频播放|