嵌入式軟件系統(tǒng)設計領域存在“正交”的思想。本文結合實際項目經驗,總結了軟件系統(tǒng)正交化的方法,同時較全面地分析了正交性給嵌入式軟件設計帶來的諸多方便,最后回顧“正交”思想對不同自然科學領域的積極影響與啟發(fā)。
1 小波漫談
小波變換是20世紀最輝煌的科學成就之一,已經廣泛應用于信號處理、圖像分析、非線性科學、地球科學、音樂雷達、CT成像、地震勘探、天體識別、量子場論、機械故障診斷、分形等科技領域。
20世紀初,哈爾(Alfred Haar)對在函數(shù)空間中尋找一個與傅里葉類似的基非常感興趣。1909年他最早發(fā)現(xiàn)和使用了小波,后來這被命名為哈爾小波(Haar wavelets)。20世紀 70年代,當時在法國石油公司工作的地球物理學家 Jean Morlet提出了小波變換 WT(Wavelet Transform)的概念。 進入 20世紀 80年代,法國科學家 Y.Meyer和他的同事開始研究系統(tǒng)的小波分析方法。1985年,Daubechies提出“正交小波基”,并構造具有緊支撐的光滑小波,以及隨后 Mallat提出的多分辨分析及快速小波變換,將小波研究推向高潮。小波分析己經成為目前發(fā)展最快和最引入注目的學科之一,幾乎涉及信息領域的所有學科。
為何“正交小波基”與多分辨分析的提出成為小波分析發(fā)展史中的重大突破成就?主要原因之一是:變換系數(shù)沒有冗余,能夠將信號分解成互不影響的正交子信號,這樣就可以根據(jù)需求方便地對所需特征的子信號進行分析,從而很好地反映信號的細節(jié)。
2 嵌入式軟件系統(tǒng)設計的正交性
其實,在軟件系統(tǒng)設計領域同樣或多或少存在“正交”的思想。一個常被引用的模式是Smalltalk編程語言(Krasner和 Pope,1988)的模型視圖控制器(ModelViewController)框架。該模式強制性地將軟件系統(tǒng)的輸入、處理和輸出分開,形成數(shù)據(jù)模型、視圖、控制器三大模塊,如圖1所示。圖中“數(shù)據(jù)模型”包括程序的設計部分,“視圖”表示用戶界面,“控制器”定義用戶和視圖的交互方式。
圖1 模型視圖控制器框架
其中每部分都是一個獨立的對象,每個對象有自己處理數(shù)據(jù)的規(guī)則。這種功能的分離恰巧促成各個模塊的正交性、減少它們之間的冗余,因此也使該框架成為應用最為廣泛的模式之一。
2.1 設計正交嵌入式軟件系統(tǒng)
毫無疑問,正交的思想使得系統(tǒng)設計更加清晰和方便。那么如何才能更好地使嵌入式軟件系統(tǒng)具有“正交性”呢?
(1) 設計具有正交性的系統(tǒng)體系結構
進行系統(tǒng)設計首先要進行系統(tǒng)的體系結構設計。系統(tǒng)的宏觀設計同樣也體現(xiàn)正交性思想,如圖2所示。
圖2 系統(tǒng)體系結構
其中,底層驅動與RTOS是唯一與系統(tǒng)硬件相聯(lián)系的模塊,直接負責與硬件打交道,對硬件進行管理與控制,并為其上層模塊提供所需的驅動支持;調度程序在RTOS支持下,根據(jù)系統(tǒng)需求對不同的任務模塊進行實時調度與管理,確保所有任務能順利、均衡地執(zhí)行;最上層的任務模塊具有不同的功能,以滿足用戶需求,它們各自獨立、正交、不存在冗余,同時提供相應數(shù)據(jù)接口,以便與其他模塊通信,形成有機整體。
整個系統(tǒng)體系結構同樣體現(xiàn)了正交思想,各個層的不同模塊負責相互獨立、正交的任務。從垂直角度看上去,該體系結構同正交小波一樣,可以用多尺度空間思想表示,如圖3所示。越核心的地方,功能輪廓越粗略;越到外層,越體現(xiàn)細節(jié)、越貼近用戶需求。
圖3 多尺度嵌入式軟件體系結構
(2) 保持模塊間的松耦合
劃分軟件模塊時很重要的一個原則是:盡可能地保證各模塊間的松耦合和模塊內部的高聚合。這實際上就實現(xiàn)了系統(tǒng)的正交化,減少了模塊間的冗余與關聯(lián)。理想的系統(tǒng)結構呈樹狀,如圖4所示。