軟件開(kāi)發(fā)的流程及方法探究

2018-06-04 09:50:33


  隨著計(jì)算機(jī)應(yīng)用的日益普及和深入,人們對(duì)軟件的需求量急劇增加,但此時(shí)計(jì)算機(jī)軟件的開(kāi)發(fā)技術(shù)卻遠(yuǎn)遠(yuǎn)沒(méi)有跟上硬件技術(shù)的發(fā)展,使得軟件開(kāi)發(fā)的成本逐年劇增,更為嚴(yán)重的是,軟件的質(zhì)量沒(méi)有可靠的保證。軟件開(kāi)發(fā)的速度與計(jì)算機(jī)普及的速度不相適應(yīng),軟件開(kāi)發(fā)技術(shù)已經(jīng)成為影響計(jì)算機(jī)系統(tǒng)發(fā)展的“瓶頸”。早期所形成的計(jì)算機(jī)軟件開(kāi)發(fā)的錯(cuò)誤方式,嚴(yán)重阻礙了計(jì)算機(jī)軟件的發(fā)展,導(dǎo)致了20世紀(jì)60年代軟件危機(jī)的發(fā)生。20世紀(jì)60年代后期,西方的計(jì)算機(jī)科學(xué)家開(kāi)始認(rèn)真研究解決軟件危機(jī)的方法,提出借鑒工程界嚴(yán)密完整的工程設(shè)計(jì)思想來(lái)指導(dǎo)軟件的開(kāi)發(fā)與維護(hù),并取得了可喜的成果。軟件工程首次出現(xiàn)在1968年由NATO組織的一次計(jì)算機(jī)學(xué)術(shù)會(huì)議上,其目的是倡導(dǎo)工程的原理、原則和方法進(jìn)行軟件開(kāi)發(fā)。因此,一門新的學(xué)科一軟件工程學(xué)(Software Engineering)誕生了。軟件工程學(xué)是一門介于軟件科學(xué)、系統(tǒng)工程和工程管理學(xué)之間的邊緣性學(xué)科。隨著軟件的發(fā)展和商品化,軟件工程學(xué)的研究范圍越來(lái)越廣,是軟件開(kāi)發(fā)過(guò)程的理論指導(dǎo)。主要包括可行性分析、項(xiàng)目計(jì)劃與質(zhì)量管理、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序設(shè)計(jì)、軟件測(cè)試、系統(tǒng)實(shí)施、軟件維護(hù)和文檔規(guī)范等內(nèi)容。軟件開(kāi)發(fā)流程就是遵循著軟件工程的理論基礎(chǔ)來(lái)進(jìn)行的。

  

  1 國(guó)內(nèi)外軟件工程理論應(yīng)用現(xiàn)狀

  

  國(guó)外的軟件工程理論的應(yīng)用相對(duì)比較成熟,其中表現(xiàn)最為突出的是印度。印度作為亞洲最大的軟件外包大國(guó)之一,其軟件工程的思想在軟件開(kāi)發(fā)流程中的應(yīng)用是比較好的。整個(gè)軟件開(kāi)發(fā)過(guò)程已經(jīng)完全成為一個(gè)流程化的過(guò)程。其軟件開(kāi)發(fā)行業(yè)30%以上的編程人員的流動(dòng)性對(duì)軟件開(kāi)發(fā)工程不會(huì)造成什么影響,可見(jiàn)他們的編程規(guī)范及流程規(guī)劃的水平。從以下特點(diǎn)之中可以找到其軟件開(kāi)發(fā)行業(yè)發(fā)展如此成熟的答案。(1)流程重于項(xiàng)目:(2)軟件質(zhì)量管理獨(dú)立于研發(fā)部門,專門檢查研發(fā)部門的開(kāi)發(fā)流程是不是按照既定流程走,如果軟件質(zhì)量管理人員覺(jué)得流程不對(duì),會(huì)直接上報(bào)高層,項(xiàng)目肯定就此停止;(3)所有的東西(包括草稿)都有文檔,詳細(xì)文檔要求達(dá)到只有這個(gè)文檔就可以編碼的程度,一般寫文檔時(shí)間占60%,編碼時(shí)間極少;(4)有各種詳細(xì)的同行評(píng)審,包括項(xiàng)目組內(nèi),項(xiàng)目組件以及與客戶之間的溝通,而中國(guó)相對(duì)于印度而言差距很大,這種差距不在于研發(fā)技術(shù)是否先進(jìn),而是在于軟件工程的思想重視與運(yùn)用水平的差距。從開(kāi)發(fā)團(tuán)隊(duì)上來(lái)看,中國(guó)的開(kāi)發(fā)團(tuán)隊(duì)人員過(guò)少,僅僅是“作坊式”的開(kāi)發(fā)方式,軟件的生產(chǎn)速度、產(chǎn)量和品質(zhì)上都與印度等國(guó)家差距日漸變大。因此,從根本上重視軟件工程的開(kāi)發(fā)思想,嚴(yán)格執(zhí)行軟件開(kāi)發(fā)的規(guī)范流程,將是改變我國(guó)當(dāng)前軟件開(kāi)發(fā)現(xiàn)狀的有效途徑。

  

  2 軟件系統(tǒng)開(kāi)發(fā)流程分析

  

  典型的軟件過(guò)程有Waterfall Model(瀑布模式)、Iter-ative&Incremental Model(反復(fù)漸進(jìn)模式)Spiral Mod-el(螺旋模式),無(wú)論采用哪種模型方式,軟件開(kāi)發(fā)過(guò)程最起碼要包括支持軟件整個(gè)生命期的活動(dòng);镜纳嬷芷诎ㄜ浖(jì)劃、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼及單元測(cè)試、綜合測(cè)試、移交及軟件維護(hù)。

  由此可以看出,需求分析階段是軟件開(kāi)發(fā)流程的第一步,是軟件開(kāi)發(fā)最首要的工作,直接影響到軟件設(shè)計(jì)和開(kāi)發(fā)的一切流程。如果需求分析工作不到位,將會(huì)導(dǎo)致與用戶要求存在偏差的嚴(yán)重后果。國(guó)內(nèi)軟件企業(yè)對(duì)需求分析工作的重視程度普遍低于流程中的設(shè)計(jì)和開(kāi)發(fā)。國(guó)內(nèi)大部分企業(yè)特別是小軟件企業(yè)將70%的時(shí)間花在軟件設(shè)計(jì)開(kāi)發(fā)上,需求分析過(guò)程只占整個(gè)流程中的15%。相比之下,國(guó)外開(kāi)發(fā)企業(yè)是40%的時(shí)間進(jìn)行需求分析,比設(shè)計(jì)開(kāi)發(fā)時(shí)間還多10%。需求分析階段要根據(jù)軟件開(kāi)發(fā)需求特點(diǎn)確定采用何種軟件工程方法進(jìn)行設(shè)計(jì)。目前比較典型的方法有結(jié)構(gòu)化的方法、面向?qū)ο蟮姆椒、基于?gòu)件的方法、基于A-gent的方法、基于凈室技術(shù)以及基于敏捷技術(shù)的方法等。由于后三種方法相對(duì)是針對(duì)某些特殊用途而產(chǎn)生的,適用性上有很大的局限性,有待進(jìn)一步完善,因此,僅對(duì)主要的三種方法在操作單位、方法特性等方面進(jìn)行了比較。

  從表中可以看出,基于組件和面向?qū)ο蟮姆椒ǜm合于當(dāng)前復(fù)雜的開(kāi)發(fā)應(yīng)用,成為當(dāng)前的主流方法。需求分析階段還包括可行性研究,需求確認(rèn)和需求復(fù)合等工作。對(duì)于設(shè)計(jì)階段而言,包括總體設(shè)計(jì)、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),同時(shí)形成相應(yīng)的文檔。然后進(jìn)行編碼的實(shí)現(xiàn),綜合全面的測(cè)試,包括單元測(cè)試、系統(tǒng)間測(cè)試、系統(tǒng)整體測(cè)試、性能測(cè)試、極限測(cè)試以及上線的運(yùn)行測(cè)試等,最后進(jìn)行文檔、培訓(xùn)和維護(hù)的工作。中間某些環(huán)節(jié)會(huì)根據(jù)實(shí)際的用戶需求的改變進(jìn)行反饋,修改和完善。

  

  3 結(jié)束語(yǔ)

  

  綜上所述,軟件工程技術(shù)和方法在不斷發(fā)展.為了設(shè)計(jì)出大規(guī)模、復(fù)雜度高的軟件,必須有更高水準(zhǔn)的結(jié)構(gòu)設(shè)計(jì)技術(shù)。目前越來(lái)越受到軟件工程研究者關(guān)注的是把對(duì)象群作為角色、將各種角色進(jìn)行拼裝組合的技術(shù)。不管是已經(jīng)出現(xiàn)的技術(shù),還是行將推出的方法,十全十美的軟件開(kāi)發(fā)方法是難以尋覓的,真正實(shí)用的技術(shù)或方法往往是多種開(kāi)發(fā)方法的結(jié)合。