軟件開發模型是軟件開發的全部過程、活
動和任務的結構框架。軟件開發模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目開發的基礎。典型的開發模型
有:①瀑布模型(waterfall model);②漸增模型/演化/迭代(incremental model);③原型模型(prototype
model);④螺旋模型(spiral model);⑤噴泉模型(fountain model);⑥智能模型(intelligent
model) ; 7. 混合模型(hybrid model)
瀑布模型將軟件生命周期的各項活動規定為依固定順序聯接的若干階段工作,形如瀑布流水,最終得到軟件產品。優點: a.強調開發的階段性; b.強調早期計劃及需求調查; c.強調產品測試。
缺點: a.依賴于早期進行的唯一一次需求調查,不能適應需求的變化; b.由于是單一流程,開發中的經驗教訓不能反饋應用于本產品的過程; c.風險往往遲至后期的開發階段才顯露,因而失去及早糾正的機會。
演 化模型主要針對事先不能完整定義需求的軟件開發。用戶可以給出待開發系統的核心需求,并且當看到核心需求實現后,能夠有效地提出反饋,以支持系統的最終設 計和實現。軟件開發人員根據用戶的需求,首先開發核心系統。當該核心系統投入運行后,用戶試用之,完成他們的工作,并提出精化系統、增強系統能力的需求。 軟件開發人員根據用戶的反饋,實施開發的迭代過程。第一迭代過程均由需求、設計、編碼、測試、集成等階段組成,為整個系統增加一個可定義的、可管理的子 集。
在開發模式上采取分批循環開發的辦法,每循環開發一部分的功能,它們成為這個產品的原型的新增功能。于是,設計就不斷地演化出新的系統。 實際上,這個模型可看作是重復執行的多個“瀑布模型”。
“演化模型”要求開發人員有能力把項目的產品需求分解為不同組,以便分批循環開發。這種分組并不是絕對隨意性的,而是要根據功能的重要性及對總體設計的基礎結構的影響而作出判斷。有經驗指出,每個開發循環以六周到八周為適當的長度。
螺旋模型基本的做法是在“瀑布模型”的每一個開發階段之前,引入非常嚴格的風險識別、風險分析和風險控制。直到采取了消除風險的措施之后,才開始計劃下一階段的開發工作。否則,項目就很可能被取消。
另外,如果有充足的把握判斷遺留的風險已降低到一定的程度,項目管理人員可作出決定讓余下的開發工作采用另外的生命周期模型,如“演化模型”,“瀑布模型”,或自定的混合模型。
優點: a.強調嚴格的全過程風險管理。b.強調各開發階段的質量。c.提供機會檢討項目是否有價值繼續下去。
缺點: a.引入非常嚴格的風險識別,風險分析,和風險控制,這對風險管理的技能水平提出了很高的要求。這需要人員,資金,和時間的投入。
螺 旋模型是瀑布模型與演化模型相結合,并加入兩者所忽略的風險分析所建立的一種軟件開發模型。該模型于1998年由美國TRW公司(B.W.Boehm)提 出。軟件項目風險的大小作為指引軟件過程的一個重要因素,引入這一概念有可能使得軟件開發被看作一種元模型,因為它能包容任何一個開發過程模型。
快 速原型(Rapid Prototype)在功能上等價于產品的一個子集。注意,這里說的是功能上。瀑布模型的缺點就在于不夠直觀,快速原型法就解決了這個問題。一般來說,根 據客戶的需要在很短的時間內解決用戶最迫切需要,完成一個可以演示的產品。這個產品只是實現部分的功能(最重要的)。它最重要的目的是為了確定用戶的真正 需求。在我的經驗中,這種方法非常的有效,原先對計算機沒有絲毫概念的用戶在你的原型面前往往口若懸河,有些觀點讓你都覺得非常的吃驚。在得到用戶的需求 之后,原型將被拋棄。因為原型開發的速度很快,設計方面是幾乎沒有考慮的,如果保留原型的話,在隨后的開發中會為此付出極大的代價。至于保留原型方面,也 是有一種叫做增量模型是這么做的,但這種模型并不為大家所接受。
噴泉模型(fountain model, (面向對象的生存期模型, OO模型))與傳統的結構化生存期比較,具有更多的增量和迭代性質,生存期的各個階段可以相互重疊和多次反復,而且在項目的整個生存期中還可以嵌入子生存 期。就像水噴上去又可以落下來,可以落在中間,也可以落在最底部。
智能模型(四代技術(4GL))擁有一組工具(如數據查詢、報表生成、 數據處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個工具都能使開發人員在高層次上定義軟件的某些特性,并把開發人員定義的這些軟件自動地生 成為源代碼。這種方法需要四代語言(4GL)的支持。4GL不同于三代語言,其主要特征是用戶界面極端友好,即使沒有受過訓練的非專業程序員,也能用它編 寫程序;它是一種聲明式、交互式和非過程性編程語言。4GL還具有高效的程序代碼、智能缺省假設、完備的數據庫和應用程序生成器。目前市場上流行的 4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務信息系統的中、小型應用程序的開發。
過程開發模型又叫 混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個項目能沿著最有效的路徑發展,這就是過程開發模型(或混 合模型)。實際上,一些軟件開發單位都是使用幾種不同的開發方法組成他們自己的混合模型。
原文: http://stevenliao.bokee.com/1511523.html
瀑布模型將軟件生命周期的各項活動規定為依固定順序聯接的若干階段工作,形如瀑布流水,最終得到軟件產品。優點: a.強調開發的階段性; b.強調早期計劃及需求調查; c.強調產品測試。
缺點: a.依賴于早期進行的唯一一次需求調查,不能適應需求的變化; b.由于是單一流程,開發中的經驗教訓不能反饋應用于本產品的過程; c.風險往往遲至后期的開發階段才顯露,因而失去及早糾正的機會。
演 化模型主要針對事先不能完整定義需求的軟件開發。用戶可以給出待開發系統的核心需求,并且當看到核心需求實現后,能夠有效地提出反饋,以支持系統的最終設 計和實現。軟件開發人員根據用戶的需求,首先開發核心系統。當該核心系統投入運行后,用戶試用之,完成他們的工作,并提出精化系統、增強系統能力的需求。 軟件開發人員根據用戶的反饋,實施開發的迭代過程。第一迭代過程均由需求、設計、編碼、測試、集成等階段組成,為整個系統增加一個可定義的、可管理的子 集。
在開發模式上采取分批循環開發的辦法,每循環開發一部分的功能,它們成為這個產品的原型的新增功能。于是,設計就不斷地演化出新的系統。 實際上,這個模型可看作是重復執行的多個“瀑布模型”。
“演化模型”要求開發人員有能力把項目的產品需求分解為不同組,以便分批循環開發。這種分組并不是絕對隨意性的,而是要根據功能的重要性及對總體設計的基礎結構的影響而作出判斷。有經驗指出,每個開發循環以六周到八周為適當的長度。
螺旋模型基本的做法是在“瀑布模型”的每一個開發階段之前,引入非常嚴格的風險識別、風險分析和風險控制。直到采取了消除風險的措施之后,才開始計劃下一階段的開發工作。否則,項目就很可能被取消。
另外,如果有充足的把握判斷遺留的風險已降低到一定的程度,項目管理人員可作出決定讓余下的開發工作采用另外的生命周期模型,如“演化模型”,“瀑布模型”,或自定的混合模型。
優點: a.強調嚴格的全過程風險管理。b.強調各開發階段的質量。c.提供機會檢討項目是否有價值繼續下去。
缺點: a.引入非常嚴格的風險識別,風險分析,和風險控制,這對風險管理的技能水平提出了很高的要求。這需要人員,資金,和時間的投入。
螺 旋模型是瀑布模型與演化模型相結合,并加入兩者所忽略的風險分析所建立的一種軟件開發模型。該模型于1998年由美國TRW公司(B.W.Boehm)提 出。軟件項目風險的大小作為指引軟件過程的一個重要因素,引入這一概念有可能使得軟件開發被看作一種元模型,因為它能包容任何一個開發過程模型。
快 速原型(Rapid Prototype)在功能上等價于產品的一個子集。注意,這里說的是功能上。瀑布模型的缺點就在于不夠直觀,快速原型法就解決了這個問題。一般來說,根 據客戶的需要在很短的時間內解決用戶最迫切需要,完成一個可以演示的產品。這個產品只是實現部分的功能(最重要的)。它最重要的目的是為了確定用戶的真正 需求。在我的經驗中,這種方法非常的有效,原先對計算機沒有絲毫概念的用戶在你的原型面前往往口若懸河,有些觀點讓你都覺得非常的吃驚。在得到用戶的需求 之后,原型將被拋棄。因為原型開發的速度很快,設計方面是幾乎沒有考慮的,如果保留原型的話,在隨后的開發中會為此付出極大的代價。至于保留原型方面,也 是有一種叫做增量模型是這么做的,但這種模型并不為大家所接受。
噴泉模型(fountain model, (面向對象的生存期模型, OO模型))與傳統的結構化生存期比較,具有更多的增量和迭代性質,生存期的各個階段可以相互重疊和多次反復,而且在項目的整個生存期中還可以嵌入子生存 期。就像水噴上去又可以落下來,可以落在中間,也可以落在最底部。
智能模型(四代技術(4GL))擁有一組工具(如數據查詢、報表生成、 數據處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個工具都能使開發人員在高層次上定義軟件的某些特性,并把開發人員定義的這些軟件自動地生 成為源代碼。這種方法需要四代語言(4GL)的支持。4GL不同于三代語言,其主要特征是用戶界面極端友好,即使沒有受過訓練的非專業程序員,也能用它編 寫程序;它是一種聲明式、交互式和非過程性編程語言。4GL還具有高效的程序代碼、智能缺省假設、完備的數據庫和應用程序生成器。目前市場上流行的 4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務信息系統的中、小型應用程序的開發。
過程開發模型又叫 混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個項目能沿著最有效的路徑發展,這就是過程開發模型(或混 合模型)。實際上,一些軟件開發單位都是使用幾種不同的開發方法組成他們自己的混合模型。
原文: http://stevenliao.bokee.com/1511523.html