軟件工程方法論

軟件工程的目標(biāo)是:在給定成本、進(jìn)度的前提下,開發(fā)出具有適用性、有效性、可修改性、可靠性、可理解性、可維護(hù)性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的軟件產(chǎn)品。追求這些目標(biāo)有助于提高軟件產(chǎn)品的質(zhì)量和開發(fā)效率,減少維護(hù)的困難。

一、軟件開發(fā)方法

????????1、結(jié)構(gòu)化法

? ??????????????即面向過程的開發(fā)方法。其基本思想是“自上而下,逐步求精”,把一個(gè)復(fù)雜的系統(tǒng)拆分,化繁為簡,形成一個(gè)個(gè)的構(gòu)件。其講究的是用戶至上,系統(tǒng)開發(fā)過程工程化、文檔化、以及標(biāo)準(zhǔn)化。嚴(yán)格的區(qū)分來工作階段,每個(gè)階段都有明確的任務(wù)和應(yīng)得額成果。

????????2、面向?qū)ο蠓椒?/p>

? ??????????????面向?qū)ο蟮拈_發(fā)方法是自底而上的,主要表現(xiàn)為和現(xiàn)實(shí)事物結(jié)合起來,把世間萬物抽象出來,形成一個(gè)個(gè)的抽象對象。相比結(jié)構(gòu)化法有更好的復(fù)用性,分析、設(shè)計(jì)、實(shí)現(xiàn)三個(gè)階段界限不明確,其關(guān)鍵點(diǎn)在于建立一個(gè)全面的、合理的、統(tǒng)一的模型。

????????3、面向服務(wù)方法

? ??????????????面向服務(wù)方法是面向?qū)ο蠓ǚǖ难由臁F浞?wù)建模又分為服務(wù)發(fā)現(xiàn)(分析)、服務(wù)規(guī)約(約定規(guī)范)、和服務(wù)實(shí)現(xiàn)(具體實(shí)現(xiàn))三個(gè)階段。

????????????????SO方法主要有三個(gè)級別(操作、服務(wù)、業(yè)務(wù)流程);

????????????????SOAD分為三個(gè)層次:基礎(chǔ)設(shè)計(jì)層(底層的構(gòu)建)、應(yīng)用服務(wù)層(服務(wù)之間的接口和服務(wù)級的協(xié)調(diào))、業(yè)務(wù)組織層(業(yè)務(wù)流程的建模和服務(wù)流程的編排)

????????4、原型法

? ? ? ? ? ? ? ? 4.1、拋棄型原型

? ??????????????????????業(yè)務(wù)做完之后原型就已經(jīng)沒有用處了

? ? ? ? ? ? ? ? 4.2、演變型原型

? ??????????????????????在原來的模型基礎(chǔ)之上逐步修改并一直沿用

二、軟件開發(fā)模型

????????1、瀑布模型

? ??????????????瀑布模型也稱之為生命周期法,是結(jié)構(gòu)方法中最常用的開發(fā)模型,其講究的是從需求獲取到開發(fā)到測試像瀑布樣順流而下。缺點(diǎn)是不靈活比較死板,其適用于需求明確、或二次開發(fā)的場景下使用。

????????2、增量與螺旋模型

? ??????????????增量模型采用隨時(shí)間的線性序列,每一個(gè)線性序列產(chǎn)生一個(gè)可交付的產(chǎn)品,慢慢的迭代以達(dá)到最終的要求。

????????????????螺旋模型分為四個(gè)階段即:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程以及客戶評估。以原型為基礎(chǔ),加上瀑布模型重復(fù)沿著以上幾個(gè)步驟進(jìn)行開發(fā)。

????????3、V模型

? ??????????????V模型是以測試驅(qū)動(dòng)的模型,測試貫穿的整個(gè)始終。

????????4、噴泉模型

? ??????????????噴泉模型主要支持面向?qū)ο蟮拈_發(fā)方法,系統(tǒng)某部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中完善,其主要體現(xiàn)了迭代和無間隙性特征。所謂無間隙指的是在開發(fā)活動(dòng)中,分析、設(shè)計(jì)、和編碼沒有明確的界限。

????????5、快速應(yīng)用開發(fā)(RAD)

? ??????????????RAD是一個(gè)增量型的軟件開發(fā)模型,其強(qiáng)調(diào)的是極短的開發(fā)周期。是瀑布模型的一個(gè)高速變種,通過使用大量的可復(fù)用的構(gòu)件,采用基于構(gòu)件的方法贏得快速開發(fā)

????????6:構(gòu)件組裝模型

? ??????????????構(gòu)件組裝模型指的是在整個(gè)應(yīng)用開發(fā)的過程中,把各個(gè)功能模塊抽取出來組成一個(gè)個(gè)可復(fù)用的構(gòu)件,以便于重復(fù)使用。類似于積木一樣,把整個(gè)構(gòu)件整合起來,形成一個(gè)個(gè)的應(yīng)用系統(tǒng)。

三、統(tǒng)一過程(UP/RUP)

? ??????統(tǒng)一過程又稱為UP、或RUP,是基于構(gòu)件的。統(tǒng)一過程是一個(gè)通用的過程框架,可以用于各種各樣的軟件項(xiàng)目。

????????特點(diǎn):用例驅(qū)動(dòng)、以基本架構(gòu)為中心、迭代和增量。

????????基于UP的軟件過程是一個(gè)迭代的過程,他有四個(gè)階段,分別是:

????????????????a、初始階段:為系統(tǒng)建立業(yè)務(wù)模型并確定項(xiàng)目的邊界;

????????????????b、細(xì)化階段:分析問題領(lǐng)域,建立健全的架構(gòu)基礎(chǔ) 。主要是要完成系統(tǒng)的架構(gòu)。

????????????????c、構(gòu)件階段:開發(fā)剩余的構(gòu)件和應(yīng)用程序功能,形成產(chǎn)品并且進(jìn)行詳細(xì)的測試

????????????????d、交互階段:主要任務(wù)是進(jìn)行β測試(用戶環(huán)境,用戶做的測試)

四、敏捷開發(fā)

? ??????適用于中小型項(xiàng)目,理論上是不適用大型項(xiàng)目。但是在實(shí)際開發(fā)中,往往我們會把大型項(xiàng)目拆分為多個(gè)小型項(xiàng)目,然后使用敏捷開發(fā)方法。

五、逆項(xiàng)工程

? ??????逆向工程講的是把整個(gè)過程逆轉(zhuǎn)過來,一般的用在已有系統(tǒng)的大版本迭代以及重做場景中

六、凈室工程

????????凈室工程是軟件開發(fā)一種形式化方法,可以生成高質(zhì)量的軟件,主要強(qiáng)調(diào)模型的重要性,其目標(biāo)和結(jié)果是非常高低的出錯(cuò)率,這是使用非形式化方法難以實(shí)現(xiàn)或者不能達(dá)到的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容