【摘 要】隨著經(jīng)濟全球化的發(fā)展和計算機技術(shù)的普及,我國在計算機方面取得了巨大的發(fā)展和進步。自從“軟件工程”這一概念提出后的,我國在軟件工程方面不斷的努力,并取得了一些階段性的成果。但隨著科學技術(shù)的發(fā)展,如何利用新的軟件工程開發(fā)方法成為了軟件行業(yè)關(guān)注的熱門話題。
【關(guān)鍵詞】軟件工程 開發(fā)方法 現(xiàn)狀分析 發(fā)展方向 科學技術(shù)
軟件工程在這幾十年的發(fā)展中得到了廣泛的應(yīng)用,其中軟件工程開發(fā)的方法是軟件工程開發(fā)中最重要的一部分。目前軟件工程開發(fā)的方法多種多樣,隨著科學技術(shù)的發(fā)展,軟件工程開發(fā)方法將更加先進、更加人性化。我們通過下面的幾點,主要闡述軟件工程開發(fā)方法的現(xiàn)狀和未來發(fā)展的趨勢。
一、軟件工程開發(fā)方法發(fā)展歷程
軟件工程的概念是在一九六八年在北大西洋公約組織中的科學委員提出來的。軟件工程概念中主要就是提出將各個領(lǐng)域中有效的概念、原理、方法和技術(shù)以及人類在計算機硬件研究開發(fā)中的經(jīng)驗應(yīng)用到軟件開發(fā)中[1]。這個理論的提出,徹底將軟件開發(fā)工作推向了高潮。軟件開發(fā)的這幾十年中,軟件工程的開發(fā)方法不斷的改善和進步,主要進展的階段為:二十世紀六七十年代時,在該機語言的基礎(chǔ)上,結(jié)構(gòu)化方法首次出現(xiàn);二十世紀七八十年代,軟件工程開發(fā)中的輔助軟件工程成為了軟件行業(yè)研究的重點;二十世紀八九十年代,面向?qū)ο筌浖_發(fā)方法出現(xiàn),它是目前軟件工程開發(fā)方法史中最實用的一種方法。
隨著互聯(lián)網(wǎng)的普及和計算機技術(shù)的發(fā)展,對于軟件工程開發(fā)方法是一種挑戰(zhàn),也是一種機遇。軟件工程開發(fā)方法必須不斷提高,以滿足時代發(fā)展的需求,并不斷向前發(fā)展和進步。
二、 軟件工程開發(fā)方法及其現(xiàn)狀
(一)結(jié)構(gòu)化程序設(shè)計方法
軟件工程開發(fā)的早期開發(fā)活動的個體化現(xiàn)象非常的明顯,開發(fā)人員在編程過程中沒有統(tǒng)一的開發(fā)標準,程序員可以憑自己的主觀意識進行程序設(shè)計,為軟件維護人員帶來了不少的麻煩。這些問題的出現(xiàn)主要是因為那時的軟件行業(yè)的規(guī)模還比較小,開發(fā)的程序過于簡單,導(dǎo)致編程人員在編程中忽視了程序之外的軟件開發(fā)。在是否取消“goto”語句的討論中,軟件行業(yè)意識到不僅僅要取消“goto”語句,還要從根本上改變開發(fā)思想。根據(jù)使用順序、選擇、循環(huán)這三種基本程序結(jié)構(gòu),形成了具有良好可讀性、清晰性、易理解性的程序結(jié)構(gòu)標準。隨著這種程序的發(fā)展,就形成了結(jié)構(gòu)化程序設(shè)計方法。結(jié)構(gòu)化程序設(shè)計方法的應(yīng)用主要是建立在軟件工程生命周期的開發(fā)管理基礎(chǔ)上的,可以根據(jù)開發(fā)過程的進展速度和階段,將軟件工程中出現(xiàn)的問題分階段的去解決。結(jié)構(gòu)化開發(fā)方法包括Jackson方法、IDEFO方法和數(shù)據(jù)流圖方法等[2]。結(jié)構(gòu)化程序設(shè)計方法被認為是軟件工程開發(fā)方法中的一次重大突破。目前,結(jié)構(gòu)化方法雖然得到普遍應(yīng)用,但其不能解決對軟件重復(fù)使用的問題,并且在軟件維護方面比較復(fù)雜。
(二)面向?qū)ο蠓椒?/p>
面向?qū)ο蠓椒ǖ幕驹瓌t和出發(fā)點主要是對人類思維方法的模擬。面向?qū)ο筌浖_發(fā)方法主要包括:面向?qū)ο蠓治龇椒?、面向?qū)ο笤O(shè)計方法。軟件是由程序和文檔組成的,在面向?qū)ο蟪绦蛟O(shè)計方法中,形成類和對象的含義,利用對對象的分解代替原始的功能分解方法。這一方法對軟件開發(fā)方法的發(fā)展起到了很重要的作用,不僅可以使軟件多次利用,還能降低人們對代碼理解的難度,它被成為軟件工程開發(fā)方法史上的第二次突破。但是這種方法同樣存在著一些弊端,如對開發(fā)階段的劃分不夠清晰,一般情況下需要花費很多的時間才能完成對程序的分析和設(shè)計。
(三)形式化方法
隨著科學技術(shù)的發(fā)展和進步,計算機軟件被應(yīng)用到越來愈多的領(lǐng)域內(nèi),并不斷應(yīng)用到危險的領(lǐng)域內(nèi),如核反應(yīng)堆監(jiān)控、發(fā)射宇宙飛船、交通設(shè)施監(jiān)測等。計算機軟件在這些領(lǐng)域內(nèi)的應(yīng)用大大提高了軟件開發(fā)方法的難度,只有不斷對軟件開發(fā)方法進行改善和提高,軟件才能準確、安全地對其進行計算、監(jiān)控和應(yīng)用。為了適應(yīng)發(fā)展的需求,形式化方法就應(yīng)運而生了。軟件工程形式化方法主要是依靠數(shù)學模型和計算來描述和驗證軟件的運行和設(shè)計的,必須建立在嚴格的數(shù)學規(guī)范上。形式化方法的缺點也不容小視,首先是所使用的數(shù)學工具和模型不能保證完全的準確性和安全性;其次,數(shù)學規(guī)范在一個環(huán)境中并不一定只有一種解釋方法,因此,如何根據(jù)具體環(huán)境對其進行分析也是非常重要的。
三、軟件工程開發(fā)方法的發(fā)展趨勢
(一)敏捷軟件開發(fā)方法
敏捷軟件開發(fā)方法是在二十世紀九十年代以后出現(xiàn)的軟件開發(fā)方法,它是一種以人為核心、迭代、循序漸進的開發(fā)方法。敏捷軟件開發(fā)方法主要包括ASD、FDD、DSDM、XP等系統(tǒng)方法[3]。在這種方法的應(yīng)用中將軟件的項目的構(gòu)建分成多個小項目,在小的項目經(jīng)過測試合格后,達到能使軟件到達可持續(xù)運行的階段。敏捷軟件開發(fā)方法可以適應(yīng)臨時的變化,并快速反應(yīng),提倡合理利用,重視軟件生產(chǎn)率。目前,敏捷軟件開發(fā)方法還處于發(fā)展階段,隨著開發(fā)力度的增大,這種方法將不斷走向成熟。
(二)面向Agent的軟件開發(fā)方法
Agent的概念來源于資源分布式人工智能領(lǐng)域,自主性、駐留性和靈活性是它的重要特征。自主性主要是指Agent能根據(jù)外部環(huán)境的變化來控制自身的狀態(tài),不需要外部的干涉和控制;駐留性是指Agent可以感受到外部環(huán)境的變化;靈活性是指Agent能與其他復(fù)雜的行為進行連接。根據(jù)以上Agent的優(yōu)勢來看,它可以被廣泛應(yīng)用到各個領(lǐng)域。雖然目前面向Agent的軟件開發(fā)方法還不夠成熟,但隨著人們對它的不斷重視,這種方法一定可以取得更大的進步,為軟件開發(fā)行業(yè)帶來“第三次突破”。
四、結(jié)束語
隨著人們對軟件開發(fā)方法的重視程度的增加,軟件開發(fā)方法取得了很大的進展,想要適應(yīng)時代發(fā)展的需求,就必須在研究新的開發(fā)方法中,利用先進的科學技術(shù),不斷促進軟件行業(yè)的進步,帶動國民經(jīng)濟的發(fā)展。
參考文獻:
[1]程雙橋.現(xiàn)代軟件工程[M].清華大學出版社,2006,10(01):97-157.
[2]任勝兵,邢琳.軟件工程 [M].北京郵電大學出版社,2004,10(01):97-159.
[3]楊福慶.軟件工程技術(shù)發(fā)展思索[J].軟件學報,2005,06(09):14-15.