系統分析設計---作業3

簡述瀑布模型、增量模型、螺旋模型(含原型方法),並分析優缺點。從項目特點、風險特徵、人力資源利用角度思考

瀑布模型

優點

  1. 爲項目提供了按階段劃分的檢查點。
  2. 當前一階段完成後,您只需要去關注後續階段。
  3. 可在迭代模型中應用瀑布模型。
    增量迭代應用於瀑布模型。迭代1解決最大的問題。每次迭代產生一個可運行的版本,同時增加更多的功能。每次迭代必須經過質量和集成測試。
  4. 它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導。

缺點

  1. 強調過程活動的線性順序
  2. 缺乏靈活性,特別是無法理解軟件需求不明確或不準確的問題
  3. 風險控制能力較弱
  4. 瀑布模型中的軟件活動是文檔驅動的,當階段之間規定過多的文檔時,會極大地增加系統的工作量
  5. 管理人員如果僅僅以文檔的完成情況來評估項目完成進度,往往會產生錯誤的理論

增量模型

優點

  1. 將待開發的軟件系統模塊化,可以分批次地提交軟件產品,使用戶可以及時瞭解軟件項目的進展。
  2. 以組件爲單位進行開發降低了軟件開發的風險。一個開發週期內的錯誤不會影響到整個軟件系統。
  3. 開發順序靈活。開發人員可以對組件的實現順序進行優先級排序,先完成需求穩定的核心組件。當組件的優先級發生變化時,還能及時地對實現順序進行調整。

缺點

  1. 使用增量模型的困難是,在把每個新的增量構件集成到現有軟件體系結構中時,必須不破壞原來已經開發出的產品,軟件體系結構必須是開放的,相比其他的開發模型需要更精心的設計。
  2. 從某種意義上說,增量模型本身是自相矛盾的。它一方面要求開發人員把軟件看做一個整體,另一方面又要求開發人員把軟件看做構件序列,每個構件本質上都獨立於另一個構件。因此需要項目管理人員對全局把握的水平較高。

螺旋模型(含原型方法)

優點

  1. 設計上的靈活性,可以在項目的各個階段進行變更。
  2. 以小的分段來構建大型系統,使成本計算變得簡單容易。
  3. 客戶始終參與每個階段的開發,保證了項目不偏離正確方向以及項目的可控性。
  4. 隨着項目推進,客戶始終掌握項目的最新信息 , 從而他或她能夠和管理層有效地交互。
  5. 客戶認可這種公司內部的開發方式帶來的良好的溝通和高質量的產品。

缺點

  1. 很難讓用戶確信這種演化方法的結果是可以控制的。
  2. 建設週期長
  3. 軟件技術發展比較快,所以經常出現軟件開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。

簡述統一過程三大特點,與面向對象的方法有什麼關係?

統一過程三大特點是:

  1. 用例驅動的
  • 驅動大量的開發活動
  • 定義和確認系統結構
  • 定義和測試時間和過程
  • 計劃反覆的過程
  • 創建用戶文檔
  • 系統開發
  1. 以架構爲中心
  • 在早期使全局的結構基本穩定
  • 控制了架構質量,可以保證重大風險不會發生,保證了軟件未來的擴展性
  • 經驗豐富的高層次的開發人員來完成架構,水平低的人員作其他部分
  1. 迭代和增量開發
  • 開發被組織一系列固定的短期小項目,稱爲迭代,經驗豐富的高層次的開發人員來完成架構,水平低的人員作其他部分。

與面向對象的方法的關係是:

  • RUP和類似的產品–例如面向對象的軟件過程(OOSP),以及OPEN Process都是理解性的軟件工程工具–把開發中面向過程的方面(例如定義的階段,技術和實踐)和其他開發的組件(例如文檔,模型,手冊以及代碼等等)整合在一個統一的框架內。
  • 設計類被組織成具有良好接口的設計包(Package)和設計子系統(Subsystem),而描述則體現了類的對象如何協同工作實現用例的功能
  • 實現工作流的目的包括以層次化的子系統形式定義代碼的組織結構;以組件的形式(源文件、二進制文件、可執行文件)實現類和對象;將開發出的組件作爲單元進行測試以及集成由單個開發者(或小組)所產生的結果,使其成爲可執行的系統。
  • 測試工作流要驗證對象間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正確的實現, 識別並確 認缺陷在軟件部署之前被提出並處理。

簡述統一過程四個階段的劃分準則是什麼?每個階段關鍵的里程碑是什麼?

  • 統一過程中的軟件生命週期在時間上被分解爲四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構造階段(Construction)和交付階段(Transition)。
  • 每個階段結束於一個主要的里程碑(Major Milestones);每個階段本質上是兩個里程碑之間的時間跨度。
  • 劃分標準:在每個階段的結尾執行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許項目進入下一個階段。
  1. 初始階段
    初始階段的目標是爲系統建立商業案例並確定項目的邊界。爲了達到該目的必須識別所有與系統交互的外部實體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險。對於建立在原有系統基礎上的開發項目來講,初始階段可能很短。 初始階段結束時是第一個重要的里程碑:生命週期目標(Lifecycle Objective)里程碑。生命週期目標里程碑評價項目基本的生存能力。
  2. 細化階段
    細化階段的目標是分析問題領域,建立健全的體系結構基礎,編制項目計劃,淘汰項目中最高風險的元素。爲了達到該目的,必須在理解整個系統的基礎上,對體系結構作出決策,包括其範圍、主要功能和諸如性能等非功能需求。同時爲項目建立支持環境,包括創建開發案例,創建模板、準則並準備工具。 細化階段結束時第二個重要的里程碑:生命週期結構(LifecycleArchitecture)里程碑。生命週期結構里程碑爲系統的結構建立了管理基準並使項目小組能夠在構建階段中進行衡量。此刻,要檢驗詳細的系統目標和範圍、結構的選擇以及主要風險的解決方案。
  3. 構造階段
    在構建階段,所有剩餘的構件和應用程序功能被開發並集成爲產品,所有的功能被詳細測試。從某種意義上說,構建階段是一個製造過程,其重點放在管理資源及控制運作以優化成本、進度和質量。 構建階段結束時是第三個重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產品是否可以在測試環境中進行部署。此刻,要確定軟件、環境、用戶是否可以開始系統的運作。此時的產品版本也常被稱爲“beta”版。
  4. 交付階段
    交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括爲發佈做準備的產品測試,基於用戶反饋的少量的調整。在生命週期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,所有主要的結構問題應該已經在項目生命週期的早期階段解決了。 在交付階段的終點是第四個里程碑:產品發佈(Product Release)里程碑。此時,要確定目標是否實現,是否應該開始另一個開發週期。在一些情況下這個里程碑可能與下一個週期的初始階段的結束重合。

軟件企業爲什麼能按固定節奏生產、固定週期發佈軟件產品?它給企業項目管理帶來哪些好處?

  • RUP(軟件統一過程)中的每個階段可以進一步分解爲迭代。一個迭代是一個完整的開發循環,產生一個可執行的產品版本,是最終產品的一個子集,它增量式地發展,從一個迭代過程到另一個迭代過程到成爲最終的系統。
  • 好處:
  1. 每個迭代都是瀑布的工作流程
  2. 每個迭代產品在增量(製品是可運行的),利於及時交付使用並反饋
  3. 固定的迭代週期(等量的人月),利於量化團隊/個人生產率
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章