計算機軟件開發(fā)方法范文

時間:2023-10-19 16:07:02

導(dǎo)語:如何才能寫好一篇計算機軟件開發(fā)方法,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

計算機軟件開發(fā)方法

篇1

1計算機軟件系統(tǒng)的定義簡介

1.1關(guān)于軟件。自從19世紀中后期以來,計算機軟件系統(tǒng)的創(chuàng)新以及運用從原本的人工寫錄計算機的程序發(fā)展到了更加高端、更加方便的水平。如今計算機技術(shù)得到提升,新型技術(shù)如雨后春筍,而且得到了人們一定的關(guān)注和認同,在生產(chǎn)中得到了使用。計算機的運用也更加普及,在生活中、工作中、學習中各個方面,都離不開計算機的幫助。計算機傾向于更加簡易方便的趨勢,而軟件的使用也更加普遍,沒有以前的限制和約束。軟件開始有了官方科學的概念,指的是計算機通過采用一定的方式或是規(guī)則,滿足一定的需求,在計算機正在使用的過程中供給所需要的數(shù)據(jù)。

1.2軟件工程技術(shù)。上個世紀九十年代,所使用的軟件工程技術(shù)還是人工進行編寫,不但效率不高,而且容易出現(xiàn)錯誤的情況,不易于核查和更改。首先,耗費了大量的人力資源,程序編寫員的勞動工作強度高,軟件較為復(fù)雜,不利于大規(guī)模的傳播推廣,軟件的開發(fā)時間過長,不易修改和改良。因此,軟件工程技術(shù)還是存在許多不足之處。

2開發(fā)方法

開發(fā)軟件首先應(yīng)當具備一定的技術(shù)創(chuàng)新團隊,并且按照一定的技術(shù)發(fā)展原則,設(shè)計與應(yīng)用并重,保證科學的開發(fā)方法,減少一些傳統(tǒng)的開發(fā)方法帶來的弊端。

2.1生命周期方法。這種方法主要是調(diào)整軟件系統(tǒng)開發(fā)的周期,將開發(fā)的整個時間進行細化,并對開始和結(jié)束的定義重新定義,確保這種方式準確科學,有著嚴格標準的定義要求,上一個階段的結(jié)束之后才能開始下一個階段,這樣的方式有利于減輕開發(fā)人員的工作壓力,并且有利于整體目標的實現(xiàn),對每一個階段的工作進行準確的定義,防止不明確自己的任務(wù)而引發(fā)的問題。

2.2原型化開發(fā)方法。如果在進行設(shè)計的最初階段,設(shè)計人員對于產(chǎn)品并沒有一個明確的定義,或者是缺乏一定的研究材料,則可以使用原型化開發(fā)的方法。先確定對于開發(fā)產(chǎn)品的大概模型,在此模型的基礎(chǔ)上進行加工。

3發(fā)展方向

3.1服務(wù)?,F(xiàn)如今,軟件系統(tǒng)更偏向于用戶體驗這方面,為了給用戶帶來更加優(yōu)良的服務(wù)體驗,符合用戶的需求,軟件系統(tǒng)將更加直接,滿足用戶的需求,帶給用戶更好的服務(wù)。

3.2更加網(wǎng)絡(luò)化。網(wǎng)絡(luò)化是21世紀的主旋律,計算機軟件技術(shù)應(yīng)該面向世界、面向未來,開發(fā)的過程中應(yīng)該將眼光放遠一些,考慮到國際之間的聯(lián)系,爭取運用更加先進的技術(shù),滿足各個地區(qū)各個國家的用戶的需求。

3.3更加智能化。人工智能的概念一經(jīng)提出就受到了廣泛的關(guān)注和熱議,將人工智能技術(shù)運用到軟件開發(fā)中,能夠有效減少前期的人力物力的投入成本,縮短開發(fā)時間,根據(jù)具體情況的需要進行更新和改良,有利于大規(guī)模的生產(chǎn)和運用。隨著人工智能技術(shù)的不斷成熟,兩者相互促進,將會帶來更大的收益,這也是一項劃時代的舉措。

3.4更加開放化。為了實現(xiàn)資源共享,軟件的開放化是十分重要的,這項舉措有利于技術(shù)不斷更新和發(fā)展,開放人員通過這個進行交流,不斷進步,吸取對方創(chuàng)意中的長處為我所用,發(fā)現(xiàn)自己不足之處并加以改良,優(yōu)化產(chǎn)業(yè)結(jié)構(gòu),有利于產(chǎn)品創(chuàng)新發(fā)展,開放化一舉有著極為重要的意義,其方便快捷、易于溝通、信息交互便捷、利于數(shù)據(jù)的存儲和利用。

4結(jié)束語

篇2

關(guān)鍵詞:計算機輔助設(shè)計平臺 硬件 軟件 開發(fā)方法

一、計算機輔助設(shè)計平臺系統(tǒng)的硬件和軟件構(gòu)成

1、計算機輔助設(shè)計平臺系統(tǒng)的硬件

(1)主機

主機的核心部分是中央處理器(CPU)和內(nèi)存儲器。CPU由兩部分組成:控制器(CU)和運算器(ALU)。它管理主機所有組成部分的運行,并對數(shù)據(jù)進行算術(shù)邏輯運算。

(2)存儲器

在計算機系統(tǒng)中,用以存黜程序和數(shù)據(jù)的裝置,成為存儲器。存儲器可分為兩類:內(nèi)存儲器(主存儲器)和外存儲器(輔助存儲器)。內(nèi)存儲器通常設(shè)計為計算機的一部分,并直接與中央處理機連接。內(nèi)存儲器可以存貯兩類信息:由控制器執(zhí)行的程序指令和由運算器處理的數(shù)據(jù)。外存儲器是為了彌補內(nèi)存容量有限的缺點,適應(yīng)于大量數(shù)據(jù)的處理與存貯而使用的。它主要用于存放當前不參與運行的程序和數(shù)據(jù),在需要時再成批地與內(nèi)存交換。其特點是:存儲量大,價格低,存取速度較快。

(3)一般輸入/輸出設(shè)備

這些設(shè)備一般包括鍵盤、顯示終端和打印機等。除了上述的設(shè)備外,還經(jīng)常用到其他設(shè)備,如:光筆、鼠標器、圖形輸入板、數(shù)字化儀、掃描儀和圖形顯示設(shè)備等。

2、計算機輔助設(shè)計平臺系統(tǒng)的軟件

計算機輔助設(shè)計平臺系統(tǒng)功能的實現(xiàn)是系統(tǒng)硬件和軟件協(xié)調(diào)作用的結(jié)果,沒有軟件的支持,硬件是無法工作的。歸納起來,計算機輔助設(shè)計平臺系統(tǒng)的軟件基本上可以分為三類:即系統(tǒng)軟件、支撐軟件和應(yīng)用軟件。

(1)系統(tǒng)軟件

系統(tǒng)軟件是計算機輔助設(shè)計平臺系統(tǒng)最低層次,為用戶提供開發(fā)圖形軟件和應(yīng)用軟件的軟件環(huán)境。系統(tǒng)軟件是指操作系統(tǒng)及語言語言處理程序等,它著眼于計算機資源的有效管理,用戶任務(wù)的有效完成以及操作上的方便等,目的在于構(gòu)成一個良好的軟件工作環(huán)境,供應(yīng)用軟件的開發(fā)使用。

現(xiàn)在常用的操作系統(tǒng)有MS-DOS、Windows系列操作系統(tǒng)和UNIX操作系統(tǒng)等。其中MS-DOS、Windows系列操作系統(tǒng)主要是應(yīng)用于PC機上面,UNIX操作系統(tǒng)能在微型機到大型機的各種機器上運行,已成為當今世界上最流行的多用戶操作系統(tǒng)。

在計算機輔助設(shè)計平臺系統(tǒng)軟件的開發(fā)中,匯編語言的使用已大量減少,目前主要是采用FORTRAN、C、VC、VB、C++Builder等。在人工智能方面應(yīng)用較多的LISP,Prolog等。

(2)支撐軟件

支撐軟件是在系統(tǒng)軟件的基礎(chǔ)上,為用戶自行開發(fā)應(yīng)用軟件提供技術(shù)支持的軟件,從功能上可以分為三類:第一類是幾何圖形設(shè)計軟件;第二類是工程分析與計算軟件;第三類是文檔處理軟件。

(3)應(yīng)用軟件

計算機輔助設(shè)計平臺系統(tǒng)的功能最終要反映在解決具體產(chǎn)品和工程問題的應(yīng)用軟件上,應(yīng)用軟件的開發(fā)是建立在系統(tǒng)軟件和支撐軟件基礎(chǔ)之上的。歸納起來,應(yīng)用軟件應(yīng)該具有下列特點。

a. 功能齊全,能滿足具體產(chǎn)品或工程設(shè)計要求,以獲得最佳的設(shè)計效果。

b. 能充分利用計算機輔助設(shè)計平臺系統(tǒng)的軟、硬件資源,具有較高的效率。

c. 應(yīng)用軟件應(yīng)實現(xiàn)規(guī)范化和模塊化。

d. 移植性強,便于在各種計算機上運行,并易于與有關(guān)軟件連接。

e. 具有良好的人機交互界面和人機友好程度。

f. 使用方便,可靠性強,便于維護。

由于應(yīng)用軟件應(yīng)用于各個領(lǐng)域,涉及的專業(yè)性很強,所以,一般情況下需要用戶自行開發(fā)。相關(guān)學科的技術(shù)人員協(xié)作研制和開發(fā),可以解決各種工程或產(chǎn)品日益復(fù)雜的工程技術(shù)問題,以滿足現(xiàn)代計算機輔助設(shè)計平臺系統(tǒng)的要求。

二、計算機輔助設(shè)計平臺系統(tǒng)的開發(fā)方法

1、軟件工程方法

一個功能完備的計算機輔助設(shè)計平臺系統(tǒng)的建立,需要充分利用計算機的軟、硬件資源,考慮各方面的需要,協(xié)調(diào)系統(tǒng)內(nèi)部各獨立模塊之間的關(guān)系,以期發(fā)揮計算機輔助設(shè)計平臺系統(tǒng)的優(yōu)良設(shè)計能力。這并不是很容易的事情,它涉及的內(nèi)容非常多,如果沒有科學的設(shè)計方法作指導(dǎo)的話,設(shè)計出來的計算機輔助設(shè)計平臺系統(tǒng)不可能達到令人滿意的程度。

隨著CAD/CAM技術(shù)的發(fā)展,應(yīng)用軟件開發(fā)的規(guī)模越來越大,復(fù)雜程度越來越高,水平也不斷提高,以至于如果還是采用傳統(tǒng)的開發(fā)技術(shù)難以保證所開發(fā)應(yīng)用軟的質(zhì)量和水平。為此,開發(fā)者開始采用工程化的方法從事軟件的開發(fā),并逐步在實踐的基礎(chǔ)上形成了軟件工程學這一技術(shù)學科。

軟工程學的誕生和發(fā)展使軟件的開發(fā)和生產(chǎn)成為一種工程問題,而不是個人的藝術(shù)創(chuàng)作。它主要研究軟件結(jié)構(gòu)、軟件設(shè)計方法論、軟件工具、軟件工程標準和規(guī)范,以及相關(guān)的理論。

從軟件生產(chǎn)管理來看,軟件工程學大致包括以下內(nèi)容:

(1)軟件的需求定義和分析技術(shù);

(2)軟件設(shè)計和審查技術(shù);

(3)軟件描述技術(shù);

(4)軟件調(diào)試技術(shù);

(5)軟件可靠性技術(shù)極其評價方法;

(6)軟件擴充和維護;

(7)軟件成本估算等。

2、計算機輔助設(shè)計平臺系統(tǒng)的開發(fā)

就計算機輔助設(shè)計軟件而言,由于真正實用、功能齊全的計算機輔助設(shè)計軟件一般都比較復(fù)雜,程序在萬行以上,不同模塊之間關(guān)系復(fù)雜繁多。因此,必須采用軟件工程的方法從事工程化的計算機輔助設(shè)計軟件開發(fā),這樣才能保證開發(fā)過程清晰、要求明確、任務(wù)具體、質(zhì)量高、時間短、費用少,并且便于檢查和維護。

基于上述情況,一般情況下,在工程化的計算機輔助設(shè)計軟件的開發(fā)過程中,必須考慮下列要求:

(1)硬件支持環(huán)境;

(2)軟件支持環(huán)境;

(3)設(shè)計要求;

(4)實用化要求;

(5)保證軟件質(zhì)量;

(6)測試驗收嚴格;

(7)文檔編制通俗;

在開發(fā)計算機輔助設(shè)計平臺系統(tǒng)時,必須很好的參照這些要求,各個行業(yè)的設(shè)計者可以把這些要求與本行業(yè)具體生產(chǎn)情況結(jié)合起來,真正使軟件工程思想和軟件工程開發(fā)方法貫徹到行業(yè)計算機輔助設(shè)計平臺系統(tǒng)中去,務(wù)求保證軟件的質(zhì)量,提高軟件開發(fā)的效率。

計算機輔助設(shè)計平臺系統(tǒng)的開發(fā)過程如圖。

參考文獻:

[1]王吉明.計算機輔助設(shè)計的技術(shù)應(yīng)用探究[J].科技與創(chuàng)新.2014(21).

篇3

主要的軟件工程開發(fā)方法有SASA方法、Pamas方法、面向?qū)ο蟮能浖_發(fā)方法等。其中,面向?qū)ο箝_發(fā)方法是目前使用最為頻繁的一種軟件開發(fā)方法,它是目前計算機領(lǐng)域中最為關(guān)心的重點,是90年代軟件開發(fā)領(lǐng)域的主要潮流。從其概念與應(yīng)用來看,面向?qū)ο笠呀?jīng)遠遠超越了軟件開發(fā)和程序設(shè)計,范圍拓展的非常寬。面向?qū)ο蟮膬?yōu)點有很多方面,例如與現(xiàn)實世界之間的距離更加接近,更加符合人類的邏輯思維,開發(fā)出的程序更加合理穩(wěn)定。

二、計算機軟件工程的應(yīng)用

近年來隨著科學技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)技術(shù)目前已經(jīng)得到了快速的普及,逐漸深入到人們的工作與生活中,計算機軟件以其執(zhí)行命令更加準確、運行效率更高、操作更方便等優(yōu)點得到了人們的認可和歡迎,并在短時間內(nèi)被人們應(yīng)用在活動的各個層面上,換句話說人們的各項活動已經(jīng)不能離開計算機軟件了?,F(xiàn)在具有代表性的軟件主要由電子郵件、計算機操作系統(tǒng)以及各種網(wǎng)游軟件等,在社會經(jīng)濟發(fā)展的各領(lǐng)域中,例如農(nóng)業(yè)、金融、企事業(yè)單位等部門中的很多工作都需要依靠計算機來完成。隨著計算機應(yīng)用程度的逐漸加深,計算機軟件工程已經(jīng)發(fā)展成為一項意義深遠的工程技術(shù),在軟件開發(fā)商業(yè)加入更多人性化的因素。與機械制造業(yè)中的生產(chǎn)方式不同,軟件工程生產(chǎn)應(yīng)該體現(xiàn)出一定的個性化特點,并對其設(shè)計思維與功能進行不斷的更新和完善,在軟件開發(fā)工作中,設(shè)計人員應(yīng)該結(jié)合客戶需要,對各方面的因素進行綜合考慮,將大家的智慧匯集到一起,這樣次啊能設(shè)計出成功的計算機軟件。因為軟件系統(tǒng)本身的應(yīng)用性非常廣泛,設(shè)計人員應(yīng)該對各種可能發(fā)生的問題進行提前的考慮,一旦出現(xiàn)故障將會為客戶帶來無法估量的損失,因此,要想將計算機軟件工程研發(fā)工作做好是非常困難的。計算機軟件設(shè)計存在功能化、人性化等特點,目前計算機軟件已經(jīng)在現(xiàn)實生活中得到了極為廣泛的應(yīng)用,并在現(xiàn)代企業(yè)經(jīng)營管理中發(fā)揮著至關(guān)重要的作用,目前生產(chǎn)、銷售等環(huán)節(jié)已經(jīng)實現(xiàn)了信息的交流,以方便經(jīng)營策略變動的進行。例如在金融機構(gòu)以及商場等管理中,應(yīng)該通過軟件系統(tǒng)針對消費信息進行統(tǒng)計和確認,利用金融系統(tǒng)完成支付,大大避免了攜帶現(xiàn)金帶來的麻煩。軟件系統(tǒng)隱藏在計算機中,其管理能力非常強大,使人們的工作方式與生活方式發(fā)生了重大的改變。

三、結(jié)語

篇4

關(guān)鍵詞:軟件開發(fā) 方法 演變 創(chuàng)新

隨著軟件規(guī)模的不斷擴大,應(yīng)用領(lǐng)域的不斷延伸,軟件產(chǎn)品所面臨的應(yīng)用環(huán)境開始從靜態(tài)封閉逐步走向動態(tài)開放,軟件開發(fā)的焦點和難點集中于產(chǎn)品和項目的三個特征:第一,高速度;第二,高度變化;第三,高度不確定性。軟件的核心就是可變,高速變化的原動力不是規(guī)模,而是源自對象(問題)系統(tǒng)的復(fù)雜性以及軟件產(chǎn)品開發(fā)過程的特殊性。面對這一情況,傳統(tǒng)的軟件理論、方法和技術(shù)在處理復(fù)雜軟件開發(fā)時遇到了一系列挑戰(zhàn),軟件開發(fā)方法的變革正在成為新一輪軟件工程領(lǐng)域研究的重點。

一、關(guān)于軟件開發(fā)

軟件開發(fā)方法的研究是軟件工程領(lǐng)域長期爭論不休的問題,這實際上是要解決一個如何認識對象以及如何開發(fā)出一個實際系統(tǒng)的問題。由于軟件技術(shù)可以極大地提高軟件開發(fā)過程中的生產(chǎn)效率和質(zhì)量,并能大幅度降低軟件的開發(fā)成本與開發(fā)維護的周期,從而成為軟件工程領(lǐng)域中的一個重要的研究方向。著名權(quán)威人士曾指出軟件開發(fā)是利用已有的軟件制品進行組裝與合成新系統(tǒng)的一項技術(shù),從而說明了“為了重用而開發(fā)”與“基于重用的開發(fā)”之間的關(guān)系以及新的軟件開發(fā)理念。

軟件在再次利用資源方面可以促進了基于COTS的軟件開發(fā)與應(yīng)用,并將傳統(tǒng)的從“用戶需求、分析、設(shè)計、編碼到測試”這一開發(fā)過程轉(zhuǎn)化到了根據(jù)“用戶需求對可重用的軟件進行選擇、客戶化、擴展、外包和組裝”這一個新的開發(fā)過程。從而使得軟件的開發(fā)過程從簡單的作坊式開發(fā)、過渡到基于內(nèi)部流程式的開發(fā),并向“工廠化”的大規(guī)模協(xié)同化的軟件開發(fā)過程進化。工廠化的軟件開發(fā)模式提供了一種集成化的環(huán)境來實現(xiàn)特定產(chǎn)品的快速開發(fā)、配置與重用,從而為實現(xiàn)全球化、分布式協(xié)的開發(fā)過程奠定了基礎(chǔ)。為了實現(xiàn)軟件工廠化開發(fā),探索通過軟件再次利用來增強軟件開發(fā)過程中的資源利用效率,就需要將軟件開過程中的不同環(huán)節(jié)進行有效地集成并建立起整體的價值模型,以實現(xiàn)對整個開發(fā)過程中不同增值活動的定量化分析和整體優(yōu)化。

二、軟件開發(fā)方法演變

軟件是為了解決客戶的問題而開發(fā)的,所以客戶需求分析和定義是軟件開發(fā)的開端。需求被分為三個層次:業(yè)務(wù)需求、用戶需求、功能和非功能需求。需求分析和定義過程包括對客戶需求的引出、分析直到可以得到需求定義和編制規(guī)格,說明書,即文檔化。不同的軟件開發(fā)方法在文檔化的認識上具有顯著的不同。

從人的主觀因素來看,起初人們研究軟件開發(fā)方法的目的是為了解決軟件危機,軟件危機得到緩解之后,人們研究軟件開發(fā)方法的目的是為了提高軟件開發(fā)的效率、降低軟件開發(fā)和維護的成本、保證軟件的質(zhì)量和可靠性。為了實現(xiàn)以上目的,在研究軟件開發(fā)方法時,需要人們改變傳統(tǒng)的觀念和采用新的思維方式,需要人們借鑒其它工程領(lǐng)域的成功經(jīng)驗和有效方法。而當人們改變了傳統(tǒng)的觀念、采用了新的思維方式、借鑒了其它工程領(lǐng)域的成功經(jīng)驗和有效方法之后,勢必導(dǎo)致軟件開發(fā)方法發(fā)生演變。

從外界的客觀因素來看,隨著計算機應(yīng)用的普及和深入,不斷出現(xiàn)需要計算機處理的新問題和新領(lǐng)域。例如:軟件規(guī)模增大、軟件復(fù)雜性增強、軟件可靠性要求提高、新系統(tǒng)(如嵌入式系統(tǒng))的出現(xiàn)、開發(fā)工具的更新、互聯(lián)網(wǎng)的快速發(fā)展等等。對于解決新問題和應(yīng)用于新領(lǐng)域所需要的計算機軟件原有的軟件開發(fā)方法無法勝任,迫使人們改進原有的軟件開發(fā)方法、推出新的軟件開發(fā)方法。

三、軟件開發(fā)的創(chuàng)新方法

⑴找出軟件開發(fā)活動中存在著的問題。

軟件開發(fā)活動中的個體化特征非常嚴重,編寫程序時個人隨心所欲,過分追求程序編寫技巧,沒有一個行之有效的、大家共同遵循的開發(fā)準則。錯誤地認為開發(fā)軟件只是編寫程序,對編寫程序之外的其它軟件開發(fā)環(huán)節(jié)沒有給予重視。傳統(tǒng)軟件開發(fā)方法將數(shù)據(jù)和施加在數(shù),據(jù)上的操作分離成兩個獨立的部分,導(dǎo)致問題空間和解空間的結(jié)構(gòu)不一致,從系統(tǒng)分析到系統(tǒng)設(shè)計和實現(xiàn)的過渡不自然,軟件重復(fù)使用的粒度小不利于大型軟件的開發(fā),模塊的信息隱藏和獨立性不好,軟件可維護性較差。

⑵為了解決問題而進行思維觀念創(chuàng)新。

編寫程序時不能個人隨心所欲地過分追求程序編寫技巧,必須將可讀性、清晰性和可理解性放在首位,必須考慮程序的可維護性,要使用三種基本結(jié)構(gòu)(順序、選擇、循環(huán))來實現(xiàn)程序。將數(shù)據(jù)和施加在數(shù)據(jù)上的操作封裝在一起,形成類和對象的概念,用對象分解取代傳統(tǒng)方法的功能分解,所有對象被劃分成各種對象類。

⑶按照新的思維觀念來構(gòu)建結(jié)構(gòu)化軟件開發(fā)方法的核心部分。

核心部分是結(jié)構(gòu)化程序設(shè)計方法,通過Pascal語言和C語言為代表的結(jié)構(gòu)化程序設(shè)計語言的推出和完善。同時也可通過,Smalltalk語言的推出和完善,通過C++和Java等許多面向?qū)ο笳Z言的推出和完善,面向?qū)ο蟪绦蛟O(shè)計方法逐漸形成并完善。

⑷按照新的思維觀念來完善結(jié)構(gòu)化軟件開發(fā)方法。

完善的內(nèi)容主要是將新的思維觀念應(yīng)用于系統(tǒng)分析和系統(tǒng)設(shè)計過程,在結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上,逐漸形成結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計方法(SA/SD方法),使結(jié)構(gòu)化軟件開發(fā)方法得以完善。

軟件開發(fā)方法是軟件工程理論的重要內(nèi)容之一,在軟件開發(fā)方法中,對于開發(fā)軟件時“做什么”和“如何做”,給出了明確的、詳細的回答。人們在不同時期為了解決各種不同的軟件開發(fā)問題,推出了多種不同的軟件開發(fā)方法,并且每種軟件開發(fā)方法還有靈活多樣的表現(xiàn)形式。

參考文獻:

[1]高禹,馮相忠.軟件開發(fā)方法演變的幾個主要因素[J].自然辨證法通訊, 2007, 29(5): 88-93.

[2]龐巖梅,晏海華.基于工作流技術(shù)的軟件過程定義和追蹤機制.計算機工程與應(yīng)用,2003. 26.q

篇5

 

計算機軟件是指能夠滿足行業(yè)發(fā)展需求的應(yīng)用型或操作型軟件,可以解決行業(yè)中的日常問題。根據(jù)計算機軟件的應(yīng)用發(fā)展設(shè)計開發(fā)技術(shù),優(yōu)化計算機軟件的運行環(huán)境,提供可靠的運行方式。

 

1 計算機軟件開發(fā)的方法

 

計算機軟件開發(fā)技術(shù)應(yīng)用的核心是開發(fā)方法,通過開發(fā)方法保障計算機軟件的準確應(yīng)用,排除潛在的問題。結(jié)合計算機軟件的開發(fā)過程,分析比較常見的開發(fā)方法,如下:

 

1.1 原型化法

 

原型化法可以全面了解信息行業(yè)對計算機軟件的要求,促使開發(fā)人員意識到開發(fā)技術(shù)的目的,了解開發(fā)技術(shù)在信息行業(yè)中應(yīng)該有的功能。原型化法主要應(yīng)用在計算機軟件開發(fā)技術(shù)的初期,開發(fā)人員通過大量的數(shù)據(jù)計算,經(jīng)由修改后完善計算機軟件的基礎(chǔ),達到計算機軟件開發(fā)技術(shù)的標準。

 

1.2 自動開發(fā)技術(shù)

 

自動開發(fā)技術(shù)在計算機軟件開發(fā)的過程中,提供真實的服務(wù)內(nèi)容,其可根據(jù)信息行業(yè)的需求,設(shè)計符合需求的軟件開發(fā)代碼,而且是在自動化狀態(tài)下完成的,具有準確、科學的特點,不會出現(xiàn)錯誤或缺陷代碼,有利于穩(wěn)定計算機軟件開發(fā)技術(shù)的應(yīng)用基礎(chǔ)。

 

1.3 周期法

 

計算機軟件開發(fā)方法中的周期法,以軟件的時間周期為依據(jù),利用評估、維護的方法實行階段性的開發(fā),確保計算機軟件開發(fā)的每個周期都能達到規(guī)范標準,由此才能在計算機軟件開發(fā)的整個周期中體現(xiàn)出完善性。

 

2 計算機軟件開發(fā)技術(shù)的應(yīng)用分析

 

計算機軟件開發(fā)技術(shù)的應(yīng)用主要是為信息行業(yè)提供高質(zhì)量的服務(wù),落實軟件技術(shù)。結(jié)合信息行業(yè)的實際需求,著重分析計算機軟件開發(fā)技術(shù)的實際應(yīng)用,如下:

 

2.1 計算機軟件開發(fā)技術(shù)的應(yīng)用背景

 

計算機軟件在信息行業(yè)中的應(yīng)用,暴露出諸多制約性的問題,無法保障計算機軟件的應(yīng)用效益。因此,計算機軟件開發(fā)者意識到了開發(fā)技術(shù)應(yīng)用中的缺陷,找出影響計算機軟件開發(fā)技術(shù)應(yīng)用的問題,才能為開發(fā)技術(shù)提供必要的應(yīng)用條件。

 

以某項計算機軟件開發(fā)技術(shù)為研究案例,分析開發(fā)技術(shù)的應(yīng)用背景。該計算機軟件開發(fā)技術(shù)中選擇了兩種開發(fā)技術(shù),第一是VB6.0+Access,第二是Web+Xml+ActiveX,兩種開發(fā)技術(shù)均投入安裝測試,安裝測試的過程中需要借助客戶機,實際都存在一些明顯的缺陷,第一種方法的缺陷是運行空間不足,在長時間運行后容易產(chǎn)生冗余數(shù)據(jù),不利于計算機軟件開發(fā)技術(shù)的運行速率,第二種方法的缺陷是必須有ActiveX安裝組件的支持,才能實現(xiàn)開發(fā)技術(shù)的運行。

 

2.2 計算機軟件開發(fā)技術(shù)的應(yīng)用

 

計算機軟件開發(fā)技術(shù)不僅要解決開發(fā)中的問題,更要滿足其在信息行業(yè)中的應(yīng)用。計算機軟件開發(fā)技術(shù)的應(yīng)用主體是形成技術(shù)性的工具,符合信息行業(yè)的運行需求,提供信息化的服務(wù)。

 

軟件開發(fā)技術(shù)的應(yīng)用,需要結(jié)合信息行業(yè)的實際情況,由此才能保障開發(fā)過程的穩(wěn)定與安全,排除計算機軟件開發(fā)中的各項問題,提升開發(fā)技術(shù)的應(yīng)用價值。

 

計算機軟件開發(fā)者應(yīng)該充分認識開發(fā)方法和技術(shù),確保其在開發(fā)中的應(yīng)用地位,一方面保護計算機軟件開發(fā)技術(shù)的應(yīng)用環(huán)境,另一方面強化開發(fā)技術(shù)應(yīng)用的實踐能力。

 

3 數(shù)據(jù)庫管理

 

3.1 數(shù)據(jù)庫管理的內(nèi)容

 

(1)不同的數(shù)據(jù)和程序都具備一定的獨立性,以數(shù)據(jù)模型的形式描述數(shù)據(jù)之間的關(guān)系和數(shù)據(jù)本身的特點。

 

(2)以部門或企業(yè)為單位,開展以數(shù)據(jù)為中心的相關(guān)的數(shù)據(jù)組織工作,以形成統(tǒng)一的綜合性較強的數(shù)據(jù)庫系統(tǒng),從而對數(shù)據(jù)進行有效控制與管理。

 

(3)具有良好的用戶口接口,以使用戶能對相關(guān)數(shù)據(jù)進行更好的使用與開發(fā)。

 

(4)結(jié)合相關(guān)的要求對不同的應(yīng)用程序進行管理,并從數(shù)據(jù)庫中獲取相關(guān)的數(shù)據(jù)信息,從而使數(shù)據(jù)的重復(fù)儲存得到一定減少,此外,還能使新的數(shù)據(jù)結(jié)構(gòu)得以形成,進而使數(shù)據(jù)具有一定的統(tǒng)一性。

 

3.2 數(shù)據(jù)庫管理存在的問題

 

3.2.1 操作系統(tǒng)自身出現(xiàn)問題

 

導(dǎo)致數(shù)據(jù)庫系統(tǒng)在管理運行過程中出現(xiàn)安全問題的根本原因是計算機的操作系統(tǒng)自身存在著一些安全故障和隱患。其中最常見的安全風險即計算機病毒。

 

在計算機的正常運行過程中,殘留的木馬病毒會對入駐程序的密碼進行修改,而入侵者就能通過木馬病毒隨時獲取系統(tǒng)的最新密碼。

 

此外計算機在運行過程中,數(shù)據(jù)庫操作系統(tǒng)會存在一定漏洞,而這些漏洞是無法避免的,它是對數(shù)據(jù)庫系統(tǒng)的某些特征參數(shù)進行設(shè)置時產(chǎn)生,正是因為有了這些漏洞存在,才給那些電腦黑客們留有機會。另外計算機中的操作系統(tǒng)同數(shù)據(jù)庫系統(tǒng)之間有著密切的聯(lián)系,因此,要想保證數(shù)據(jù)庫系統(tǒng)的運行安全,應(yīng)確保計算機中操作系統(tǒng)的運行安全。

 

3.2.2 管理不合理、不完善

 

數(shù)據(jù)庫系統(tǒng)是信息系統(tǒng)的衍生物,也是各種信息資料以及數(shù)據(jù)文件的存儲器,而這些信息資料以及數(shù)據(jù)文件的制造及使用者都是由人來管理的,因此在使用過程中,用戶如果缺乏一定的安全保護以及防護意識,沒有對網(wǎng)絡(luò)信息的安全性產(chǎn)生一定的重視,又或者是沒有采取有效的安全保護措施,就很容易在操作以及使用過程中發(fā)生安全事故。

 

因此,用戶在操作和使用數(shù)據(jù)庫系統(tǒng)時,對其存儲的內(nèi)容利用加密技術(shù)進行相應(yīng)加密,是保證數(shù)據(jù)庫系統(tǒng)正常管理運行及存儲內(nèi)容不被外泄的有效途徑。

 

另外,要隨時做好數(shù)據(jù)備份及保存工作。

 

4 結(jié)束語

 

計算機軟件開發(fā)技術(shù)是信息時展的有效手段,在行業(yè)中發(fā)揮重要的價值,有利于行業(yè)的信息化發(fā)展。

 

計算機軟件開發(fā)技術(shù)在各類方法的支持下,完善開發(fā)技術(shù)的應(yīng)用,同時軟件開發(fā)技術(shù)遵循創(chuàng)新的發(fā)展原則,提高計算機軟件開發(fā)技術(shù)的應(yīng)用水平,拓寬其在行業(yè)應(yīng)用中的范圍,推進了計算機軟件開發(fā)技術(shù)的持續(xù)性發(fā)展,體現(xiàn)了開發(fā)技術(shù)的應(yīng)用優(yōu)勢。

篇6

一、我國計算機軟件設(shè)計現(xiàn)狀分析

在計算機軟件設(shè)計領(lǐng)域,我國軟件開發(fā)和設(shè)計的起步較晚,但是也在經(jīng)驗的積累和總結(jié)中出現(xiàn)了許多優(yōu)秀的軟件設(shè)計方法以及軟件開發(fā)設(shè)計工具,在設(shè)計領(lǐng)域取得較大的進步,正在逐漸縮小與國外的差距,但是在軟件開發(fā)與設(shè)計過程中,需要了解計算機軟件開發(fā)與設(shè)計的目的以及計算機軟件開發(fā)與設(shè)計的特點。其中計算機軟件開發(fā)和設(shè)計的主要目的設(shè)計符合和滿足現(xiàn)代生活需要的軟件產(chǎn)品以及提供優(yōu)質(zhì)和高效的服務(wù)。

計算機軟件開發(fā)和設(shè)計的主要特點體現(xiàn)在以下幾個方面:首先,目的性,為了滿足需求而不是天馬行空的想象,其設(shè)計都是具有一定的需求和目的;其次,整體性,軟件開發(fā)設(shè)計是一項龐大的工程,期間面臨著許多問題,例如,數(shù)據(jù)丟失、程序的穩(wěn)定、BUG等等,這就需要在設(shè)計過程中強調(diào)慢工出細活;最后,可操作性,通過不斷的測試和檢驗提高軟件的可靠性,滿足日常生活需求,并能夠方便操作,保持系統(tǒng)的穩(wěn)定運行。

二、計算機軟件開發(fā)設(shè)計的難點分析

(一)軟件開發(fā)設(shè)計分析準備

在軟件投入使用時,一些軟件會出現(xiàn)許許多多的問題,而這些問題的出現(xiàn)很可能導(dǎo)致數(shù)據(jù)的丟失、系統(tǒng)的崩潰,這些都是在前期的分析準備工作不到位造成的,在設(shè)計項目時,對于項目的設(shè)計分析不夠透徹,極大的影響了后期的操作性和系統(tǒng)的穩(wěn)定性。

(二)軟件開發(fā)設(shè)計規(guī)范操作

軟件開發(fā)和設(shè)計是一項復(fù)雜的系統(tǒng)工程,需要按照相關(guān)的設(shè)計規(guī)范進行規(guī)范化操作,但是在實際操作過程中,使本來需要花費很長時間的龐大系統(tǒng),僅利用很短的時間內(nèi)完成,造成軟件的質(zhì)量得不到保證,在面對復(fù)雜系統(tǒng)設(shè)計時,精工出細活。

(三)軟件測試環(huán)節(jié)充分驗證

軟件開發(fā)設(shè)計完成之后,都需要通過充分的設(shè)計和驗證,只有在測驗過程中,發(fā)現(xiàn)和糾正出現(xiàn)BUG,并及時的解決,才能符合設(shè)計的要求,此外一些客戶會要求在軟件設(shè)計開發(fā)過程中,加入新的要求,這就會無疑增加了軟件設(shè)計的難度,特別是一些新功能的加入可能會影響軟件的后期運行,這在測試和驗證階段都要加強注意。

(四)軟件開發(fā)環(huán)境

軟件開發(fā)環(huán)境相比前幾個難點,屬于客觀難點,在我國的計算機軟件開發(fā)設(shè)計,相比較之前有很大的進展,但是相比較發(fā)達國家軟件開發(fā)設(shè)計還存在很大的差距,其外部因素就是軟件開發(fā)的設(shè)計環(huán)境還并未形成,沒有正規(guī)的商品開發(fā)工具和良好的開發(fā)環(huán)境,導(dǎo)致我國軟件開發(fā)設(shè)計處于被動的局面。

三、計算機軟件開發(fā)設(shè)計難點解決措施

(一)軟件設(shè)計方法改革和創(chuàng)新

計算機軟件開發(fā)和設(shè)計作為技術(shù)很強的專業(yè)領(lǐng)域,其突破難點的最重要方法就是在軟件開發(fā)和設(shè)計上的方法創(chuàng)新,改變原有的設(shè)計模式,提高軟件設(shè)計的效率和整體性能,首先,模塊化設(shè)計法,模塊化設(shè)計法在軟件開發(fā)設(shè)計上較為常見,能夠?qū)嬰s的軟件開發(fā)系統(tǒng)通過模塊化的設(shè)計處理,保證每個程序能夠在小程序下獲得相應(yīng)的設(shè)計,并通過相互的溝通和協(xié)作,提高軟件的修改和改進,針對客戶需要加入新功能時,上級模塊可以通過對下級模塊的調(diào)試,實現(xiàn)改進,而下級模塊卻不能越位調(diào)試較高模塊;面向?qū)ο笤O(shè)計法,面向?qū)ο笤O(shè)計方法主要是以實體和模塊等程序進行相關(guān)軟件設(shè)計,根據(jù)設(shè)計對象的不同,對對象進行分解,利用非形式化的方式對對象進行分析,表達對象模型,建立對象可見性,并找出每個對象的接口,解決軟件設(shè)計中面臨的難點,提高操作性;數(shù)據(jù)結(jié)構(gòu)設(shè)計,通過數(shù)據(jù)將軟件設(shè)計數(shù)據(jù)以圖形的形式展現(xiàn),利用軟件開發(fā)工具,將軟件設(shè)計層次化結(jié)構(gòu)化,整個過程以圖形的形式來設(shè)計,數(shù)據(jù)結(jié)構(gòu)形式能夠直接利用圖形的形式解決開發(fā)過程中面臨的難點和問題,利用的主要三種結(jié)構(gòu)有:重復(fù)、選擇以及順序。

(二)軟件體驗和軟件升級空間

計算機軟件開發(fā)和設(shè)計其主要目的是滿足某種特定的需求,所以在軟件設(shè)計是要提高對用戶體驗的重視程度,通過加強軟件的整體性分析,并結(jié)合測試和驗證,解決軟件設(shè)計過程中的不足之處,提高客戶的滿意度;其次,加強軟件開發(fā)的操作規(guī)范,提高軟件開發(fā)工作的使用效率和軟件開發(fā)方法的使用效率,在進行軟件開發(fā)過程中,需結(jié)合實際需要,滿足不同的設(shè)計需求;除此之外,對于軟件設(shè)計來說,必須考慮的問題是軟件的升級空間,在不斷增長的需求層次上看,軟件會結(jié)合客戶的選擇和新功能的要求,在合適的時間內(nèi)實現(xiàn)軟件的升級,從而真正提高軟件的適應(yīng)性。

篇7

關(guān)鍵詞 巖土工程;勘探作業(yè);計算機軟件;開發(fā);應(yīng)用

中圖分類號:TP391 文獻標識碼:A 文章編號:1671-7597(2014)09-0096-01

我國進入信息化發(fā)展之后,各種計算機技術(shù)在巖土工程領(lǐng)域中的應(yīng)用也越來越廣泛。而且,隨著科學水平的不斷提升,巖土工程勘查作業(yè)中對軟件技術(shù)的要求也越來越高,這樣才能提高勘察作業(yè)的效率,讓巖土工程能夠適應(yīng)時展的要求。本文從巖土工程勘察作業(yè)中計算機軟件開發(fā)的要求出發(fā),對目前勘察作業(yè)中使用最多的CAD技術(shù)以及實際應(yīng)用進行了具體

討論。

1 巖土工程勘察作業(yè)中計算機軟件的開發(fā)原則

1.1 嚴格遵守相關(guān)政策的規(guī)定

在軟件的開發(fā)過程中,要想保證軟件質(zhì)量符合使用要求,必須嚴格遵守國家政策的相關(guān)規(guī)定。在計算機軟件開發(fā)中,版權(quán)問題是首先需要解決的問題。目前,軟件使用的正版化是巖土工程所有作業(yè)的共同要求。所以在進行計算機軟件的開發(fā)時,需要將正版化作為最基本的要求,否則除了會因為版權(quán)糾紛導(dǎo)致巨額的經(jīng)濟損失之外,還會影響軟件的正常使用,給巖土工程勘察作業(yè)帶來巨大的影響。因此保證軟件開發(fā)的正版化是一項基礎(chǔ)性工作,讓開發(fā)出來的計算機軟件具有獨立的知識產(chǎn)權(quán),這樣才能擴大軟件應(yīng)用的范圍,提高勘察作業(yè)的效率。

1.2 遵守軟件開發(fā)的客觀要求

軟件開發(fā)工作和其他事物一樣,都有自身發(fā)展的客觀規(guī)律。目前,軟件開發(fā)除了正版化的要求之外,還需要具有智能化、一體化、微型化和個性化等特點,尤其是其中的個性化和一體化是當今時代網(wǎng)絡(luò)產(chǎn)品的基本特征。所謂軟件個性化,就是指在軟件的開發(fā)過程中,除了要考慮到和當今流行軟件進行數(shù)據(jù)交換的普遍性之外,還要保持軟件自身的獨立性和完整性。從軟件本質(zhì)的角度而言,最根本的特點就是構(gòu)造性。所以,在軟件開發(fā)時,要從這一特點出發(fā),才能保證軟件產(chǎn)品的可靠性和穩(wěn)定性。同時需要注意的是,雖然軟件產(chǎn)品的更新速度較快,但是也不能因為一有新的需求就重新進行開發(fā),只需要在原有軟件系統(tǒng)的基礎(chǔ)上進行改進即可,這樣既可以節(jié)約人力、物力和財力,也有助于軟件產(chǎn)品的積淀。

2 CAD軟件在巖土工程勘察作業(yè)中的實際應(yīng)用

2.1 CAD系統(tǒng)概述

CAD軟件系統(tǒng)是巖土工程勘查作業(yè)中使用最廣泛的一種計算機軟件,它的最終目標就是在現(xiàn)有勘察結(jié)果的基礎(chǔ)上,對各種測試的數(shù)據(jù)進行整理、統(tǒng)計、計算等工作,然后對地層的結(jié)構(gòu)和分布狀況進行分析,然后使用各種圖表,如柱狀圖、剖面圖、平面圖、曲線圖、實驗表和統(tǒng)計表等形式將底地層信息表現(xiàn)出來,為準確分析巖土的物理學特征提供參考依據(jù)。該軟件系統(tǒng)的技術(shù)特征為,使用直接面向?qū)ο蟮能浖_發(fā)方法,將多種軟件開發(fā)工具的優(yōu)點結(jié)合起來,采用模塊化、信息封裝等技術(shù),提高軟件的使用效率。該軟件的基本性能就是可以在平面分析模型中,利用各種基本圖形元素進行多種圖形的繪制和編輯。

2.2 CAD軟件應(yīng)用在巖土工程勘查作業(yè)中的優(yōu)勢

CAD軟件在勘察作業(yè)中的作用可以從以下三個方面表現(xiàn)出來。

1)有助于提高勘察作業(yè)的工作效率。隨著計算機的普及和計算機網(wǎng)絡(luò)技術(shù)在巖土工程領(lǐng)域中廣泛應(yīng)用,大大減輕了勘察作業(yè)的工作負擔。因為CAD軟件的應(yīng)用可以讓巖土工程勘察報告編寫人不必進行大量冗繁的計算工作,所以能有效提高工作效率。同時,使用CAD軟件對各種數(shù)據(jù)進行計算,減少了人為計算的失誤,可以提高數(shù)據(jù)計算的準確性。例如,巖土工程勘查作業(yè)中需要對基礎(chǔ)沉降、邊坡穩(wěn)定性、滑坡推力等進行分析和計算。這些數(shù)據(jù)的計算量非常大,如果不借助計算機軟件,不僅會浪費大量的計算時間,還容易導(dǎo)致計算錯誤,但是利用CAD軟件強大的數(shù)據(jù)分析功能,就能有效避免上述問題。

2)有助于提高作圖的規(guī)范性。在進行巖土工程勘察報告時,最主要的內(nèi)容就是各種圖表,這也是勘察報告的核心。評價勘察報告是否符合實際的地質(zhì)情況,圖表的準確和規(guī)范程度是最重要的評價指標之一。使用CAD軟件對勘察結(jié)果進行分析可以有效提高作圖的規(guī)范性,保證勘察報告的質(zhì)量。這是因為該軟件能夠利用計算機作圖,這樣就可以減少手工制圖的誤差,提高各種圖表的規(guī)范性和美觀性。

3)能夠和其他大型軟件進行有效連接。這主要指的就是CAD軟件和文檔表格處理的OFFICE軟件連接起來。目前,OFFICE軟件已經(jīng)是現(xiàn)代電腦辦公必備的計算機軟件,具有強大的文字和表格處理功能。CAD軟件和OFFICE軟件之間能通過接口進行轉(zhuǎn)換,這樣CAD中圖表就可以自發(fā)動轉(zhuǎn)換為DWG、doc和xls格式的文件,能夠為后期圖表的調(diào)整提供便利。同時,CAD軟件在勘察作業(yè)中還具備有效獲取靜力觸探等微機數(shù)據(jù)的功能,并能夠充分利用這些數(shù)據(jù)生成對應(yīng)的xls文件。再加上目前巖土工程的勘查作業(yè)數(shù)據(jù)自動化采集技術(shù)的不斷發(fā)展,例如固結(jié)試驗數(shù)據(jù)、電子天平數(shù)據(jù)已經(jīng)基本上實現(xiàn)了自動化采集,所以能為CAD軟件和OFFICE軟件的有效連接提供技術(shù)和數(shù)據(jù)支持。

3 結(jié)束語

綜上所述,在巖土工程勘查作業(yè)的計算機軟件開發(fā)中需要尊重軟件開發(fā)的客觀規(guī)律,嚴格按照國家相關(guān)政策的要求。在這兩個軟件開發(fā)原則的基礎(chǔ)上,對勘察作業(yè)中CAD軟件的基本情況和應(yīng)用優(yōu)點進行了深入分析。

參考文獻

[1]馬文君,魏勇.關(guān)于對巖土工程勘察技術(shù)及方法的思考[J].知識經(jīng)濟,2013,07(10):97-98.

[2]王俊.巖土工程勘探常見問題及解決措施[J].技術(shù)與市場,2013,07(01):114,116.

篇8

1兩個典型軟件開發(fā)方法的創(chuàng)新發(fā)展過程

1.1結(jié)構(gòu)化軟件開發(fā)方法的創(chuàng)新發(fā)展的過程

結(jié)構(gòu)化軟件開發(fā)方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化實現(xiàn)方法,其核心是結(jié)構(gòu)化程序設(shè)計方法。結(jié)構(gòu)化軟件開發(fā)方法是在結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上逐漸形成和完善的。

在結(jié)構(gòu)化程序設(shè)計方法出現(xiàn)之前,軟件開發(fā)活動個體化特征非常嚴重,編寫程序時個人隨心所欲,過分追求程序編寫技巧,沒有一個行之有效的、大家共同遵循的開發(fā)準則,造成程序的可讀性、清晰性、可理解性比較差,給軟件維護工作帶來極大的困難。

在結(jié)構(gòu)化軟件開發(fā)方法出現(xiàn)之前,由于當時的軟件比較小,開發(fā)過程比較簡單當時錯誤地認為開發(fā)軟件只是編寫程序,所以那時的軟件開發(fā)方法只是考慮編寫程序,軟件開發(fā)方法內(nèi)容極不完善,對編寫程序之外的其它軟件開發(fā)階段沒有給予重視。

隨著軟件規(guī)模的增大和復(fù)雜性的提高,這種個體化隨心所欲編寫程序的現(xiàn)象和只重視編寫程序而忽視軟件開發(fā)其它環(huán)節(jié)的軟件開發(fā)方法導(dǎo)致許多問題出現(xiàn)。例如,由于過分追求程序編寫技巧,一些程序很難閱讀和理解,因此當軟件出現(xiàn)問題時無法維護;例如,由于不重視需求分析工作,對用戶需求了解的不全面、不細致,開發(fā)出的軟件往往與用戶要求有很大差距。這些問題成為軟件危機的根源之一。

在結(jié)構(gòu)化程序設(shè)計方法出現(xiàn)之前的相當長的時間里,人們對軟件開發(fā)活動和軟件開發(fā)方法的認識停留在上述層面上,形成了一種傳統(tǒng)的思維觀念,似乎開發(fā)軟件就應(yīng)該那樣做,使軟件危機日益嚴重。

為了消除軟件危機,人們開始深入思考軟件開發(fā)活動和軟件開發(fā)方法。1968年Dijksm在寫給ACM雜志編輯部的信中再次建議從一切高級語言中取消oo語句,圍繞是否應(yīng)該取消ot)語句,人們展開了一場激烈的爭論。在這之前,1965年Dikstm首次建議取消吾句,1966年Bohn與JaooPiH正明了任何單入口單出口的沒有“死循環(huán)”的程序都能由三種基本結(jié)構(gòu)構(gòu)造出來,這三種基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)141。經(jīng)過爭論,最終人們認識到,不是簡單的是否取消吾句的問題,而是應(yīng)該改變傳統(tǒng)思維觀念,創(chuàng)建新的思維觀念,在此基礎(chǔ)上創(chuàng)建新的程序設(shè)計方法。

圍繞gt語句爭論的結(jié)果使人們形成了新的思維觀念:編寫程序時,在正確地實現(xiàn)了軟件功能的前提下,必須將可讀性、清晰性和可理解性放在首位,必須考慮到程序的可維護性,而不能個人隨心所欲地去過分追求程序編寫技巧。由于使用三種基本結(jié)構(gòu)順序、選擇、循環(huán))組成的程序具有良好的可讀性、清晰性和可理解性,容易維護,所以應(yīng)該使用順序、選擇和循環(huán)三種基本結(jié)構(gòu)來實現(xiàn)程序,每個程序模塊只有一個入口和出口,復(fù)雜結(jié)構(gòu)由基本結(jié)構(gòu)通過組合與嵌套來實現(xiàn),采用自頂向下逐步細化技術(shù)進行設(shè)計。按照這樣的新思維觀念,形成了一個新的程序設(shè)計方法一結(jié)構(gòu)化程序設(shè)計方法。1971年,IM公司在設(shè)計紐約時報信息庫管理系統(tǒng)時使用結(jié)構(gòu)化程序設(shè)計方法,成功完成了83000行程序的編寫,成為結(jié)構(gòu)化程序設(shè)計方法成功運用的一個范例。隨后,結(jié)構(gòu)化程序設(shè)計方法又在美國宇航局空間實驗室飛行模擬系統(tǒng)的設(shè)計等許多項目中得到成功運用。

1973年,Nass和Shneidemarni出著名的盒圖(N-S圖)1974年ChaPir對盒圖進行了擴展,這一創(chuàng)新為結(jié)構(gòu)化程序設(shè)計提供了一個強有力的工具,改變了使用傳統(tǒng)流程圖容易產(chǎn)生隨意性的弊病,使結(jié)構(gòu)化程序設(shè)計方法得到完善。隨后,日立公司的二村良彥等人提出了問題分析圖(PAD圖)問題分析圖是結(jié)構(gòu)化程序設(shè)計的又一個有效的工具,從而進一步豐富了結(jié)構(gòu)化程序設(shè)計方法151。1971年Weh首先開發(fā)出Psa語言,1972年貝爾實驗室的RCi設(shè)計出C語言,1983年美國正式公布AN—StPasra和AMSPC標準,以Pasca語言和Q吾言為代表的結(jié)構(gòu)化程序設(shè)計語言的出現(xiàn)和完善,使結(jié)構(gòu)化程序設(shè)計方法得到了更加廣泛的應(yīng)用。

在結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上,人們開始從整體范圍思考軟件開發(fā)方法。軟件生命周期理論的提出,是人們正確認識軟件開發(fā)整體性的結(jié)果。一個軟件從開始計劃,到廢棄不用,有一個完整的生命周分析、軟件設(shè)計、編寫程序、測試、維護。根據(jù)軟件生命周期理論,開發(fā)軟件不僅僅是編寫程序,必須還要完成其它階段的工作,編寫程序只是軟件開發(fā)的整體過程中的一項活動,因此開發(fā)軟件時不能只重視編寫程序而忽視其它軟件開發(fā)活動。一個完整的軟件開發(fā)方法,應(yīng)該對軟件生命周期中的每個階段的任務(wù)和目標都能給出清晰的描述。1970年Rtce首先提出瀑布模型,瀑布模型將軟件生命周期概念非常清晰地表達出來1<6,它的出現(xiàn),標志著人們開始從軟件開發(fā)的整體性出發(fā)來構(gòu)建軟件開發(fā)方法。在結(jié)構(gòu)化程序設(shè)計取得巨大成功的推動下,以結(jié)構(gòu)化程序設(shè)計方法為中心,開始形成結(jié)構(gòu)化軟件開發(fā)方法。1974年,SeversMYeis和Constantine發(fā)表文章“SwcuiKdAnalysis,提出了結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計的概念,隨后許多專家為結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計方法的形成和完善做了大量工作,如1977年R°s^Schmng表文章“Srucmied八na—ysisfrRequiranentsDefinition,,如1978年MYe^出版著作《CcmposieStiucmiedDesg》如1978年Youijon和Constanfne出版著作《StucuredDe如1979年DMarco出版著作《Sttucutd八nalysjsandSystemSPeciifaton〉11],等等,在YoudanConsiantineDMar°oStevensMYera等人的積極工作和倡導(dǎo)下,結(jié)構(gòu)化的思想被應(yīng)用到軟件開發(fā)的整體過程,逐漸形成了現(xiàn)在大家熟知的、包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn)在內(nèi)的完整的結(jié)構(gòu)化軟件開發(fā)方法。

結(jié)構(gòu)化分析方法使用數(shù)據(jù)流圖和數(shù)據(jù)字典以及ER圖、層次方框圖、Wamiel圖、PO圖等工具來描述軟件需求。結(jié)構(gòu)化設(shè)計方法使用模塊化和自頂向下逐步細化技術(shù)根據(jù)數(shù)據(jù)流圖等結(jié)構(gòu)化分析的結(jié)果來設(shè)計軟件系統(tǒng)總體結(jié)構(gòu),使用盒圖或PAD圖等工具來設(shè)計每個模塊的算法和數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)化軟件開發(fā)方法成為20世紀70年代和80年代占主導(dǎo)地位的軟件開發(fā)方法,直到現(xiàn)在仍在發(fā)揮作用。它的廣泛運用,有效地遏制了軟件危機的蔓延。

1.2面向?qū)ο筌浖_發(fā)方法的創(chuàng)新發(fā)展的過程

面向?qū)ο筌浖_發(fā)方法包括面向?qū)ο蠓治龇椒?、面向?qū)ο笤O(shè)計方法和面向?qū)ο髮崿F(xiàn)方法,其核心是面向?qū)ο蟪绦蛟O(shè)計方法。面向?qū)ο蟪绦蛟O(shè)計語言的創(chuàng)新發(fā)展推動面向?qū)ο蟪绦蛟O(shè)計方法逐漸形成和完善,從而推動面向?qū)ο筌浖_發(fā)方法形成并發(fā)展。

面向?qū)ο筌浖_發(fā)方法的研究,1967年KistrnNgad和01已JohanDah開發(fā)了Simula語言,提出許多面向?qū)ο蟮母拍睢?972年,八laiKay引用smUa吾言中關(guān)于類和對象的概念,開發(fā)出3nalltalk語言。1980年,Xerox公司推出比較完善的Snaltk語言。1986年,DiSitalk公司推出了運行在IM—PC機的DOS環(huán)境下的Sialtk版本——3nallta]k/ySnallak語言是第一種真正的面向?qū)ο笳Z言。面向?qū)ο笳Z言的核心概念是類和對象,類和對象的概念的提出是軟件開發(fā)歷史上的一次重要的思維觀念創(chuàng)新,正是這一思維觀念創(chuàng)新推動了程序設(shè)計方法乃至軟件開發(fā)方法的創(chuàng)新發(fā)展。結(jié)構(gòu)化程序設(shè)計方法所代表的思維觀念創(chuàng)新被稱為程序設(shè)計方法的第一次飛躍,面向?qū)ο蟪绦蛟O(shè)計方法這一思維觀念創(chuàng)新被稱為程序設(shè)計方法的又一次飛躍。

在傳統(tǒng)的程序設(shè)計方法中,數(shù)據(jù)和施加在數(shù)據(jù)上的操作被分離成兩個獨立的部分,而程序被看作是工作在數(shù)據(jù)上的一系列過程或函數(shù)的集合。實際上這樣分離不利于使用計算機解決問題。原因在于:如果我們將客觀世界中描述的實體稱為問題空間中的對象,將計算機中的實體稱為解空間的對象。因為客觀世界的實體既有靜態(tài)的屬性(即數(shù)據(jù))又有動態(tài)的行為(即對數(shù)據(jù)的操作)因此這兩方面內(nèi)容密切相關(guān)。由于傳統(tǒng)的程序設(shè)計方法將這兩方面內(nèi)容分離,無形中加深了問題空間與解空間之間的裂痕,無法實現(xiàn)從問題空間到解空間的自然過渡,增加了軟件開發(fā)的難度。從軟件重復(fù)使用和軟件維護的角度看,由于數(shù)據(jù)和施加在數(shù)據(jù)上的操作被分離成兩個獨立的部分,盡管傳統(tǒng)方法也提倡軟件重復(fù)使用,但局限于少數(shù)函數(shù)或過程的重復(fù)使用,重復(fù)使用的粒度比較小,不利于大型軟件的開發(fā);由于數(shù)據(jù)和施加在數(shù)據(jù)上的操作被分離成兩個獨立的部分,使模塊的信息隱藏和獨立性受到影響,因此傳統(tǒng)方法開發(fā)的軟件的可維護性較差。

在面向?qū)ο蟪绦蛟O(shè)計方法中,數(shù)據(jù)和施加在數(shù)據(jù)上的操作被封裝在一起,形成類和對象的概念,用對象分解取代了傳統(tǒng)方法的功能分解解所有對象被劃分成各種對象類,按照子類與父類的關(guān)系組成對象類的層次結(jié)構(gòu),子類自動繼承父類的所有特性,對象彼此間僅通過傳遞消息實現(xiàn)聯(lián)系。這一思維觀念創(chuàng)新使得問題空間與解空間的結(jié)構(gòu)基本一致,使得從問題空間到解空間的過渡非常自然;使得軟件重塊的信息隱藏和獨立性增強,有利于提高軟件的可維護性;為開發(fā)者提供了隨著對某個被開發(fā)系統(tǒng)的認識逐步深入和具體化的過程,與人們通常采用的認識客觀世界、解決復(fù)雜問題的漸進式思維方式相一致。

Snalalk語言的引起了人們的廣泛關(guān)注,隨后產(chǎn)生了數(shù)十種面向?qū)ο笳Z言。例如C++語言它是目前影響最廣泛的面向?qū)ο笳Z言之一。C++語言是貝爾實驗室的BjameSwusrup在1980年開始開發(fā),它是在C吾言的基礎(chǔ)上進行的開發(fā),當時稱新開發(fā)出的語言為“含類的C,到1983年時取名為C++。例如Jaa吾言它是目前應(yīng)用最廣泛的面向?qū)ο笳Z言之一。JaM吾言是Sun公司的JamesGoSjngPatrickNaughtoriChiWarihMikeSheridanBillJoy等人在1991年開始開發(fā),最初該語言名叫“Oak嫁樹)1992年秋Oak問世,后來Sun公司發(fā)現(xiàn)Qak吾言所具有的跨平臺、面向?qū)ο蠛桶踩愿叩忍匦苑浅7匣ヂ?lián)網(wǎng)的需要,于是在1995年對該語言進行設(shè)計改進,然后在1995年5月正式以Java語言為名公開。

在面向?qū)ο蟪绦蛟O(shè)計方法基礎(chǔ)上,從20世紀80年代中期到90年代初,人們開始從整體范圍思考面向?qū)ο筌浖_發(fā)方法,面向?qū)ο蟮难芯块_始向軟件生命周期的前期階段發(fā)展,許多面向?qū)ο蠓治龊驮O(shè)計((DA/CDD)方法被提出,比較著名的如1990年提出的Wtfs~Brock方法、1991年提出的Coa和Youdm方法、1991年提出的Ranbaugh方法(對象建模技術(shù)一CMI)、1992年提出的Jocobsm方法畫向?qū)ο筌浖こ桃籓OE)1994年修改后的Boch方法。這些面向?qū)ο蠓治龊驮O(shè)計方法各有各的特點,如何吸收它們各自的優(yōu)點,將它們綜合起來,形成統(tǒng)一的面向?qū)ο蠓治龊驮O(shè)計方法,人們開始進行研究。BmC和Rambaugh首先合作,并于1995年10月了統(tǒng)一方法(UfedMehodlM.8版本然后Joobo也加盟到這一工作中來,這三人共同努力,將UM方法重新命名為IML(統(tǒng)一建模語言一UnifiedModelingLanguage)在1996年6月和10月分別了UML!9和UM091兩個版本1997年1月正式公布UMU0版本。LML的開發(fā)得到了廣泛的好評,1997年11月17日CMG賴際對象管理組織^ObjectManagementCtouP)接納UMU.1版本為基于面向?qū)ο蠹夹g(shù)的標準建模語

法開始得到廣泛的應(yīng)用,成為二十世紀九十年代、直到目前占主導(dǎo)地位的軟件開發(fā)方法。

2.對兩個典型的軟件開發(fā)方法的創(chuàng)新發(fā)展過程的分析

2.1結(jié)構(gòu)化軟件開發(fā)方法的創(chuàng)新發(fā)展過程的四個環(huán)節(jié)

我們根據(jù)前面敘述的結(jié)構(gòu)化軟件開發(fā)方法的創(chuàng)新發(fā)展的過程,可以看出整個過程由以下四個環(huán)節(jié)組成。環(huán)節(jié)1找出軟件開發(fā)活動中存在著的問題。

問題是:在結(jié)構(gòu)化軟件開發(fā)方法提出之前,軟件開發(fā)活動中的個體化特征非常嚴重,編寫程序時個人隨心所欲,過分追求程序編寫技巧,沒有一個行之有效的、大家共同遵循的開發(fā)準則;錯誤地認為開發(fā)軟件只是編寫程序,對編寫程序之外的其它軟件開發(fā)環(huán)節(jié)沒有給予重視。

環(huán)節(jié)2為了解決問題而進行思維觀念創(chuàng)新。

新的思維觀念是:編寫程序時不能個人隨心所欲地過分追求程序編寫技巧,必須將可讀性、清晰性和可理解性放在首位,必須考慮程序的可維護性,要使用三種基本結(jié)構(gòu)(順序、選擇、循環(huán))來實現(xiàn)程序,采用自頂向下逐步細化技術(shù)進行設(shè)計。編寫程序只是軟件開發(fā)的整體過程中的一項活動,還要完成系統(tǒng)分析和系統(tǒng)設(shè)計等其它階段的工作,因此開發(fā)軟件時不能只重視編寫程序而忽視其它階段的活動。

環(huán)節(jié)3按照新的思維觀念來構(gòu)建結(jié)構(gòu)化軟件開發(fā)方法的核心部分。

核心部分是結(jié)構(gòu)化程序設(shè)計方法,通過Pascal語言和C語言為代表的結(jié)構(gòu)化程序設(shè)計語言的推出和完善,通過盒圖(N—S圖)和問題分析圖(PAD圖)為代表的結(jié)構(gòu)化程序設(shè)計工具的推出和完善,結(jié)構(gòu)化程序設(shè)計方法逐漸形成并完善。

環(huán)節(jié)4按照新的思維觀念來完善結(jié)構(gòu)化軟件開發(fā)方法。

完善的內(nèi)容主要是將新的思維觀念應(yīng)用于系統(tǒng)分析和系統(tǒng)設(shè)計過程,在結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上,逐漸形成結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計方法(SA/3)方法)使結(jié)構(gòu)化軟件開發(fā)方法得以完善。

2.2面向?qū)ο筌浖_發(fā)方法的創(chuàng)新發(fā)展過程的四個環(huán)節(jié)創(chuàng)新發(fā)展過程,可以看出整個過程也是由四個環(huán)節(jié)組成。

環(huán)節(jié)1找出軟件開發(fā)活動中存在著的問題。

問題是:傳統(tǒng)軟件開發(fā)方法將數(shù)據(jù)和施加在數(shù)據(jù)上的操作分離成兩個獨立的部分,導(dǎo)致問題空間和解空間的結(jié)構(gòu)不一致,從系統(tǒng)分析到系統(tǒng)設(shè)計和實現(xiàn)的過渡不自然,軟件重復(fù)使用的粒度小,不利于大型軟件的開發(fā),模塊的信息隱藏和獨立性不好,軟件可維護性較差。

環(huán)節(jié)2為了解決問題而進行思維觀念創(chuàng)新。

新的思維觀念是:將數(shù)據(jù)和施加在數(shù)據(jù)上的操作封裝在一起,形成類和對象的概念,用對象分解取代傳統(tǒng)方法的功能分解解所有對象被劃分成各種對象類,按照子類與父類的關(guān)系組成對象類的層次結(jié)構(gòu),子類自動繼承父類的所有特性,對象彼此間僅通過傳遞消息實現(xiàn)聯(lián)系。

環(huán)節(jié)3按照新的思維觀念來構(gòu)建面向?qū)ο筌浖_發(fā)方法的核心部分。

核心部分是面向?qū)ο蟪绦蛟O(shè)計方法,通過Snaltak吾言的推出和完善,通過C++和Java等許多面向?qū)ο笳Z言的推出和完善,面向?qū)ο蟪绦蛟O(shè)計方法逐漸形成并完善。

環(huán)節(jié)4按照新的思維觀念來完善面向?qū)ο筌浖_發(fā)方法。

完善的內(nèi)容主要是將新的思維觀念應(yīng)用于系統(tǒng)分析和系統(tǒng)設(shè)計過程,在面向?qū)ο蟪绦蛟O(shè)計方法基礎(chǔ)上,各種面向?qū)ο蠓治龊驮O(shè)計(OOA/OOD)方法(Wifs_Brock方法、Coad和Youdon方法、Ranxbag方法、Jooobson方法)的提出,LMU統(tǒng)一建模語言-UnifiedMadefngLanguage)的出現(xiàn)和完善,使面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計方法逐漸形成并完善,從而使面向?qū)ο筌浖_發(fā)方法得以完善。

2.3小結(jié)

從上面分析我們看到,不論是結(jié)構(gòu)化軟件開發(fā)方法的創(chuàng)新發(fā)展過程,還是面向?qū)ο筌浖_發(fā)方法的創(chuàng)新發(fā)展過程,都由四個環(huán)節(jié)組成。這決不是巧合,這說明軟件開發(fā)方法的創(chuàng)新發(fā)展過程具有其內(nèi)在的規(guī)律性,結(jié)構(gòu)化和面向?qū)ο筌浖_發(fā)方法作為兩個成熟的軟件開發(fā)方法,它們的創(chuàng)新發(fā)展過程都遵循這個規(guī)律。這個規(guī)律可以簡單歸納為四個環(huán)節(jié),環(huán)節(jié)L找到現(xiàn)存的某些問題,環(huán)節(jié)2:為了解決問題而進行思維觀念創(chuàng)新,環(huán)節(jié)3按照新的思維觀的思維觀念來完善軟件開發(fā)方法。

3其它軟件開發(fā)方法的創(chuàng)新發(fā)展過程

以上由兩種典型的軟件開發(fā)方法創(chuàng)新發(fā)展的過程所總結(jié)出來的規(guī)律性,具有普遍意義。我們來看其它軟件開發(fā)方法創(chuàng)新發(fā)展的過程,例如敏捷(A&ile)軟件開發(fā)方法和面向八gm軟件開發(fā)方法,這兩種軟件開發(fā)方法正在發(fā)展中。

3 1敏捷軟件開發(fā)方法

敏捷(ASle)軟件開發(fā)方法包括XPSCRIMDSMFDDA3)等一類軟件開發(fā)方法,這類方法在20世紀90年代后期逐漸發(fā)展起來,2001年

2月,敏捷軟件開發(fā)方法的一些創(chuàng)始人在美國猶他州成立敏捷聯(lián)盟(ASlAlliance),了敏捷軟件開發(fā)宣言,公布了他們開發(fā)軟件的新的思維觀念,從而引起人們的廣泛關(guān)注。

敏捷軟件開發(fā)方法的出現(xiàn),是人們針對傳統(tǒng)的軟件開發(fā)過程復(fù)雜繁瑣、產(chǎn)生并且維護大量文檔、缺乏對開發(fā)過程中各種變化的有效和及時的反應(yīng)等問題,為了適應(yīng)變化、充分發(fā)揮人的主觀能動性、簡化開發(fā)過程、提高開發(fā)效率,而研究并提出的。敏捷軟件開發(fā)方法強調(diào)適應(yīng)變化,強調(diào)以人為中心,強調(diào)簡單化和快速反饋,提倡剛好夠用,追求快節(jié)奏的軟件開發(fā),對軟件生產(chǎn)率高度重視。

敏捷聯(lián)盟宣布了敏捷軟件開發(fā)方法的4條價值觀和12條實踐原則,這4條價值觀和12條實踐原則挑戰(zhàn)傳統(tǒng)觀念,倡導(dǎo)新的思維。4條價值觀是:(1重視個人的創(chuàng)造力和相互溝通甚于軟件過程和軟件工具;(2)重視當前軟件甚于理解文檔;(3重視用戶合作甚于僅僅依賴合同;(4)重視對變動的響應(yīng)甚于一味遵循計劃。12個實踐原則是:(1)優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意;(2)即使到了開發(fā)的后期,也歡迎改變需求;(3)經(jīng)常性地交付可以工作的軟件,交付的時間間隔越短越好;(4)業(yè)務(wù)人員和開發(fā)人員天天在一起工作;(5)圍繞被激勵起來的個人來構(gòu)建項目,給他們提供所需要的環(huán)境和支持,并且信任他們能夠完成工作;(6撮有效果并且富有效率的傳遞信息的方法,就是面對面的交流;(7)工作的軟件是首要的進度度量標準;(8)提倡可持續(xù)的開發(fā)速度;(9)不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計會增強敏捷設(shè)計出自于自組織的團隊;(12)每隔一定時間,團隊會在如何更有效地工作方面進行反省,然后對自己的行為進行調(diào)整。

敏捷軟件開發(fā)宣言后,敏捷聯(lián)盟的成員們紛紛著書立說,完善和發(fā)展敏捷軟件開發(fā)方法的理論。例如敏捷聯(lián)盟的發(fā)起人Mat在2002年出版了著名的《AgleSofWareDevelopnentPrjncp)]e,sPalesandPraefce》〉(《敏捷軟件開發(fā):原則、模式與實踐》)一書,該書由鄧輝譯成中文,由清華大學出版社2003年9月出版;例如敏捷聯(lián)盟的重要成員Highsnih在2002年出版了《AgeSOfwareDevelop—mentEoosystemS)(《敏捷軟件開發(fā)生態(tài)系統(tǒng)》)一書,該書由姚旺生和楊鵬等譯成中文,由機械工業(yè)出版社2004年1月出版;例如敏捷聯(lián)盟的重要成員Cockbuin在2001年出版了《AgileSofwaieDevelop—men》(《敏捷軟件開發(fā)》)一書,該書由俞涓譯成中文,由人民郵電出版社2003年11月出版。目前敏捷軟件開發(fā)方法還沒有像面向?qū)ο筌浖_發(fā)方法那樣成熟還處于發(fā)展之中。敏捷軟件開發(fā)方法沒有統(tǒng)一的開發(fā)模式,敏捷軟件開發(fā)方法沒有專用的編程語言,也沒有專用的分析和設(shè)計的工具,因為敏捷軟件開發(fā)方法的思維觀念創(chuàng)新之處與結(jié)構(gòu)化和面向?qū)ο筌浖_發(fā)方法不同,它可以充分利用現(xiàn)有的語言和工具。雖然敏捷軟件開發(fā)方法不如結(jié)構(gòu)化和面向?qū)ο筌浖_發(fā)方法那樣成熟以及應(yīng)用廣泛,但在需求模糊或快速變化下的一些小型的軟件項目的開發(fā)上還是非常適用的。

分析敏捷軟件開發(fā)方法的創(chuàng)新發(fā)展過程,對照結(jié)構(gòu)化和面向?qū)ο筌浖_發(fā)方法創(chuàng)新發(fā)展過程的四個環(huán)節(jié),可以看出,敏捷軟件開發(fā)方法的創(chuàng)新發(fā)展經(jīng)歷了環(huán)節(jié)1和環(huán)節(jié)2目前處于環(huán)節(jié)3環(huán)節(jié)1找出的問題主要是“傳統(tǒng)軟件開發(fā)方法的開發(fā)過程復(fù)雜繁瑣、產(chǎn)生并且維護大量文檔、缺乏對開發(fā)過程中各種變化的有效和及時的反應(yīng)?!?環(huán)節(jié)2提出的新的思維觀念通過敏捷宣言中的4條價值觀和12條實踐原則體現(xiàn)出;環(huán)節(jié)3是按照新的思維觀念來構(gòu)建軟件開發(fā)方法的核心部分,以Main的名著《ASlSoftvareDevel°PmentPrjncJ^lesPatternsandPac#?》為代表的一批著述的發(fā)表,說明敏捷軟件開發(fā)方法的核心部分正在逐漸形成之中,但是目前還沒有形成一個統(tǒng)一的、能為大家所接受和認可的標準化方法。由于敏捷軟件開發(fā)方法的思維觀念創(chuàng)新之捷軟件開發(fā)方法發(fā)展的環(huán)節(jié)4也一定具有自己的特點,不會照搬結(jié)構(gòu)化和向?qū)ο筌浖_發(fā)方法的模式。我們期待著敏捷軟件開發(fā)方法的進一步發(fā)展和完善。

3.2面向Agen軟件開發(fā)方法

由于ntene的廣泛應(yīng)用,使得計算機軟件的規(guī)模越來越大、復(fù)雜性越來越高,人們對計算機的要求也越來越高。人們期望將來計算機不僅僅被動地充當人類的“傭人”角色,還能夠充當人類的“管家”和“”角色,能主動地、自發(fā)地為人類做更復(fù)雜的工作。人們希望通過使用Agern理論和技術(shù)開發(fā)出具有更高智能特征、更高靈活性并能更友好地與人類進行交互的計算機系統(tǒng)11411151。但是傳統(tǒng)的軟件開發(fā)方法難以擔負這種具有智能特征的復(fù)雜軟件的開發(fā)任務(wù)于是自20世紀90年代中后期以來人們陸續(xù)提出了一些面向Agen軟件開發(fā)方法,比較有影響的包括MaS方法、MASCommonKADS方法、Gaia方法、AgentUML方法、Tropos方法等I16-181Agen概念來自于分布式人工智能研究領(lǐng)域,目前關(guān)于Agen概念的定義還有許多爭論。一般認為Agen是一個具有自主性、交互性、反應(yīng)性、社會性等特征、能在某一環(huán)境下持續(xù)發(fā)揮作用以實現(xiàn)設(shè)計目標的行為實體。Agen與對象是兩個完全不同的概念,對象只是封裝了屬性和方法并且通過傳遞消息與其它對象進行交互的實體而Agen由于具有自主性等特征,所以它的抽象程度比對象更高,更貼近現(xiàn)實世界中的行為實體。

面向Agn軟件開發(fā)方法基于Agen概念,它給軟件開發(fā)帶來新的思維觀念,新的思維觀念認為:任何一個系統(tǒng),無論是應(yīng)用系統(tǒng)還是軟件系統(tǒng),是由一個或者多個Agen購成的,每個Agen嘟是自主的行為實體Agen伺存在著復(fù)雜的結(jié)構(gòu)關(guān)系,并通過高層的交互(如合作、協(xié)商和競爭等)來進行Agent間的相互作用,從而實現(xiàn)系統(tǒng)的整體設(shè)計目標。

目前將面向Agen軟件開發(fā)方法分為三類:基于知識工程的方法、基于對象技術(shù)的方法和基于角色、組織模型的方法1191120?;趯ο蠹夹g(shù)的方法借助于面向?qū)ο筌浖_發(fā)方法,將Agen視為一種特殊的對象,通過對現(xiàn)有面向?qū)ο筌浖_發(fā)方法以及建模語言(尤其是UML)的擴充來支持對基于A-gn係統(tǒng)進行建模、分析和設(shè)計,MaSE方法和Agent法借助于知識工程(如人工智能、認知科學等)領(lǐng)域的概念、思想和技術(shù)對基于Agent系統(tǒng)進行建模、分析和設(shè)計。一種常用的方法是將Agent視為由各種認知部件所組成的意向系統(tǒng),如信念、目標、意圖、規(guī)劃等等,MAS-ConnonKADS方法和TPos方法是這類方法的代表?;诮巧?、組織模型的方法借助于組織學和社會學的思想,將基于Agent系統(tǒng)視為是一個組織或者社會,利用社會學和組織學中的抽象概念(如角色、組織、組織規(guī)則、職責、權(quán)利)和思想來對基于Agen系統(tǒng)進行描述、分析和建模,Gaia方法是這類方法的代表。

上述各種面向Agent軟件開發(fā)方法都不成熟距離大規(guī)模的實際應(yīng)用還有很大的差距,無法像面向?qū)ο筌浖_發(fā)方法那樣為人們所接受??傮w上看,面向aen軟件工程方法的研究與應(yīng)用仍然處于探索階段,目前還沒有形成一個吸取了各種方法優(yōu)點的、能為大家所接受的、統(tǒng)一的面向Agen軟件開發(fā)方法。

分析面向Agen欺件開發(fā)方法的創(chuàng)新發(fā)展過程,對照結(jié)構(gòu)化和面向?qū)ο筌浖_發(fā)方法創(chuàng)新發(fā)展過程的四個環(huán)節(jié),可以看出,面向Agen軟件開發(fā)方法的創(chuàng)新發(fā)展經(jīng)歷了環(huán)節(jié)1和環(huán)節(jié)2目前處于環(huán)節(jié)3環(huán)節(jié)1所找出的問題主要是“開發(fā)具有更高智能特征、更高靈活性并能更友好地與人類進行交互的計算機系統(tǒng)?!?環(huán)節(jié)2所提出新的思維觀念是“將任何一個系統(tǒng)都看成是由若干個具有自主性、交互性、反應(yīng)性、社會性等特征的Agen構(gòu)成的,它們能在某一環(huán)境下持續(xù)發(fā)揮作用以實現(xiàn)設(shè)計目標?!?環(huán)節(jié)3是按照新的思維觀念來構(gòu)建軟件開發(fā)方法的核心部分,雖然目前各種面向Agen軟件開發(fā)方法百花齊放,但沒有形成統(tǒng)一的方法,并且沒有一種成熟的面向Agen程序設(shè)計語言,所以面向Agen軟件開發(fā)方法的核心部分的形成還有很長的路要走。

4結(jié)束語

篇9

關(guān)鍵詞:軟件工程 軟件開發(fā) 流程

中圖分類號:TP311.52 文獻標識碼:A 文章編號:1002-2422(2008)01-0062-02

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

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

國外的軟件工程理論的應(yīng)用相對比較成熟,其中表現(xiàn)最為突出的是印度。印度作為亞洲最大的軟件外包大國之一,其軟件工程的思想在軟件開發(fā)流程中的應(yīng)用是比較好的。整個軟件開發(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(反復(fù)漸進模式)和Spiral Mod-el(螺旋模式),無論采用哪種模型方式,軟件開發(fā)過程最起碼要包括支持軟件整個生命期的活動。基本的生存周期包括軟件計劃、需求分析、總體設(shè)計、詳細設(shè)計、編碼及單元測試、綜合測試、移交及軟件維護。

由此可以看出,需求分析階段是軟件開發(fā)流程的第一步,是軟件開發(fā)最首要的工作,直接影響到軟件設(shè)計和開發(fā)的一切流程。如果需求分析工作不到位,將會導(dǎo)致與用戶要求存在偏差的嚴重后果。國內(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)生的,適用性上有很大的局限性,有待進一步完善,因此,僅對主要的三種方法在操作單位、方法特性等方面進行了比較,如表1所示。

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

篇10

論文摘要:伴隨計算機技術(shù)快速發(fā)展,不斷產(chǎn)生各種應(yīng)用軟件,并面向各應(yīng)用領(lǐng)域滿足需求,對軟件進行維護和保護已成為軟件行業(yè)所面臨的一個現(xiàn)實問題。伴隨軟件工程的不斷完善,使軟件開發(fā)越來越復(fù)雜,并具有一整套科學方法,進而提升了軟件系統(tǒng)的可靠性、可理解性和可維護性,提升了軟件生產(chǎn)率,降低了開發(fā)成本。該文對計算機軟件可維護性方法進行了探索和研究,并作出應(yīng)有的貢獻,希望為今后軟件可維護性的發(fā)展做出一些應(yīng)有的貢獻。

計算機軟件是用戶和硬件之間的接口界面。計算機用戶可以通過軟件和計算機實行溝通,軟件是計算機系統(tǒng)設(shè)計的重要根據(jù)。為能方便用戶,讓計算機體系極具較高的整體效用,在計算機系統(tǒng)設(shè)計時,要對硬件和軟件相結(jié)合的全局進行考慮,并滿足用戶的需求。軟件保護技術(shù),即怎樣防止破解合法軟件,軟件保護產(chǎn)品所涉及內(nèi)容極為寬泛,屬于綜合技術(shù)范疇之內(nèi)。在軟件生命周期中,每個階段均采取了科學和優(yōu)秀的管理方法和技術(shù),并在每個階段結(jié)束前,從技術(shù)和管理方面實行嚴格審查,只有合格了才能進行下一階段的工作,這使得軟件開發(fā)工程項目全過程通過有條有序的方式進行,以確保軟件的質(zhì)量,尤其是提升了軟件的可維護性。

1計算機軟件維護性概述

在軟件生命周期,涵蓋了兩個重要階段,包括開發(fā)期和運營期,運行期是系統(tǒng)有效發(fā)展的階段,在系統(tǒng)開發(fā)時,出于花了很多大量人力和物力資源,所以,大家總是希望能看到,可以盡可能地延長系統(tǒng)的運行周期,使軟件發(fā)揮更大的性能,與其他相對比,軟件成本也較低。然而,這卻尚未出現(xiàn)以確認該軟件不存在錯誤的技術(shù)。事實上,該軟件運行時,它是不可能不修改軟件的,開發(fā)是一項大投資,可以提高生產(chǎn)效率,降低成本,并保證軟件的品質(zhì),人們總是希望使用現(xiàn)有的軟件,對其擴張或移植。所以,在操作過程中,軟件人員的任務(wù)是繼續(xù)進行修改軟件,這項工作就是所說的系統(tǒng)維護。

軟件維護一般包括三大類,一是糾正性維護(Corrective Maintenance)。這類工作主要是糾正軟件存在的錯誤;二是適應(yīng)性維護(Adaptive Maintenance)。這類工作主要是為能適應(yīng)變化的外部環(huán)境,對軟件應(yīng)用程序做出修改;三是完善性維護(Perfective Mainte nance)。這類工作是為能提升系統(tǒng)性能或擴大其功能,也對軟件進行更改。這三個方面的維護工作,第二和第三層面維護方面所占的份額最大,占80%左右的總維護工作??梢姡撥浖谶\行過程中也是開發(fā)商的維修過程,維護軟件的價值也是不用多說的。根據(jù)調(diào)查表明,軟件維護成本已占到整個軟件生命周期成本的70%以上,軟件的可維護性居于首位。但軟件維護的難度越來越大,并已成為目前所面臨的最大問題。

2計算機軟件可維護性一般方法

2.1提升軟件工具模塊化和質(zhì)量技術(shù)

在軟件開發(fā)過程,有效方法之一是提高軟件質(zhì)量和降低成本,其有效技術(shù)也是提高可維護性。它的優(yōu)點是,如果需要改變一個功能模塊,只需要改變這個模塊,不會影響到其他模塊;如果程序需要添加一些功能,只需完成這些功能,增加一個新的模塊或模塊層;程序測試和重復(fù)測量更容易,序列錯誤很容易發(fā)現(xiàn)和改正,以提高程序的運行效率。采用結(jié)構(gòu)化程序設(shè)計技術(shù),以提高現(xiàn)有系統(tǒng)的可維護性。這種辦法需要掌握更換模塊的外部特征,不需要把握其內(nèi)部運作的狀態(tài)。它可以幫助其減少新的錯誤,并有機會提供一個結(jié)構(gòu)化的模塊,并逐步取代非結(jié)構(gòu)化的模塊,運用自動重建結(jié)構(gòu)和重新格式化的工具。

2.2創(chuàng)建精密的軟件品質(zhì)目標和優(yōu)先級

程序的維護性應(yīng)該是可以理解的、可靠的、可修改和測試的、可移植的、可以使用和效率高的。為了實現(xiàn)這些目標,要求付出的代價很大,也未必是可行的。一些質(zhì)量特性存在互補性,如可理解性和可測試性、可理解性和可修改性等。然而,其他一些質(zhì)量特性互相矛盾,如效率和可移植性、效率和可變性。因此,各品質(zhì)特性的維護性要求可以得到滿足,但它們相對重要性應(yīng)遵循程序使用作用和計算環(huán)境變化而變化。

2.3選有可維護的程序設(shè)計語言

根據(jù)程序可維護性,選擇程序設(shè)計語言,其影響是極大的。低層次的語言就是機器語言和匯編語言,這非常難以理解和掌握,也更難以對其進行維護。高級語言更容易理解,具有更好的可維護性,而低層次語言相對要差,但作為高層次語言,難易程度不一樣也是可以理解的。一些第四代語言是過程化語言,而有些是非程序語言。不管是什么語言,程序編制出來都很容易理解和修改,但存在指令數(shù)量可能會少一個數(shù)量級,而語言編制數(shù)量級要多一個,其開發(fā)速度會快多倍。

3加強計算機軟件可維護性方法發(fā)展與研究

在軟件維護過程,經(jīng)常遇到一些問題,如頻繁的員工流失率,已離開的原有開發(fā)商;缺乏文檔資料,很難了解其他人開發(fā)體系;不符合程序或文檔的文件不適當,并很難理解,軟件結(jié)構(gòu)不合理,難以修改或修改后容易出現(xiàn)錯誤。該軟件易于開發(fā),但其難以維持,通用性較差,這是以前設(shè)計軟件比較常見的通病問題,也是在同一個系統(tǒng)或重復(fù)開發(fā)的原由。重復(fù)開發(fā)會加強其系統(tǒng)功能,但單位人力、物力和財力資源會被浪費,而且還影響系統(tǒng)的正常使用。在軟件開發(fā)過程,應(yīng)充分和適當?shù)厮妓?,其系統(tǒng)通用性和自我維護能力,以避免系統(tǒng)開發(fā)重復(fù)是十分必要的,而且軟件開發(fā)過程是需要重點留意的地方。

如果要設(shè)計多功能易于維護的軟件,就必須有以靈活、通用和易維護為主旨的設(shè)計方法和思路。體系共性和個性方法分析,實現(xiàn)了對系統(tǒng)自維護功能的具體保證。在實際應(yīng)用進程中使用此系統(tǒng),并且得到用戶的好評。在該系統(tǒng)自維護功能概念基礎(chǔ)上,調(diào)整其參數(shù),其實可以做一個小的開發(fā)工具,進而可以開發(fā)類似的系統(tǒng)管理。這至少表明,引入該系統(tǒng)自維護功能定義,為系統(tǒng)使用和維護管理帶來了極大方便。

領(lǐng)域計算機管理在企業(yè)中的應(yīng)用范圍更為廣泛,程序更加深入。計算機管理應(yīng)用程序可大致分為兩個主要方面,即工業(yè)控制和信息化管理。信息化管理水平,即使市場上有很多的軟件支持,但考慮到企業(yè)的實際情況,要能更好地適應(yīng)自己的管理模式,并更有效地管理自己的信息,一些核心應(yīng)用系統(tǒng)主要由企業(yè)自主開發(fā)達成。在大多數(shù)的軟件管理上,報表類軟件為大部分,它們處理的報表主要是計算總的檢查驗證等。

執(zhí)行軟件設(shè)計上,自我維護功能定義的引入,使軟件更具生命力。系統(tǒng)自維護功能給系統(tǒng)設(shè)計帶來了一定難度,需要采取一些額外系統(tǒng)資源占用,但隨著計算機技術(shù)的發(fā)展,到今天為止,它的資源不被認為是一個重要因素,考慮到對系統(tǒng)維護性影響,達到自我維護功能是值得的。對于其他軟件系統(tǒng)的開發(fā),如在開發(fā)中能夠充分考慮系統(tǒng)的共性和個性,添加到系統(tǒng)自我維護功能的觀念,體現(xiàn)技術(shù)應(yīng)用,且實現(xiàn)更好的發(fā)展。

4結(jié)束語

總之,當前計算機技術(shù)在整個國民經(jīng)濟當中具有相當廣泛的領(lǐng)域,在人們的日常生活中,計算機技術(shù)可以說是無處不在,以軟件技術(shù)作為其內(nèi)在靈魂的計算機信息系統(tǒng),正在對系統(tǒng)高度集成化、結(jié)構(gòu)廣泛分布化、信息多元化和功能智能化等一系列新型發(fā)展方向越來越重視,并逐步在實踐中得以實現(xiàn)。在軟件開發(fā)各個階段,軟件的可維護性是在這一階段形成的,因此,必須在整個軟件開發(fā)的各個方面上,以提高軟件的可維護性進行貫穿。學習和掌握軟件生命周期的各個階段,對軟件的可維護性會產(chǎn)生一定影響,對軟件開發(fā)和一般軟件維護人員的實際工作具有極大裨益。

參考文獻:

[1]丁劍潔.基于度量的軟件維護過程管理的研究[D].西北大學,2006.