更新於 2024/08/22閱讀時間約 3 分鐘

嵌入式系統開發4: 如何開始設計系統架構

設計系統架構有兩種主要的方式:一種是從零開始構建,從一個想法或最終目標開始,逐步組織所有的要素,這稱為組合式設計(composition)。這種方法的挑戰在於,當你面對一張空白頁時,往往會感到迷茫,因為從無到有的創建過程可能顯得遙不可及。

另一種方法則是從現有的產品開始,通過反向工程(分解式設計,decomposition)來理解內部結構。這涉及將現有系統拆解成更小的部分,以便深入了解每個模塊的運作方式。當你加入一個開發團隊時,這通常是你面臨的現實情況——你可能會遇到緊迫的截止日期、大量的代碼和極少的文件紀錄,幾乎沒有時間進行額外的文檔撰寫。

不論採用哪種設計方式,**系統圖表**都是你理解系統的有力工具。透過圖表,你能看清整個系統的結構,這不僅能幫助你保持工作進度,還能保證你撰寫的代碼符合項目的質量標準並能如期交付。


如何利用系統圖表理清思路

在開始設計時,你可能需要準備兩種系統架構圖表:一種是與你正在開發的部分代碼有關的局部架構圖;另一種則是描述整個產品的全局架構圖,以便你理解你的工作如何與整體系統相互協作。

隨著你對系統理解的加深,這些圖表將逐漸變得更大更複雜。當圖表過於複雜時,建議你將某些模塊打包為一個整體,然後在另一個圖表中詳細展開這些模塊的內部結構。

系統圖表的設計不應該拘泥於一種形式,具體取決於最初架構師的設計思路。對於一些系統來說,一個簡單的圖表可能足以說明問題;而對於其他系統,則需要更加詳盡的圖表來描述其運作方式。


從頭開始構建系統圖表

在接下來的幾個部分,我將引導你從頭開始設計一個系統,並且避免過多地依賴現有的系統來進行設計(實際上,大多數成熟系統會比這裡展示的範例更為複雜)。這些圖表的目的不僅僅是為了記錄系統,而是幫助你從不同角度來思考系統的運作方式。

這些圖表更像是粗略的草圖,而不是正式的文檔。它們是用來幫助你理清思路、探索系統如何被設計和組織的工具。保留草圖的靈活性是關鍵,這樣即便需要重畫一遍,你也不會因為過於在意細節而感到氣餒。

使用繪圖工具是可以的,但我個人推薦紙和筆。這種方法能讓你專注於信息本身,而不是被繪圖的過程所干擾。


創建系統圖表的步驟

就像硬體設計師會創建電路圖一樣,軟體設計師也應該製作一系列圖表來顯示軟體各個部分之間的關係。這些圖表能讓你對整個系統有一個清晰的視角,幫助你識別潛在的相依性,並為新功能的設計提供靈感和洞見。

我建議製作四種主要的圖表:

  1. 上下文圖(Context Diagrams):描述系統與外部環境之間的互動,幫助你了解系統與其他系統或用戶之間的關係。
  2. 區塊圖(Block Diagrams):顯示系統內部的各個模塊及其交互方式,有助於識別系統的關鍵部分及其依賴性。
  3. 組織圖(Organigrams):展示系統中不同角色或模組之間的層級關係,適用於較大且具有層次性的系統。
  4. 層次圖(Layering Diagrams):將系統劃分為不同的層次,通常用於描述高階的系統架構,例如操作系統層、中間件層和應用層等。

透過這些圖表,嵌入式系統的設計將不再是看不見的迷宮,而是一個有章可循的過程。希望這些方法能夠幫助你更有效地管理項目中的複雜性,並提升系統的靈活性和可擴展性。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.