嵌入式系統設計是一個軟、硬件結合的協同設計(Hardware/Software Co-design),需要不同技術背景的人共同開發。
這就帶來了一個問題,如何使這些具有不同技術背景和專長的人聯合開發、協同設計。在軟、硬件設計領域中,統一建模語言UML(Unified Modling Language)采用一種簡單而直觀的圖形化方式描述系統設計中的各個問題和細節。不同技術背景的設計師只需懂得簡單的 UML 符號就可以輕易地與對方交流、共同設計。正是因為這些特點,在嵌入式系統設計中使用 UML 建模并書寫文檔通??梢云鸬绞掳牍Ρ兜男Ч?。
本文將重點討論如何在嵌入式系統設計中使用 UML 技術,并用車載 GPS 終端項目作為實例來具體演示采用 UML 的嵌入式系統設計過程。
1 統一建模語言 UML 及其特點
1.1統一建模語言 UML
統一建模語言 UML 是可視化建模語言中的一種。它將模型中的信息用標準圖形元素直觀地顯示,使用戶、開發人員、測試人員、管理人員和其他涉及項目的人員可以更好地交流。最常用的可視建模語言有 Booch 法、對象建模技術(OMT)和統一建模語言 UML。其中 UML 是 ANSI 和 OMG 所采用的標準,被世界上絕大多數公司所接受。
UML 是 Grady Booch、James Rumbaugh 和 Ivar Jacobson 等許多科學家的集體智慧結晶??梢詫θ魏戊o態結構和動態行為進行系統的建模,適用于系統開發的不同階段。采用UML進行設計具有以下優勢:
不同背景的開發人員和設計師可以互相交流;
可視化描述比較直觀;
簡單易學、易用;
是行業標準,被絕大多數業內人士認同;
有利于保存系統設計的精髓以供下次開發使用(而不僅僅是一堆電路圖和代碼);
有利于項目的回溯、測試。
1.2 UML 框圖
作為一種可視化建模語言,UML 中的所有語素是一個個框圖。設計人員就是用這一個個框圖描述整個系統的設計。UML 模型的框圖主要有以下幾種:
Business Use Case框圖和Use Case框圖,前者主要描述整個機構的功能,后者主要從用戶的角度描述系統的功能。所以后者通常用于與系統客戶交流,提取用戶的需求。
Class 框圖,這一種是靜態圖,描述系統中的類。在此框圖中可以體現類的主要內容和功能、類之間的結構和相互關系。
State Chart 框圖提供了建模對象的各種狀態及它們之間的轉換關系。它提供建模系統的動態功能。這些框圖廣泛用于建立實際的系統,將會生成系統的全部代碼。
Activity 框圖與 State Chart 框圖同樣描述系統的動態功能,但它著重于顯示系統的功能流,顯示 Use Case 框圖中某個案例(Case)的事件流。它定義了工作流從何時開始、哪里開始、按什么順序發生、最終在哪結束。
Sequence 框圖顯示了 Use Case 框圖中各對象的具體功能流程。Sequence 框圖演示了業務過程的細節。值得注意的是,這個框圖只顯示對象,不顯示類。即 Sequence 框圖是針對某個特定情況、特定對象進行的描述。
Collaboration 框圖與 Sequence 框圖同樣描述對象間的相互關系。但它并不像 Sequence 框圖那樣以時間順序描述,而是著重顯示對象與角色之間的交互。其目的是讓質量保證工程師和系統建筑師分析對象之間處理過程的分布情況。如果分布不合理,系 統建筑師可能考慮重新分配處理工作。
Component 框圖顯示模型的物理視圖,也顯示系統中軟、硬件組件及其相互關系。
Deployment 框圖則顯示了系統的物理布局和各組件的位置及配置方法。
這些框圖為系統的分析、設計、建模提供了多種圖形表達形式,可應用于開發的不同階段。它們的有機結合可以構建一個完整而一致的系統。下面針對于車載 GPS 終端這個具體項目說明 UML 在嵌入式系統設計中的具體應用。
2、UML 在車載 GPS 終端設計中的應用
2.1 車載GPS終端系統簡介
車載 GPS 終端是置于機動車內的實時定位裝置,如圖1所示。它的應用對象是需要定位、調度的車隊,例如:運輸車隊和出租車等。車輛可以通過終端和 GPS衛星進行實時、準確的定位,并通過無線通訊網絡上報遠程的中心系統。中心可以通過終端遠程監視車行軌跡,甚至在特殊情況下通過終端控制車輛。同時, 終端還可以起到車載電話的作用,并可在車輛遇險時進行報警。另外,通過終端車輛還可以接收少量的調度信息。
2.2 需求分析
在對系統進行需求分析時,可以使用 Use Case 圖進行功能上的需求分析。Use Case 圖分角色(Actor)和案例(Case)兩部分。角色是與系統交互的人或物,而案例是系統提供的功能塊。使用 Use Case 觀察系統能夠將系統實現與系統目標分開,有助于開發人員了解最重要的部分,滿足用戶需求,而不會沉浸于實現細節。
對于車載 GPS 終端,主要的角色有兩種:車載終端用戶和監控中心用戶。終端用戶可以報警,打車載電話等;而監控中心可以查詢車輛位置,發送調度信息。其 Use Case 框圖如圖2所示。
2.3 規格說明
規格說明比需求分析更詳細,通過UML設計可以使規格說明更直觀、更清晰。首先,使用 Class 框圖描述系統處理的數據結構。例如在車載GPS終端的規格說明設計時可以使用 Class 框圖描述需要接收的 GPS 衛星信號,如圖3所示。
第二,在規格說明階段,還需要識別出系統的對象。首先以功能塊劃分,廣泛地找出系統的主要對象;然后使用 Collaboration 框圖描述它們之間的關系。圖4描述了車載 GPS 終端的主要對象,根據框圖可以進行進一步的細化。
最后,在規格說明階段進行系統的業務描述。即規范系統完成一定功能的主要流程。這可以利用 Activity 框圖進行。圖5顯示了 GPS 數據到達時,車載 GPS 終端系統所進行的處理流程。
2.4 系統設計
規格說明完成后,需要對系統的各個模塊及模塊之間的關系仔細地分析,從而確定哪些部分使用硬件完成,哪些部分使用軟件實現。在本例中,需要硬件實現的模塊有:GPS 接收模塊、電源模塊、用戶控制模塊、LCD 顯示模塊和 GSM 通訊模塊。
所有的控制邏輯和數據計算全部由主控制器的軟件實現。
隨后,系統設計分為兩個分支:硬件設計及軟件設計。使用 UML 的 Collaboration 圖和 Component 圖對系統的硬、軟件分別進行系統設計。圖6用 Component 框圖描述了車載 GPS 終端系統的軟件系統架構。
2.5構件設計
接下來對每一個系統構件進行詳細的設計。對于某些大型工程,甚至需要把每一個構件作為一個項目,重 新以需求分析、規格說明開始展開構件設計循環。在構件設計中,除了可以使用前文介紹過的各種 UML 框圖外,通常還需要使用 State Chart、Sequence 這兩種框圖描述具體的系統流程細節。
在本例中,GSM 模塊共有四個狀態:待命、有問題、通話中、短消息通訊中。使用 State Chart 框圖描述它們之間的轉換關系,如圖7所示。
Sequence 框圖顯示了一個特定對象進行特定操作時所遇到的流程。圖8顯示了車載終端用戶甲在遇到危險按下報警按鈕后系統的處理過程。
2.6 集成測試和部署
在集成測試時,可以聯合使用所有的 UML 框圖認真分析每個構件的原理,針對每一個系統功能、每一個可能發生錯誤的過程寫出相應的測試程序,進行完整而可靠的程序測試。
利用 UML 和系統的設計方法可以使傳統的嵌入式系統設計告別“手工作坊”的開發方式,大大提高嵌入式系統的開發速度和產品質量,增
強設計的可復用性。
但是 UML 是圖形化描述語言,比較適用于面向對象的程序設計;對于精確的規格設計或非面向對象的語言設計來說就不盡如人意了。在具
體應用中,靈活應用注釋功能,把框圖對應模塊所需的具體規格要求以注釋的形式寫在框圖中,充分利用 State Chart 和 Sequence 這些框圖來完成面向過程部分的設計。
評論
查看更多