當前社會,軟體開發已經趨近於成熟,軟體開發模式也越來越完善和多樣化。針對不同的軟體開發模式也不一樣。今天進行軟體開發模式的乙個總結。
1、瀑布模型(wate***llmodel)
瀑布模型將軟體生命週期劃分為制定計畫、需求分析、軟體設計、程式編寫、軟體測試和執行維護等六個基本活動,並且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
在瀑布模型中,軟體開發的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結果,實施完成所需的工作內容。當前活動的工作結果需要進行驗證,如果驗證通過,則該結果作為下一項活動的輸入,繼續進行下一項活動,否則返回修改。
瀑布模型強調文件的作用,並要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現代的軟體開發模式,幾乎被業界拋棄,其主要問題在於:
1: 各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量;
2: 由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;
3: 早期的錯誤可能要等到開發後期的測試階段才能發現,進而帶來嚴重的後果。
快速原型模型的第一步是建造乙個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。
顯然,快速原型方法可以克服瀑布模型的缺點,減少由於軟體需求不明確帶來的開發風險,具有顯著的效果。
快速原型的關鍵在於盡可能快速地建造出軟體原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統的內部結構並不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。
與建造大廈相同,軟體也是一步一步建造起來的。在增量模型中,軟體被作為一系列的增量構件來設計、實現、整合和測試,每乙個構件是由多種相互作用的模組所形成的提供特定功能的**片段構成。
增量模型在各個階段並不交付乙個可執行的完整產品,而是交付滿足客戶需求的乙個子集的可執行產品。整個產品被分解成若干個構件,開發人員逐個構件地交付產品,這樣做的好處是軟體開發可以較好地適應變化,客戶可以不斷地看到所開發的軟體,從而降低開發風險。但是,增量模型也存在以下缺陷:
1: 由於各個構件是逐漸併入已有的軟體體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體系結構。
2: 在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。
在使用增量模型時,第乙個增量往往是實現基本需求的核心產品。核心產品交付使用者使用後,經過評價形成下乙個增量的開發計畫,它包括對核心產品的修改和一些新功能的發布。這個過程在每個增量發布後不斷重複,直到產生最終的完善產品。
2023年,巴利·玻姆barry boehm正式發表了軟體系統開發的「螺旋模型」,它將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。
螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:
1: 制定計畫:確定軟體目標,選定實施方案,弄清專案開發的限制條件;
2: 風險分析:分析評估所選方案,考慮如何識別和消除風險;
3: 實施工程:實施軟體開發和驗證;
4: 客戶評估:評價開發工作,提出修正建議,制定下一步計畫。
螺旋模型由風險驅動,強調可選方案和約束條件從而支援軟體的重用,有助於將軟體質量作為特殊目標融入產品開發之中。但是,螺旋模型也有一定的限制條件,具體如下:
1: 螺旋模型強調風險分析,但要求許多客戶接受和相信這種分析,並做出相關反應是不容易的,因此,這種模型往往適應於內部的大規模軟體開發。
2: 如果執行風險分析將大大影響專案的利潤,那麼進行風險分析毫無意義,因此,螺旋模型只適合於大規模軟體專案。
3: 軟體開發人員應該擅長尋找可能的風險,準確地分析風險,否則將會帶來更大的風險
乙個階段首先是確定該階段的目標,完成這些目標的選擇方案及其約束條件,然後從風險角度分析方案的開發策略,努力排除各種潛在的風險,有時需要通過建造原型來完成。如果某些風險不能排除,該方案立即終止,否則啟動下乙個開發步驟。最後,評價該階段的結果,並設計下乙個階段。
過程開發模型又叫混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許乙個專案能沿著最有效的路徑發展,這就是過程開發模型(或混合模型)。實際上,一些軟體開發單位都是使用幾種不同的開發方法組成他們自己的混合模型。在現在的軟體公司裡,大部分都是用的混合模型。因為多樣化的開發模式,可以適應各種各樣的需求。這也是一種時代的趨勢!!!
軟體測試第一天
軟體的結構型別有c s client server 客戶端服務和b s browser server 瀏覽器服務兩種。c s伺服器軟體開啟電腦的埠 伺服器管理軟體是一套處理硬體 作業系統及應用軟體等不同層級 軟體管理及公升級 系統資源管理 效能維護和監控配置 的程式。常見的有 檔案伺服器 如nove...
關於軟體測試第一天
什麼是 什麼是網頁?什麼是web前端?前端用什麼寫網頁?什麼是瀏覽器?什麼是html?什麼是文字?什麼是超文字?什麼是標記語言?網頁由html文件組成 而html文件由眾多html元素組成 而html元素由 和元素名組成 html標籤分類 區分標籤裡和標籤內 什麼是屬性?什麼是注釋?對一段 進行標註...
軟體測試的第一天
2017年10月31日9點,在這個秋高氣爽的天氣我來到了高新軟體創業園的甲骨文培訓機構,來到之前老師通知的126號教室裡,來的人還算比較少,隨著連線膝上型電腦電源加填寫個人的培訓檔案,來的人漸漸多了起來。全部整理好之後環顧下四周,現在將要跟我在同一座教室聽課的10幾位同學,隨著這乙個多月的培訓結束,...