手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  行業(yè)資訊 >  架構(gòu) >  架構(gòu)設(shè)計方法論

架構(gòu)設(shè)計方法論

2021-04-21 11:02:00 7318

(一)、概念解析

1.什么是方法論?

我們拿到一個輸入,然后根據(jù)這個輸入預(yù)期一個輸出,把中間這個過程描述出來就是方法論。所以我們本篇講的架構(gòu)師方法論就是架構(gòu)師先拿到經(jīng)過需求分析出來的輸入,然后完成架構(gòu)設(shè)計,這個過程就是架構(gòu)設(shè)計方法論。

2.什么是設(shè)計?

設(shè)計是實現(xiàn)意圖的書面表現(xiàn)形式,而非口頭的東西;設(shè)計是要讓實現(xiàn)者能理解設(shè)計者的意圖,是給別人看而非自己看;設(shè)計是要讓不同的實現(xiàn)者做出來的東西差不多;設(shè)計是嚴(yán)肅的,后續(xù)實現(xiàn)者不能隨意偏離設(shè)計。

3.什么是系統(tǒng)架構(gòu)師

作為系統(tǒng)架構(gòu)師你需要跳出代碼層面的設(shè)計,站在更加宏觀的角度進行把握。

你關(guān)注的是整個系統(tǒng)而不是其中的一兩個查詢模塊,你看到的元素更多的是 :人 、硬件 、軟件 、網(wǎng)絡(luò)。

(二)、業(yè)務(wù)分析

1.業(yè)務(wù)分析概述

業(yè)務(wù)分析是在系統(tǒng)開發(fā)之前對系統(tǒng)要解決的業(yè)務(wù)領(lǐng)域的研究過程,目的是搞清楚該業(yè)務(wù)領(lǐng)域的概念以及業(yè)務(wù)的運轉(zhuǎn)過程開發(fā)系統(tǒng)的目的一般是為了優(yōu)化業(yè)務(wù)流程,使業(yè)務(wù)運轉(zhuǎn)得更加高效、經(jīng)濟系統(tǒng)的價值主要在于實施后能夠幫助客戶帶來多少業(yè)務(wù)價值不管有無系統(tǒng),業(yè)務(wù)通常是不變的

2.業(yè)務(wù)分析階段活動模型


架構(gòu)設(shè)計方法論1.png


業(yè)務(wù)分析階段是由業(yè)務(wù)分析師 基于自身的業(yè)務(wù)知識和類似產(chǎn)品的參考,再結(jié)合客戶、領(lǐng)域?qū)<业淖稍兒椭笇?dǎo)輸出業(yè)務(wù)分析階段的成果,主要包括   領(lǐng)域模型 和 業(yè)務(wù)模型。

領(lǐng)域模型

領(lǐng)域模型是對領(lǐng)域內(nèi)的概念類或現(xiàn)實世界中對象的可視化表示。又稱概念模型、領(lǐng)域?qū)ο竽P汀⒎治鰧ο竽P汀K鼘W⒂诜治鰡栴}領(lǐng)域本 身,發(fā)掘重要的業(yè)務(wù)領(lǐng)域概念,并建立業(yè)務(wù)領(lǐng)域概念之間的關(guān)系。概念比較深奧,其實說白了就是我們把基于對業(yè)務(wù)的理解畫成一個類圖,并畫出這些類之間的關(guān)系(面向?qū)ο螅旅嫖覀兛匆粋€實際的領(lǐng)域模型然后加深一下理解。


架構(gòu)設(shè)計方法論2.png


在領(lǐng)域模型繪制時經(jīng)常會出現(xiàn)下面兩種典型錯誤:

(1)將待開發(fā)系統(tǒng)也放在領(lǐng)域模型里面:待開發(fā)系統(tǒng)要不要出現(xiàn)在領(lǐng)域模型中取決于你的業(yè)務(wù)離開待開發(fā)的系統(tǒng)能不能玩的轉(zhuǎn)。舉個例子:如果開發(fā)的是共享單車的信息系統(tǒng),共享單車離開信息系統(tǒng)肯定玩不轉(zhuǎn),所以這時候信息系統(tǒng)需要出現(xiàn)在領(lǐng)域模型。

(2)概念劃分不清,關(guān)系沒有畫到位:比如屬性畫成了類,繼承關(guān)系搞錯

領(lǐng)域模型的作用:

領(lǐng)域模型可以整理業(yè)務(wù)中的概念以及關(guān)系,幫助團隊中的成員對業(yè)務(wù)的理解保持一致;往后可以指導(dǎo)數(shù)據(jù)庫設(shè)計、系統(tǒng)功能設(shè)計、指導(dǎo)開發(fā)。


架構(gòu)設(shè)計方法論3.png


現(xiàn)在有種開發(fā)模式是基于UI指導(dǎo)開發(fā),根據(jù)UI進行數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計、代碼編寫,我們稱之為 “急功近利式” 開發(fā)模式。因為UI是系統(tǒng)表面性的東西,是異變的,不穩(wěn)定的,這種模式下UI變化后我們的的設(shè)計可能也需要跟著變。而右邊是基于領(lǐng)域驅(qū)動開發(fā),在開發(fā)前先去思考業(yè)務(wù)的本質(zhì),先把領(lǐng)域?qū)臃治龀鰜恚俑鶕?jù)分析出來的領(lǐng)域?qū)舆M行界面設(shè)計、架構(gòu)設(shè)計、代碼開發(fā),這是由內(nèi)而外的設(shè)計,這樣做出來的系統(tǒng)就會比較穩(wěn)定。

業(yè)務(wù)模型

前面講的領(lǐng)域模型是基于靜態(tài)的關(guān)系,要理解業(yè)務(wù)其實更多的需要從動態(tài)的角度來了解業(yè)務(wù)運轉(zhuǎn)的過程,所以這時候就需要做業(yè)務(wù)模型。理解業(yè)務(wù)模型需要先理解以下幾個概念:

(1)業(yè)務(wù)對象

業(yè)務(wù)主體主要有 業(yè)務(wù)執(zhí)行者、業(yè)務(wù)工人、業(yè)務(wù)實體。

要理解這三個對象,我們首先需要知道什么是業(yè)務(wù),業(yè)務(wù)是指一個組織可以向組織外的人提供服務(wù)。業(yè)務(wù)執(zhí)行者(Business Actor) :組織外的人,來享受這個服務(wù)的人就稱為業(yè)務(wù)執(zhí)行者;業(yè)務(wù)工人(Business worker) :提供業(yè)務(wù)的 組織的內(nèi)部支撐人員業(yè)務(wù)實體(Business Entity) :提供業(yè)務(wù)的 組織的內(nèi)部信息系統(tǒng)理解這幾個概念還是有點拗口,我們來看看下面一張圖,一個餐廳對象的業(yè)務(wù)建模


架構(gòu)設(shè)計方法論4.png


右邊大的黑框是提供業(yè)務(wù)的組織,是餐廳;圖的左邊是個業(yè)務(wù)執(zhí)行者,是顧客;而在餐廳內(nèi)部又分為業(yè)務(wù)工人(領(lǐng)位員、點餐員、廚師等),業(yè)務(wù)實體(餐廳點餐管理系統(tǒng))

我們在做業(yè)務(wù)建模時需要注意,所有業(yè)務(wù)對象在圓圈的右下方需要有個斜線,這是一個建模規(guī)范。

(2)業(yè)務(wù)用例

概念:組織對外提供的業(yè)務(wù)服務(wù)


架構(gòu)設(shè)計方法論5.png


一個銀行是一個提供業(yè)務(wù)的組織,這就是業(yè)務(wù)用例,考察的對象是銀行這個組織而不是系統(tǒng)。

(3)業(yè)務(wù)流程

業(yè)務(wù)用例是最基本的定義,而要分析業(yè)務(wù)動態(tài)的過程就需要業(yè)務(wù)流程,我們一般用時序圖來表示。

餐廳現(xiàn)狀的業(yè)務(wù)流程


架構(gòu)設(shè)計方法論6.png


這時候所有的動作步驟全部靠人參與

建設(shè)系統(tǒng)后的業(yè)務(wù)流程


架構(gòu)設(shè)計方法論7.png


有了系統(tǒng)后系統(tǒng)可以承擔(dān)一部分工作,有了系統(tǒng)能改善業(yè)務(wù)流程、提高價值、降低成本,這就是 建設(shè)系統(tǒng)的價值以及意義 ,否則就沒必要做系統(tǒng)建設(shè)了。

(4)業(yè)務(wù)流程分析的作用

動態(tài)表達業(yè)務(wù)運轉(zhuǎn)的過程只有很好的理解了業(yè)務(wù)流程,才能設(shè)計出更好的支持該業(yè)務(wù)的系統(tǒng)通過對比系統(tǒng)實施前后的流程變化,分析優(yōu)化點,評估系統(tǒng)價值

小結(jié):在準(zhǔn)備做一個系統(tǒng)之前需要先分析業(yè)務(wù),將業(yè)務(wù)理解清楚。理解業(yè)務(wù)既有靜態(tài)的理解(領(lǐng)域模型)又有動態(tài)的理解(業(yè)務(wù)流程),只有將業(yè)務(wù)理解清楚才能做出良好的系統(tǒng)。

三)、需求分析

需求分析是需求工程的環(huán)節(jié),整個需求工程分為兩大塊


架構(gòu)設(shè)計方法論8.png


前期主要是做需求開發(fā),包括需求調(diào)研、需求分析、需求定義;后期需要做需求管理,包括需求確認、需求跟蹤、需求變更控制。

咱們架構(gòu)師主要聚焦在 需求分析 和 需求定義 兩個環(huán)節(jié)。

需求分析階段活動模型


架構(gòu)設(shè)計方法論9.png


需求分析階段是由系統(tǒng)分析師 基于業(yè)務(wù)分析師輸出的領(lǐng)域模型、業(yè)務(wù)模型 再結(jié)合 需求調(diào)研成果 輸出需求分析階段的成果,主要包括   系統(tǒng)上下文, 功能型需求(用例模型) 和 非功能性需求(性能等)。

(1)系統(tǒng)上下文

系統(tǒng)上下文是指系統(tǒng)與周邊用戶和其它系統(tǒng)之間的關(guān)系


架構(gòu)設(shè)計方法論10.png


系統(tǒng)上下文的繪制很簡單,就是將準(zhǔn)備開發(fā)的系統(tǒng)畫在中間,把用戶和對接的周邊系統(tǒng)畫出來這就叫系統(tǒng)上下文。

(2)系統(tǒng)用例

系統(tǒng)用例是指系統(tǒng)被使用的案例,主要是從業(yè)務(wù)流程中推導(dǎo)出來,系統(tǒng)用例的命名規(guī)范主要是使用動詞短語,如:添加用戶、查詢話費等短語。


架構(gòu)設(shè)計方法論11.png


我們可以對系統(tǒng)用例細化,如上對登記入座信息這一用例進行細化


架構(gòu)設(shè)計方法論12.png


a.系統(tǒng)用例與業(yè)務(wù)用例的區(qū)別與聯(lián)系

業(yè)務(wù)用例是描述組織對外提供的能力,系統(tǒng)用例是描述系統(tǒng)對外提供的能力,兩者考察的對象不一樣系統(tǒng)用例是業(yè)務(wù)用例相應(yīng)流程中對系統(tǒng)的一個操作。

b.功能與用例的區(qū)別和聯(lián)系

用例是需求分析的產(chǎn)物,描述的是某種用戶使用系統(tǒng)完成什么業(yè)務(wù)

功能是設(shè)計階段的產(chǎn)物,是根據(jù)系統(tǒng)用例和架構(gòu)中的組件推導(dǎo)出來的

功能是靜態(tài)的,用例是動態(tài)的

從語法角度來說,用例是動詞短語,功能是名詞短語 例:用例命名(查詢空位),功能命名(空位查詢)

常見的錯誤:描述需求時拿出一份功能清單

(3)非功能性需求

主要是確定一些非功能性需求,比如:可用性、 性能、 安全性、 經(jīng)濟性、可擴展性、 可伸縮性、可移植性等等 可用性、性能、安全性是需要重點關(guān)注的內(nèi)容,我們后期專門拿出來講。

(四)、架構(gòu)設(shè)計(重點)

前面的業(yè)務(wù)分析與需求分析一般是由其他專人來做,那么這一塊的內(nèi)容則是架構(gòu)師的工作,需要重點關(guān)注。在系統(tǒng)簡單時我們需要從 功能角度 對系統(tǒng)進行分解和拆分,這個時候我們只要做下概要設(shè)計和詳細設(shè)計就可以。在復(fù)雜系統(tǒng)時我們需要從 組件角度 對系統(tǒng)進行分解和拆分,這個時候我們就需要做架構(gòu)設(shè)計與概要設(shè)計。

組件、功能、模塊

組件是架構(gòu)設(shè)計階段考慮的單元(進程級別),功能、模塊是概要設(shè)計、詳細設(shè)計考慮的單元;一個組件可包含多個模塊,涉及多個功能;一個功能的實現(xiàn)可能需要多個組件中的相應(yīng)模塊來協(xié)作完成。


架構(gòu)設(shè)計方法論13.png


我們用一張圖來理解他們?nèi)咧g的關(guān)系 

前后端分離的一個項目從進程角度劃分出三個組件,分別是web前端、后端接口服務(wù)、后臺服務(wù), 為了實現(xiàn)用戶查詢這個功能必須要在相應(yīng)組件里都需要有相應(yīng)的模塊。一個組件里可以有多個不同的模塊,各個組件里的模塊相互協(xié)作完成某一個功能

架構(gòu)

如果用一句話來描述什么是架構(gòu),那應(yīng)該可以這樣定義:架構(gòu)是系統(tǒng)的內(nèi)部結(jié)構(gòu)(組件以及它們之間的關(guān)系)還要包含系統(tǒng)的技術(shù)要素。做架構(gòu)設(shè)計其實就是干這兩件事。


架構(gòu)設(shè)計方法論14.png


架構(gòu)設(shè)計有兩個目標(biāo):

滿足功能性需求和滿足非功能性需求

架構(gòu)設(shè)計階段活動模型


架構(gòu)設(shè)計方法論15.png


架構(gòu)設(shè)計階段是由系統(tǒng)架構(gòu)師 參照需求分析的產(chǎn)物(SRS),再通過對系統(tǒng)分析師、項目經(jīng)理的咨詢輸出架構(gòu)設(shè)計階段的成果,主要包括   架構(gòu)工作計劃 、 邏輯架構(gòu)、物理架構(gòu)、開發(fā)組件一覽表、部署組件一覽表、技術(shù)選型一覽表。

那如何來衡量一個架構(gòu)的設(shè)計好壞呢?

在設(shè)計完成時我們可以通過設(shè)計資料的規(guī)范性以及設(shè)計思路、方案決策、技術(shù)選型的合理性來校驗;在系統(tǒng)實現(xiàn)后可以通過功能性和非功能性需求的滿足程度來校驗。

1.邏輯架構(gòu)設(shè)計(非技術(shù)型)

將系統(tǒng)從非技術(shù)角度分解成若干邏輯組件,并建立它們之間的關(guān)系,以滿足系統(tǒng)需求。關(guān)系分靜態(tài)和動態(tài),其中靜態(tài)關(guān)系用組件圖表示,動態(tài)關(guān)系用序 列圖表示。邏輯架構(gòu)中,組件名稱使用母語以便理解邏輯架構(gòu)不涉及技術(shù)元素,只是純概念上的表述邏輯架構(gòu)的讀者可以是非技術(shù)人員邏輯架構(gòu)設(shè)計完成后應(yīng)和系統(tǒng)分析師、產(chǎn)品經(jīng)理等人員一起確認,檢查是否滿足需求。

我們看一個典型的邏輯架構(gòu)


架構(gòu)設(shè)計方法論16.png


2.物理架構(gòu)設(shè)計(技術(shù)型)

將邏輯架構(gòu)中的組件轉(zhuǎn)換為技術(shù)性的物理組件,名稱使用英文,在實現(xiàn)時應(yīng)遵循這些命名;物理組件粒度有大有小,可表現(xiàn)為子系統(tǒng)、進程、對象等多種形式;物理架構(gòu)還需要解決非功能性需求物理架構(gòu)還要和后續(xù)設(shè)計和實現(xiàn)進行銜接;非技術(shù)人員可能難以理解

我們看一個典型的物理架構(gòu)


架構(gòu)設(shè)計方法論17.png


小結(jié):架構(gòu)設(shè)計為系統(tǒng)的總體設(shè)計,決定了系統(tǒng)的組件劃分、關(guān)鍵技術(shù)方案決策、技術(shù)選型 架構(gòu)設(shè)計上接需求,下接進一步的設(shè)計和實現(xiàn),是決定系統(tǒng)實現(xiàn)的質(zhì)量、效率、成本的關(guān)鍵階段

(五)、概要設(shè)計與詳細設(shè)計

1.概要設(shè)計

概要設(shè)計階段的主要內(nèi)容是進行功能模塊劃分以及接口定義(接口名稱、功能概要、參數(shù)、返回值)

概要設(shè)計階段活動模型


架構(gòu)設(shè)計方法論18.png


概要設(shè)計階段是由開發(fā)組長 基于系統(tǒng)用例、開發(fā)組件一覽表 再結(jié)合對架構(gòu)師和系統(tǒng)分析師的咨詢輸出概要設(shè)計階段成果,主要包括  功能一覽表 , 接口說明書。

2.詳細設(shè)計

詳細設(shè)計階段的主要內(nèi)容是描述內(nèi)部模塊實現(xiàn)、界面設(shè)計以及數(shù)據(jù)庫設(shè)計

詳細設(shè)計階段活動模型


架構(gòu)設(shè)計方法論19.png


詳細設(shè)計階段可能會根據(jù)工作內(nèi)容進行分工,主要結(jié)合之前的產(chǎn)出輸出詳細設(shè)計階段的成果,主要包括  界面設(shè)計 , 模塊內(nèi)部設(shè)計 , 數(shù)據(jù)庫設(shè)計。

(六)、后續(xù)工程階段

1.開發(fā)階段活動模型


架構(gòu)設(shè)計方法論20.png


開發(fā)階段主要是由開發(fā)人員結(jié)合架構(gòu)設(shè)計的產(chǎn)物以及詳細設(shè)計的產(chǎn)物編寫相應(yīng)代碼。

2.測試階段活動模型


架構(gòu)設(shè)計方法論21.png


測試階段主要是由測試人員結(jié)合架構(gòu)設(shè)計的產(chǎn)物以及詳細設(shè)計的產(chǎn)物進行功能測試,包括功能性需求以及非功能性需求,需要對外輸出 測試計劃,測試用例 以及 測試報告。

3.部署階段活動模型


架構(gòu)設(shè)計方法論22.png


部署階段主要是由部署人員結(jié)合架構(gòu)設(shè)計的產(chǎn)物以及跟開發(fā)人員的咨詢進行組件部署,這一階段需要輸出部署計劃、部署方案、部署手冊、部署腳本、部署實施 等

4.運維階段活動模型


架構(gòu)設(shè)計方法論23.png


運維階段主要是由運維人員結(jié)合架構(gòu)設(shè)計的產(chǎn)物進行系統(tǒng)運維,需要輸出運維計劃、運維方案、運維手冊、運維腳本、運維報告 等。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: