日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

對軟件開發(fā)中uml建模的理解和圖形整理(一)

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

       由于uml(統(tǒng)一建模語言)在開發(fā)中經(jīng)常會用到,特別是在軟件開發(fā)中的OOAD階段,因此要理解和使用uml顯得尤為重要。在uml開始之前,咱先回顧一個OOAD、OOP的主要特征。


OOAD:根據(jù)面向?qū)ο蟮姆椒▽W(xué)來對軟件系統(tǒng)進行分析和設(shè)計的過程。它包括OOA 分析階段和OOD設(shè)計階段。其中分析階段主要解決“What to do?”的問題,而設(shè)計階段主要解決“How to do?”的問題。具體來說就是:在OOA分析階段咱要做的主要工作就是建立對業(yè)務(wù)問題域的視圖(建立模型)、列出系統(tǒng)必須要完成的核心任務(wù)、列出針對此問題域的最佳解決方案;而在設(shè)計階段咱要做的主要工作是:如何解決具體的業(yè)務(wù)問題,引入咱工作需要哪些支持,設(shè)計系統(tǒng)的實現(xiàn)策略。通常OOAD的開發(fā)過程是這樣的:a)項目分解為幾個模塊;b)使用UML進行建模;c)USDP(統(tǒng)一軟件開發(fā)過程)是一個迭代、遞增(需求、分析、設(shè)計、實現(xiàn)、測試等)式開發(fā)。


OOP的主要特征:封裝、繼承、多態(tài)、抽象、關(guān)聯(lián)、聚合、組合。

下面談?wù)勎覍@些特征的理解:

(1)封裝:“合理隱藏,合理暴露”。具體來說就是合理隱藏數(shù)據(jù)和實現(xiàn),提供公共方法供咱調(diào)用。

(2)繼承:發(fā)生在子類和父類之間,通常在這兩個類型之間存在“is a”的關(guān)系,如:香蕉“is a”水果,香蕉為子類,果為父類。通過繼承可實現(xiàn)代碼重用且繼承也是多態(tài)的基礎(chǔ)。

(3)多態(tài):“同一種類型的變量調(diào)用同一個方法表現(xiàn)出不同特征或行為”。舉例來說:呼吸breath()這個動作,人使用肺來完成,而魚則使用鰓來完成。

(4)抽象:抽象是一種將方法聲明和具體實現(xiàn)分離的一個過程。通過抽象,咱只需關(guān)注其本質(zhì)特征(具體能做什么)而忽略掉一個對象(或?qū)嶓w)具體細節(jié)。

(5)關(guān)聯(lián):關(guān)聯(lián)實質(zhì)上是對象之間交互時的一種引用方式,當(dāng)一個對象A通過另一個對象B的引用去調(diào)用B對象的方法操作或服務(wù)時,A和B便產(chǎn)生了關(guān)聯(lián)。比如說:咱(person)使用手機(phone)來打電話(即咱調(diào)用了手機的一個功能--打電話dial()),person和phone之間就存在了關(guān)聯(lián)關(guān)系。

(6)聚合:聚合是關(guān)聯(lián)關(guān)系中的一種,一個對象A作為另外一個對象B的屬性Field而存在,在外部對象(如汽車Car)被產(chǎn)生時,可有咱指定與其關(guān)聯(lián)的內(nèi)部對象(輪胎Wheel)。什么意思呢?說直白點吧,一輛汽車CarA的輪胎壞了咱可以重新?lián)Q上新的輪胎WheelA,而輪胎WheelA/WheelC也可以卸下來供別的汽車CarB使用??梢钥闯鼍酆现械年P(guān)聯(lián)關(guān)系并沒有那么強烈。

(7)組合:組合是關(guān)聯(lián)關(guān)系中最為強烈的一種。當(dāng)一個對象A包含另外一個對象B時,外部對象A負責(zé)管理內(nèi)部對象B的生命周期。本質(zhì)上:內(nèi)部對象B的創(chuàng)建由外部對象A自己控制,就拿電腦與顯示器來說吧,外部對象(電腦)不存在時,內(nèi)部對象(顯示器)也不能存在,這個應(yīng)該很好理解了吧~


內(nèi)聚與耦合

       內(nèi)聚:度量一個類獨立完成某項工作的能力。耦合:度量系統(tǒng)內(nèi)或系統(tǒng)之間依賴關(guān)系的復(fù)雜度。咱一般的設(shè)計原則是:“高內(nèi)聚,低耦合”,也就是咱要增加內(nèi)聚,減少耦合。

下面開始咱們的uml之旅。


域模型

       域模型也被稱為設(shè)計模型,它包含兩部分組成:一是具體狀態(tài)和行為的域?qū)ο螅欢怯驅(qū)ο笾g的關(guān)系,它包括:關(guān)聯(lián)(上面已經(jīng)介紹了)、依賴(a對象依賴B類中的方法,并且構(gòu)造B類的實例)、聚集(整體和部分的關(guān)系:如手是人的組成部分)、一般化(繼承關(guān)系)。

uml定義:統(tǒng)一建模語言(Unified Modeling Language),它是一種圖形化的語言,可以幫助我們在OOAD階段標(biāo)識元素(用例、類、對象等)、構(gòu)建模塊(功能劃分)、分析過程并可通過文檔(概要說明、詳細說明)來說明系統(tǒng)中的重要細節(jié)。

uml圖形的分類:包括靜態(tài)模型(static model)、動態(tài)模型(dynamic model)。靜態(tài)建模目的是創(chuàng)建并記錄一個系統(tǒng)的靜態(tài)特征(如:類包含的屬性和方法、用例中的參與者和用例以及用例之間的關(guān)系、對象之間的關(guān)系等)。靜態(tài)建模包括:用例圖、類圖、對象圖、組件圖、部署圖;而動態(tài)建模包括:時序圖(也稱順序圖)、協(xié)作圖、狀態(tài)圖、活動圖。


 靜態(tài)建模中的用例圖:它是用來展示系統(tǒng)的核心功能及其交互的用戶或系統(tǒng)等。

=====================  用例圖========================
1. 用例:系統(tǒng)為參與者提供的功能,一般取名為帶有動作性的詞語。
2. 用例之間的關(guān)系 --> 虛線 :
a) 包含關(guān)系:大功能包含《include》子功能。
b) 擴展關(guān)系:將基用例中一段【相對獨立并且可選】的動作,用擴展《extends》用例加以封裝。 --虛線反向
c) 泛化關(guān)系:一般和特殊(抽象類/接口+實現(xiàn)類/子類)的關(guān)系。實線三角形箭頭反向。

下面用一張圖來說明:


總結(jié)

今天只是開了個頭,講了一下OOAD、OOP的幾個特征以及uml建模中的分類(靜態(tài)、動態(tài)建模),最后一個靜態(tài)建模中的用例圖來開始了咱們的uml建模之旅。接下來會繼續(xù)講解uml中的剩下的幾個常用uml建模。


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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多