Software System Analysis and Design | 3
1、簡述瀑布模型、增量模型、螺旋模型(含原型方法)的優缺點。從項目特色、風險特徵、人力資源利用角度思考。
瀑布模型:
-
優勢:架構
- 爲項目提供了按階段劃分的檢查點。每一個階段能夠校驗當前階段開發過程的正確性,下降項目風險。
- 當前一階段完成後,只須要去關注後續階段。保證每一個階段工做正確完成,使過程有序化,便於管理。
- 有利於大型軟件開發過程當中人員的組織、管理,有利於軟件開發方法和工具的研究,從而提升了大型軟件項目開發的質量和效率。
-
缺點:工具
- 在項目各個階段之間極少有反饋。開發過程不能過多逆轉回退,不然代價極大。
- 只有在項目生命週期的後期才能看到結果。每一個階段中的子流程可能過長,不能儘快獲得反饋和修訂。
- 有些狀況下客戶每每很難清楚地給出全部的需求,而該模型要求有詳細需求且在後期儘可能不進行修改,對於前期需求不太明確的項目則不難很好應用瀑布模型。
增量模型:
-
優勢:性能
- 整個項目的資金不會被提早消耗,由於首先開發和交付了主要功能和高風險功能。
- 每一個增量交付一個可操做的產品。
- 每次增量交付過程當中獲取的經驗,有利於後面的改進,客戶也有機會對創建好的模型做出反應。
- 採用連續增量的方式,可把用戶經驗融入到細化的產品,這比徹底從新開發要便宜得多。
- 「分而治之」的策略,使問題分解成可管理的小部分,避免開發團隊因爲長時間的需求任務而感到淚喪。
- 經過同一個團隊的工做來交付每一個增量,保持全部團隊處於工做狀態,減小了員工的工做量,工做分佈曲線經過項目中的時間階段被拉平。
- 每次增量交付的結爲,能夠從新修訂成本和進度的風險。
- 便於根據市場做出反應。
- 下降了失敗和更改需求的風險。
- 更易於控制用戶需求,由於每次曾兩開發的時間很短。
- 因爲不是一步跳到將來,因此用戶能逐步適應新技術。
- 切實的項目進展,有利於進度控制。
- 風險分佈到幾個更小的增量中,而不是集中於一個大型開發中。
- 因爲用戶可以從早期的增量中瞭解系統,因此更加理解後面增量中的需求。
-
缺點:測試
- 因爲各個構件是逐漸併入已有的軟件體系結構中的,因此加入構件必須不破壞已構造好的系統部分,這須要軟件具有開放式的體系結構。
- 在開發過程當中,需求的變化是不可避免的。增量模型的靈活性可使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化爲邊作邊改模型,從而是軟件過程的控制失去總體性。
- 若是增量包之間存在相交的狀況且未很好處理,則必須作全盤系統分析,這種模型將功能細化後分別開發的方法較適應於需求常常改變的軟件開發過程。
螺旋模型(含原型方法):
-
優勢:優化
- 設計上的靈活性,能夠在項目的各個階段進行變動
- 以小的分段來構建大型系統,使成本計算變得簡單容易。
- 客戶始終參與每一個階段的開發,保證了項目不偏離正確方向以及項目的可控性。
- 隨着項目推動,客戶始終掌握項目的最新信息 , 從而他或她可以和管理層有效地交互。
- 客戶承認這種公司內部的開發方式帶來的良好的溝通和高質量的產品。
- 缺點:
很難讓用戶確信這種演化方法的結果是能夠控制的。建設週期長,而軟件技術發展比較快,因此常常出現軟件開發完畢後,和當前的技術水平有了較大的差距,沒法知足當前用戶需求。
2、簡述統一過程三大特色,與面向對象的方法有什麼關係?
- Use case驅動。軟件開發中對部分功能進行描述,而且能夠在團隊中被普遍理解,從而進行下一步的開發或測試。
- 以架構爲中心。軟件體系結構提供全部其它發展的中心點,這要求一個具備彈性的、能適應變化的、易於理解的、能夠重用的體系結構。
統一過程是面向對象開發的重要方法,是迭代、敏捷開發實踐的表明,給出了有關軟件開發過程組織及實施的指導。
3、簡述統一過程四個階段的劃分準則是什麼?每一個階段關鍵的里程碑是什麼?
RUP中的軟件生命週期在時間上被分解爲四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。每一個階段結束於一個主要的里程碑(Major Milestones);每一個階段本質上是兩個里程碑之間的時間跨度。在每一個階段的結尾執行一次評估以肯定這個階段的目標是否已經知足。若是評估結果使人滿意的話,能夠容許項目進入下一個階段。
- 初始階段
初始階段的目標是爲系統創建商業案例並肯定項目的邊界。爲了達到該目的必須識別全部與系統交互的外部實體,在較高層次上定義交互的特性。本階段具備很是重要的意義,在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險。對於創建在原有系統基礎上的開發項目來說,初始階段可能很短。初始階段結束時是第一個重要的里程碑:生命週期目標(Lifecycle Objective)里程碑。生命週期目標里程碑評價項目基本的生存能力。
- 細化階段
細化階段的目標是分析問題領域,創建健全的體系結構基礎,編制項目計劃,淘汰項目中最高風險的元素。爲了達到該目的,必須在理解整個系統的基礎上,對體系結構做出決策,包括其範圍、主要功能和諸如性能等非功能需求。同時爲項目創建支持環境,包括建立開發案例,建立模板、準則並準備工具。細化階段結束時第二個重要的里程碑:生命週期結構(Lifecycle Architecture)里程碑。生命週期結構里程碑爲系統的結構創建了管理基準並使項目小組可以在構建階段中進行衡量。此刻,要檢驗詳細的系統目標和範圍、結構的選擇以及主要風險的解決方案。
- 構造階段
在構建階段,全部剩餘的構件和應用程序功能被開發並集成爲產品,全部的功能被詳細測試。從某種意義上說,構建階段是一個製造過程,其重點放在管理資源及控制運做以優化成本、進度和質量。構建階段結束時是第三個重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產品是否能夠在測試環境中進行部署。此刻,要肯定軟件、環境、用戶是否能夠開始系統的運做。此時的產品版本也常被稱爲「beta」版。
- 交付階段
交付階段的重點是確保軟件對最終用戶是可用的。交付階段能夠跨越幾回迭代,包括爲發佈作準備的產品測試,基於用戶反饋的少許的調整。在生命週期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,全部主要的結構問題應該已經在項目生命週期的早期階段解決了。在交付階段的終點是第四個里程碑:產品發佈(Product Release)里程碑。此時,要肯定目標是否實現,是否應該開始另外一個開發週期。在一些狀況下這個里程碑可能與下一個週期的初始階段的結束重合。
4、軟件企業爲何能按固定節奏生產、固定週期發佈軟件產品?它給企業項目管理帶來哪些好處?
- 遵循項目開發過程模型的指導,按照流程進行開發測試,利用軟件產品範圍的彈性,合理規劃範圍(20%業務決定80%滿意度),使得軟件生產按固定節奏運行,固定迭代週期、固定開發週期、固定升級週期。
- 固定節奏能夠量化生產過程、我的貢獻度、人力資源利用率等數據,有利於更好地監督、控制、調整、評價整個生產。對於公司(生產方)來講,固定節奏開發保證適應市場需求的同時生產可控,對於用戶來講,固定節奏的修復,更新更容易產生信賴感。
歡迎關注本站公眾號,獲取更多信息