書名: 代碼的藝術(shù):用工程思維驅(qū)動(dòng)軟件開發(fā)作者名: 章淼本章字?jǐn)?shù): 662字更新時(shí)間: 2022-05-05 21:55:57
2.6.3 什么是系統(tǒng)架構(gòu)
在系統(tǒng)設(shè)計(jì)中,一個(gè)非常重要的內(nèi)容是“系統(tǒng)架構(gòu)”。
什么是系統(tǒng)架構(gòu)?這個(gè)問題我也多次在現(xiàn)場(chǎng)交流時(shí)問過大家,我發(fā)現(xiàn)很多工程師都說不清楚。
關(guān)于系統(tǒng)架構(gòu),維基百科也給出了一個(gè)非常好的定義。
A system architecture is the conceptual model that defines the structure, behavior, and more views of a system.
(系統(tǒng)架構(gòu)是概念模型,定義了系統(tǒng)的結(jié)構(gòu)、行為和更多的視圖。)
關(guān)于這個(gè)定義,從字面上可以這樣理解:
(1)系統(tǒng)架構(gòu)是一個(gè)“概念模型”(Conceptual Model)。
(2)系統(tǒng)架構(gòu)定義了系統(tǒng)的結(jié)構(gòu)(Structure)、行為(Behavior),以及更多的視圖(More Views)。
關(guān)于這個(gè)定義,這里給出另外一種解讀,供大家參考。
(1)靜。首先,從靜止的角度,描述系統(tǒng)如何組成,以及系統(tǒng)的功能在這些組成部分之間是如何劃分的。這就是系統(tǒng)的“結(jié)構(gòu)”。一般要描述的是:系統(tǒng)包含哪些子系統(tǒng),每個(gè)子系統(tǒng)有什么功能。在做這些描述時(shí),應(yīng)感覺自己是一名導(dǎo)游,帶著游客在系統(tǒng)的各子系統(tǒng)間參觀。
(2)動(dòng)。然后,從動(dòng)態(tài)的角度,描述各子系統(tǒng)之間是如何聯(lián)動(dòng)的,它們是如何相互配合完成系統(tǒng)預(yù)定的任務(wù)或流程的。這就是系統(tǒng)的“行為”。在做這個(gè)描述時(shí),應(yīng)感覺自己是一名電影導(dǎo)演,將系統(tǒng)的各種運(yùn)行情況通過一個(gè)個(gè)短片展現(xiàn)出來。
(3)細(xì)。最后,在以上兩種描述的基礎(chǔ)上,從不同的角度,更詳細(xì)地刻畫出系統(tǒng)的細(xì)節(jié)和全貌。這就是“更多的視圖”。
經(jīng)過靜、動(dòng)、細(xì)三方面的描述,我們可以在腦海中“清楚地看到”一個(gè)系統(tǒng)。
另外,在一個(gè)系統(tǒng)中,系統(tǒng)架構(gòu)在多個(gè)層次都有所體現(xiàn)。“總體設(shè)計(jì)”中包含對(duì)系統(tǒng)總體的系統(tǒng)架構(gòu)描述;“子系統(tǒng)設(shè)計(jì)”中包含對(duì)子系統(tǒng)的系統(tǒng)架構(gòu)描述。在這兩個(gè)設(shè)計(jì)中,使用的設(shè)計(jì)方法是類似的,只是所在層次不同而已。
- MacTalk 跨越邊界
- DevSecOps企業(yè)級(jí)實(shí)踐:理念、技術(shù)與案例
- 軟件工程理論與應(yīng)用
- 實(shí)用軟件工程
- 手機(jī)軟件測(cè)試最佳實(shí)踐
- 區(qū)塊鏈核心算法解析
- MindSpore深度學(xué)習(xí)高階技術(shù)
- 大話軟件工程:需求分析與軟件設(shè)計(jì)
- 軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)
- 云原生網(wǎng)關(guān)Traefik:入門、進(jìn)階與實(shí)戰(zhàn)
- UG NX 8.0實(shí)例教程(第2版)
- 分布式高可用算法
- Intel Quartus Prime數(shù)字系統(tǒng)設(shè)計(jì)權(quán)威指南:從數(shù)字邏輯、Verilog HDL 到復(fù)雜數(shù)字系統(tǒng)的實(shí)現(xiàn)
- 看透Spring MVC:源代碼分析與實(shí)踐
- Java從入門到精通(第2版)