久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

軟件架構(gòu)設(shè)計(jì)系列之二(軟件開發(fā)模型)

 天承辦公室 2022-12-06 發(fā)布于江蘇

軟件架構(gòu)設(shè)計(jì)系列包括軟件生命周期,、軟件開發(fā)模型,、軟件開發(fā)方法、基于架構(gòu)的軟件開發(fā)等,。本文為軟件架構(gòu)設(shè)計(jì)系列之二——軟件開發(fā)模型,。

軟件開發(fā)模型

隨著信息技術(shù)的快速發(fā)展,軟件的復(fù)雜度不斷提高,,軟件系統(tǒng)已經(jīng)變得非常復(fù)雜,,軟件開發(fā)需要遵循一定的開發(fā)方法才能取得成功,這些模式化的軟件開發(fā)方法稱為軟件開發(fā)模型,。常用的軟件開發(fā)模型有瀑布模型,、演化模型、螺旋模型,、噴泉模型,、增量模型等。

瀑布模型:瀑布模型就如同瀑布一樣,,從一個特定的階段流向下一個階段,。瀑布模型是最早的開發(fā)模型,也是最經(jīng)典的軟件開發(fā)模型,,至今仍在軟件開發(fā)中起到重要的作用,。

瀑布模型認(rèn)為軟件開發(fā)過程是一個階段化的精確的過程。分為如下幾個順序的階段:需求分析,、總體設(shè)計(jì),、詳細(xì)設(shè)計(jì)、編碼,、調(diào)試,、集成測試和系統(tǒng)測試。

當(dāng)軟件需求明確,、穩(wěn)定時,,可以采用瀑布模型按部就班地開發(fā)軟件,,當(dāng)軟件需求不明確或變動劇烈時,瀑布模型中往往要到測試階段才會暴露出需求的缺陷,,造成后期修改代價太大,,難以控制開發(fā)的風(fēng)險。

瀑布 V 模型:瀑布 V 模型是瀑布模型的一種變體,。隨著對瀑布模型的應(yīng)用,,人們發(fā)現(xiàn),缺陷是無法避免的,,任何一個階段都會在軟件中引入缺陷,,而最后的測試也不能保證軟件完全沒有缺陷,只能爭取在交付前發(fā)現(xiàn)更多的缺陷,。測試成為軟件開發(fā)中非常重要的環(huán)節(jié),,測試的質(zhì)量直接影響到軟件的質(zhì)量。因此,,人們對瀑布模型進(jìn)行了小小的更改,,提出了更強(qiáng)調(diào)測試的瀑布 V 模型。

整個瀑布模型在編碼與調(diào)試階段轉(zhuǎn)了個彎,,形成了一個對稱的 V 字,。瀑布 V 模型同標(biāo)準(zhǔn)瀑布模型一樣,在進(jìn)行完需求分析后就將進(jìn)入總體設(shè)計(jì)階段,,但是除總體設(shè)計(jì)外,,需求分析還有一條虛線指向系統(tǒng)測試。這指的是,,需求分析的結(jié)果將作為系統(tǒng)測試的準(zhǔn)則,,即需求分析階段也將產(chǎn)生同軟件需求一致的系統(tǒng)測試;同時軟件產(chǎn)品是否符合最初的需求將在系統(tǒng)測試階段得到驗(yàn)證,。以此類推,,總體設(shè)計(jì)對應(yīng)了集成測試,詳細(xì)設(shè)計(jì)對應(yīng)了單元測試,。瀑布 V 模型不但保持了瀑布模型的階段式文檔驅(qū)動的特點(diǎn),,而且更強(qiáng)調(diào)了軟件產(chǎn)品的驗(yàn)證工作。

雖然是經(jīng)典的開發(fā)模型,,但瀑布模型中仍存在一些難以克服的缺陷,,即使是在改進(jìn)的瀑布 V 模型中還是會存在。

首先,,在瀑布模型中,,需求分析階段是一切活動的基礎(chǔ),設(shè)計(jì),、實(shí)現(xiàn)和驗(yàn)證活動都是從需求分析階段的結(jié)果導(dǎo)出的,。一旦需求分析的結(jié)果不完全正確,,存在偏差,那么后續(xù)的活動只能放大這個偏差,,在錯誤的道路上越走越遠(yuǎn),。事實(shí)上,由于用戶和開發(fā)者的立場,、經(jīng)驗(yàn),、知識域都不相同,不同的人對同一件事物的表述也不同,,這就造成需求分析的結(jié)果不可能精確,、完整地描述整個軟件系統(tǒng)。所以瀑布模型后期的維護(hù)工作相當(dāng)繁重,,而這些維護(hù)工作大多都是修正在需求分析階段引入的缺陷。這個問題是瀑布模型難以克服的,。

其次,,瀑布模型難以適應(yīng)變化。在瀑布模型中精確地定義了每一個階段的活動和活動結(jié)果,,而每一階段都緊密依賴于上一階段的結(jié)果,。如果在軟件的后期出現(xiàn)了需求的變化,整個系統(tǒng)又要從頭開始,。

再次,,使用瀑布模型意味著當(dāng)所有階段都結(jié)束才能最終交付軟件產(chǎn)品,所以在提出需求后需要相當(dāng)長一段時間的等待才能夠看到最終結(jié)果,,才能發(fā)現(xiàn)軟件產(chǎn)品究竟能不能夠滿足客戶的需求,。

最后,文檔驅(qū)動型的瀑布模型除了制造出軟件產(chǎn)品外還將產(chǎn)生一大堆的文檔,,大部分的文檔對客戶沒有任何意義,,但完成這些對客戶沒有意義的文檔卻需要花費(fèi)大量的人力。所以瀑布模型也是一種重載過程,。

演化模型:演化模型可以看做若干次瀑布模型的迭代,,當(dāng)完成一個瀑布模型后,重新進(jìn)入下一個迭代周期,,軟件在這樣的迭代過程中得以演化,、完善。根據(jù)不同的迭代特點(diǎn),,演化模型可以演變?yōu)槁菪P?、增量模型和原型法開發(fā)。

螺旋模型:螺旋模型將瀑布模型和演化模型結(jié)合起來,,不僅體現(xiàn)了兩個模型的優(yōu)點(diǎn),,而且還強(qiáng)調(diào)了其他模型均忽略了的風(fēng)險分析,。螺旋模型的每一周期都包括需求定義、風(fēng)險分析,、工程實(shí)現(xiàn)和評審 4 個階段,,由這 4 個階段進(jìn)行迭代,軟件開發(fā)過程每迭代一次,,軟件開發(fā)就前進(jìn)一個層次,。

螺旋模型的基本做法是在“瀑布模型”的每一個開發(fā)階段前,引入一個非常嚴(yán)格的風(fēng)險識別,、風(fēng)險分析和風(fēng)險控制,。它把軟件項(xiàng)目分解成一個個小項(xiàng)目,每個小項(xiàng)目都標(biāo)識一個或多個主要風(fēng)險,,直到所有的主要風(fēng)險因素都被確定,。

螺旋模型強(qiáng)調(diào)風(fēng)險分析,使得開發(fā)人員和用戶對每個演化層出現(xiàn)的風(fēng)險都有所了解,,繼而做出應(yīng)有的反應(yīng),。因此,螺旋模型特別適用于龐大而復(fù)雜,、具有高風(fēng)險的系統(tǒng),,對于這些系統(tǒng),風(fēng)險是軟件開發(fā)潛在的,、不可忽視的不利因素,,它可能在不同程度上損害軟件開發(fā)過程,影響軟件產(chǎn)品的質(zhì)量,。減小軟件風(fēng)險的目標(biāo)是在造成危害之前,,及時對風(fēng)險進(jìn)行識別、分析,,決定采取何種對策,,進(jìn)而消除或減少風(fēng)險的損害。

與瀑布模型相比,,螺旋模型支持用戶需求的動態(tài)變化,,為用戶參與軟件開發(fā)的所有關(guān)鍵決策提供了方便,有助于提高目標(biāo)軟件的適應(yīng)能力,,為項(xiàng)目管理人員及時調(diào)整管理決策提供了便利,,從而降低了軟件開發(fā)風(fēng)險。

但是,,不能說螺旋模型絕對比其他模型優(yōu)越,,事實(shí)上,螺旋模型也有其自身的缺點(diǎn):

(1)采用螺旋模型,,需要具有相當(dāng)豐富的風(fēng)險評估經(jīng)驗(yàn)和專業(yè)知識,。在風(fēng)險較大的項(xiàng)目開發(fā)中,,如果未能及時標(biāo)識風(fēng)險,勢必會造成重大損失,。

(2)過多的迭代次數(shù)會增加開發(fā)成本,,延遲提交時間。

增量模型:演化模型的另一種形式是增量模型,。在系統(tǒng)的技術(shù)架構(gòu)成熟,、風(fēng)險較低的時候,可以采用增量的方式進(jìn)行系統(tǒng)開發(fā),,這樣可以提前進(jìn)行集成測試和系統(tǒng)測試,,縮短初始版本的發(fā)布周期,提高用戶對系統(tǒng)的可見度,。

對于增量模型,,通常有兩種策略。

一是增量發(fā)布的辦法,。即首先做好系統(tǒng)的分析和設(shè)計(jì)工作,,然后將系統(tǒng)劃分為若干不同的版本,每一個版本都是一個完整的系統(tǒng),,后一版本以前一版本為基礎(chǔ)進(jìn)行開發(fā),擴(kuò)充前一版本的功能,。在這種策略中,,第一版本往往是系統(tǒng)的核心功能,可以滿足用戶最基本的需求,,隨著增量的發(fā)布,,系統(tǒng)的功能逐步地豐富、完善起來,。用戶在很短的時間內(nèi)就可以得到系統(tǒng)的初始版本并進(jìn)行試用,。試用中的問題可以很快地反饋到后續(xù)開發(fā)中,從而降低了系統(tǒng)的風(fēng)險,。在應(yīng)用增量模型中需要注意:

(1)每一個版本都是一個完整的版本,。雖然最初的幾個增量不能完全地實(shí)現(xiàn)用戶需求,但這些版本都是完整的,、可用的,。

(2)版本間的增量要均勻,這一點(diǎn)是很重要的,。不均勻的分配會降低增量發(fā)布的意義,,需要重新調(diào)整。

二是原型法,。同增量發(fā)布不同,,原型法的每一次迭代都經(jīng)過一個完整的生命周期,。當(dāng)用戶需求很不明確或技術(shù)架構(gòu)中存在很多不可知因素的時候,可以采用原型法,。原型模型的第一步是建造一個快速原型,,實(shí)現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對原型進(jìn)行評價,,進(jìn)一步細(xì)化待開發(fā)軟件的需求,。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么,;第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品,。

顯然,快速原型方法可以克服瀑布模型的缺點(diǎn),,減少由于軟件需求不明確帶來的開發(fā)風(fēng)險,,具有顯著的效果。

快速原型的關(guān)鍵在于盡可能快速地建造出軟件原型,,一旦確定了客戶的真正需求,,所建造的原型將被丟棄。因此,,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,,重要的是必須迅速建立原型,隨之迅速修改原型,,以反映客戶的需求,。一般情況下,會在后面的開發(fā)中拋棄這個原型,,重新實(shí)現(xiàn)完整的系統(tǒng),。

噴泉模型:也稱面向?qū)ο蟮纳嫫谀P? OO模型。噴泉模型與傳統(tǒng)的結(jié)構(gòu)化生存期比較,,具有更多的增量和迭代性質(zhì),,生存期的各個階段可以相互重疊和多次反復(fù),而且在項(xiàng)目的整個生存期中還可以嵌入子生存期,。就像水噴上去又可以落下來,,可以落在中間,也可以落在最底部,。

評論:

軟件開發(fā)模型是軟件開發(fā)方法的總結(jié),。每個軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)模型,也可以結(jié)合項(xiàng)目或產(chǎn)品特性進(jìn)行組合,、裁剪或優(yōu)化,,以充分利用其軟件開發(fā)模型的優(yōu)點(diǎn),減小模型缺點(diǎn)所帶來的損失。在現(xiàn)代軟件開發(fā)過程中,,這些軟件模型中的一種模型已經(jīng)很難能完全匹配軟件開發(fā)過程,,軟件開發(fā)模型也產(chǎn)生了更多的變種。例如業(yè)內(nèi)常采用的外瀑布內(nèi)敏捷(有人稱為“信封法”)的開發(fā)方式,,對外采用瀑布模型,,對內(nèi)采用敏捷開發(fā)來提高開發(fā)效率?;ヂ?lián)網(wǎng)企業(yè)大量采用的DevOps方法,進(jìn)行持續(xù)的開發(fā),、持續(xù)的測試,、持續(xù)交付,快速傳遞產(chǎn)品價值,。具體采用內(nèi)中開發(fā)模型,,應(yīng)結(jié)合軟件項(xiàng)目或產(chǎn)品的特性來決定。但無論采用哪種方式,,軟件開發(fā)模型在軟件項(xiàng)目一開始就應(yīng)明確下來,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多