国产精品久久777777网站,男生天堂精品2020在线,国产精品久久久久一级毛片,体育老师在单杠C了我一节课视频

軟件開發(fā)流程方法探析

2018-07-24 13:55:34

隨著計算機應用的日益普及和深入,人們對軟件的需求量急劇增加,但此時計算機軟件的開發(fā)技術(shù)卻遠遠沒有跟上硬件技術(shù)的發(fā)展,使得軟件開發(fā)的成本逐年劇增,更為嚴重的是,軟件的質(zhì)量沒有可靠的保證。軟件開發(fā)的速度與計算機普及的速度不相適應,軟件開發(fā)技術(shù)已經(jīng)成為影響計算機系統(tǒng)發(fā)展的“瓶頸”。早期所形成的計算機軟件開發(fā)的錯誤方式,嚴重阻礙了計算機軟件的發(fā)展,導致了20世紀60年代軟件危機的發(fā)生。20世紀60年代后期,西方的計算機科學家開始認真研究解決軟件危機的方法,提出借鑒工程界嚴密完整的工程設(shè)計思想來指導軟件的開發(fā)與維護,并取得了可喜的成果。軟件工程首次出現(xiàn)在1968年由NATO組織的一次計算機學術(shù)會議上,其目的是倡導工程的原理、原則和方法進行軟件開發(fā)。因此,一門新的學科一軟件工程學(Software Engineering)誕生了。軟件工程學是一門介于軟件科學、系統(tǒng)工程和工程管理學之間的邊緣性學科。隨著軟件的發(fā)展和商品化,軟件工程學的研究范圍越來越廣,是軟件開發(fā)過程的理論指導。主要包括可行性分析、項目計劃與質(zhì)量管理、需求分析、總體設(shè)計、詳細設(shè)計、程序設(shè)計、軟件測試、系統(tǒng)實施、軟件維護和文檔規(guī)范等內(nèi)容。軟件開發(fā)流程就是遵循著軟件工程的理論基礎(chǔ)來進行的。
1 國內(nèi)外軟件工程理論應用現(xiàn)狀
國外的軟件工程理論的應用相對比較成熟,其中表現(xiàn)最為突出的是印度。印度作為亞洲最大的軟件外包大國之一,其軟件工程的思想在軟件開發(fā)流程中的應用是比較好的。整個軟件開發(fā)過程已經(jīng)完全成為一個流程化的過程。其軟件開發(fā)行業(yè)30%以上的編程人員的流動性對軟件開發(fā)工程不會造成什么影響,可見他們的編程規(guī)范及流程規(guī)劃的水平。從以下特點之中可以找到其軟件開發(fā)行業(yè)發(fā)展如此成熟的答案。
(1)流程重于項目;
(2)軟件質(zhì)量管理獨立于研發(fā)部門,專門檢查研發(fā)部門的開發(fā)流程是不是按照既定流程走,如果軟件質(zhì)量管理人員覺得流程不對,會直接上報高層,項目肯定就此停止;
(3)所有的東西(包括草稿)都有文檔,詳細文檔要求達到只有這個文檔就可以編碼的程度,一般寫文檔時間占60%,編碼時間極少;
(4)有各種詳細的同行評審,包括項目組內(nèi),項目組件以及與客戶之間的溝通,而中國相對于印度而言差距很大,這種差距不在于研發(fā)技術(shù)是否先進,而是在于軟件工程的思想重視與運用水平的差距。從開發(fā)團隊上來看,中國的開發(fā)團隊人員過少,僅僅是“作坊式”的開發(fā)方式,軟件的生產(chǎn)速度、產(chǎn)量和品質(zhì)上都與印度等國家差距日漸變大。因此,從根本上重視軟件工程的開發(fā)思想,嚴格執(zhí)行軟件開發(fā)的規(guī)范流程,將是改變我國當前軟件開發(fā)現(xiàn)狀的有效途徑。
2 軟件系統(tǒng)開發(fā)流程分析
典型的軟件過程有Waterfall Model(瀑布模式)、Iter-ative&Incremental Model(反復漸進模式)和Spiral Mod-el(螺旋模式),無論采用哪種模型方式,軟件開發(fā)過程最起碼要包括支持軟件整個生命期的活動;镜纳嬷芷诎ㄜ浖媱、需求分析、總體設(shè)計、詳細設(shè)計、編碼及單元測試、綜合測試、移交及軟件維護。
由此可以看出,需求分析階段是軟件開發(fā)流程的第一步,是軟件開發(fā)最首要的工作,直接影響到軟件設(shè)計和開發(fā)的一切流程。如果需求分析工作不到位,將會導致與用戶要求存在偏差的嚴重后果。國內(nèi)軟件企業(yè)對需求分析工作的重視程度普遍低于流程中的設(shè)計和開發(fā)。國內(nèi)大部分企業(yè)特別是小軟件企業(yè)將70%的時間花在軟件設(shè)計開發(fā)上,需求分析過程只占整個流程中的15%。相比之下,國外開發(fā)企業(yè)是40%的時間進行需求分析,比設(shè)計開發(fā)時間還多10%。需求分析階段要根據(jù)軟件開發(fā)需求特點確定采用何種軟件工程方法進行設(shè)計。目前比較典型的方法有結(jié)構(gòu)化的方法、面向?qū)ο蟮姆椒、基于?gòu)件的方法、基于A-gent的方法、基于凈室技術(shù)以及基于敏捷技術(shù)的方法等。由于后三種方法相對是針對某些特殊用途而產(chǎn)生的,適用性上有很大的局限性,有待進一步完善,因此,僅對主要的三種方法在操作單位、方法特性等方面進行了比較.     
軟件工程技術(shù)和方法在不斷發(fā)展.為了設(shè)計出大規(guī)模、復雜度高的軟件,必須有更高水準的結(jié)構(gòu)設(shè)計技術(shù)。目前越來越受到軟件工程研究者關(guān)注的是把對象群作為角色、將各種角色進行拼裝組合的技術(shù)。不管是已經(jīng)出現(xiàn)的技術(shù),還是行將推出的方法,十全十美的軟件開發(fā)方法是難以尋覓的,真正實用的技術(shù)或方法往往是多種開發(fā)方法的結(jié)合。