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