国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

架構設計方法論

2021-04-21 11:02:00 2096

(一)、概念解析

1.什么是方法論?

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

2.什么是設計?

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

3.什么是系統架構師

作為系統架構師你需要跳出代碼層面的設計,站在更加宏觀(guān)的角度進(jìn)行把握。

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

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

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

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

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


架構設計方法論1.png


業(yè)務(wù)分析階段是由業(yè)務(wù)分析師 基于自身的業(yè)務(wù)知識和類(lèi)似產(chǎn)品的參考,再結合客戶(hù)、領(lǐng)域專(zhuān)家的咨詢(xún)和指導輸出業(yè)務(wù)分析階段的成果,主要包括   領(lǐng)域模型 和 業(yè)務(wù)模型。

領(lǐng)域模型

領(lǐng)域模型是對領(lǐng)域內的概念類(lèi)或現實(shí)世界中對象的可視化表示。又稱(chēng)概念模型、領(lǐng)域對象模型、分析對象模型。它專(zhuān)注于分析問(wèn)題領(lǐng)域本 身,發(fā)掘重要的業(yè)務(wù)領(lǐng)域概念,并建立業(yè)務(wù)領(lǐng)域概念之間的關(guān)系。概念比較深奧,其實(shí)說(shuō)白了就是我們把基于對業(yè)務(wù)的理解畫(huà)成一個(gè)類(lèi)圖,并畫(huà)出這些類(lèi)之間的關(guān)系(面向對象),下面我們看一個(gè)實(shí)際的領(lǐng)域模型然后加深一下理解。


架構設計方法論2.png


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

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

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

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

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


架構設計方法論3.png


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

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

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

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

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

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


架構設計方法論4.png


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

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

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

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


架構設計方法論5.png


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

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

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

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


架構設計方法論6.png


這時(shí)候所有的動(dòng)作步驟全部靠人參與

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


架構設計方法論7.png


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

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

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

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

三)、需求分析

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


架構設計方法論8.png


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

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

需求分析階段活動(dòng)模型


架構設計方法論9.png


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

(1)系統上下文

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


架構設計方法論10.png


系統上下文的繪制很簡(jiǎn)單,就是將準備開(kāi)發(fā)的系統畫(huà)在中間,把用戶(hù)和對接的周邊系統畫(huà)出來(lái)這就叫系統上下文。

(2)系統用例

系統用例是指系統被使用的案例,主要是從業(yè)務(wù)流程中推導出來(lái),系統用例的命名規范主要是使用動(dòng)詞短語(yǔ),如:添加用戶(hù)、查詢(xún)話(huà)費等短語(yǔ)。


架構設計方法論11.png


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


架構設計方法論12.png


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

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

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

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

功能是設計階段的產(chǎn)物,是根據系統用例和架構中的組件推導出來(lái)的

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

從語(yǔ)法角度來(lái)說(shuō),用例是動(dòng)詞短語(yǔ),功能是名詞短語(yǔ) 例:用例命名(查詢(xún)空位),功能命名(空位查詢(xún))

常見(jiàn)的錯誤:描述需求時(shí)拿出一份功能清單

(3)非功能性需求

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

(四)、架構設計(重點(diǎn))

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

組件、功能、模塊

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


架構設計方法論13.png


我們用一張圖來(lái)理解他們三者之間的關(guān)系 

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

架構

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


架構設計方法論14.png


架構設計有兩個(gè)目標:

滿(mǎn)足功能性需求和滿(mǎn)足非功能性需求

架構設計階段活動(dòng)模型


架構設計方法論15.png


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

那如何來(lái)衡量一個(gè)架構的設計好壞呢?

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

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

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

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


架構設計方法論16.png


2.物理架構設計(技術(shù)型)

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

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


架構設計方法論17.png


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

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

1.概要設計

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

概要設計階段活動(dòng)模型


架構設計方法論18.png


概要設計階段是由開(kāi)發(fā)組長(cháng) 基于系統用例、開(kāi)發(fā)組件一覽表 再結合對架構師和系統分析師的咨詢(xún)輸出概要設計階段成果,主要包括  功能一覽表 , 接口說(shuō)明書(shū)。

2.詳細設計

詳細設計階段的主要內容是描述內部模塊實(shí)現、界面設計以及數據庫設計

詳細設計階段活動(dòng)模型


架構設計方法論19.png


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

(六)、后續工程階段

1.開(kāi)發(fā)階段活動(dòng)模型


架構設計方法論20.png


開(kāi)發(fā)階段主要是由開(kāi)發(fā)人員結合架構設計的產(chǎn)物以及詳細設計的產(chǎn)物編寫(xiě)相應代碼。

2.測試階段活動(dòng)模型


架構設計方法論21.png


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

3.部署階段活動(dòng)模型


架構設計方法論22.png


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

4.運維階段活動(dòng)模型


架構設計方法論23.png


運維階段主要是由運維人員結合架構設計的產(chǎn)物進(jìn)行系統運維,需要輸出運維計劃、運維方案、運維手冊、運維腳本、運維報告 等。


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

這條文檔是否有幫助解決問(wèn)題?

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

在文檔使用中是否遇到以下問(wèn)題: