趙永春 紀(jì)小明 王顯躍 冼友倫 徐磊
中國電子科技集團(tuán)第二十九研究所 四川成都 610036
影響軟件開發(fā)工作質(zhì)量的因素相對較多,其中可重用性是最為重要的因素之一。所謂的可重用性是指軟件開發(fā)人員在進(jìn)行軟件開發(fā)的過程當(dāng)中,將代碼和思想的開發(fā)運用在軟件問題上,從而提高軟件的可靠性,這種軟件開發(fā)方式與傳統(tǒng)軟件開發(fā)方法相比,具有開發(fā)質(zhì)量高且效率高的特點,同時可降低軟件開發(fā)的成本。
本文主要針對框架與軟件重用的概念進(jìn)行分析,其次討論應(yīng)用框架的開發(fā)方法,并根據(jù)嵌入式軟件框架的設(shè)計提出基于PowerPC 嵌入式軟件系統(tǒng)應(yīng)用開發(fā)的具體內(nèi)容。
在進(jìn)行軟件開發(fā)時,軟件開發(fā)人員必須對系統(tǒng)或相應(yīng)的子系統(tǒng)進(jìn)行設(shè)計,一般情況下,設(shè)計環(huán)節(jié)需要遵循可重用系統(tǒng)的原則。而框架主要指在特定領(lǐng)域當(dāng)中的軟件半成品,這些所謂的半成品具有明顯的開發(fā)模式以及系統(tǒng)結(jié)構(gòu),在進(jìn)行后期軟件開發(fā)時,需要加入處理軟件語言代碼,并將其應(yīng)用在具體系統(tǒng)中??蚣艿男纬杀仨氃谔囟I(lǐng)域的應(yīng)用系統(tǒng)當(dāng)中,與軟件開發(fā)的具體需求進(jìn)行有效融合,并在參考需求的前提下,形成具有針對性的框架[1]。軟件的可重用性是框架的主要特性,在進(jìn)行軟件開發(fā)的過程當(dāng)中,需要將特定的處理代碼加入系統(tǒng)或相應(yīng)子系統(tǒng)中,從而形成新的系統(tǒng)。在開發(fā)過程中,首先應(yīng)該分析其需要,并盡可能地從系統(tǒng)通用性方面考慮,針對相同的問題的處理與特點,將與該應(yīng)用沒有太大關(guān)系的部分剝離出來,然后選擇合適的軟件分析其結(jié)構(gòu),詳情參考下圖1。
圖1 框架結(jié)構(gòu)圖
上文提到,計算機軟件系統(tǒng)的可重用性能夠提高軟件的可靠性,以及促進(jìn)軟件開發(fā)的質(zhì)量,而應(yīng)用框架則是能促進(jìn)可重用性的主要內(nèi)容。軟件開發(fā)者需要充分了解該系統(tǒng)的具體需求,將系統(tǒng)設(shè)計的通用性充分考慮在每一個開發(fā)環(huán)節(jié)中。在進(jìn)行具體操作時,系統(tǒng)開發(fā)的問題較為復(fù)雜,設(shè)計者可以根據(jù)不同問題的特點和處理模式,將同類問題進(jìn)行有效融合,提出具有針對性的解決措施并將相關(guān)內(nèi)容進(jìn)行吸收和借鑒。在選擇軟件框架前,軟件設(shè)計者需要根據(jù)系統(tǒng)應(yīng)用的具體特點以及系統(tǒng)運行的基本需求,總結(jié)應(yīng)用框架的具體方向,只有這樣才能選擇合適的軟件結(jié)構(gòu)并確定框架的總結(jié)構(gòu),同時明確軟件的控制流和數(shù)據(jù)流等多項指標(biāo)。
對于整個計算機軟件系統(tǒng)來說,第一個應(yīng)用系統(tǒng)最為關(guān)鍵。軟件設(shè)計工作者將第一個系統(tǒng)確定之后,可基本確定軟件框架的原型,在此基礎(chǔ)上可總結(jié)出與應(yīng)用相關(guān)的部件程序模板。在后續(xù)的軟件設(shè)計工作中,可以根據(jù)框架原型及部件程序模板,進(jìn)行后期的軟件開發(fā)[2]。
從軟件開發(fā)可重用性特點的角度分析,要想滿足框架進(jìn)化的內(nèi)容,并且保證框架的質(zhì)量,達(dá)到預(yù)期目標(biāo),就需要在實現(xiàn)框架原型的基礎(chǔ)上,了解其它系統(tǒng)應(yīng)用的實際需求,并且根據(jù)這些需求不斷進(jìn)行框架改進(jìn),這種不斷完善和進(jìn)化的過程,可整體提高軟件的可重用性。在具體的軟件開發(fā)工作中,需要重點考慮軟件通用性和可重用性,并將其作為主要目標(biāo),在原框架的基礎(chǔ)上,不斷對框架進(jìn)行修改,驗證,完善和進(jìn)化,將原本存在的不合理之處進(jìn)行深入改進(jìn),進(jìn)而促進(jìn)系統(tǒng)的高效發(fā)展。一般情況下,可真正投入使用的框架實例,需要經(jīng)過多個實例的應(yīng)用,并且反復(fù)進(jìn)行修改完善,才可真正投入使用。
PowerPC 是一種精簡指令集架構(gòu)的中央處理器,因其優(yōu)異的性能、較低的能量損耗以及較低的散熱量,在嵌入式有著廣泛的應(yīng)用。
基于PowerPC 的嵌入式軟件主要完成對外接口通信,對內(nèi)系統(tǒng)管控及信號處理等工作。本軟件主要接收來自系統(tǒng)顯控軟件的控制命令,完成自檢、校準(zhǔn)、噪底采集、信號分選、全脈沖采集、目標(biāo)干擾等各項功能,并能及時將處理結(jié)果上報系統(tǒng)顯控軟件。根據(jù)多個應(yīng)用需求進(jìn)行統(tǒng)型設(shè)計,開發(fā)嵌入式軟件框架,其組件劃分如圖2 所示。
圖2 軟件組件組成圖
軟件當(dāng)中的一個組件可以作為一個具有獨立功能的模塊,分配好不同組件的分配工作,能夠最大程度的提升系統(tǒng)的資源應(yīng)用率。在進(jìn)行組件的規(guī)劃過程當(dāng)中,應(yīng)根據(jù)框架模板的全面性和耦合性,秉持信息傳遞標(biāo)準(zhǔn)進(jìn)行組件的組合應(yīng)用[3]。
(1)一般情況下,組件模型所涉及的要素有很多,并且每個要素當(dāng)中都含有至少三個屬性組件以及兩個端口。組件可以利用這些端口實現(xiàn)不同的界面設(shè)置,同時還可以將組件進(jìn)行多層次的組合應(yīng)用,子組件可以被當(dāng)作一個黑盒子。
(2)在通過子組件端口的連通之后,一個合成組件將會形成。端口連接作為組件之間的主要連通形式,合成組件的端口還能夠與其他子組件端口進(jìn)行連接。通過統(tǒng)一形式的組件模型,能夠?qū)⑶度胧杰浖兂梢粋€統(tǒng)一的合成組件。
組件合成示意圖如下圖3 所示。
圖3 組件合成示意圖
在嵌入式軟件開發(fā)中,應(yīng)用架構(gòu)分層可以使全體開發(fā)人員更好地發(fā)揮自己的特長,從而大幅加快軟件的開發(fā)速度,降低開發(fā)的成本。并且,因為不同層面之間能夠有效隔離,因此即使在開發(fā)過程中出現(xiàn)錯誤,也可以及時進(jìn)行糾正,而不會對其他部分造成影響。同時,由于各個層次之間的關(guān)系弱化,可以對分導(dǎo)標(biāo)準(zhǔn)進(jìn)行確定,從而大幅度提升軟件質(zhì)量和可靠性,提升軟件的競爭力。
使用架構(gòu)分層將會對系統(tǒng)的運行效率產(chǎn)生一定的影響。由于架構(gòu)分層造成的軟件層次、模塊之間的“低耦合、高內(nèi)聚”,不可避免地產(chǎn)生內(nèi)存空間的大幅占用以及數(shù)據(jù)多層次傳遞,勢必導(dǎo)致系統(tǒng)運行效率降低,目前嵌入式系統(tǒng)硬件內(nèi)存資源有限,這是后續(xù)工程中需要努力解決的問題。
總而言之,軟件開發(fā)的模式,在需求多變的情況下變得越發(fā)多樣化,與傳統(tǒng)軟件開發(fā)模式相比,基于可重用框架的軟件開發(fā)模式具有更大的優(yōu)勢,它可以滿足用戶在軟件上的各項需求,提高開發(fā)效率,減少工作量,降低開發(fā)成本,提高軟件的可靠性以及質(zhì)量,除此之外,它還具備較強的通用性和擴展性。因此近年來基于可重用框架的軟件開發(fā)模式得到了廣泛的應(yīng)用,是我國軟件開發(fā)領(lǐng)域的一大突破點。