【摘要】隨著計算機技術(shù)的飛速發(fā)展,軟件開發(fā)經(jīng)歷了從研發(fā)到創(chuàng)新和不斷完善的歷程。本文就軟件開發(fā)方法的現(xiàn)狀進行分析,探討軟件開發(fā)方法的創(chuàng)新發(fā)展過程,以便為今后軟件開發(fā)方法的創(chuàng)新提供依據(jù),促進軟件的全面發(fā)展。
【關(guān)鍵詞】軟件開發(fā) 創(chuàng)新 方法 發(fā)展過程
一、引言
在軟件工程中,軟件開發(fā)方法是其重要的內(nèi)容,在軟件開發(fā)方法中,需要明確開發(fā)軟件的目的和方法及用途。人們在不同時期,對軟件開發(fā)方法具有不同的看法,每種軟件開發(fā)方法具有靈活多樣的表現(xiàn)形式。根據(jù)軟件工程進行分析,可以看出軟件開發(fā)方法在不斷的創(chuàng)新發(fā)展,根據(jù)時代的不同,開發(fā)出不同的軟件方法。在將來,軟件開發(fā)方法還會不停的進行創(chuàng)新發(fā)展。
二、軟件開發(fā)方法的現(xiàn)狀
(一)結(jié)構(gòu)化軟件開發(fā)方法
結(jié)構(gòu)化方法的使用主要是建立在軟件工程生命周期開發(fā)管理的基礎(chǔ)上,需要根據(jù)軟件工程的開發(fā)過程中的不同發(fā)展階段,將軟件工程中復(fù)雜的問題進行分階段解決,是一種自下而上的分解過程。由于通過階段分解,在每個階段中所進行的工作和所面對的問題都在人們的理解和便于處理的范圍內(nèi)。這種開發(fā)方法的典型代表有IDEFO方法、Jackson方法、數(shù)據(jù)流圖方法等。其中結(jié)構(gòu)化程序設(shè)計方法中的思維創(chuàng)新在程序開發(fā)方法發(fā)展中是至關(guān)重要的創(chuàng)新發(fā)展過程。并在一定程度上促進了結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化分析方法的發(fā)展。目前結(jié)構(gòu)化方法仍占據(jù)著重要的作用,其具有比較成熟的技術(shù),使用比較簡單,因此,其應(yīng)用領(lǐng)域較廣,但在一些復(fù)雜或大規(guī)模的軟件工程中,結(jié)構(gòu)化軟件開發(fā)方法對軟件的重復(fù)使用問題的解決不夠理想,無法適應(yīng)軟件工程需求的變化,并在軟件維護方面具有較強的復(fù)雜性。
(二)面向?qū)ο蟮能浖_發(fā)方法
面向?qū)ο蟮姆椒ɑ驹瓌t和出發(fā)點主要是對人類的思維方式進行模擬,從而使得軟件開發(fā)的整個過程最大化的接近人類對世界的認識。從方法論的角度分析,面向?qū)ο蟮能浖_發(fā)方法主要是將系統(tǒng)作為一個由多種對象相互作用、相互關(guān)聯(lián)而形成的整體。在軟件工程中,軟件由文檔和程序兩部分組成,程序是由算法和數(shù)據(jù)機構(gòu)共同構(gòu)成的,在傳統(tǒng)的軟件開發(fā)過程中,操作和數(shù)據(jù)被分離是獨立的內(nèi)容,但在實際上,數(shù)據(jù)是靜態(tài)的屬性,操作是動態(tài)的屬性,兩者的聯(lián)系比較密切。在傳統(tǒng)的程序開發(fā)中,將兩者進行分離,從而增加了軟件開發(fā)的難度。在面向?qū)ο蟮姆椒ㄖ?,軟件開發(fā)過程中的劃分比較模糊,從而使得軟件分析和設(shè)計出現(xiàn)多次迭代的現(xiàn)象。
三、軟件開發(fā)方法的創(chuàng)新發(fā)展過程分析
(一)面向Agent的軟件開發(fā)方法
在互聯(lián)網(wǎng)飛速發(fā)展的前提下,軟件開發(fā)的趨勢主要是向大規(guī)模和高復(fù)雜性方向發(fā)展,人們越來越關(guān)注軟件技術(shù)的智能化發(fā)展。Agent的概念主要是來源資源分布式的人工智能領(lǐng)域,其主要特點是自主性、靈活性、駐留性。面向Agent軟件開發(fā)方法主要是基于Agent的概念,給軟件開發(fā)帶來了新的思維觀念,認為任何一個系統(tǒng)不管是應(yīng)用系統(tǒng)還是軟件系統(tǒng),其是由一個或多個Agent構(gòu)成,每個Agent都是自主的實體。Agent之間存在著復(fù)雜的結(jié)構(gòu)關(guān)系,通過高層的交流、合作、協(xié)商等,對Agent之間進行相互作用,并從實際系統(tǒng)中實現(xiàn)整體的設(shè)計目標。目前Agent軟件開發(fā)方法還不夠成熟,還不能夠進行大規(guī)模的實際運用,無法和面向?qū)ο蠓椒菢邮艿饺藗儚V泛的使用。在總體上而言,面向Agent軟件開發(fā)方法還處于探索的階段[2]。面向Agent軟件開發(fā)方法在創(chuàng)新發(fā)展的過程中,主要找到了問題的所在,需要開發(fā)出具有更高的智能特征、靈活性較高并能夠友好的和人類進行交互的計算機系統(tǒng)。提出的新觀念能夠在某一環(huán)境下持續(xù)發(fā)揮作用以便實現(xiàn)設(shè)計的目標。目前面向Agent軟件開發(fā)還沒有形成統(tǒng)一方法,還有很長的一段發(fā)展路程。
(二)敏捷軟件開發(fā)方法
敏捷軟件開發(fā)是在上世紀九十年代逐漸發(fā)展起來的,敏捷軟件開發(fā)方法的出現(xiàn),有效的解決了傳統(tǒng)軟件開發(fā)過程中的復(fù)雜繁瑣、開發(fā)過程中出現(xiàn)的各種變化反應(yīng)、對大量文檔的維護和產(chǎn)生等問題,其強調(diào)的是適應(yīng)變化、以人為中心、強調(diào)簡化和快速反饋,追求快節(jié)奏的軟件開發(fā)。敏捷軟件開發(fā)中具有四條價值觀和十二條實踐原則[3]。其中價值觀是:(1)與理解文檔相比,更加重視當前軟件。(2)與軟件過程和軟件工具相比,更加重視個人的創(chuàng)造力和相互溝通能力。(3)對變動的響應(yīng)更加重視,而不是一味的遵循計劃。(4)重視用戶合作而不是依賴合同。十二條實踐原則是:重點需要通過盡早的、持續(xù)的交付有價值的軟件,以便使得客戶滿意;經(jīng)常性的交付可以工作的軟件,交付時間間隔要短;即使在開發(fā)后期,也應(yīng)該根據(jù)需求改變方案;業(yè)務(wù)人員和開發(fā)人員需要進行合作開發(fā);為工作人員提供有利的環(huán)境和支持;傳遞信息方法需要有效;工作軟件需要進度度量標準;提倡可持續(xù)的開發(fā)進度;對優(yōu)秀技能和設(shè)計需要重點關(guān)注;開發(fā)設(shè)計要簡化;構(gòu)架和需求忠于自己的團隊;對工作進行定期反省并進行調(diào)整。敏捷軟件根據(jù)當前的現(xiàn)狀提出改進的措施,并用新的思維概念來進行開發(fā),在創(chuàng)新開發(fā)的過程中,具有自身獨特的開發(fā)思維和方式,但還不夠成熟,還需要進一步的發(fā)展和完善。
四、總結(jié)
通過對目前軟件開發(fā)的現(xiàn)狀進行分析,從當前比較典型的結(jié)構(gòu)化方法和面向?qū)ο蠓椒ㄟM行研究,在軟件開發(fā)的創(chuàng)新發(fā)展的過程中,主要是向敏捷軟件開發(fā)方法和面向Agent軟件開發(fā)方法兩個方向發(fā)展,在創(chuàng)新的過程中,主要是針對傳統(tǒng)的軟件開發(fā)方法,并根據(jù)當今的時代需求提出新的思維概念,并在這一方面進行深入的研究分析,滿足客戶的需求,提供更加便捷的軟件工程,為客戶提供更加優(yōu)質(zhì)的軟件服務(wù)。
參考文獻:
[1]高禹,馮相忠.軟件開發(fā)方法演變的幾個主要因素[J].自然辯證法通訊,2011,29(05): 188-193.
[2]閆琪,王懷民.面向Agent的軟件開發(fā)方法及其評估[J].計算機工程與科學,2012,27(01):167-169.
[3]沈備軍,陳誠.敏捷軟件過程的研究[J].計算機研究與發(fā)展,2012,39(11):156-157.