當前位置:吉日网官网 - 傳統節日 - 系統設計的傳統瀑布過程

系統設計的傳統瀑布過程

典型的開發模式包括瀑布模式、增量模式、原型模式、螺旋模式、噴泉模式、智能模式和混合模式。

1,構建並修復模型。

不幸的是,許多產品是使用“邊做邊改”的模式開發的。在這種模式下,既沒有規範,也沒有設計,軟件隨著客戶的需求壹次又壹次的不斷修改。

在這種模式下,開發人員拿到項目後立即根據需求編寫程序,調試後生成軟件的第壹個版本。提供給用戶後,如果程序出現錯誤或者用戶提出新的需求,開發者會再次修改代碼,直到用戶滿意為止。

這是壹種作坊式的開發方法,對於寫幾百行的小程序來說還不錯,但是這種方法對於任何規模的開發都不盡如人意。主要問題如下:

1)缺乏規劃設計環節,軟件的結構隨著不斷修改越來越差,無法繼續修改;

2)忽視需求環節給軟件開發帶來很大風險;

3)不考慮測試和程序的可維護性,沒有任何文檔,維護軟件是非常困難的。

2.瀑布模型

1970年,Winston Royce提出了著名的瀑布模型,這是直到20世紀80年代初唯壹被廣泛使用的軟件開發模型。

瀑布模型將軟件生命周期分為規劃、需求分析、軟件設計、編程、軟件測試和運維六個基本活動,並自上而下規定了它們的固定順序,像瀑布壹樣壹步步落下。

在瀑布模型中,軟件開發的所有活動都是嚴格以線性方式進行的,當前活動接受前壹個活動的工作結果,並實現所需的工作內容。需要驗證當前活動的工作結果。如果通過驗證,結果將作為下壹個活動的輸入,繼續下壹個活動;否則,它將被修改。

瀑布模型強調文檔的作用,需要在每個階段進行仔細的驗證。但是這種模型的線性過程過於理想化,已經不適合現代軟件開發模式,幾乎被業界所拋棄。它的主要問題是:

1)每個階段的劃分是完全固定的,階段之間產生大量的文檔,大大增加了工作量;

2)由於開發模型是線性的,用戶直到整個過程結束才能看到開發結果,增加了開發的風險;

3)早期的錯誤可能要到開發的後期測試階段才能發現,會帶來嚴重的後果。

要認識到“線性”是最容易掌握和熟練運用的思維方法。當人們遇到壹個復雜的“非線性”問題時,總是想盡辦法將其分解或轉化為壹系列簡單的線性問題,然後逐壹求解。壹個軟件系統的整體可能很復雜,但單個的子程序總是很簡單的,可以用線性的方式實現,否則會累得無法工作。線性是壹種簡單,簡單就是美。當我們理解線性的精神時,我們不應該機械地套用線性模型的外觀,而是生動地使用它。比如增量模型本質上是分段線性模型,而螺旋模型是連續曲線線性模型,在其他模型中也能找到線性模型的影子。

3.快速原型模型(快速原型模型)

快速原型模型(Rapid prototype model)的第壹步是構建壹個快速原型,實現客戶或未來用戶與系統的交互,用戶或客戶會對原型進行評估,進壹步細化待開發軟件的需求。通過逐步調整原型以滿足客戶的要求,開發人員可以確定客戶的真正需求是什麽;第二步是在第壹步的基礎上開發客戶滿意的軟件產品。

顯然,快速原型法可以克服瀑布模型的缺點,降低軟件需求不明確帶來的開發風險,效果顯著。

快速原型制作的關鍵是盡可能快地構建軟件原型。壹旦確定了客戶的真實需求,構建好的原型就會被丟棄。因此,原型系統的內部結構並不重要。重要的是,原型必須快速建立,然後快速修改,以反映客戶的需求。

4、增量模型(Incremental Model)

就像蓋大樓壹樣,軟件是壹步壹步建起來的。在增量模型中,軟件是作為壹系列增量組件來設計、實現、集成和測試的,每個組件都由代碼片段組成,這些代碼片段提供由各種交互模塊形成的特定功能。

增量模型並不交付可以在每個階段運行的完整產品,而是交付可以滿足客戶需求的產品子集。整個產品分成幾個組件,開發者壹個壹個交付產品。這樣做的好處是軟件開發可以更好地適應變化,客戶可以不斷地看到開發出來的軟件,從而降低開發風險。然而,增量模型也有以下缺陷:

1)由於每個組件都是逐漸融合到已有的軟件架構中的,所以添加組件壹定不能破壞已構建的系統部分,這就要求軟件具有開放的架構。

2)在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其在適應這種變化方面比瀑布模型和快速原型模型模型好得多,但也容易退化為邊做邊改模型,從而失去軟件過程控制的完整性。

使用增量模型時,第壹個增量往往是實現基本需求的核心產品。核心產品交付給用戶後,經過評估形成下壹步的增量開發計劃,包括核心產品的修改和壹些新功能的發布。這壹過程在每次增量發布後重復進行,直到生產出最終的完美產品。

比如用增量模型開發文字處理軟件。可以認為第壹個增量發布基本的文件管理、編輯和文檔生成功能,第二個增量發布更完善的編輯和文檔生成功能,第三個增量實現拼寫和語法檢查功能,第四個增量完成高級頁面布局功能。

5、螺旋模型(Spiral Model)

1988年,Barry Boehm正式發表了軟件系統開發的“螺旋模型”,將瀑布模型與快速原型模型相結合,強調了其他模型所忽略的風險分析,特別適用於大型復雜系統。

螺旋模型沿著螺旋進行多次叠代,圖中的四個象限代表以下活動:

1)制定計劃:確定軟件目標,選擇實施方案,明確項目開發的約束條件;

2)風險分析:對選定的方案進行分析和評價,考慮如何識別和消除風險;

3)實施項目:軟件開發和驗證的實施;

4)客戶評估:對開發工作進行評估,提出修改建議,制定下壹步計劃。

螺旋模型是風險驅動的,強調支持軟件復用的備選方案和約束,有助於將軟件質量作為壹個特殊目標融入產品開發。但是,螺旋模型也有某些限制,如下所示:

1)螺旋模型強調風險分析,但要讓很多客戶接受並相信這種分析並做出相關反應並不容易。因此,這種模型通常適合於內部的大型軟件開發。

2)如果風險分析的執行會極大地影響項目的利潤,那麽進行風險分析是沒有意義的。因此,螺旋模型只適用於大型軟件項目。

3)軟件開發人員要善於發現可能的風險,準確分析風險,否則會帶來更大的風險。

壹個階段首先是確定階段的目標,完成這些目標的選擇方案及其約束條件,然後從風險的角度分析方案的發展策略,盡量消除各種潛在的風險,有時是通過構建原型。如果某些風險無法消除,該方案將立即終止,否則將開始下壹步開發。最後,評估這壹階段的成果,設計下壹階段。

6、進化模型(evolutionary model)

主要針對無法提前完全定義需求的軟件開發。用戶可以給出待開發系統的核心需求,當看到核心需求的實現時,可以有效地給出反饋,以支持系統的最終設計和實現。軟件開發人員根據用戶的需求,首先開發核心系統。核心系統投入運行後,用戶試用,完成工作,提出細化系統,增強系統能力的需求。軟件開發人員根據用戶的反饋實施開發的叠代過程。第壹次叠代過程由需求、設計、編碼、測試、集成等階段組成,為整個系統增加壹個可定義、可管理的子集。

在開發模式上,采用批量循環開發的方法,每個循環開發壹部分功能,成為該產品原型的新功能。因此,設計不斷演變成新的系統。實際上,這種模型可以看作是重復執行的多個“瀑布模型”。

“進化模型”要求開發者有能力將項目的產品需求分解到不同的組中進行批量回收開發。這種分組不是絕對隨機的,應該根據功能的重要性及其對整體設計的基礎設施的影響來判斷。經驗指出,每個開發周期的適當長度是六至八周。

7.噴泉模型(面向對象生存期模型,面向對象(OO)模型)。

與傳統的結構化生命周期相比,噴泉模型具有更多的增量和叠代性質,生命周期的每個階段可以多次重疊和重復,子生命可以嵌入到項目的整個生命周期中。就像噴在上面的水會掉下來壹樣,可以掉在中間,也可以掉在底部。

8.智能模型(第四代技術(4GL))

智能模型有壹套工具(如數據查詢、報告生成、數據處理、屏幕定義、代碼生成、高級圖形功能和電子表格等。),而且每個工具都可以讓開發者在高層次上定義軟件的壹些特性,自動生成這些開發者定義的軟件作為源代碼。這種方法需要四代語言的支持(4GL)。4GL不同於第三代語言,它的主要特點是用戶界面極其友好,所以即使沒有經過培訓的非專業程序員,也可以用它來編寫程序。它是壹種聲明式、交互式和非過程化的編程語言。4GL也有高效的程序代碼,智能默認假設,完整的數據庫和應用程序生成器。目前,4GL(如Foxpro等。)市場上流行的都不同程度地具備上述特征。但4GL目前主要局限於交易信息系統中小型應用程序的開發。

9.混合模型

過程開發模型也稱為混合模型,或元模型。它將幾個不同的模型組合成壹個混合模型,允許項目沿著最有效的路徑發展。這就是過程開發模型(或混合模型)。事實上,壹些軟件開發公司使用幾種不同的開發方法來形成自己的混合模型。

模型的優點和缺點

瀑布模型文檔驅動系統可能無法滿足客戶的需求。

快速原型模型對滿足客戶需求的關註可能導致系統設計差、效率低和維護困難。

增量模型開發的早期反饋是及時的,易於維護的,並且需要開放的架構,這可能導致糟糕的設計和低效率。

螺旋模型風險驅動的風險分析師需要經驗豐富,訓練有素。

===================

OOA(面向對象分析)模型由五個層次(主題層、對象類層、結構層、屬性層和服務層)和五個活動(識別對象類、識別結構、定義主題、定義屬性和定義服務)組成。在該方法中,定義了兩個對象類之間的結構,壹個稱為分類結構,另壹個稱為裝配結構。分類結構就是所謂的壹般與特殊的關系。裝配結構反映了對象的整體和部分之間的關系。

OOA應該在定義屬性時識別實例連接。實例連接是壹個實例和另壹個實例之間的映射關系。定義服務時識別消息連接。當壹個對象需要向另壹個對象發送消息時,它們之間就有了消息連接。

OOA中的五個層次和五個活動繼續貫穿於OOD(面向繪圖對象的設計)的過程。OOD模型由四部分組成。它們是設計問題域、設計人機交互、設計任務管理和設計數據管理。

Booch認為軟件開發是壹個螺旋上升的過程。在螺旋上升的每個循環中,有四個步驟:識別類和對象,確定它們的含義,識別它們之間的關系,解釋每個類的接口和實現。

對象建模技術OMT定義了三種模型,即對象模型、動態模型和功能模型。OMT用這三個模型來描述這個系統。OMT方法有四個步驟:分析、系統設計、對象設計和實現。OMT方法的每壹步都使用了這三個模型,每壹步都在不斷地對這三個模型進行提煉和擴展。

對象模型描述系統包括對象的靜態結構、對象之間的關系、對象的屬性和對象的操作。在OMT的對象模型中,除了對象、類和繼承之外,還有鏈、關聯、泛化、聚合和模塊等概念。

動態模型用於描述與值的變換相關的系統特性——函數、映射、約束和函數依賴。功能模型由數據流圖表示。

  • 上一篇:石家莊裝修公司位列石家莊十大裝修公司。
  • 下一篇:能讓人捧腹大笑的經典相聲臺詞。
  • copyright 2024吉日网官网