久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

UML用例圖

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


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

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



1,、包含(include)

 

    包含關(guān)系:使用包含(Inclusion)用例來封裝一組跨越多個用例的相似動作(行為片斷),,以便多個基(Base)用例復用?;美刂婆c包含用例的關(guān)系,,以及被包含用例的事件流是否會插入到基用例的事件流中?;美梢砸蕾嚢美龍?zhí)行的結(jié)果,,但是雙方都不能訪問對方的屬性。

   包含關(guān)系對典型的應(yīng)用就是復用,,也就是定義中說的情景,。但是有時當某用例的事件流過于復雜時,為了簡化用例的描述,,我們也可以把某一段事件流抽象成為一個被包含的用例,;相反,用例劃分太細時,,也可以抽象出一個基用例,,來包含這些細顆粒的用例,。這種情況類似于在過程設(shè)計語言中,將程序的某一段算法封裝成一個子過程,,然后再從主程序中調(diào)用這一子過程,。 

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


2,、擴展(extend)

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

對于一個擴展用例,,可以在基用例上有幾個擴展點,。   

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





4,、泛化(generalization)

 

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

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




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

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

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

    


   
    (商品用例圖)

   
   
    
   
   
   (購買信息用例)
  
   

   
    (用戶資料用例)


   

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


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

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


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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多