Hines-Ortega方法簡化復(fù)雜的軟件設(shè)計問題
在當今快速變化的市場上,嵌入式系統(tǒng)開發(fā)人員常常面臨著設(shè)計在最后階段還要改變的問題,以及應(yīng)付數(shù)量不斷增長的多處理器目標架構(gòu)帶來的設(shè)計挑戰(zhàn);與此同時,開發(fā)人員們還必須處理那些與系統(tǒng)底層資源直接打交道的軟件模塊之間的復(fù)雜關(guān)系,這些關(guān)系往往會使費時費力的開發(fā)周期延長并推遲開發(fā)進度,以便能跟上設(shè)計變更的要求。所以說在典型的嵌入式開發(fā)環(huán)境中,軟件問題往往比硬件問題更復(fù)雜,而且開發(fā)環(huán)境隨著各種關(guān)聯(lián)設(shè)計的出現(xiàn)會變得更加糟糕。 值得慶幸的是,現(xiàn)在一種新的方法可以處理這種復(fù)雜的情況,名為Hines-Ortega的新設(shè)計方法可使設(shè)計人員工作于更高的抽象級上?;旧希琀ines-Ortega讓設(shè)計人員能更有效地進行開發(fā)、測試及調(diào)試復(fù)雜軟件,而不必理會低層的實現(xiàn)問題。這種以協(xié)同為中心的方法使設(shè)計人員可將功能行為與各軟件組件的協(xié)同性分開,從而簡化了設(shè)計和調(diào)試,加快了與硬件集成的速度,使得代碼可重新利用,同時也使嵌入式設(shè)計能很容易地再用于不同的硬件平臺上。 在嵌入式系統(tǒng)設(shè)計中,軟件一般都滯后于硬件的開發(fā),而且這也一直是嵌入式系統(tǒng)產(chǎn)品進度拖延和發(fā)布延誤的主要原因。盡管許多公司都要求產(chǎn)品應(yīng)盡快上市,但嵌入式軟件設(shè)計人員卻發(fā)現(xiàn)自己受到設(shè)計方法的禁錮,往往要被迫等到硬件到位后才能著手進行開發(fā);而當他們好不容易可以開始軟件開發(fā)時,又發(fā)現(xiàn)每一項都需要作專門設(shè)計,因為以往項目中本來可以利用的軟件與具體的系統(tǒng)配置聯(lián)系非常緊密,要想重新使用不是那么容易。 那些完全利用嵌入式系統(tǒng)來制造不同產(chǎn)品的公司則要冒更大的延誤風(fēng)險,傳統(tǒng)的開發(fā)方式在越來越緊的時間壓力下正在崩潰,事實上向多種不同處理器結(jié)構(gòu)發(fā)展的趨勢給開發(fā)帶來了很重的負擔。 系列處理器 在體系結(jié)構(gòu)級上,開發(fā)人員正在尋找一系列低成本專用處理器,以用于網(wǎng)絡(luò)、圖象處理和數(shù)字信號等應(yīng)用場合。與采用一種昂貴的通用處理器相比,這類專用處理器能保證提高系統(tǒng)性能,并降低整體成本。不過,對嵌入式系統(tǒng)開發(fā)人員來說,有潛力的目標架構(gòu)的不斷增長已對市場上的開發(fā)資源和開發(fā)能力構(gòu)成了威脅,因為半數(shù)以上的嵌入式產(chǎn)品開發(fā)進度都已經(jīng)拖后了好幾個月。 連鎖效應(yīng) 的確,在開發(fā)后期發(fā)生硬件設(shè)計變更,會給采用多種分布式網(wǎng)絡(luò)處理器的設(shè)計帶來嚴重的問題。在傳統(tǒng)開發(fā)方式里,基礎(chǔ)硬件的任何改變都會引起相關(guān)軟件發(fā)生大的變化,這是因為開發(fā)人員不能將軟件功能與硬件低層之間的聯(lián)系以及與其它軟件組件分開,與硬件相關(guān)的通信和控制過程與軟件功能緊密結(jié)合在一起,所以硬件配置發(fā)生任何變化都會要求軟件做出大的修改。 除了應(yīng)對復(fù)雜的多處理器結(jié)構(gòu)帶來的設(shè)計挑戰(zhàn)以外,產(chǎn)品開發(fā)人員還認為傳統(tǒng)的開發(fā)方式使他們在開發(fā)時有些力不從心。通常采用這類結(jié)構(gòu)的公司都設(shè)立獨立的開發(fā)小組來進行開發(fā),各組負責(zé)一種專用類型處理器。在這種情況下,各開發(fā)小組在系統(tǒng)級上會缺乏一致的看法,有關(guān)系統(tǒng)級的考慮因素常被忽略,或者最多也只能折衷采納。整個開發(fā)會因此受損而達不到******狀態(tài),由于常常要應(yīng)付因某個子系統(tǒng)變化連鎖影響到另一些子系統(tǒng)而暴露出來的問題,軟件復(fù)用和轉(zhuǎn)向其它平臺的想法也被淹沒在實現(xiàn)設(shè)計所需的無數(shù)瑣碎事情之中。 嵌入式系統(tǒng)軟件的效率取決于軟件功能與實現(xiàn)細節(jié)的分離,包括各組件同其它應(yīng)用組件、服務(wù)例程、操作系統(tǒng)軟硬件資源等的相互協(xié)同關(guān)系。Hines-Ortega方法包含了這種將功能與協(xié)同分離的思路,為實現(xiàn)功能與交互的分離,該新方法在嵌入式設(shè)計中引入了一種更高級抽象概念。新方法為可視化設(shè)計、模擬、系統(tǒng)級調(diào)試、目標平臺選擇以及代碼合成提供了一種概念性框架。 根據(jù)Hines-Ortega方法,開發(fā)人員分兩個階段進行嵌入式系統(tǒng)設(shè)計,即與目標對象無關(guān)階段和與目標對象有關(guān)階段。在前一階段中,開發(fā)人員將系統(tǒng)設(shè)計為一個抽象模型,并對系統(tǒng)模型和運行情況進行模擬和調(diào)試,以確保它在模塊級運行正確;在后一階段里,開發(fā)人員將經(jīng)過驗證的設(shè)計和具體硬件資源聯(lián)系起來,根據(jù)映射模型自動生成針對具體平臺的C或Java代碼,可以利用現(xiàn)成的代碼,并進行正常的單元和系統(tǒng)測試。 能否完成這兩個階段取決于開發(fā)人員構(gòu)造嵌入式系統(tǒng)抽象模型的能力,這種抽象模型將各組件的軟件功能行為與描述各組件間相互作用細節(jié)的軟件交互相隔離。各組件通過相關(guān)協(xié)同接口進行交互。協(xié)同接口又將各組件與協(xié)同程序相連,協(xié)同程序?qū)M件間可能發(fā)生的連接、狀態(tài)和交換處理等都作了明確的描述。 以協(xié)同為中心的處理方法強調(diào)松散組合軟件組件間的直接協(xié)作,而把具體實現(xiàn)的問題向后推,這樣軟件開發(fā)人員就能在系統(tǒng)開發(fā)的早期開始設(shè)計軟件,既與硬件開發(fā)同步又獨立于具體的實現(xiàn)細節(jié)。 實際上,以協(xié)同為中心的方法有助于開發(fā)人員專注于應(yīng)用上的問題,而不是實現(xiàn)細節(jié),從而提高工作效率。例如建立一個循環(huán)調(diào)度程序,開發(fā)人員可以做一些通過協(xié)同接口與某個協(xié)同程序通訊的組件,協(xié)同程序包含了所有和循環(huán)調(diào)度程序協(xié)議有關(guān)的信息。 按這種處理方法,任何一個組件都無需參照其它組件,事實上各組件甚至都不用知道它們在某個循環(huán)協(xié)議中正在與別的組件協(xié)作。因此開發(fā)人員可以專注于應(yīng)用的要求,而不是糾纏于相互作用協(xié)議和實施細節(jié)。協(xié)同程序本身會處理所有所需的參考信息,如果應(yīng)用需要改變調(diào)度程序協(xié)議,變更也只限于協(xié)同程序和協(xié)同接口。 獨立行為 抽象系統(tǒng)模型設(shè)計好以后,開發(fā)人員就可以通過對模型進行模擬和調(diào)試來驗證組件功能的協(xié)同正確性。以協(xié)同為中心的設(shè)計具有很強大的系統(tǒng)級調(diào)試能力,同時能在系統(tǒng)級觀察各軟件模塊,使開發(fā)人員在必要時容易地進入到各層軟件找出并解決問題。而最重要的是,這種能力完全獨立于實現(xiàn)方法。 這種抽象設(shè)計甚至可在不同的多處理器平臺或單處理器平臺上實現(xiàn),在第二階段的最后一步,開發(fā)人員將組件和協(xié)同程序反映到具體目標平臺資源上,如通信信道、子系統(tǒng)和處理器等,代碼合成階段生成針對給定硬件和操作系統(tǒng)的軟件,無需中間的軟件抽象層。換句話說,生成的軟件可直接調(diào)用本身的操作系統(tǒng)以發(fā)揮出其功能和獨特的性能。 這種將相互作用與功能分離的能力使得以協(xié)同為中心的方法有別于另外兩個常用系統(tǒng)設(shè)計方法,即面向?qū)ο蟮脑O(shè)計方法(OOP)和統(tǒng)一建模語言(UML)。 開發(fā)人員用OOP定義一組接口,使一個對象在另一個對象前面就像是一組方法或過程。從理論上講,OOP傳統(tǒng)的動態(tài)類型檢查功能允許對象相互作用而無需事先知道作用規(guī)則,但實際上動態(tài)類型檢查已經(jīng)讓位給靜態(tài)類型檢查以保證相互作用的可預(yù)測性。使用靜態(tài)類型檢查就要求對象要包含其它對象使用方法的一些信息。 |