紀(jì)志勇
摘要:互聯(lián)網(wǎng)時(shí)代下,計(jì)算機(jī)系統(tǒng)的應(yīng)用愈加廣泛,在人們?nèi)粘I詈凸ぷ髦邪缪葜又匾慕巧?。而系統(tǒng)軟件是控制計(jì)算機(jī)系統(tǒng)正常運(yùn)行、實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)功能的重要組成部分,系統(tǒng)軟件開(kāi)發(fā)質(zhì)量直接影響著計(jì)算機(jī)系統(tǒng)在各行各業(yè)的應(yīng)用。本文主要介紹了系統(tǒng)軟件開(kāi)發(fā)和軟件工程技術(shù)的概念,同時(shí)從系統(tǒng)軟件開(kāi)發(fā)過(guò)程的軟件項(xiàng)目開(kāi)發(fā)計(jì)劃、軟件需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試與維護(hù)等階段詳細(xì)地闡述了軟件工程技術(shù)的應(yīng)用。
關(guān)鍵詞:系統(tǒng)軟件;軟件工程技術(shù);軟件開(kāi)發(fā)
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)16-0230-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
軟件工程技術(shù)是系統(tǒng)軟件開(kāi)發(fā)的重要工具,在提高系統(tǒng)軟件創(chuàng)新性和開(kāi)發(fā)效率方面具有重要作用。互聯(lián)網(wǎng)時(shí)代下,系統(tǒng)軟件的開(kāi)發(fā)、應(yīng)用不僅有利于軟件行業(yè)的發(fā)展,同時(shí)對(duì)科學(xué)技術(shù)的發(fā)展和居民生活水平的提高都具有積極意義。
1系統(tǒng)軟件開(kāi)發(fā)與軟件工程技術(shù)概述
1.1系統(tǒng)軟件開(kāi)發(fā)
系統(tǒng)軟件是指調(diào)度、監(jiān)控和維護(hù)計(jì)算機(jī)系統(tǒng),保證其正常運(yùn)行和支持應(yīng)用軟件功能實(shí)現(xiàn)的那部分軟件。常見(jiàn)的系統(tǒng)軟件有Windows操作系統(tǒng)、UNIX 操作系統(tǒng)、C語(yǔ)言編譯、匯編語(yǔ)言匯編器和數(shù)據(jù)庫(kù)管理系統(tǒng)[1]。系統(tǒng)軟件還具有以下特征:能解決并發(fā)操作處理中的協(xié)調(diào)問(wèn)題、調(diào)度管理資源共享、用戶可以反復(fù)使用、與硬件有很強(qiáng)的交互性。
系統(tǒng)軟件開(kāi)發(fā)是指依據(jù)用戶要求設(shè)計(jì)、開(kāi)發(fā)、實(shí)現(xiàn)某種計(jì)算機(jī)功能的系統(tǒng)軟件或系統(tǒng)軟件中的一部分的過(guò)程。與傳統(tǒng)應(yīng)用軟件開(kāi)發(fā)相比,系統(tǒng)軟件開(kāi)發(fā)復(fù)雜性更高,而且開(kāi)發(fā)期間的問(wèn)題域是不可結(jié)構(gòu)化的[2]。例如系統(tǒng)軟件是控制計(jì)算機(jī)系統(tǒng)的重要工具,負(fù)責(zé)協(xié)調(diào)管理多種運(yùn)行程序,其內(nèi)部結(jié)構(gòu)復(fù)雜,功能板塊之間的耦合性較強(qiáng),一旦修改其中某一模塊,很可能影響到整個(gè)系統(tǒng)的正常運(yùn)行,最典型的UNIX操作系統(tǒng)。
1.2軟件工程技術(shù)
軟件工程技術(shù)是以軟件開(kāi)發(fā)為目的的計(jì)算機(jī)工程技術(shù)的總稱,一般包括軟件項(xiàng)目開(kāi)發(fā)計(jì)劃、軟件需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試和軟件維護(hù)等幾部分。其中軟件項(xiàng)目開(kāi)發(fā)計(jì)劃是軟件開(kāi)發(fā)單位依據(jù)現(xiàn)有資源條件做出的軟件開(kāi)發(fā)整體方案,同時(shí)做出軟件開(kāi)發(fā)可行性分析。軟件需求分析是指軟件開(kāi)發(fā)單位依據(jù)用戶需求對(duì)軟件開(kāi)發(fā)目標(biāo)的深入探討,分析開(kāi)發(fā)軟件應(yīng)滿足什么要求,能夠解決哪些問(wèn)題等[3]。軟件設(shè)計(jì)是構(gòu)建軟件開(kāi)發(fā)模型,依照先整體、再部分設(shè)計(jì)軟件總體結(jié)構(gòu)和功能模塊。軟件實(shí)現(xiàn)是編寫軟件應(yīng)用程序,調(diào)試軟件功能。軟件測(cè)試是對(duì)開(kāi)發(fā)軟件的性能進(jìn)行測(cè)試,在保證實(shí)現(xiàn)用戶需求的軟件功能實(shí)現(xiàn)基礎(chǔ)上,盡可能提高軟件運(yùn)行可靠性、穩(wěn)定性。
2軟件工程技術(shù)在系統(tǒng)軟件開(kāi)發(fā)過(guò)程中的應(yīng)用
2.1軟件項(xiàng)目開(kāi)發(fā)計(jì)劃
軟件項(xiàng)目開(kāi)發(fā)計(jì)劃階段的主要工作內(nèi)容是確定軟件開(kāi)發(fā)目標(biāo)和總體要求,結(jié)合開(kāi)發(fā)單位自身?xiàng)l件進(jìn)行可行性分析、投資-效益分析,制定軟件開(kāi)發(fā)計(jì)劃??尚行苑治鰪慕?jīng)濟(jì)可行性、技術(shù)可行性、法律可行性、操作可行性和時(shí)間可行性五方面分析[4]。
2.2軟件需求分析
軟件需求分析是軟件開(kāi)發(fā)的前端,需要分析人員充分與用戶、軟件開(kāi)發(fā)小組溝通交流,結(jié)合軟件原型、軟件需求、軟件開(kāi)發(fā)計(jì)劃和可行性報(bào)告進(jìn)一步確定開(kāi)發(fā)軟件的使用與功能實(shí)現(xiàn)需求,示意圖如下圖1所示。在實(shí)際開(kāi)發(fā)期間,應(yīng)積極了解用戶需求,依此確定軟件開(kāi)發(fā)方向和重點(diǎn),提高軟件開(kāi)發(fā)效益。
目前常見(jiàn)的軟件需求分析方法有面向數(shù)據(jù)流結(jié)構(gòu)化分析方法(SA)、Jackson方法(JSD)/結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)的開(kāi)發(fā)方法(DSSD)和面向?qū)ο蟮姆治龇椒ǎ∣OA)等。以SA方法為例,SA方法是一種版形式化的建模技術(shù)分析客戶需求,構(gòu)建描述數(shù)據(jù)和行為的模型。其步驟如下:第一,DFD 圖描述原型系統(tǒng)的“具體模型”[5]。第二,分析“具體模型”本質(zhì)元素,用DFD 圖描述當(dāng)前系統(tǒng)的“邏輯模型”。第三,分析當(dāng)前系統(tǒng)和目標(biāo)系統(tǒng)功能實(shí)現(xiàn)邏輯上的差別,明確目標(biāo)系統(tǒng)“問(wèn)題”,并DFD 圖描述目標(biāo)系統(tǒng)邏輯模型。為簡(jiǎn)化需求分析過(guò)程和便于用戶、軟件開(kāi)發(fā)參與方理解,結(jié)構(gòu)化分析常使用圖形表達(dá)需求。比如,?表示數(shù)據(jù)源點(diǎn)或終點(diǎn)、?表示處理或加工、=表示數(shù)據(jù)存儲(chǔ)、→表示數(shù)據(jù)流。而面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法則是通過(guò)數(shù)據(jù)元素之間的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)進(jìn)行需求分析。DSSD方法是自上向下地對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行劃分,同時(shí)由整體-部分、由頂層-基層逐步分析各結(jié)構(gòu)、各模塊用戶需求。OOA方法是依據(jù)抽象、封裝、繼承、比例等原則,參照現(xiàn)實(shí)系統(tǒng)分析用戶需求的方法。
2.3軟件設(shè)計(jì)
軟件設(shè)計(jì)階段的主要工作是構(gòu)建軟件開(kāi)發(fā)模型、項(xiàng)目管理模型和組織公共模型。目前常見(jiàn)的軟件開(kāi)發(fā)模型有以下幾種:
(1)瀑布模型
瀑布模型是結(jié)構(gòu)化方法中常用的開(kāi)發(fā)模型,在軟件開(kāi)發(fā)生命周期中各個(gè)活動(dòng)按照先后順序如同瀑布流水逐級(jí)下落(如圖2所示)[6]。瀑布模型具有如下優(yōu)點(diǎn):為軟件開(kāi)發(fā)各階段提供一個(gè)整體指導(dǎo)方案、有利于開(kāi)發(fā)人員逐級(jí)控制開(kāi)發(fā)質(zhì)量和成本。缺點(diǎn)如下:各階段工作完全固定,只有每一階段工作完全結(jié)束后才能得知下階段開(kāi)發(fā)風(fēng)險(xiǎn)、一旦客戶需求前期表達(dá)不充分可能會(huì)導(dǎo)致整個(gè)項(xiàng)目開(kāi)發(fā)失敗??梢?jiàn),該模型的使用要求主要取決于軟件開(kāi)發(fā)全過(guò)程客戶需求變化程度以及在前期工作中對(duì)客戶需求的理解程度。
(2)螺旋模型
螺旋模型是以瀑布模型和演化模型為基礎(chǔ),融合兩者優(yōu)點(diǎn)而構(gòu)建的軟件項(xiàng)目開(kāi)發(fā)模型(如下圖3所示)。該模型全生命周期包括以下四個(gè)步驟:第一,明確軟件開(kāi)發(fā)目標(biāo)、限制條件和功能需求,制定軟件開(kāi)發(fā)計(jì)劃。第二,分析、識(shí)別軟件開(kāi)發(fā)方案中的是技術(shù)風(fēng)險(xiǎn)、經(jīng)濟(jì)風(fēng)險(xiǎn),并盡可能提出改進(jìn)建議,消除、降低風(fēng)險(xiǎn)[7]。第三,軟件開(kāi)發(fā)實(shí)施過(guò)程,驗(yàn)證階段性的產(chǎn)品。第四,用戶評(píng)價(jià)并提出建議,構(gòu)建下一階段軟件開(kāi)發(fā)計(jì)劃。該模型具有如下優(yōu)點(diǎn):能夠適應(yīng)用戶需求的動(dòng)態(tài)變化,軟件開(kāi)發(fā)負(fù)責(zé)人可以及時(shí)調(diào)整開(kāi)發(fā)計(jì)劃、各階段沒(méi)有明顯接線,開(kāi)發(fā)人員可以同步工作,提高軟件開(kāi)發(fā)效率。缺點(diǎn)如下:人力資源成本增加、對(duì)軟件開(kāi)發(fā)項(xiàng)目風(fēng)險(xiǎn)評(píng)估要求較高,一旦未能及時(shí)識(shí)別風(fēng)險(xiǎn),勢(shì)必會(huì)造成損失。
(3)噴泉模型
噴泉模型是以用戶需求為動(dòng)力驅(qū)動(dòng)的模型,適合于面向?qū)ο蟮拈_(kāi)發(fā)方法(如圖4所示)。該模型最明顯的特點(diǎn)是迭代性和無(wú)間隙性,即軟件開(kāi)發(fā)活動(dòng)需要多次重復(fù),在迭代過(guò)程中完善。而且各階段軟件開(kāi)發(fā)活動(dòng)不存在明顯便捷,允許分析、設(shè)計(jì)和編碼人員同步開(kāi)始工作。該模型優(yōu)點(diǎn)如下:節(jié)省軟件開(kāi)發(fā)時(shí)間,提高效率。缺點(diǎn)如下:各階段工作重疊,不利于管理。
(4)增量模型
增量模型是一種迭代模型,該模型示意圖如圖5所示。隨著時(shí)間的遞進(jìn),客戶對(duì)每一個(gè)增量的評(píng)估和建議都可以作為下一個(gè)增量的新需求,在此基礎(chǔ)上迭代直至開(kāi)發(fā)出符合客戶需求的、功能完善的軟件。該模型具有如下優(yōu)點(diǎn):初期投資少,降低開(kāi)發(fā)風(fēng)險(xiǎn)、可以減少用戶需求變更次數(shù)。缺點(diǎn)如下:管理成本增加、對(duì)前期用戶需求分析要求較高。
除此之外,項(xiàng)目管理模型有利于軟件開(kāi)發(fā)單位充分整合現(xiàn)有資源條件和優(yōu)化組織架構(gòu)對(duì)軟件項(xiàng)目開(kāi)發(fā)進(jìn)行項(xiàng)目工程化管理,在保證軟件項(xiàng)目開(kāi)發(fā)質(zhì)量的前提下,盡可能地提高項(xiàng)目開(kāi)發(fā)效益。組織公共模型則有利于協(xié)助軟件開(kāi)發(fā)人員及時(shí)找尋系統(tǒng)軟件開(kāi)發(fā)中存在的問(wèn)題,以便及時(shí)診斷錯(cuò)誤,制定相應(yīng)的解決方案。
2.4軟件實(shí)現(xiàn)
軟件實(shí)現(xiàn)階段的主要工作是軟件應(yīng)用程序的開(kāi)發(fā),通過(guò)軟件編碼將用戶需求和軟件實(shí)用功能轉(zhuǎn)換成可以通過(guò)計(jì)算機(jī)接受并實(shí)現(xiàn)的程序。在編碼器將一方面要制定統(tǒng)一、標(biāo)準(zhǔn)的編寫規(guī)范,保證程序的可讀性,提高系統(tǒng)軟件運(yùn)行效率,降低后期運(yùn)行故障風(fēng)險(xiǎn),另一方面應(yīng)結(jié)合用戶需求和計(jì)算機(jī)實(shí)際運(yùn)行環(huán)節(jié)編寫出正確的、易理解和易維護(hù)的程序模塊。
2.5軟件測(cè)試與維護(hù)
軟件測(cè)試與維護(hù)是軟件項(xiàng)目開(kāi)發(fā)的最后階段,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),軟件開(kāi)發(fā)小組在軟件設(shè)計(jì)完成后應(yīng)從單元測(cè)試、組裝測(cè)試和系統(tǒng)測(cè)試三個(gè)階段測(cè)試軟件在計(jì)算機(jī)系統(tǒng)中實(shí)際運(yùn)行中的功能實(shí)現(xiàn)與性能,一經(jīng)發(fā)現(xiàn)問(wèn)題應(yīng)立刻予以糾正。目前常見(jiàn)的測(cè)試方法有黑盒法和白盒法,分別對(duì)源程序和軟件的功能性需求。軟件維護(hù)是針對(duì)開(kāi)發(fā)后軟件的改進(jìn)活動(dòng),使其更好地滿足用戶需求。在實(shí)際維護(hù)期間,相關(guān)人員還需以書面和電子報(bào)告的形式記錄、保存軟件錯(cuò)誤診斷、維護(hù)要求、計(jì)劃、程序測(cè)試和驗(yàn)收等過(guò)程和結(jié)果。
3 結(jié)論
軟件工程技術(shù)是一項(xiàng)現(xiàn)代化應(yīng)用技術(shù),在系統(tǒng)軟件工程開(kāi)發(fā)中起著至關(guān)重要的作用。在系統(tǒng)軟件實(shí)際開(kāi)發(fā)期間,軟件開(kāi)發(fā)人員應(yīng)遵循科學(xué)性和實(shí)用性原則,在軟件項(xiàng)目開(kāi)發(fā)計(jì)劃、軟件需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試與維護(hù)等階段依據(jù)用戶需求和實(shí)際開(kāi)發(fā)環(huán)境、條件選擇合理的軟件工程技術(shù),以提高其應(yīng)用的有效性。
參考文獻(xiàn):
[1] 龐崇高.數(shù)據(jù)庫(kù)設(shè)計(jì)中軟件工程技術(shù)的作用探析——評(píng)《數(shù)據(jù)庫(kù)及其應(yīng)用》[J].電鍍與精飾,2020,42(4):49.
[2] 樂(lè)藝.面向?qū)ο筌浖こ碳夹g(shù)在船舶綜合信息系統(tǒng)的應(yīng)用[J].艦船科學(xué)技術(shù),2018,40(16):109-111.
[3] 劉穎.軟件工程技術(shù)在系統(tǒng)軟件開(kāi)發(fā)中的運(yùn)用[J].電子技術(shù)與軟件工程,2019(5):31.
[4] 劉光久.軟件工程技術(shù)在系統(tǒng)軟件開(kāi)發(fā)過(guò)程的應(yīng)用分析[J].花炮科技與市場(chǎng),2019,25(2):212.
[5] 王瑞錦,文淑華,周世杰,等.螺旋遞進(jìn)式的軟件工程實(shí)踐教學(xué)體系探索[J].實(shí)驗(yàn)技術(shù)與管理,2018,35(2):174-178.
[6] 邵曰攀.軟件工程技術(shù)在計(jì)算機(jī)系統(tǒng)軟件開(kāi)發(fā)中的應(yīng)用[J].數(shù)字化用戶,2017(3):61.
【通聯(lián)編輯:唐一東】