




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、 軟件開發(fā)中的常用架構(gòu)圖目 錄 TOC o 1-3 h z u HYPERLINK l _Toc522802677 一、背景 PAGEREF _Toc522802677 h 3 HYPERLINK l _Toc522802678 二、軟件架構(gòu)圖的作用 PAGEREF _Toc522802678 h 3 HYPERLINK l _Toc522802679 三、不同流程中適合運用的圖 PAGEREF _Toc522802679 h 4 HYPERLINK l _Toc522802680 四、實際架構(gòu)圖的運用 PAGEREF _Toc522802680 h 14 HYPERLINK l _Toc52
2、2802681 五、結(jié)語 PAGEREF _Toc522802681 h 15一、背景大家在從事軟件開發(fā)領域工作時間有一段時間之后,就開始有畫圖的意識,不管是懵懂的學別人還是想更好的讓其它人理解自己的一個觀點。所謂“一圖勝千言”,我們身處于軟件開發(fā)這個水很深且要求精確的復雜領域里,要想把事情做好,最基本的是要把事情想明白,其次還要讓相關的人能夠明白你要說的東西,進行協(xié)作。特別對于一位架構(gòu)師來說,能否畫得一手好圖尤其重要,因為相關的干系人數(shù)較多,要讓不同領域的人能夠達成一個統(tǒng)一的認識,是一件不太容易但也是必須要做好的事情。二、軟件架構(gòu)圖的作用軟件開發(fā)涉及的流程是:需求 - 開發(fā) - 測試 - 發(fā)
3、布上線。作圖本身是個設計的工作,是個前期工作。那么從軟件開發(fā)的整個生命周期來說,用到的圖的地方是在前期的需求、開發(fā)階段較多。在軟件開發(fā)這個非常抽象的領域,只要涉及到多人協(xié)作,那么通過文字來進行交流敘述是非?;逎y懂的,需要溝通好幾遍才能理解達成一致也是比較常見的情況。那么我們畫圖,就是為了把不適合用言語表述的內(nèi)容通過作圖的方式呈現(xiàn)出來,讓相關協(xié)作者有一個共同的具象的參照物。這個參照物可以有它的額外價值,是對軟件長期價值的延伸,一份一致、清晰的設計圖,可以給后續(xù)的軟件迭代提供非常有幫助的決策依據(jù)。當然保證設計圖與系統(tǒng)的一致本身也是件費精力的事情。三、不同流程中適合運用的圖1. 用例圖用例圖是UM
4、L交互圖中的一種,是指由參與者(Actor)、用例(Use Case),邊界以及它們之間的關系構(gòu)成的用于描述系統(tǒng)功能的視圖。用例圖(User Case)是外部用戶(被稱為參與者,一般為軟件的面向用戶)所能觀察到的系統(tǒng)功能的模型圖。適用場景:當新做一個產(chǎn)品或者功能的時候,首先需要明確核心方向,用例圖就是整理這個核心方向的工具。它用來說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么??梢岳斫鉃槭荕VP思想的寫照,去除畫龍點睛的功能,這些就是基礎、核心。缺點:僅僅描述的是提供什么功能,不能表達非功能需求,如可靠性、性能等非功能需求。2. 魯棒圖(Robustness Diagram)可能英文名R
5、obustness Diagram更為常見一些,用于銜接用例圖之后的設計,識別出系統(tǒng)在用例圖中的各種職責,對后續(xù)的細節(jié)設計提供基礎。算是對用例圖的一種延伸。適用場景:在確立用戶場景之后,如果需要將關鍵功能設計出來,那么就需要它了。作圖過程中最關鍵的2個點,發(fā)現(xiàn)職責,和梳理各個職責之間的關系。缺點:和用例圖是一樣缺點,唯一的變化是,其有了粗粒度的實現(xiàn)層面的內(nèi)容。3. 思維導圖思維導圖是一個很厲害的發(fā)明,他將我們的思考過程具象化了,完美展示了由點到面不斷發(fā)散的過程。但是它最大的價值,反而不是最終呈現(xiàn)出來的這個圖,而是促進了思考的過程。并且需要注意的是,一定要把一條分支走到盡頭,再回過頭來走其它的分
6、支,把思想榨干。適用場景:在一個事情剛開始的萌芽期,不知如何下手;或者陷入一個困境的時候。利用思維導圖來活躍大腦,進行發(fā)散思維。這時候如果結(jié)合頭腦風暴,效果更佳。缺點:它是一種樹狀的信息分層可視化展視,結(jié)構(gòu)比較固定,不適合分支間互相交互比較復雜的信息展示。4. DFD(Data Flow Diagram)圖DFD圖是從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。適用場景:在將思維導圖得出的東西進行整合、梳理形成一個粗粒度的流程。這個其實類似與DDD中的上下文映射圖,是在需求分析過
7、程中做宏觀設計的一種方式。缺點:反映系統(tǒng)“做什么”,不反映“如何做”,粒度算是中等,需要其它更細粒度的圖來對細節(jié)做支撐。5. 流程圖上面貼了2張圖都是流程圖,流程圖有時也稱作輸入-輸出圖。該圖直觀地描述一個工作過程的具體步驟,各種操作一目了然,不會產(chǎn)生“歧義性”,便于理解,算法出錯時容易發(fā)現(xiàn)。流程圖對準確了解事情是如何進行的,以及決定應如何改進過程極有幫助。大到系統(tǒng)級別、小到某個操作背后的運轉(zhuǎn)邏輯都可以使用流程圖來畫,我個人認為這應該是被最多人認識的圖,沒有之一。適用場景:正如上面所說這個適用場景比較廣,日常工作中小到算法邏輯,大到戰(zhàn)略層面的執(zhí)行落地都需要它。主要用它來將背后的流程可視化,輔助
8、做決策去(如改進等)。缺點:所占篇幅較大,由于允許使用流程線,過于靈活,不受約束,使用者可使流程任意轉(zhuǎn)向,從而造成程序閱讀和修改上的困難,不利于結(jié)構(gòu)化程序的設計。6. UML類圖UML類圖是UML交互圖中的一種,也是我們較常見的一種。類圖是描述系統(tǒng)中的類,以及各個類之間的關系的靜態(tài)視圖。它不但是設計人員關心的核心,更是實現(xiàn)人員關注的核心。適用場景:一般作為編碼前做的最后一步,將設計轉(zhuǎn)為相應的模型。也可以使用Code First的方式直接在項目中建模,現(xiàn)在的VS也支持直接從代碼中生成UML類圖。缺點:缺點就是畫起來太費時間了,但反過來其表達的粒度更細致,是代碼實現(xiàn)級別的內(nèi)容。由于現(xiàn)在有比較多的工
9、具可以從代碼生成UML類圖,甚至在大部分提倡使用Code First的場景下,我們畫UML類圖的機會是越來越少了。7. 狀態(tài)圖狀態(tài)圖是對類圖的補充。描述類的對象所有可能的狀態(tài),以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件??梢圆东@對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收、時間的流逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。一個狀態(tài)圖應該連接到所有具有清晰的可標識狀態(tài)和復雜行為的類;該圖可以確定類的行為,以及該行為如何根據(jù)當前的狀態(tài)變化,也可以展示哪些事件將會改變類的對象的狀態(tài)。適用場景:當有一個對象擁有多個狀態(tài)的時候,想要表達清楚狀態(tài)之間的演變關
10、系(也就是這個對象的生命周期)。比如通過什么條件觸發(fā)狀態(tài)變動的,到達某個狀態(tài)之后會做什么動作等。這也是基于事件驅(qū)動設計的良好可視化圖。缺點:僅能表達行為/事件與狀態(tài)之間的演變關系,不適用于其它領域。8. E-R圖E-R圖提供了表示實體型(Entity)、屬性(Attribute)和聯(lián)系(Relationship)的方法。其中最核心的還屬聯(lián)系(Relationship)的表示。適用場景:雖然在UML類圖中,也可以體現(xiàn)出聚合、依賴等關系。但是如果相關聯(lián)的模型數(shù)量巨大的話,你會發(fā)現(xiàn)看起來特別費勁,要縮的很小才能看清全貌。這時候你需要E-R圖出場了。缺點:相對類圖來說,E-R圖無法定義類/實體的行為。
11、它更面向數(shù)據(jù)庫而不是代碼。9.UML時序圖時序圖也是UML交互圖中的一種,是描述對象是如何交互的,并且將重點放在消息序列上。也就是說,描述消息是如何在對象間發(fā)送和接收的。時序圖有兩個坐標軸:縱坐標軸顯示時間,橫坐標軸顯示對象。適用場景:一般當我們想反映一個包含順序的交互流程,比如http請求的生命周期、頁面上某個按鈕背后流轉(zhuǎn)細節(jié)等情況時,就需要它了。缺點:一個時序圖僅能面向一個Case,同時畫起來比較費時間。四、實際架構(gòu)圖的運用其實上一節(jié)中圖的順序就是按照由層次從高到底,粒度從粗到細規(guī)劃的。我們可以用用例圖來確定用戶核心需求,再用Robustness Diagram定義好關鍵功能,隨后在關鍵功能的實現(xiàn)上通過思維導圖進行發(fā)散,然后用DFD圖把粗粒度的內(nèi)容串起來,至此大體的設計工作算是完成了。然后再通過流程圖、UML類圖、狀態(tài)圖、E-R圖、時序圖在不同的場景確定細節(jié)實現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房裝飾裝修合同范本
- 加油站收費合同范本
- 凈化燈采購合同范本
- app推廣合作合同范本
- 品牌冠名協(xié)議合同范本
- 南京購房合同范本
- 單日培訓勞務合同范本
- 合同范例定稿流程
- 醫(yī)院咨詢管理合同范本
- 合作代簽合同范本
- 兒童腺樣體肥大治療方案-深度研究
- 2025年懷化職業(yè)技術學院單招職業(yè)技能測試題庫必考題
- 2025年第六屆(中小學組)國家版圖知識競賽測試題庫及答案
- 2025年中國床墊機械行業(yè)市場發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報告
- GB/T 26436-2025禽白血病診斷技術
- 體育場館工程施工組織設計
- 春季校園常見傳染病及預防措施培訓課件
- 國際標準下的AI技術應用-深度研究
- 2025-2030年城市軌道交通運營行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 教科版六年級下冊科學全冊教學設計教案
- 2025年江西生物科技職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
評論
0/150
提交評論