軟件架構是“體現在其組件中的系統的基本組織、它們之間的關系以及與環境的關系,以及指導其設計和發展的原則。” 軟件架構識別主要系統部分并識別這些部分的輸入和輸出。在對架構的理解中,嵌入式開發人員要不斷地修改他們的代碼。盡管許多嵌入式產品正在經歷越來越復雜的問題,但軟件架構被嚴重忽視,并且在許多情況下被誤解了。今天,讓我們研究一些關于如何使用軟件架構來改進我們的軟件的基本技巧。
技巧1 - 架構是藍圖
軟件架構是軟件的藍圖。架構為開發人員提供了系統的邊界和特征,就像建筑物的藍圖為建筑承包商提供了基礎、高度和重要特征一樣。在為軟件設計架構之前,不應編寫單行生產代碼。
技巧2 - 使用 UML
統一建模語言 (UML) 是一個很好的工具,開發人員可以使用它來開發他們的軟件架構。包含不同的建模圖,可用于指定系統的各個方面,從順序和狀態建模到部署。對于典型的嵌入式系統,開發人員不需要使用每個圖表,而是可以選擇為產品提供最佳見解的模型。例如,對于一個典型的系統,開發人員可能會使用活動圖、序列圖、狀態圖和對象圖。
技巧3 - 不要低估序列圖
序列圖通常用于顯示為系統成功執行操作(例如傳輸數據或移動電機)而發生的事件序列。嵌入式開發人員將使用這些圖表來思考涉及多個組件甚至設備的復雜事件系列。但是,序列圖可能是一個非常強大的工具。不是簡單地根據需要使用圖表,而是可以使用它們來完全指定行為并用作系統的需求文檔。
技巧4 - 保持在 15,000 英尺的視野之上
軟件架構應該提供高級設計元素和部分,而不是低級細節。開發人員可能很想使用架構來定義設計的每一個細微差別。架構應該與語言無關,并識別主要的高級系統組件及其交互。定義變量名稱、語言結構,甚至是精確的算法對于架構來說都是太多的細節。實施者仍然需要靈活地調整他們的軟件以適應手頭的問題,并且深入細節可能會受到太多限制。出于這個原因,將架構圖保持在 15,000 英尺以上。
技巧5 - 運行模擬
使用 UML 開發軟件架構有一個獨特的好處——能夠在架構模型上運行模擬。例如,開發人員可以為狀態機建模,然后在狀態機上運行活動模型。可以輸入用戶數據,例如按下按鈕甚至接收消息,這會導致狀態機在其不同狀態中移動。然后,嵌入式開發人員可以觀察行為并檢查系統在不同條件下的行為,而無需編寫任何代碼!潛在的好處是早期發現錯誤、驗證系統要求,以及可能節省成本和時間。