㈠ 軟體工程三種演化模型的相同點和不同點
瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、噴泉模型、基於構件的開發模型和形式方法模型等。
瀑布模型(waterfall model)是1970年有W.Royce提出的,它給出了軟體生存周期活動的固定順序,上一階段的活動完成後向下一階段過渡,最終得到所開發的軟體產品。瀑布模型如下圖所示,有時也稱為軟體生存周期模型。
瀑布模型中,上一階段的活動完成並經過評審後才能開始下一階段的活動,其特徵是:
(1)接受上一階段的結果作為本階段活動的輸入。
(2)依據上一階段活動的結果實施本階段應完成的活動。
(3)對本階段的活動進行評審。
(4)將本階段活動的結果作為輸出,傳遞給下一階段。
瀑布模型是最早出現的也是應用最廣泛的過程模型,對確保軟體開發的順利進行、提高軟體項目的質量和開發效率起到重要作用。
在大量的實踐過程中,瀑布模型也逐漸暴露出它的不足。首先,客戶常常難以清楚地描述所有的要求,而且在開發過程中,用戶的需求也常常會有所變化,使得不少軟體的需求存在著不確定性;在某個活動中發現的錯誤常常是由前一階段活動的錯誤引起的,為了改正這一錯誤必須回到前一階段,這就導致了瀑布的倒流,也就是說,實際的軟體開發很少能按瀑布模型的順序沒有迴流地順流而下。其次,瀑布模型使得客戶在測試完成以後才能看到真正可運行的軟體,此時,如果發現不滿足客戶需求的問題(由於需求不確定性),那麼修改軟體的代價是巨大的。
不是任何軟體都可採用瀑布模型的,瀑布模型適合於結構化方法,也就是面向過程的軟體開發方法。軟體項目或產品選擇瀑布模型必須滿足下列條件:在開發時間內需求沒有或很少變化;分析設計人員應對應用領域很熟悉;低風險項目(對目標、環境很熟悉);用戶使用環境很穩定;用戶除提出需求以外,很少參與開發工作。
演化模型
演化模型主要針對事先不能完整定義需求的軟體開發,其開發過程一般是首先開發核心系統,當核心系統投入運行後,軟體開發人員根據用戶的反饋,實施開發的迭代過程,每一迭代過程均由需求、設計、編碼、測試、集成等階段組成,直到軟體開發結束。演化模型在一定程度上減少了軟體開發活動的盲目性。
螺旋模型:
它是在瀑布模型和演化模型的基礎上,加入兩者所忽略的風險分析所建立的一種軟體開發模型。沿螺旋模型順時針方向,依次表達了四個方面的活動,制定計劃、風險分析、實施工程、客戶評估。
噴泉模型
它體現了軟體創建所固有的迭代和無間隙特徵,噴泉模型主要用於支持面向對象開發過程。
增量模型內容:
在設計了軟體系統整體體系結構之後,首先完整的開發系統的一個初始子集,繼之,根據這一子集,建造一個更加精細的版本,如此不斷的進行系統的增量開發。
瀑布模型、演化模型、螺旋模型之間的聯系:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟體,演化模型分為多次完成,每次迭代完成軟體的一個部分,螺旋模型也分為多次完成,每次完成軟體的一個新原型,並考慮風險分析。
演化模型和增量模型之間的區別
演化模型首先開發核心系統,每次迭代為系統增加一個子集,整個系統是增量開發和增量提交,增量模型首先完整的開發系統的一個初始子集,然後不斷的建造更精細的版本。
㈡ 軟體工程 原型模型
原型法適用於用戶沒有確定其需求的明確內容的時候。他先是根據已給的和分析的需求,建立一個原始模型,這是一個可以修改的模型(在聲明周期法中,需求分析一般不再多修改)。在軟體開發的各個階段都把有關信息相互反饋,直至模型的修改,使模型趨於完善。在各個過程中,用戶的參與和決策加強了,最終的結果更適合用戶的要求。這種原型技術有分為三類:拋棄式、演化式和遞增式。原型法成敗的關鍵及效率的高低關鍵在於模型的建立和建模的速度。 原型法的優點是:可以解決在產品開發早期需求不確定的問題(不確定性、二義性、不完整性、含糊性等),可以明確並完善需求、探索設計選擇方案、發展為最終產品。 原型法的缺點也是顯而易見的,需要在正式的代碼開發之前進行必要的原型開發,在某種程度上增加了工作量,尤其採用拋棄型原型,更是如此。
正確的有 1 2 3 5 6 7 9 10
㈢ 軟體開發模型有哪幾種各有什麼特點
軟體開發模型(Software Development Model)是指軟體開發全部過程、活動和任務的結構框架。軟體開發包括需求、設計、編碼和測試等階段,有時也包括維護階段。軟體開發模型能清晰、直觀地表達軟體開發全過程,明確規定了要完成的主要活動和任務,用來作為軟體項目工作的基礎。對於不同的軟體系統,可以採用不同的開發方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許採用不同的軟體工具和不同的軟體工程環境。軟體工程的主要環節包括人員管理、項目管理、需求分析、系統設計、程序設計、測試、維護等,如圖所示。軟體開發模型是對軟體過程的建模,即用一定的流程將各個環節連接起來,並可用規范的方式操作全過程,好比工廠的生產線。
8.混合模型(hybrid model)過程開發模型又叫混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個項目能沿著最有效的路徑發展,這就是過程開發模型(或混合模型)。實際上,一些軟體開發單位都是使用幾種不同的開發方法組成他們自己的混合模型。各種模型的比較每個軟體開發組織應該選擇適合於該組織的軟體開發模型,並且應該隨著當前正在開發的特定產品特性而變化,以減小所選模型的缺點,充分利用其優點,下表列出了幾種常見模型的優缺點。各種模型的優點和缺點:模型優點缺點瀑布模型文檔驅動系統可能不滿足客戶的需求快速原型模型關注滿足客戶需求可能導致系統設計差、效率低,難於維護增量模型開發早期反饋及時,易於維護需要開放式體系結構,可能會設計差、效率低螺旋模型風險驅動風險分析人員需要有經驗且經過充分訓練
9.RUP模型(迭代模型)
RUP(Rational Unified Process)模型是Rational公司提出的一套開發過程模型,它是一個面向對象軟體工程的通用業務流程。它描述了一系列相關的軟體工程流程,它們具有相同的結構,即相同的流程構架。RUP 為在開發組織中分配任務和職責提供了一種規范方法,其目標是確保在可預計的時間安排和預算內開發出滿足最終用戶需求的高品質的軟體。RUP具有兩個軸,一個軸是時間軸,這是動態的。另一個軸是工作流軸,這是靜態的。在時間軸上,RUP劃分了四個階段:初始階段、細化階段、構造階段和發布階段。每個階段都使用了迭代的概念。在工作流軸上,RUP設計了六個核心工作流程和三個核心支撐工作流程,核心工作流軸包括:業務建模工作流、需求工作流、分析設計工作流、實現工作流、測試工作流和發布工作流。核心支撐工作流包括:環境工作流、項目管理工作流和配置與變更管理工作流。RUP 匯集現代軟體開發中多方面的最佳經驗,並為適應各種項目及組織的需要提供了靈活的形式。作為一個商業模型,它具有非常詳細的過程指導和模板。但是同樣由於該模型比較復雜,因此在模型的掌握上需要花費比較大的成本。尤其對項目管理者提出了比較高的要求。它具有如下特點:(1)增量迭代,每次迭代都遵循瀑布模型能夠在前期控制好和解決風險;(2)模型的復雜化,需要項目管理者具有較強的管理能力。
10.IPD模型
IPD(Integrated Proct Development)流程是由IBM提出來的一套集成產品開發流程,非常適合於復雜的大型開發項目,尤其涉及到軟硬體結合的項目。
IPD從整個產品角度出發,流程綜合考慮了從系統工程、研發(硬體、軟體、結構工業設計、測試、資料開發等)、製造、財務到市場、采購、技術支援等所有流程。是一個端到端的流程。在IPD流程中總共劃分了六個階段(概念階段、計劃階段、開發階段、驗證階段、發布階段和生命周期階段),四個個決策評審點(概念階段決策評審點、計劃階段決策評審點、可獲得性決策評審點和生命周期終止決策評審點)以及六個技術評審點。
IPD流程是一個階段性模型,具有瀑布模型的影子。該模型通過使用全面而又復雜的流程來把一個龐大而又復雜的系統進行分解並降低風險。一定程度上,該模型是通過流程成本來提高整個產品的質量並獲得市場的佔有。由於該流程沒有定義如何進行流程回退的機制,因此對於需求經常變動的項目該流程就顯得不大適合了。並且對於一些小的項目,也不是非常適合使用該流程。
㈣ 總結歸納主要的軟體工程模型,並任意選定其中的一種過程模式,介紹其特點及你對該模型的理解。
主要的軟體過程模型有:瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、噴泉模型、基於構件的開發模型和形式方法模型等。
瀑布模型(waterfall model)是1970年有W.Royce提出的,它給出了軟體生存周期活動的固定順序,上一階段的活動完成後向下一階段過渡,最終得到所開發的軟體產品。瀑布模型如下圖所示,有時也稱為軟體生存周期模型。
瀑布模型中,上一階段的活動完成並經過評審後才能開始下一階段的活動,其特徵是:
(1)接受上一階段的結果作為本階段活動的輸入。
(2)依據上一階段活動的結果實施本階段應完成的活動。
(3)對本階段的活動進行評審。
(4)將本階段活動的結果作為輸出,傳遞給下一階段。
瀑布模型是最早出現的也是應用最廣泛的過程模型,對確保軟體開發的順利進行、提高軟體項目的質量和開發效率起到重要作用。
在大量的實踐過程中,瀑布模型也逐漸暴露出它的不足。首先,客戶常常難以清楚地描述所有的要求,而且在開發過程中,用戶的需求也常常會有所變化,使得不少軟體的需求存在著不確定性;在某個活動中發現的錯誤常常是由前一階段活動的錯誤引起的,為了改正這一錯誤必須回到前一階段,這就導致了瀑布的倒流,也就是說,實際的軟體開發很少能按瀑布模型的順序沒有迴流地順流而下。其次,瀑布模型使得客戶在測試完成以後才能看到真正可運行的軟體,此時,如果發現不滿足客戶需求的問題(由於需求不確定性),那麼修改軟體的代價是巨大的。
不是任何軟體都可採用瀑布模型的,瀑布模型適合於結構化方法,也就是面向過程的軟體開發方法。軟體項目或產品選擇瀑布模型必須滿足下列條件:在開發時間內需求沒有或很少變化;分析設計人員應對應用領域很熟悉;低風險項目(對目標、環境很熟悉);用戶使用環境很穩定;用戶除提出需求以外,很少參與開發工作。
㈤ 軟體工程的題請幫忙坐下
CCCDC DBADB第4題不太確定
㈥ 軟體工程中三種面向對象模型的主要功能
1、功能模型(即用例模型à作為輸入)
2、對象模型:對用例模型進行分析,把系統分解成互相協作的分析類,通過類圖/對象圖描述對象/對象的屬性/對象間的關系,是系統的靜態模型
3、動態模型:描述系統的動態行為,通過時序圖/協作圖描述對象的交互,以揭示對象間如何協作來完成每個具體的用例,單個對象的狀態變化/動態行為可以通過狀態圖來表達
㈦ 軟體工程中五種模型的並發過程及區別
過程就不介紹了,條件不一樣,過程也常常不一樣。介紹一下幾種模型的特徵:
瀑布模型:適用於簡單的、復雜度低的項目;
增量模型:適用於需求明確,但項目資源受限的項目;
螺旋形:適用於需求不明確的項目。一般是用於項目集管理,開發不會使用這種模型,因為不好控制項目的投資節點和時間節點。
其它的模型基本上都是這3種的衍生模式和組合模型,還有一些模式是學術討論用的,由於忽視資金對項目的影響,基本上是不適用的。
㈧ 軟體工程中:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型的優缺點
瀑布模型:需求及設計階段嚴謹的話,開發代價最少(對設計與代碼品質要求很高,一旦開發完了後發生障害或設計變更,維護成本高)
螺旋模型:開發對應階段可發現設計與需求不足,project完了後品質相對會高一點,但是開發周期比其他模型長,設計人員、開發人員、客戶的連攜頻率相當高(開發人員一般很崩潰:手頭phase還沒結束,變更就稀里嘩啦的來了)
快速模型:新興技術研發情況下可以使系統發散出很多方案,但是成熟技術框架下的環境構築(尤其是商業話的軟體開發)下只講高品質與高效率
只接觸過這幾種,個人拙見