成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

探討軟件開(kāi)發(fā)過(guò)程模型的發(fā)展論文

時(shí)間:2021-02-12 14:50:31 論文 我要投稿

探討軟件開(kāi)發(fā)過(guò)程模型的發(fā)展論文

  0引言

探討軟件開(kāi)發(fā)過(guò)程模型的發(fā)展論文

  從第一個(gè)軟件開(kāi)發(fā)過(guò)程模型一“瀑布模型”的產(chǎn)生到現在,人們陸續推出了許多軟件開(kāi)發(fā)過(guò)程模型11。這些軟件開(kāi)發(fā)過(guò)程模型是如何產(chǎn)生和發(fā)展的?軟件開(kāi)發(fā)過(guò)程模型還會(huì )發(fā)展嗎?軟件開(kāi)發(fā)過(guò)程模型如何發(fā)展?研究這些問(wèn)題對于推動(dòng)軟件工程理論向前發(fā)展具有重要意義。下面對這些問(wèn)題進(jìn)行研討。

  1對幾個(gè)典型的軟件開(kāi)發(fā)過(guò)程模型的分析

  下面分析幾個(gè)典型的軟件開(kāi)發(fā)過(guò)程模型的產(chǎn)生情況,通過(guò)分析,既可以看到它們的內容又可以了解它們產(chǎn)生的原因。同時(shí),也可以從整體上看到軟件開(kāi)發(fā)過(guò)程模型發(fā)展的大致過(guò)程,在此基礎上思考軟件開(kāi)發(fā)過(guò)程模型的產(chǎn)生和發(fā)展問(wèn)題。

  1.1瀑布模型的產(chǎn)生情況

  早期的軟件開(kāi)發(fā)活動(dòng)帶有明顯的個(gè)體化特征,非常不規范,隨意性很強,人們錯誤地認為軟件就是程序,對程序之外的數據和相關(guān)的文檔材料沒(méi)有給予重視,對編寫(xiě)程序之外的軟件開(kāi)發(fā)活動(dòng)(如需求分析、概要設計、詳細設計、軟件維護等等)沒(méi)有給予重視,結果出現了軟件危機。軟件危機的典型表現有:開(kāi)發(fā)成本急劇上升、開(kāi)發(fā)進(jìn)度一再拖延、軟件難以維護甚至無(wú)法維護、軟件質(zhì)量無(wú)法保證、開(kāi)發(fā)出的產(chǎn)品不能滿(mǎn)足用戶(hù)需要,等等。為了擺脫軟件危機,人們開(kāi)始研究軟件開(kāi)發(fā)方法,1968年提出“軟件工程”的概念,主要思路是將人類(lèi)從事各種工程項目積累起來(lái)的行之有效的原理和方法應用于軟件的開(kāi)發(fā)和維護活動(dòng)中。在這種情況下,1970年瀑布模型被推出。

  計劃到開(kāi)發(fā)成功、交刪,再到廢棄不用,有一個(gè)完整的生命周期,稱(chēng)為軟件的生命周期。瀑布模型按照軟件的生命周期,將軟件過(guò)程分為:問(wèn)題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護等幾個(gè)階段。軟件開(kāi)發(fā)活動(dòng)按順序一個(gè)階段接著(zhù)一個(gè)階段地進(jìn)行,每個(gè)階段完成一項特定任務(wù),每個(gè)階段的結果經(jīng)審查合格后方能進(jìn)入下一個(gè)階段。瀑布模型嚴格地規定了每個(gè)階段必須提交的文檔,強迫開(kāi)發(fā)人員采用規范的方法,要求每個(gè)階段提交的產(chǎn)品必須經(jīng)過(guò)專(zhuān)家的仔細驗證。這樣,軟件質(zhì)量得到了保證。由于各階段提交了規范的文檔,軟件維護變得容易一些。瀑布模型的成功在很大程度上是由于它是文檔驅動(dòng)的模型。

  瀑布模型的推出,是人們?yōu)榱藬[脫軟件危機邁出的重要的一步。按照瀑布模型去進(jìn)行軟件開(kāi)發(fā)活動(dòng),克服了開(kāi)發(fā)中的個(gè)體隨意性和不規范傾向,使軟件開(kāi)發(fā)有章可循,有效地遏制了日益蔓延的軟件危機。

  1.2快速原型化模型的產(chǎn)生情況

  按照瀑布模型開(kāi)發(fā)軟件,雖然很有效,但靈活性不強,因為瀑布模型是按階段順序來(lái)操作的,必須在前一階段的工作完成后才能進(jìn)行下一階段的工作。需求分析是一個(gè)重要的階段,由于在開(kāi)發(fā)早期用戶(hù)的需求往往是模糊的,或由于某些原因用戶(hù)的需求要發(fā)生變化,導致需求分析階段的工作無(wú)法結束,造成下一階段的概要設計工作無(wú)法進(jìn)行。這時(shí)如果繼續采用瀑布模型進(jìn)行軟件開(kāi)發(fā)活動(dòng),顯然不妥,因此為了解決這類(lèi)軟件開(kāi)發(fā)問(wèn)題,必須構建新的軟件開(kāi)發(fā)過(guò)程模型。在這種情況下,快速原型化模型被推出。

  人們認識未知的事物,往往按照“實(shí)踐、認識、再實(shí)踐、再認識,逐步完善”的規律去做,經(jīng)過(guò)反復多次的迭代式的實(shí)踐和認識過(guò)程,達到基本了解事物情況的目的?焖僭突P桶凑者@個(gè)規律進(jìn)行軟件開(kāi)發(fā)活動(dòng),首先快速建立一個(gè)能反映用戶(hù)主要需求的原型系統,請用戶(hù)在計算機上試用,通過(guò)試用,用戶(hù)提出修改意見(jiàn);開(kāi)發(fā)人員按照用戶(hù)意見(jiàn)快速地修改原型系統,然后再讓用戶(hù)試用;然后開(kāi)發(fā)人員按照用戶(hù)意見(jiàn)再去修改;如此反復多次,直到原型系統完全滿(mǎn)足用戶(hù)需求為止。

  采用快速原型化模型進(jìn)行開(kāi)發(fā)活動(dòng),有效地解決了用戶(hù)需求模糊不清和用戶(hù)需求不斷變化的問(wèn)題?梢哉J為快速原型化模型是對瀑布模型的補充和完善,瀑布模型是用靜止的觀(guān)點(diǎn)來(lái)看待軟件開(kāi)發(fā)活動(dòng),將用戶(hù)需求看成是固定不變的,這樣實(shí)際上是將用戶(hù)需求簡(jiǎn)單化了,這種理想狀態(tài)實(shí)際很難找到?焖僭突P褪菑淖兓挠^(guān)點(diǎn)來(lái)看待軟件開(kāi)發(fā)活動(dòng),符合客觀(guān)型化模型的這種觀(guān)點(diǎn)。

  1.3增量模型的產(chǎn)生情況

  采用瀑布模型或采用快速原型化模型來(lái)開(kāi)發(fā)軟件時(shí),是按照模型規定的開(kāi)發(fā)過(guò)程,完成各開(kāi)發(fā)環(huán)節的所有任務(wù),得到一個(gè)完整的軟件,將其提交給用戶(hù)。面對軟件規模越來(lái)越大、軟件市場(chǎng)競爭越來(lái)越激烈、用戶(hù)要求越來(lái)越高的形勢,這樣開(kāi)發(fā)存在很多問(wèn)題。當你將一個(gè)大的完整產(chǎn)品提交給用戶(hù)后,用戶(hù)要花費很多時(shí)間來(lái)學(xué)習這個(gè)新產(chǎn)品,短時(shí)間內很難適應這個(gè)新產(chǎn)品,給工作中應用該產(chǎn)品帶來(lái)不便;這個(gè)產(chǎn)品完整提交后,用戶(hù)再去評價(jià)和提出修改意見(jiàn)就沒(méi)有意義了。這樣,使開(kāi)發(fā)風(fēng)險加大,使開(kāi)發(fā)時(shí)間增長(cháng),使用戶(hù)滿(mǎn)意度降低。為了解決這個(gè)問(wèn)題,必須構建新的軟件開(kāi)發(fā)過(guò)程模型。在這種情況下,增量模型被推出。

  人們解決大問(wèn)題時(shí),往往是將大問(wèn)題分解為若干個(gè)小問(wèn)題,每個(gè)小問(wèn)題比較容易解決(其中有一個(gè)小問(wèn)題是核心的關(guān)鍵問(wèn)題)將這些小問(wèn)題分別給予解決(對于核心的關(guān)鍵問(wèn)題首先給予解決),那么大問(wèn)題也就被解決了。一般來(lái)說(shuō),分解出的每個(gè)小問(wèn)題具有相對獨立性,即每個(gè)小問(wèn)題與其它每個(gè)小問(wèn)題聯(lián)系不緊密,這樣,既可以一個(gè)接著(zhù)一個(gè)地順序去解決每個(gè)小問(wèn)題,也可以同時(shí)去解決多個(gè)小問(wèn)題。增量模型按照這樣的方法進(jìn)行軟件開(kāi)發(fā),將一個(gè)大的軟件分解為一系列較小的“增量”,每個(gè)增量分別進(jìn)行開(kāi)發(fā),通常開(kāi)發(fā)的第一個(gè)增量是軟件的核心部分,實(shí)現軟件的基本需求。向用戶(hù)一個(gè)增量接著(zhù)一個(gè)增量地分批提交軟件產(chǎn)品。采用增量模型,用戶(hù)從拿到第一個(gè)增量時(shí)開(kāi)始,就可以學(xué)習和熟悉軟件,通過(guò)使用來(lái)評價(jià)軟件及提出修改意見(jiàn);開(kāi)發(fā)人員根據用戶(hù)對已經(jīng)提交的增量的反饋,可以改進(jìn)軟件產(chǎn)品。這樣,提交所有增量后,軟件產(chǎn)品就達到比較完善的程度,也提高了用戶(hù)滿(mǎn)意度。

  1.4螺旋模型的產(chǎn)生情況

  軟件開(kāi)發(fā)從始到終都存在著(zhù)風(fēng)險,項目規模越大、軟件越復雜,開(kāi)發(fā)該項目所冒的風(fēng)險就越大。并且風(fēng)險具有不確定性,可能發(fā)生也可能不發(fā)生,但是一旦風(fēng)險變?yōu)楝F實(shí),就會(huì )造成損失,甚至產(chǎn)生惡性后果。因此,如何識別風(fēng)險、預測風(fēng)險、駕馭風(fēng)險,將風(fēng)險可能造成的危害消除或減少,是軟件開(kāi)發(fā)中必須要考慮的問(wèn)題。但是在螺旋模型之前所提出的各種軟件開(kāi)發(fā)過(guò)程模型,都沒(méi)有強調“風(fēng)險分析”。在這種情況下,螺旋模型被推出。

  其實(shí)人們做任何事情之前,都要考慮風(fēng)險。如果存在風(fēng)險,那么一定要想辦法去消除,否則成功希望渺茫。螺旋模型是在結合瀑布模型和快速原型化模型的發(fā)框架上,帶有瀑布模型的系統性、順序性和“邊開(kāi)發(fā),邊評審”的特點(diǎn)。螺旋模型也是一種迭代模型,每一次迭代均可采用快速原型化模型方法,每一次迭代均作風(fēng)險分析。螺旋模型由若干個(gè)螺旋周期組成,每一周期都包括需求定義、風(fēng)險分析、工程實(shí)現和評審四個(gè)階段,當項目按順時(shí)針?lè )较蜓芈菪(xiàn)移動(dòng)時(shí),每迭代一次,螺旋線(xiàn)就前進(jìn)一個(gè)周期,軟件開(kāi)發(fā)又前進(jìn)一個(gè)層次,系統又生成一個(gè)新版本(即構造一個(gè)新的原型,這個(gè)新原型是在風(fēng)險被排除后得到的),當迭代過(guò)程進(jìn)行到用戶(hù)允許或可接受的范圍時(shí),迭代結束。

  螺旋模型的推出,強化了人們的風(fēng)險意識。通過(guò)使用原型來(lái)降低風(fēng)險是一種行之有效的方法。螺旋模型集成了瀑布模型和快速原型化模型的優(yōu)點(diǎn),又有自身的特點(diǎn),是一個(gè)實(shí)用性很強的軟件開(kāi)發(fā)過(guò)程模型。

  1.5構件組裝模型的產(chǎn)生情況

  面向對象技術(shù)出現之前所提出的各種軟件開(kāi)發(fā)過(guò)程模型,一般很少考慮“軟件構件”的重復使用問(wèn)題,即使編程時(shí)重復使用了一些庫函數,量也不大,并且粒度小。因此,軟件開(kāi)發(fā)的'任何一項工作基本是從頭開(kāi)始做,完整地做到尾。這樣開(kāi)發(fā)的缺點(diǎn)是成本高、時(shí)間長(cháng),當然出錯的可能性也大。這里的“軟件構件”一般指源代碼,現在將需求規格說(shuō)明、用戶(hù)界面、軟件體系結構等等也作為“軟件構件”。人們考慮:如果在開(kāi)發(fā)新軟件時(shí),能大量地重復使用已經(jīng)開(kāi)發(fā)過(guò)的軟件中的內容,開(kāi)發(fā)時(shí)間和成本不就降低了嗎?又由于已經(jīng)開(kāi)發(fā)過(guò)的軟件經(jīng)過(guò)了嚴格的測試,重復使用這些內容在質(zhì)量上當然是有保證的。面向對象技術(shù)的出現,為這個(gè)想法開(kāi)辟了道路。在這種情況下,構件組裝模型被推出。

  重復使用的思想早已在許多領(lǐng)域廣泛應用了,例如在工業(yè)生產(chǎn)中,重復使用各種零部件來(lái)組裝生產(chǎn)新產(chǎn)品。在軟件生產(chǎn)中,由于每個(gè)軟件與其它軟件都不同,在面向對象技術(shù)出現之前,重復使用難度比較大。面向對象技術(shù)將數據和操作該數據的算法封裝在一起,做成一個(gè)個(gè)的“類(lèi)”,將一個(gè)或多個(gè)相關(guān)“類(lèi)”組合成一個(gè)“軟件構件”,在某領(lǐng)域內使用過(guò)的所有“軟件構件”被放到一個(gè)“軟件構件庫”中,這樣為重復使用打下了基礎,構件組裝模型就是通過(guò)重復使用“軟件構件庫”中的軟件構件來(lái)進(jìn)行軟件開(kāi)發(fā)。使用構件組裝模型開(kāi)發(fā)軟件時(shí),根據被開(kāi)發(fā)軟件的目標和開(kāi)發(fā)方案,選取軟件構件庫中的軟件構件,組裝成一個(gè)完整的軟件版本。

  構件組裝模型的推出,使前人的勞動(dòng)成果被有效地利用了起來(lái)。按此模型進(jìn)行開(kāi)發(fā)活動(dòng),可以節省時(shí)現,使軟件開(kāi)發(fā)工作開(kāi)始進(jìn)入一個(gè)新時(shí)代。

  1.6幾個(gè)軟件開(kāi)發(fā)過(guò)程模型產(chǎn)生情況小結

  從以上分析幾個(gè)典型的軟件開(kāi)發(fā)過(guò)程模型的產(chǎn)生情況可以看出:軟件開(kāi)發(fā)過(guò)程模型的出現,是人們?yōu)榱讼浖C、使軟件開(kāi)發(fā)活動(dòng)有序化和規范化、高效率地得到高質(zhì)量的軟件產(chǎn)品而不斷研究總結的結果,每一種新的軟件開(kāi)發(fā)過(guò)程模型的出現,都為當時(shí)軟件開(kāi)發(fā)遇到的某一類(lèi)問(wèn)題提供了解決方案,從而豐富了軟件工程的內容,推動(dòng)了軟件工程理論向前發(fā)展。

  2.促使軟件開(kāi)發(fā)過(guò)程模型發(fā)展的主要因素

  現在已經(jīng)有了這么多的軟件開(kāi)發(fā)過(guò)程模型,軟件開(kāi)發(fā)過(guò)程模型還會(huì )發(fā)展嗎?答案是肯定的。通過(guò)上面的分析過(guò)程和深入的思考,可以得出促使軟件開(kāi)發(fā)過(guò)程模型發(fā)展的兩個(gè)主要因素:

  第一,客觀(guān)世界的情況在變化,不斷出現新的問(wèn)題,需要用計算機處理。面對新情況和新問(wèn)題,原有的軟件開(kāi)發(fā)過(guò)程模型無(wú)法勝任,因此需要推出新的軟件開(kāi)發(fā)過(guò)程模型來(lái)處理新情況和新問(wèn)題;仡欆浖_(kāi)發(fā)過(guò)程模型的變化和發(fā)展的歷史,許多軟件開(kāi)發(fā)過(guò)程模型是為了處理新情況和新問(wèn)題而推出的。例如快速原型化模型是針對用戶(hù)需求不完整和用戶(hù)需求不斷變化的情況而推出的。例如螺旋模型是針對風(fēng)險控制問(wèn)題而推出的。例如文獻[5]所介紹的建立在面向Agent技術(shù)上的Gaia模型,是針對現有的軟件開(kāi)發(fā)過(guò)程模型在開(kāi)發(fā)復雜分布軟件系統時(shí)常常遇到困難而推出的。例如文獻[6]所介紹的一種基于A(yíng)gent的自適應軟件過(guò)程模型,是針對軟件過(guò)程所處的環(huán)境發(fā)生變化問(wèn)題而推出的。

  第二,人們希望軟件開(kāi)發(fā)的效率更高、質(zhì)量更好、速度更快,因此人們不會(huì )滿(mǎn)足現狀,勢必要研究并推出新的軟件開(kāi)發(fā)過(guò)程模型。例如構件組裝模型的推出,就是人們不滿(mǎn)足現狀、遵循“重復使用”的思想所推出的軟件開(kāi)發(fā)過(guò)程模型。再如文獻[7]所介紹輕載(敏捷)軟件開(kāi)發(fā)方法中的XP模型(極限編程),也是人們不滿(mǎn)足現狀,針對傳統模型存在的問(wèn)題,按照新的理念所推出的軟件開(kāi)發(fā)過(guò)程模型。以上兩個(gè)主要因素顯然會(huì )長(cháng)期存在,因此軟件開(kāi)發(fā)過(guò)程模型必然還要發(fā)展。

  3.軟件開(kāi)發(fā)過(guò)程模型如何發(fā)展

  既然還會(huì )有新的軟件開(kāi)發(fā)過(guò)程模型被推出,就是說(shuō)軟件開(kāi)發(fā)過(guò)程模型還要發(fā)展,因此人們要思考軟件開(kāi)發(fā)過(guò)程模型如何發(fā)展這個(gè)問(wèn)題。根據對軟件開(kāi)發(fā)過(guò)間.降低成本,軟件質(zhì)量也有紙構件組裝模型的出程模型有關(guān)情況的分析研究,軟件開(kāi)發(fā)過(guò)程模型可以

  按以下三個(gè)方向去發(fā)展:

  第一,可以通過(guò)對現有模型進(jìn)行改進(jìn)、擴充、綜合去發(fā)展。

  結合新問(wèn)題的內容,針對現有模型存在的適用面窄、考慮問(wèn)題欠周到等情況,可以通過(guò)改進(jìn)和擴充某個(gè)軟件開(kāi)發(fā)過(guò)程模型的內容而得到一個(gè)新模型,或者通過(guò)綜合運用幾種軟件開(kāi)發(fā)過(guò)程模型的內容而得到一個(gè)新模型。如文獻[8]介紹的一種新的軟件開(kāi)發(fā)過(guò)程模型,是在瀑布模型基礎上進(jìn)行改進(jìn)和擴充的結果。再如增量模型,是綜合運用瀑布模型和快速原型化模型的結果。再如文獻[9]介紹的一種新的軟件開(kāi)發(fā)過(guò)程模型,是綜合運用瀑布模型和構件組裝模型的結果。再如文獻[10]介紹的一種新的軟件開(kāi)發(fā)過(guò)程模型,是綜合運用構件組裝模型和并行過(guò)程模型的結果。

  第二,軟件開(kāi)發(fā)過(guò)程模型可以遵循新的思維方式去發(fā)展。

  現有的軟件開(kāi)發(fā)過(guò)程模型,每一個(gè)都體現出各自不同的思維方式,例如瀑布模型是所有采用線(xiàn)性思維方式模型的典型代表,快速原型化模型是所有采用反復循環(huán)迭代思維方式模型的典型代表。遵循新的思維方式去發(fā)展,就是說(shuō),新建立的軟件開(kāi)發(fā)過(guò)程模型應該是新的思維方式的體現,即按照新的想法去組織軟件開(kāi)發(fā)活動(dòng)。例如XP模型(極限編程)就是按照新的思維方式去發(fā)展起來(lái)的。從Agent具有自主性、反應性、社會(huì )性等角度看,各種面向Agent的軟件開(kāi)發(fā)過(guò)程模型都是按照新的思維方式發(fā)展起來(lái)的。

  第三,軟件開(kāi)發(fā)過(guò)程模型可以借助新技術(shù)和新工具去發(fā)展。

  任何軟件開(kāi)發(fā)過(guò)程模型都是建立在一定的技術(shù)和工具基礎之上,技術(shù)和工具的進(jìn)步對軟件開(kāi)發(fā)過(guò)程模型的影響是巨大的,當新技術(shù)和新工具出現后,傳統的開(kāi)發(fā)方式勢必要被改變,所以說(shuō)新技術(shù)和新工具會(huì )推動(dòng)軟件開(kāi)發(fā)過(guò)程模型更新發(fā)展。如構件組裝模型、基于體系結構的軟件開(kāi)發(fā)過(guò)程模型,就是在面向對象技術(shù)基礎上發(fā)展起來(lái)的。再如RUP[12]模型,就是在UML這個(gè)開(kāi)發(fā)工具基礎上發(fā)展起來(lái)的。

  4 結束語(yǔ)

  軟件開(kāi)發(fā)過(guò)程模型的出現不是偶然的,它是軟件開(kāi)發(fā)活動(dòng)到達一定程度后的必然結果。軟件開(kāi)發(fā)活動(dòng)的多樣性,決定了軟件開(kāi)發(fā)過(guò)程模型在形式上的多樣性。每一個(gè)軟件開(kāi)發(fā)過(guò)程模型都有不同于其它模型的特點(diǎn),這個(gè)特點(diǎn)體現了需要被解決的某一類(lèi)問(wèn)題所具有的特殊性。人的思維在發(fā)展,開(kāi)發(fā)技術(shù)和工具在發(fā)展,推動(dòng)著(zhù)軟件開(kāi)發(fā)過(guò)程模型更新發(fā)展。在目前的基礎上,研究軟件開(kāi)發(fā)過(guò)程模型的發(fā)展問(wèn)題,對于提高軟件開(kāi)發(fā)的質(zhì)量和效率具有重要的意義。

【探討軟件開(kāi)發(fā)過(guò)程模型的發(fā)展論文】相關(guān)文章:

信用評分模型探討分析論文04-06

流域模擬模型的發(fā)展思考論文05-28

民族體育發(fā)展探討的論文05-11

探討體育報道發(fā)展論文05-12

最新小額信貸發(fā)展探討論文04-05

休閑農業(yè)發(fā)展建議探討性論文09-11

對發(fā)展高校體育排舞的探討的論文05-19

專(zhuān)業(yè)鎮發(fā)展軌跡探討論文05-29

重彩畫(huà)的表達與發(fā)展探討論文05-30