張愛輝
在軟件工程中,針對已經(jīng)存在的系統(tǒng)進(jìn)行調(diào)查,同時(shí)對其進(jìn)行重構(gòu)使其成為開發(fā)新形式代碼的一個(gè)過程,就稱作軟件在工程。其最重要的特點(diǎn)之一就是最大程度地拓展其對象系統(tǒng)的各項(xiàng)資源,換句話說,也就是其開發(fā)能夠重用軟件和構(gòu)造出能夠重用軟件的系統(tǒng)結(jié)構(gòu)的具體方法是該工程中的最主要的內(nèi)容。當(dāng)然,就軟件在工程本身來說,如何開發(fā)前者的過程中一大部分的內(nèi)容是對現(xiàn)存系統(tǒng)中不可重用系統(tǒng)的改造。軟件工程再工程是以軟件工程方法學(xué)為指導(dǎo),對程序全部重新設(shè)計(jì)、重新編碼和測試。值得強(qiáng)調(diào)的是,軟件的可重用程度對其在工程的工作質(zhì)量的決定存在于軟件的任何階段。本文對模式軟件的再工程思想進(jìn)行了相應(yīng)的介紹,并對其技術(shù)進(jìn)行了一定的分析。
【關(guān)鍵詞】模式軟件再工程 系統(tǒng)結(jié)構(gòu) 編碼
隨著科技的不斷更新和快速發(fā)展,計(jì)算機(jī)技術(shù)得到了巨大的發(fā)展,同時(shí)計(jì)算機(jī)軟件也隨之飛速發(fā)展 ,當(dāng)今的計(jì)算機(jī)軟件應(yīng)用客戶對軟件的要求也越來越高,這是當(dāng)今計(jì)算機(jī)領(lǐng)域內(nèi)的軟件工程師在研發(fā)過程中必須考慮的問題,尤其是軟件的回收問題。正是在這種情況下,軟件再工程發(fā)揮出了它的重要作用。軟件再工程主要是對遺產(chǎn)系統(tǒng)的來利用,同時(shí)利用遺產(chǎn)系統(tǒng)開發(fā)新系統(tǒng)是軟件再工程當(dāng)前的重要研究方向。面對軟件再工程中的一系列問題,需要對該工程的思想進(jìn)行相應(yīng)的重視,同時(shí)重視和實(shí)施其技術(shù)問題。
1 軟件再工程的概況
具體說來,軟件再工程的具體任務(wù)就是針對已經(jīng)存在的系統(tǒng)進(jìn)行調(diào)查,同時(shí)對其進(jìn)行重構(gòu)使其成為開發(fā)新形式代碼,其最重要的特點(diǎn)之一就是最大程度地拓展其對象系統(tǒng)的各項(xiàng)資源,換句話說,也就是其開發(fā)能夠重用軟件和構(gòu)造出能夠重用軟件的系統(tǒng)結(jié)構(gòu)的具體方法是該工程中的最主要的內(nèi)容。當(dāng)然,就軟件在工程本身來說,如何開發(fā)前者的過程中一大部分的內(nèi)容是對現(xiàn)存系統(tǒng)中不可重用系統(tǒng)的改造。
軟件工程再工程是以軟件工程方法學(xué)為指導(dǎo),對程序全部重新設(shè)計(jì)、重新編碼和測試,為此可以使用case工具(逆向工程和再工程工具)來幫助理解原有的設(shè)計(jì)。軟件的可重用程度對其在工程的工作質(zhì)量的決定存在于軟件的任何階段。可以分為再分析、再編碼、再測試和再工程工具等。
在再分析過程中,主要是為了對原來系統(tǒng)的結(jié)構(gòu)、功能等相關(guān)參數(shù)重新進(jìn)行調(diào)查和研究。在該過程初期的研究內(nèi)容之目的就是要對再工程所涉及的范圍進(jìn)行仔細(xì)的調(diào)查、分析和預(yù)測。與一次工程不同的是,再工程會針對具體問題進(jìn)行嚴(yán)格的分析,他們得出的分析結(jié)果,即重用范圍及相應(yīng)的策略,都將對該工程的最終成敗和工程系統(tǒng)產(chǎn)品的穩(wěn)定性產(chǎn)生決定性的作用。根據(jù)再分析過程中對再工程的設(shè)計(jì)方案,再編碼過程會在系統(tǒng)總體的研究基礎(chǔ)上更加深入地進(jìn)行分析研究。而同一次工程相比,在工程對于過程分割的問題會更加困難,換句話說,也就是原先的瀑布模型對于在工程來說會更加不適合,也無法更好得將相應(yīng)的再分析、設(shè)計(jì)、編碼等程序分開。
通常情況下,在再工程中,再測試是其工作中的一項(xiàng)工作量巨大的工作,如果能夠重新使用原來的測試方法和運(yùn)行結(jié)果,就能將再工程的運(yùn)行成本降到最低。然而對于重用的部分,尤其是可重用的(獨(dú)立性較強(qiáng)的)部分,可以嘗試將其測試免去,這些方面正是重用技術(shù)收到再工程技術(shù)高度評價(jià)的原因之一。此外,再工程作為一個(gè)軟件工具,它被用來支撐和重構(gòu)出一個(gè)功能更加優(yōu)良的軟件系統(tǒng),其工具主要是用在代碼重構(gòu)、程序結(jié)構(gòu)重構(gòu)及數(shù)據(jù)結(jié)構(gòu)重構(gòu)等方面。
2 軟件再工程的技術(shù)分析
通常情況下,按照用戶對軟件改進(jìn)工作的不同要求,可以將再工程分為以下三個(gè)等級:系統(tǒng)級、數(shù)據(jù)級以及源程序級。在過程的實(shí)際實(shí)踐過程中,由于再工程的方法及技術(shù)也相當(dāng)多,因此,可以從不同角度選擇不用的使用方法。其中的再造是以提高可維護(hù)性為目的,研究重新構(gòu)建系統(tǒng)的整體的方法。而再構(gòu)則是在不改變既存軟件外部功能的條件下,只是修改了軟件的內(nèi)部結(jié)構(gòu),以達(dá)到增強(qiáng)整個(gè)軟件功能的目的,同時(shí),也能夠使其使用性能得到很大程度的提高。再結(jié)構(gòu)化就是在同一抽象級上變換軟件的不同表現(xiàn)形式。例如,從原來的C/S模式轉(zhuǎn)向B/S模式表現(xiàn)。文檔重構(gòu)就是由源代碼生成新文檔,而這種文檔必須是更加容易理解的。設(shè)計(jì)恢復(fù)是將設(shè)計(jì)判斷重新恢復(fù),從而得到其邏輯依據(jù)。程序理解則是研究取得程序相關(guān)知識的方法和途徑。對軟件的再工程來說,重用就是其核心所在,再工程可以重新利用原軟件系統(tǒng)資源,其進(jìn)一步的發(fā)展不能離開上述重用技術(shù)的發(fā)展。
使再工程能夠通過對充分復(fù)用的形式在多個(gè)抽象層面上轉(zhuǎn)化向目標(biāo)化是軟件再工程的目標(biāo),也是軟件重用技術(shù)的功能。在逆向工程的全部過程中,抽象及具體的過程都不是分割開的,而是完好得銜接在一起的,該階段抽象所得的資源需要提供給正向階段進(jìn)行重用,當(dāng)然,其工作需要嚴(yán)格在用戶的需求下完成。正向過程會充分利用這些可重用的資源,來實(shí)現(xiàn)多層次上的系統(tǒng)重用。
在構(gòu)件庫中,其在工程一種全新的開發(fā)方式,該開發(fā)方式以構(gòu)件庫為核心,分析和研究了現(xiàn)存系統(tǒng),并加強(qiáng)理解了原系統(tǒng)并對其進(jìn)行了相應(yīng)的優(yōu)化,從而對對象軟件的在工程提出了新的發(fā)展方案。之后需要做的就是在構(gòu)件庫中放入構(gòu)件,這些構(gòu)件是適應(yīng)了再工程需求,同時(shí)經(jīng)過優(yōu)質(zhì)的包裝的。最后就是對組裝平臺的建立,從而完成對目標(biāo)系統(tǒng)的轉(zhuǎn)化工作。
3 總結(jié)
在計(jì)算機(jī)軟件技術(shù)快速發(fā)展的時(shí)代,軟件的再工程具有十分重要的作用。隨著計(jì)算機(jī)軟件應(yīng)用客戶對軟件的要求越來越高,當(dāng)今計(jì)算機(jī)領(lǐng)域內(nèi)的軟件工程師在研發(fā)過程中對該問題進(jìn)行了深入的考慮,尤其是軟件的回收問題。在實(shí)際的應(yīng)用中,軟件的再工程發(fā)揮出了巨大的作用。在未來計(jì)算機(jī)的應(yīng)用中,軟件將發(fā)揮更大的作用,其中軟件的再工程技術(shù)的發(fā)展也將具有更大的發(fā)展前景。
參考文獻(xiàn)
[1]劉治國.面向模式軟件再工程的研究[J].信息技術(shù),2008,9(5):124-127.
[2]伍智平.面向模式的軟件再工程測試自動化的研究與實(shí)踐[J].湖南第一師范學(xué)報(bào),2006,6(2):149-151.
[3]鄧治國.軟件再工程的深層研究與應(yīng)用[J].信息與電腦,2012,2(1):47-48.
[4]劉興瑞,郭東峰.“軟件再工程”在軟件開發(fā)中的應(yīng)用[J].科技信息,2007,9(7):358-359.
作者單位
四川中稅東方科技有限責(zé)任公司 四川省成都市 610000endprint