為可重用軟件模塊創建一致且適當的接口是嵌入式軟件設計中最關鍵和最受忽視的方面之一。接口通常是在飛行中開發的,幾乎沒有預見到。但是為了確保軟件可以從一個應用程序輕松地用于下一個應用程序,每個開發人員都應該記住五個提示。
提示1 -從一個必需的列表開始操作
在開始為軟件模塊編寫接口之前,開發人員應該花一些時間寫出接口需要執行的簡單操作列表。該列表充當開發人員的便箋簿,以便思考接口需要做什么。模塊的操作是什么?它需要什么輸入?它將產生什么輸出?所有這三個問題都需要回答。列表和問題將作為設計界面的起點。
技巧#2 -使用UML類圖
UML類圖用于表示類,但也可用于表示模塊更重要的是,模塊接口。類圖的基本組件是由三個部分組成的框。第一部分(頂部)包含模塊的名稱。第二部分(中間)包含模塊的屬性。第三個也是最后一個部分用于定義接口公開的操作和方法。
模塊的屬性可以被認為是接口操作將要操作的私有和公共變量。屬性前面的加號表示它是公共的,并直接作為界面的一部分公開。減號表示該屬性是私有的,只能通過使用界面公開的操作在幕后進行操作。將這些操作視為提示#1中列出的相同操作。圖1顯示了左側通用模塊定義的示例和EEPROM模塊的簡化接口。
圖1 - 示例類/模塊圖
技巧#3 -將接口與實現分開
當開始開發模塊的接口時,開發人員應該盡一切可能將接口與模塊的實現分開。接口的面向公眾的部分的詳細信息都應該包含在頭文件中,在這種情況下,頭文件定義了模塊的接口。實現細節應保存在源文件中。將實現細節與接口分開,開始為開發人員提供隱藏實現的能力。這種隱藏導致了模塊類的抽象,并提供了以后重新定義實現而不影響接口的能力。
技巧#4 -使用抽象數據類型
要求總是改變并預測要求如何變化通常是徒勞的,即使一個人配備了水晶球。抽象數據類型旨在幫助開發人員處理不斷變化的需求。例如,在頭文件中定義為接口的一部分的數據結構。引用頭文件的任何模塊都能夠基于該數據結構創建和修改數據。當需求發生變化并且數據結構發生變化時,結果是需要為使用頭文件的任何文件提供更新。
如果開發人員創建了一個抽象數據類型,其中數據結構的詳細信息隱藏在實現中,則只需要更新源文件實現。使用頭文件的任何模塊都將繼續使用公共接口,底層實現將處理更改的數據類型。
提示#5 -封裝數據
計算機科學課程中教授的第一個概念之一是變量或對象應限于可能的最小程序范圍。類似地,如何實現接口的細節應限于需要知道的基礎。開發人員應嘗試從模塊的用戶中隱藏盡可能多的數據和實現。隱藏細節有助于防止用戶直接操作模塊的內部數據,這可能導致模塊進入未知或不一致狀態。
最終想法
發展充滿了不斷變化的需求和短暫的開發周期。使用適當的界面設計技術可以改善軟件的整體設計,并最大限度地減少不斷變化的需求移動目標的影響。我們已經研究了五個設計界面的簡單技巧。在開發經得起時間考驗的界面時,開發人員應該考慮哪些其他注意事項?
-
嵌入式
+關注
關注
5094文章
19184瀏覽量
307828 -
PCB打樣
+關注
關注
17文章
2968瀏覽量
21841 -
華強PCB
+關注
關注
8文章
1831瀏覽量
27953 -
華強pcb線路板打樣
+關注
關注
5文章
14629瀏覽量
43187
發布評論請先 登錄
相關推薦
c接口和實現:創建可重用軟件的技術 源碼下載
以太網一致性測試硬件軟件
算法運行時間軟件仿真和硬件仿真不一致
數字可視接口(DVI)一致性測試
RFID協議一致性測試系統設計(二)
![RFID協議<b class='flag-5'>一致</b>性測試系統設計(二)](https://file1.elecfans.com//web2/M00/A6/2A/wKgZomUMPA-AY5xjAAAQ-AYs4gQ630.jpg)
加速器一致性接口
一致性哈希是什么?為什么它是可擴展的分布式系統架構的一個必要工具
《C語言接口與實現:創建可重用軟件的技術》電子教材免費下載
C語言接口與實現創建可重用軟件的技術PDF電子書免費下載
![C語言<b class='flag-5'>接口</b>與實現<b class='flag-5'>創建</b><b class='flag-5'>可</b><b class='flag-5'>重用</b><b class='flag-5'>軟件</b>的技術PDF電子書免費下載](https://file.elecfans.com/web1/M00/BB/EF/o4YBAF648EaAF9oJAAIIqfhimQk825.png)
NVIDIA DOCA 軟件框架可提供一致開發體驗
![NVIDIA DOCA <b class='flag-5'>軟件</b>框架可提供<b class='flag-5'>一致</b>開發體驗](https://file.elecfans.com/web2/M00/4C/7B/pYYBAGKv6ECAC1ptAACkB7ZCgTQ525.png)
可重用的驗證組件中構建測試平臺的步驟
![<b class='flag-5'>可</b><b class='flag-5'>重用</b>的驗證組件中構建測試平臺的步驟](https://file1.elecfans.com/web2/M00/89/8B/wKgZomSHwvCAMZd1AAA9F9tRAYU977.png)
評論