<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
        My Github

      OOAD利器之UML基礎(chǔ)

      UML:Unified Modeling Language,即統(tǒng)一建模語言,簡單地說就是一種有特殊用處的語言。本文是我初步學(xué)習(xí)UML的學(xué)習(xí)筆記,對于我們菜鳥碼農(nóng)來說,讓我們做設(shè)計(jì)的可能性不大,但至少能看懂是必要的。

      一、所謂模型

      1.1 模型是對現(xiàn)實(shí)的簡化

        模型是提供系統(tǒng)的藍(lán)圖,模型可是包括詳細(xì)計(jì)劃。也可是是從更高程度考慮系統(tǒng)的總體計(jì)劃,每個(gè)系統(tǒng)可以從不同的方面用不通過的模型來描述。因而每個(gè)模型都是在語義上閉合的抽象系統(tǒng)。模型可以是結(jié)構(gòu)性的,強(qiáng)調(diào)系統(tǒng)的組織。也可是是行為性的,強(qiáng)調(diào)系統(tǒng)的動(dòng)態(tài)方面。

      1.2 為什么要建模?

        有人云:建模是為了能夠更好地理解正在開發(fā)的系統(tǒng)

        通過建模可以達(dá)到如下目的:

        1、模型有助于按照實(shí)際情況或按照所需的樣式對系統(tǒng)進(jìn)行可視化;

        2、模型能夠規(guī)約系統(tǒng)的結(jié)構(gòu)或行為;

        3、模型給出了構(gòu)造系統(tǒng)的模板;

        4、模型對做出的決策進(jìn)行文檔化;

      PS:對于一個(gè)復(fù)雜的系統(tǒng),如銀行、電信系統(tǒng)建模的重要性就越大。如果不能很好的理解一個(gè)復(fù)雜系統(tǒng),盲目開發(fā),失敗的可能性很大。

      二、小談UML

      2.1 神馬是UML?

        統(tǒng)一建模語言(Unified Modeling Language , UML) 是一種繪制軟件藍(lán)圖的標(biāo)準(zhǔn)語言,可以用UML對軟件密集的制品進(jìn)行可視化、詳述、構(gòu)造和文檔化。

      2.2 UML的優(yōu)點(diǎn)

        1、可視化:清晰的模型有利于交流

        2、詳述:可以使用UML對分析、設(shè)計(jì)、實(shí)現(xiàn)等決策進(jìn)行詳細(xì)描述

        3、構(gòu)造:把UML描述映射成編程語言

        4、文檔化:系統(tǒng)的所有細(xì)節(jié)都可以是UML進(jìn)行描述。如:項(xiàng)目計(jì)劃、發(fā)布活動(dòng)等

      2.3 應(yīng)用領(lǐng)域

        1、企業(yè)信息系統(tǒng)

        2、銀行與金融服務(wù)

        3、電信

        4、國防、航天

        5、科學(xué)

        6、基于Web的分布式服務(wù)

      三、類圖—分析業(yè)務(wù)模型

      3.1 類

        類是一組具有相同屬性、操作、關(guān)系和語義的對象描述,一個(gè)類可是實(shí)現(xiàn)一個(gè)或者多個(gè)接口。下圖是類在VS里面的圖形表示:

        (1)UML預(yù)設(shè)了四種可見性,分別為公開(public)、私有(private)、保護(hù)(protected)、包(package) 減號(-)為私有可見性,加號(+)為公開可見性。可見,上圖中的類圖所有都為public。

        (2)在UML中抽象類與普通是同一個(gè)是圖表示,只是名字會變成斜體,如下圖所示,調(diào)整IsAbstract屬性為True后類名變?yōu)樾斌w:

      3.2 關(guān)系

        關(guān)系是事物之間的聯(lián)系,在面向?qū)ο蟮慕V校腥N重要的關(guān)系是依賴、泛化、關(guān)聯(lián)。

        (1)依賴

        依賴是一種使用關(guān)系,一個(gè)事物使用另一個(gè)事物。在圖形上,把依賴畫成一條有方向的虛線,指向被依賴的事物。如果被使用的類發(fā)生變化,那么另一個(gè)類的操作必然受影響。依賴關(guān)系在.net語言中體現(xiàn)為 局部變量方法的參數(shù)或者對靜態(tài)方法的調(diào)用,如工具類,現(xiàn)實(shí)生活中人與錘子。

        (2)泛化

        在泛化關(guān)系中,子類繼承了父類的行為和含義,子類也可以增加新的行為和含義或覆蓋父類中的行為和含義。在圖形上,在泛化畫成一個(gè)帶有空心三角行指向父類。泛化在.net中就是一個(gè)繼承的關(guān)系。

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

        關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)對象與另一個(gè)對象間的關(guān)系。

        ①相互關(guān)聯(lián)體現(xiàn)的是兩個(gè)類、或者 類與接口之間語義級別的一種強(qiáng)依賴關(guān)系,是一種長期的穩(wěn)定的關(guān)系;表現(xiàn)在代碼層面,為被關(guān)聯(lián)類以類屬性的形式出現(xiàn)在關(guān)聯(lián)類中,也可能是關(guān)聯(lián)類引用了一個(gè)類型為被關(guān)聯(lián)類的全局變量。

        上圖中ClassA與ClassB相互關(guān)聯(lián),在代碼中各自有對方類型實(shí)例的一個(gè)屬性。

        ②單向關(guān)聯(lián)表現(xiàn)在代碼層面,為被關(guān)聯(lián)類B 以類屬性的形式出現(xiàn)在關(guān)聯(lián)類 A中,也可能是關(guān)聯(lián)類A引用了一個(gè)類型為被關(guān)聯(lián)類B的全局變量;

        上圖中Subject關(guān)聯(lián)Observer,并且是一個(gè)一對多的關(guān)系,那么在代碼中Subject類中會有一個(gè)Observer類對象的集合屬性。

        下面我們來看看幾種特殊的關(guān)聯(lián)關(guān)系,他們是:

        ③聚合關(guān)系:

        聚合是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是整體與部分擁有的關(guān)系。此時(shí)整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個(gè)整體對象,也可以為多個(gè)整體對象共享;比如汽車與發(fā)動(dòng)機(jī);表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分。

        ④組合關(guān)系:

        組合也是關(guān)聯(lián)關(guān)系的一種特例,這種關(guān)系比聚合更強(qiáng),也稱為強(qiáng)聚合;他同樣體現(xiàn)整體與部分間的關(guān)系,但此時(shí)整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束。例如:孕婦死了胎兒自然也就死了(有點(diǎn)血腥的例子,抱歉!);表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分。

      3.3 接口

        接口(interface)如同契約,負(fù)責(zé)的類必須負(fù)責(zé)實(shí)現(xiàn)它的公開操作,以及負(fù)責(zé)維護(hù)它的公開屬性。

      3.4 綜合案例:公司-部門-員工 類圖關(guān)系

      四、用例圖—描述系統(tǒng)的行為

        用例圖用來表達(dá)系統(tǒng)對外提供的服務(wù)或功能,適合用來作為需求搜集階段的工作。

      4.1 用例與執(zhí)行者

        實(shí)際設(shè)計(jì)中,常用用例(UseCase)來表達(dá)系統(tǒng)需求或者系統(tǒng)對外呈現(xiàn)的行為。用例采用橢圓圖示,參與者(Actor)是人型圖示。由于它會參與系統(tǒng)的運(yùn)作,因此它跟用例之間有連接線段。

      4.2 包含關(guān)系

        包含(include)關(guān)系指的是兩個(gè)用例之間的關(guān)系,其中一個(gè)用例(稱作基本用例,base use case)的行為包含了另一個(gè)用例(稱作包含用例,include case)的行為。如下圖,取款的 時(shí)候會包含一個(gè)用戶驗(yàn)證的用例。

      4.3 擴(kuò)展關(guān)系

        擴(kuò)展(extend)關(guān)系將基本用例中一段相對獨(dú)立并且可選的動(dòng)作,用擴(kuò)展(Extension)用例加 以封裝,再讓它從基用例中聲明的擴(kuò)展點(diǎn)(Extension Point)上進(jìn)行擴(kuò)展,從而使基用例行為更簡練和目標(biāo)更集中。如下圖,我們在取完款后,可以打印憑條,也可以不用打印憑條。這個(gè)功能就可以使用擴(kuò)展來表示。

      五、活動(dòng)圖—流程分析利器之一

        活動(dòng)圖通常用來表達(dá)業(yè)務(wù)流程、工作流或系統(tǒng)流程中一連串的動(dòng)作。在我的實(shí)習(xí)前期,就經(jīng)常用到活動(dòng)圖來繪制需求調(diào)研到的業(yè)務(wù)流程,并將活動(dòng)圖展示給客戶以確認(rèn)需求,客戶也能看輕松地看懂。例如,下圖是一個(gè)簡單的登陸流程,登陸失敗跳轉(zhuǎn)到登陸頁面,登陸成功則跳轉(zhuǎn)到主界面。

      PS:每個(gè)活動(dòng)圖只能有一個(gè)開始節(jié)點(diǎn),但是可以有多個(gè)結(jié)束節(jié)點(diǎn)

        (1)動(dòng)作

        動(dòng)作(activity)是最重要的組成元素,它代表一個(gè)執(zhí)行步驟。

        

        (2)控制流

        帶箭頭的連接線稱為控制流(control flow)。當(dāng)來源動(dòng)作結(jié)束之后,控制流會啟動(dòng)目標(biāo)動(dòng)作。

        

        (3)對象節(jié)點(diǎn)與對象流

        對象節(jié)點(diǎn)(object node)為矩形圖示,對象流(object flow)的圖示與控制流相同,不過它的其中一個(gè)端點(diǎn)必須是對象節(jié)點(diǎn),而另一端必須是其他節(jié)點(diǎn)。控制流的兩個(gè)端點(diǎn)不可以都是對象節(jié)點(diǎn)。對象流不同于控制流,對象流可以攜帶數(shù)據(jù)或?qū)ο蟆?/p>

        

        上圖所示,在登陸成功后,我們將用戶的Session對象傳遞到下一個(gè)節(jié)點(diǎn),下一個(gè)節(jié)點(diǎn)可以使用此對象。

        (4)決策與合并

        活動(dòng)流程中,流程交匯點(diǎn),稱為合并節(jié)點(diǎn)(merge node)。一個(gè)合并節(jié)點(diǎn)會有多條進(jìn)入線,但是只有一條離開線,合并節(jié)點(diǎn)的圖示是大的空心菱形,所有進(jìn)入合并節(jié)點(diǎn)的支流都會經(jīng)歷同一條離開線。

        

        決策節(jié)點(diǎn)(decision node)與合并節(jié)點(diǎn)共用圖示,兩者都是大的空心菱形。不過,決策節(jié)點(diǎn)只有一個(gè)進(jìn)入線,但有多條離開線

        

        (5)分叉和連接

        分叉表示的是一個(gè)控制流被兩個(gè)或多個(gè)控制流代替,經(jīng)過分叉后,這些控制流是并發(fā)進(jìn)行的。

        連接正好與分叉相反,表示兩個(gè)或多個(gè)控制流被一個(gè)控制流代替。使用分叉需要使用連接把分叉的流匯聚成一個(gè)流。

        (6)發(fā)送信號和接受事件

        發(fā)送信號操作是一種操作,可以將消息或信號發(fā)送給另一個(gè)活動(dòng)。

        接受事件操作是一種要在等到消息或信號后才能繼續(xù)執(zhí)行的操作。

        如上圖所示,創(chuàng)建發(fā)票是一個(gè)發(fā)送信號,將發(fā)票這個(gè)消息發(fā)給另一個(gè)活動(dòng):收款。而收款是一個(gè)接受事件,它必須等到開完發(fā)票才能繼續(xù)執(zhí)行后續(xù)操作。

      六、時(shí)序圖—流程分析利器之二

        時(shí)序圖,又稱序列圖,用來表達(dá)系統(tǒng)內(nèi)部一群對象的交互情況,它是一種行為圖。水平方向是對象維,垂直方向是時(shí)間維。例如:page與action之間的交互情況可以用時(shí)序圖來表示,在發(fā)送list請求的時(shí)候我們需要一個(gè)返回結(jié)果集。

        (1)生命線

        生命線(lifeline)代表一個(gè)參與交互的實(shí)例,它的圖示是頂端連接矩形的虛線,虛線頂部的矩形可以放置生命線的名稱。

        (2)執(zhí)行發(fā)生

        對象在接收到消息之后執(zhí)行一項(xiàng)活動(dòng),執(zhí)行期間稱為執(zhí)行發(fā)生(execution occurrence),它的圖示是長條矩形。

        (3)消息

        消息(message)的圖示是一條帶箭頭的線段,橫跨在兩個(gè)生命線上,對象之間通過發(fā)送消息來交互。

        (4)終止

         生命線有生有滅,終止(stop)就是用來表達(dá)生命線終止的時(shí)刻。終止的圖示是一個(gè)大叉,放置在生命線的虛線底部,代表生命線已經(jīng)終止。

      參考資料

        (1)張傳波,《火球——UML大戰(zhàn)需求分析》,http://www.amazon.cn/tushu/dp/B0079FMI40  

        (2)周猛,《UML統(tǒng)一建模語言基礎(chǔ)》,http://wenku.baidu.com/view/28fe7f65ad02de80d4d840ec.html

       

      posted @ 2014-09-24 23:00  EdisonZhou  閱讀(3835)  評論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 性动态图无遮挡试看30秒 | 熟女人妇 成熟妇女系列视频| 国产破外女出血视频| 国产一区二区日韩在线| 377P欧洲日本亚洲大胆| 男女做爰真人视频直播| 亚洲精品综合第一国产综合| 中文在线天堂中文在线天堂| 男人j进入女人j内部免费网站| 亚洲国产精品成人无码区| 人妻av无码系列一区二区三区| 中文国产人精品久久蜜桃| 久久无码高潮喷水| 国产精品疯狂输出jk草莓视频| 国产精品妇女一区二区三区| 在线无码免费的毛片视频| 亚洲AV日韩AV激情亚洲| 国产精品十八禁一区二区| 免费国产高清在线精品一区| 漂亮的保姆hd完整版免费韩国| 欧美成人精品三级在线观看 | 377人体粉嫩噜噜噜| 国产欧亚州美日韩综合区| 人妻少妇精品视频专区| 日韩av在线不卡一区二区| 久久综合亚洲色一区二区三区| 18禁男女爽爽爽午夜网站免费| 国产成人精品亚洲日本片| av小次郎网站| 日本高清成本人视频一区| 在线无码免费看黄网站| 免费人成视频在线观看网站| 国产av无码专区亚洲av软件| 国产精品视频全国免费观看| 无码国产精品一区二区免费3p | 日韩AV高清在线看片| 亚洲 日韩 在线精品| 国内精品无码一区二区三区| 大肉大捧一进一出好爽视频mba| 久久精品国产一区二区三区不卡 | 国产一区二区三区18禁|