涉及到的內容包括:系統與子系統、模組與元件、框架與架構
系統與子系統:
系統泛指由一群有關聯的個體組成,根據某種規則運作,
能完成個別元件不能單獨完成的工作的群體。它的意思是「總體」「整體」或「聯盟」。
子系統也是由一群有關聯的個體所組成的系統,多半會是更大系統中的一部分。
模組與元件:
從邏輯的角度來拆分系統後,得到的單元就是「模組」;
從物理的角度來拆分系統後,得到的單元就是「元件」。
劃分模組的主要目的是職責分離;劃分元件的主要目的是單元復用。
框架與架構:
框架關注的是「規範」,架構關注的是「結構」。
框架的英文是 framework,架構的英文是 architecture。
軟體架構指軟體系統的頂層結構。
最終總結:
架構是頂層設計結構;框架是面向程式設計或配置的半成品;
元件是從技術維度上的復用;模組是從業務維度上職責的劃分;
系統是相互協同可執行的實體。
軟體架構出現的歷史背景:
1.機器語言(1940 年之前)
最早的軟體開發使用的是「機器語言」,
直接使用二進位製碼 0 和 1 來表示機器可以識別的指令和資料。
歸納一下,機器語言的主要問題是三難:太難寫、太難讀、太難改!
2.組合語言(20 世紀 40 年代)
為了解決機器語言編寫、閱讀、修改複雜的問題,
組合語言應運而生。組合語言又叫「符號語言」,
用助記符代替機器指令的操作碼,
用位址符號(symbol)或標號(label)代替指令或運算元的位址。
缺點:除了編寫本身複雜,還有另外乙個複雜的地方在於:
不同 cpu 的彙編指令和結構是不同的。
3.高階語言(20 世紀 50 年代)
公式翻譯器 列舉處理器 通用商業導向語言
這些語言讓程式設計師不需要關注機器底層的低階結構和邏輯,
而只要關注具體的問題和業務即可。
4.第一次軟體危機與結構化程式設計(20 世紀 60 年代~20 世紀 70 年代)
5.第二次軟體危機與物件導向(20 世紀 80 年代)
6.軟體架構的歷史背景(提出:20 世紀 60 年代 流行:20 世紀 90 年代開始的)
隨著軟體系統規模的增加,計算相關的演算法和資料結構不再構成主要的設計問題;
當系統由許多部分組成時,整個系統的組織,也就是所說的「軟體架構」,
導致了一系列新的設計問題。
系統規模龐大,內部耦合嚴重,開發效率低;
系統耦合嚴重,牽一發動全身,後續修改和擴充套件困難;
系統邏輯複雜,容易出問題,出問題後很難排查和修復。
模組 物件 元件三大概念催生了軟體架構的產生 軟體架構的出現有其歷史必然性。
20 世紀 60 年代第一次軟體危機引出了「結構化程式設計」,創造了「模組」概念;
20 世紀 80 年代第二次軟體危機引出了「物件導向程式設計」,創造了「物件」概念;
到了 20 世紀 90 年代「軟體架構」開始流行,創造了「元件」概念。我們可以看到,
「模組」「物件」「元件」本質上都是對達到一定規模的軟體進行拆分,
差別只是在於隨著軟體的複雜度不斷增加,拆分的粒度越來越粗,拆分的層次越來越高。
1.架構是為了應對軟體系統複雜度而提出的乙個解決方案。
2.架構即(重要)決策
3.需求驅動架構,架起分析與設計實現的橋梁
4.架構與開發成本的關係
1 架構的開悟
軟體架構 有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。通常說架構是一種能力,架構角色則是要求你在具體事務中行使某些行為,而架構師則是用來標識這些能力與行為的乙個職務。通常我們大多數人都具有架構的能力,並且也或多或少地行使架構師可能會有的行為,但是可能還沒有 架構師 這個頭銜...
yarn的學習之1 架構
本文翻譯自 譯註 原文說得有些過於簡單的,並且有些混亂。yarn由兩個部分的守護程式構成 資源管理 排程 監控。乙個應用要麼是乙個作業,要麼就是由作業構成的dag 多個job 多個job yarn的資料計算框架由rm和節點管理器 nodemanager nm 構成.rm負責管理所有應用的資源。nm其...
springmvc(1)架構執行流程
第一步 發起請求到前端控制器 dispatcherservlet 第二步 前端控制器請求處理器對映器 handlermaping 查詢處理器 handler 可以根據xml配置 註解進行查詢 第三步 處理器對映器向前端控制器返回處理器 第四步 前端控制器呼叫處理器介面卡 handleradapter...