吳文慶,修雅慧
(1.蘇州市職業(yè)大學(xué) 計(jì)算機(jī)工程學(xué)院,江蘇,蘇州 215104;2.齊齊哈爾醫(yī)學(xué)院,黑龍江 齊齊哈爾 161006)
在現(xiàn)代化生產(chǎn)管理工作中,計(jì)算機(jī)軟件的應(yīng)用無處不在,通過實(shí)現(xiàn)信息自動化管理,可以有效提升生產(chǎn)效率和辦公效率。因此,計(jì)算機(jī)軟件開發(fā)已經(jīng)成為熱門產(chǎn)業(yè),自發(fā)學(xué)習(xí)計(jì)算機(jī)軟件開發(fā)技術(shù)的人越來越多。隨著軟件開發(fā)技術(shù)的不斷進(jìn)步,不僅開發(fā)語言和環(huán)境發(fā)生了較大變化,設(shè)計(jì)理念也出現(xiàn)了本質(zhì)性改變。在先進(jìn)的模塊化設(shè)計(jì)理念下,通過采用嵌入式軟件,能夠有效提高軟件開發(fā)效率。因此,有必要對嵌入式軟件的具體應(yīng)用進(jìn)行探討,為計(jì)算機(jī)軟件開發(fā)提供借鑒。
計(jì)算機(jī)由軟件和硬件兩大部分組成,兩者相輔相成,共同實(shí)現(xiàn)計(jì)算機(jī)的各項(xiàng)功能。在同等的硬件條件下,軟件的先進(jìn)性將直接決定計(jì)算機(jī)應(yīng)用效率和便捷性。在軟件開發(fā)過程中,要綜合考慮客戶對軟件應(yīng)用的性能要求和功能要求,通過采取科學(xué)的軟件開發(fā)技術(shù),實(shí)現(xiàn)設(shè)計(jì)目標(biāo)。隨著軟件開發(fā)技術(shù)的快速發(fā)展,開發(fā)環(huán)境和開發(fā)語言已經(jīng)出現(xiàn)較大變化。[1]
目前,在軟件開發(fā)過程中應(yīng)用較多的編程語言包括C語言、Java語言等。其中,C語言是最早的軟件編程語言之一,應(yīng)用非常廣泛,而且技術(shù)不斷成熟,不僅能夠應(yīng)用于多種系統(tǒng)環(huán)境下的編程,還具有語言簡潔、邏輯清晰、編譯快捷等特點(diǎn)。Java語言是隨著Web程序開發(fā)快速發(fā)展起來的新型編程語言,具有跨平臺應(yīng)用特征,安全性和通用性較高。Java語言繼承了C++的核心技術(shù),而且增加了垃圾回收器等新功能,資源占用更加合理,是一種優(yōu)秀的面向?qū)ο缶幊陶Z言。[2]
此外,軟件開發(fā)環(huán)境也發(fā)生了較大變化,包括嵌入式軟件在內(nèi)的專業(yè)編程軟件在計(jì)算機(jī)軟件開發(fā)過程中得到了應(yīng)用,極大地提升了軟件開發(fā)效率。
計(jì)算機(jī)軟件開發(fā)是一項(xiàng)系統(tǒng)性工作,目前已形成一套系統(tǒng)化的開發(fā)流程,使軟件開發(fā)管理更加科學(xué),更容易實(shí)現(xiàn)客戶提出的各種需求。從計(jì)算機(jī)軟件開發(fā)過程來看,主要包含以下幾個(gè)重點(diǎn)環(huán)節(jié):
對軟件開發(fā)過程進(jìn)行分析,定義開發(fā)軟件,探討軟件開發(fā)的可行性,撰寫開發(fā)工作計(jì)劃和報(bào)告書,確定軟件開發(fā)的總體方向,并明確每個(gè)階段過程要完成的任務(wù)。
通過與客戶進(jìn)行溝通交流,確定軟件開發(fā)的個(gè)性化需求,并對客戶的使用需求進(jìn)行清晰描述,撰寫需求分析報(bào)告,與客戶達(dá)成共識,共同確認(rèn)軟件開發(fā)的預(yù)期成果。
完成上述軟件開發(fā)準(zhǔn)備工作后,根據(jù)軟件開發(fā)計(jì)劃書和需求分析報(bào)告,對軟件架構(gòu)進(jìn)行總體設(shè)計(jì),綜合考慮系統(tǒng)功能性需求和性能需求,并進(jìn)行詳細(xì)方案設(shè)計(jì),確定軟件各組分的設(shè)計(jì)內(nèi)容,同時(shí)明確各組分之間的拼接方式。
完成總體方案設(shè)計(jì)和詳細(xì)設(shè)計(jì)后,由軟件工程師完成具體程序代碼的編寫過程,在此過程中,開發(fā)人員要合理選擇編碼模型和程序,完成各組分的編碼工作后,對軟件進(jìn)行拼接,逐步完成所有程序編碼任務(wù)。
完成軟件程序代碼編寫后,對軟件程序進(jìn)行測試,主要分為兩部分內(nèi)容,一是內(nèi)部測試,二是開發(fā)性測試。在編程完成后,首先由軟件開發(fā)人員對軟件進(jìn)行專業(yè)的內(nèi)部測試。然后由專門的程序測試人員或使用者,對軟件進(jìn)行試用性測試,找到軟件程序存在的問題,并對其進(jìn)行調(diào)試,確保軟件各項(xiàng)功能的正常發(fā)揮。
在軟件投入使用后,需要對它進(jìn)行維護(hù)管理,并在需要時(shí)進(jìn)行版本升級,以滿足客戶業(yè)務(wù)擴(kuò)展等方面的需求。[3]總體開發(fā)流程如圖1所示。
圖1 計(jì)算機(jī)軟件基本開發(fā)流程
通過逐步完成上述各個(gè)環(huán)節(jié)的軟件開發(fā)任務(wù),可以實(shí)現(xiàn)軟件開發(fā)目標(biāo),最大限度地滿足客戶需求。但在實(shí)際開發(fā)過程中,受人員、技術(shù)、開發(fā)環(huán)境等方面的影響,開發(fā)效率有高有低,軟件調(diào)試工作量和最終的軟件開發(fā)質(zhì)量也參差不齊。只有不斷更新軟件開發(fā)理念,采用先進(jìn)的軟件開發(fā)技術(shù),才能不斷提高軟件開發(fā)效率,為軟件開發(fā)質(zhì)量提供保障,減少后期調(diào)試、維護(hù)的工作量。[4]
嵌入式軟件具體是指嵌入在硬件中的軟件開發(fā)工具,其產(chǎn)業(yè)鏈主要包括芯片設(shè)計(jì)制造、嵌入式系統(tǒng)開發(fā)、嵌入式電子設(shè)備的開發(fā)和制造。其中,嵌入式系統(tǒng)是能夠獨(dú)立執(zhí)行某項(xiàng)功能操作的專用計(jì)算機(jī),具體包括微處理器、微控制器、定時(shí)器和傳感器等。[5]早期嵌入式系統(tǒng)開發(fā)采用硬件優(yōu)先原則,在估計(jì)軟件任務(wù)需求后,先完成硬件的設(shè)計(jì)與實(shí)現(xiàn),再利用硬件平臺完成軟件開發(fā)設(shè)計(jì)。但這種設(shè)計(jì)方式難以充分利用硬件資源,出現(xiàn)設(shè)計(jì)變更時(shí),還需要重新設(shè)計(jì)整個(gè)流程。隨著嵌入式技術(shù)的不斷成熟,目前主要采用軟硬件協(xié)同設(shè)計(jì)理念,最大限度地提高軟硬件能力,得到優(yōu)化設(shè)計(jì)方案。[6]
嵌入式軟件是嵌入式系統(tǒng)的重要組成部分,其本質(zhì)也屬于一種計(jì)算機(jī)軟件,包括系統(tǒng)型軟件、支撐型軟件和應(yīng)用型軟件三大類。目前,嵌入式軟件已經(jīng)被廣泛應(yīng)用于國防、工業(yè)、商業(yè)、醫(yī)療、通信產(chǎn)業(yè)等重要領(lǐng)域。[7]其中,被應(yīng)用于計(jì)算機(jī)軟件開發(fā)的主要是指嵌入式支撐軟件,此類軟件包含數(shù)據(jù)庫和各種開發(fā)工具,尤其提供的EMDBS數(shù)據(jù)庫可以作為某種特定計(jì)算的數(shù)據(jù)庫管理系統(tǒng),可運(yùn)行在計(jì)算機(jī)和各種移動智能設(shè)備上。利用嵌入式軟件為計(jì)算機(jī)軟件開發(fā)提供支持,可以提高軟件開發(fā)過程的資源整合能力和系統(tǒng)開發(fā)效率。[8]嵌入式軟件開發(fā)如圖2所示。
圖2 嵌入式軟件開發(fā)示意圖
基于嵌入式軟件的計(jì)算機(jī)軟件開發(fā)流程和上述介紹的軟件開發(fā)流程基本一致,總體可分為需求分析、總體結(jié)構(gòu)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼和程序測試等環(huán)節(jié)。在項(xiàng)目立項(xiàng)階段,根據(jù)市場信息反饋,編寫項(xiàng)目建議書,在對它進(jìn)行可行性分析后,簽發(fā)項(xiàng)目任務(wù)書,成立項(xiàng)目小組。在項(xiàng)目總體規(guī)劃階段,進(jìn)行軟件需求分析,并進(jìn)行需求分析評審,編制項(xiàng)目計(jì)劃書和風(fēng)險(xiǎn)控制計(jì)劃書,確定軟件開發(fā)里程規(guī)劃。在系統(tǒng)設(shè)計(jì)階段,根據(jù)需求分析和系統(tǒng)評審結(jié)果,編制結(jié)構(gòu)設(shè)計(jì)過程文檔和軟硬件設(shè)計(jì)過程文檔。完成總體和詳細(xì)設(shè)計(jì)后,開始進(jìn)行程序編碼,然后依次開展后續(xù)的測試和調(diào)試工作。
需要著重強(qiáng)調(diào)的是系統(tǒng)需求分析的準(zhǔn)確性,設(shè)計(jì)人員應(yīng)與客戶做好溝通,全面了解客戶需求,確定設(shè)計(jì)內(nèi)容,并嚴(yán)格按照要求編寫各類需求文檔,對客戶需求進(jìn)行清晰描述,包括系統(tǒng)的輸入輸出功能、運(yùn)行速度、軟件大小、功耗等性能需求。在嵌入式軟件的應(yīng)用過程中,會根據(jù)軟件開發(fā)中的具體過程,選擇使用不同的開發(fā)工具,提升軟件開發(fā)效率。比如,在軟件開發(fā)的需求分析階段,可以選擇Rational Rose等軟件,確保需求分析的全面性。在軟件編程和實(shí)現(xiàn)階段,則可以使用Code Warrior軟件,利用其提供的代碼組件,加快編程效率和代碼重復(fù)利用率。在系統(tǒng)調(diào)試階段,則可以使用Multi-ICE軟件,確保系統(tǒng)測試的全面性,及時(shí)發(fā)現(xiàn)程序漏洞,并進(jìn)行有效改進(jìn)。
3.3.1 明確應(yīng)用原理
在計(jì)算機(jī)軟件開發(fā)過程中,嵌入式軟件主要應(yīng)用在CORBA模型實(shí)現(xiàn)方面,具體分為兩個(gè)部分:一是實(shí)時(shí)處理技術(shù)的融入,二是在編程過程中應(yīng)用CORBA模型。在程序軟件的開發(fā)工作中,還可以充分利用嵌入式軟件提供的其他設(shè)計(jì)服務(wù)。利用嵌入式軟件進(jìn)行程序開發(fā)設(shè)計(jì),首先應(yīng)對軟件結(jié)構(gòu)進(jìn)行系統(tǒng)性劃分,為滿足軟件開發(fā)的實(shí)時(shí)性要求,在設(shè)計(jì)和編程過程中,要明確各結(jié)構(gòu)職責(zé),避免出現(xiàn)系統(tǒng)脫離現(xiàn)象。此外,還要通過設(shè)計(jì)和編程,實(shí)現(xiàn)結(jié)構(gòu)程序間的功能,為命令執(zhí)行安排好位置,確定各部分程序的優(yōu)先性,合理安排運(yùn)行方式。通過利用嵌入式軟件,提升系統(tǒng)的整體運(yùn)行效率。在軟件控制方面,要避免嵌入式系統(tǒng)的應(yīng)用造成時(shí)間變差,在進(jìn)行程序設(shè)計(jì)和編碼時(shí),應(yīng)做好時(shí)間管理,確保系統(tǒng)運(yùn)行的安全性和可靠性。
3.3.2 掌握設(shè)計(jì)要點(diǎn)
應(yīng)用嵌入式軟件的軟件開發(fā)設(shè)計(jì)要點(diǎn)主要體現(xiàn)在兩個(gè)方面:(1)在軟件程序的總體結(jié)構(gòu)設(shè)計(jì)方面,開發(fā)人員應(yīng)更加注重軟硬件系統(tǒng)的相互結(jié)合,實(shí)現(xiàn)軟硬件系統(tǒng)的系統(tǒng)設(shè)計(jì),這樣可以降低軟件程序?qū)τ谟布到y(tǒng)的依賴,提高軟件設(shè)計(jì)的實(shí)時(shí)性和運(yùn)行可靠性;(2)可以利用嵌入式軟件完成數(shù)據(jù)的初始化和格式化操作,設(shè)計(jì)和開發(fā)人員不需要對硬件資源設(shè)備進(jìn)行直接控制,能夠提升整體設(shè)計(jì)開發(fā)的工作效率,同時(shí)減少設(shè)計(jì)漏洞。設(shè)計(jì)人員應(yīng)在詳細(xì)了解嵌入式軟件開發(fā)功能的基礎(chǔ)上,更新設(shè)計(jì)理念和操作方式。
3.3.3 發(fā)揮技術(shù)優(yōu)勢
嵌入式軟件在計(jì)算機(jī)軟件開發(fā)過程中的應(yīng)用具有多方面的技術(shù)優(yōu)勢,其中較為突出的優(yōu)勢包括非交叉調(diào)試方式等。利用嵌入式軟件提供的仿真開發(fā)功能,可以解決以往交叉調(diào)試開發(fā)過程中存在的缺陷,綜合考慮軟件開發(fā)經(jīng)費(fèi)、目標(biāo)機(jī)環(huán)境、硬件芯片資源等問題,合理安排軟件開發(fā)進(jìn)程,避免因這些問題影響開發(fā)效率。此外,嵌入式軟件還具有成本低、性能強(qiáng)、可靠性高等諸多優(yōu)勢,即使發(fā)生突然斷電,也不會造成重要數(shù)據(jù)和程序丟失。而且嵌入式軟件的集成化程度高,運(yùn)行功耗較低,可以在計(jì)算機(jī)軟件開發(fā)的全生命周期內(nèi)為軟件開發(fā)提供有力支持。
總而言之,利用嵌入式軟件進(jìn)行計(jì)算機(jī)軟件開發(fā)是目前較為先進(jìn)的軟件開發(fā)技術(shù)之一,具有良好的應(yīng)用前景,在軟件開發(fā)過程中,應(yīng)充分發(fā)揮嵌入式軟件的各方面優(yōu)勢。
綜上所述,嵌入式軟件在軟件設(shè)計(jì)開發(fā)過程中的應(yīng)用通過融入實(shí)時(shí)處理技術(shù)、利用軟件提供的組件,可以明顯提高軟件開發(fā)效率。基于嵌入式軟件的軟件開發(fā)過程系統(tǒng)化程度更高,可以實(shí)現(xiàn)對資源的有效整合,并提高軟件的運(yùn)行合理性。因此,應(yīng)推廣嵌入式軟件在計(jì)算機(jī)軟件開發(fā)過程中的應(yīng)用,促進(jìn)軟件開發(fā)水平的整體提升。