1. 簡述瀑布模型、增量模型、螺旋模型(含原型方法)的優缺點
從專案特點、風險特徵、人力資源利用角度思考
瀑布模型:
特徵:(1)本階段活動的工作物件來自於上一項活動的輸出,這些輸出一般是代表本階段活動結束的里程碑式的文件
(2)根據本階段的活動規程執行相應的任務
(4)對本階段活動執**況進行評審
優點:(1)降低軟體開發的複雜程度,提高軟體開發過程的透明性,提高軟體開發過程的可管理性
(2)推遲軟體實現,強調在軟體實現前必須進行分析和設計工作
(3)以專案的階段評審和文件控制為手段有效地對整個開發過程進行指導,保證了階段之間的正確銜接,能夠及時發現並糾正開發過程中存在的缺陷,使產品達到預期的質量要求
缺點:(1)強調過程活動的線性順序。
(2)缺乏靈活性,尤其無法解決軟體需求不明確或不準確的問題。
(3)風險控制能力較弱。
(4)瀑布模型中的軟體活動是文件驅動的,當階段之間規定過多的文件時,會極大地增加系統的工作量
(5)瀑布模型中的軟體活動是文件驅動的,當階段之間規定過多的文件時,會極大地增加系統的工作量
增量模型:
優點:(1)增強客戶對系統的信心。
(2)降低系統失敗風險。
(3)提高系統可靠性。
(4)提高系統的穩定性和可維護性
缺點:(1)建立初始模型時,作為增量基礎的基本業務服務的確定有一定難度
(2)增量粒度難以選擇
原型模型:
優點:(1)有助於增進軟體開發人員和使用者對系統服務需求的理解,減少兩者之間的誤解
(2)易於確定系統的效能,確認各項主要系統服務的可應用性,確認系統設計的可行性,確認系統作為產品的結果
(3)軟體原型版本有的可以原封不動地成為產品,有的略加修改就可以成為目標系統的乙個組成部分,有利於最終系統的建成
缺點:(1)大型系統難以進行直接的原型模擬,只能經過系統分析得到系統的整體結構。
(2)大型系統難以進行直接的原型模擬,只能經過系統分析得到系統的整體結構。
(3)在使用者需求的業務流程、資訊流程混亂的情況下,原型的構造與評價有一定的困難。
(4)批處理系統的大部分活動是內部處理的,應用原型方法會有一定的困難。
(5)此外原型方法還存在容易忽略文件工作、建立原型帶來資源浪費、專案規劃和管理困難等問題
螺旋模型:
優點:(1)設計上的靈活性,可以在專案的各個階段進行變更
(2)以小的分段來構建大型系統,使成本計算變得簡單容易
(3)客戶始終參與每個階段的開發,保證了專案不偏離正確方向以及專案的可控性隨著專案推進,客戶始終掌握專案的最新資訊 , 從而能夠和管理層有效地互動
(4)客戶認可這種公司內部的開發方式帶來的良好的溝通和高質量的產品。
缺點:(1)採用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的專案開發中,如果未能夠及時標識風險,勢必造成重大損失
(2)過多的迭代次數會增加開發成本,延遲提交時間
(3)建設週期長,而軟體技術發展比較快,所以經常出現軟體開發完畢後,和當前的技術水平有了較大的差距,無法滿足當前使用者需求
2. 簡述統一過程三大特點,與物件導向的方法有什麼關係?
rup (rational unified process) 是一種基於 uml 的、以構架為中
心、用例驅動與風險驅動相結合的迭代增量過程。它將軟體開發過程要素和軟體工件要素整合在統一的軟體工程框架中,是乙個物件導向的程式開發方**。
三個特點:
(1) 以用例驅動
採用用例來捕獲對目標系統的功能需求。採用用例來驅動軟體的整個開發過程,保證需求的可跟蹤性,確保系統所有功能均被實現。將使用者關心的軟體系統的業務功能實體功能模型和開發人員結合起來,提供一種貫穿整體軟體生存週期的開發方式,使得軟體開發的各個階段的工作自然、一致地協調起來
(2)以體系結構為核心
強調在開發過程的早期,識別出軟體與軟體的體系結構緊密相關的用例,並通過對這些用例的分析、設計、實現和測試,形成體系結構框架。在後續階段中對已形成的體系結構框架進行不斷細化,最終實現整體系統
(3)迭代及增量
將軟體開發分為一系列小的迭代過程,在每個得帶過程中逐步增加資訊、進行細化。根據具體情況決定迭代的次數、每次迭代延續的時間以及迭代工作流。每次迭代都選擇目前對風險影響最大的用例進行,以分解和降低風險
其中(1)和(3)體現了使用者驅動開發,(2)體現了風險驅動開發
3. 簡述統一過程四個階段的劃分準則是什麼?每個階段關鍵的里程碑是什麼?
初始階段 (inception)、精化階段 (elaboration)、構建階段(construction) 和產品交付階段 (transition)。
劃分標準:軟體生命週期在時間維度, 每個階段結束於乙個主要的里程碑 (major milestone),並在階段結尾執行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許專案進入下乙個階段
里程碑:
初始階段:生命週期目標 (lifecycle objective) 里程碑,包括一些重要的文件,如:專案構想 (vision)、原始用例模型、原始業務風險評估、乙個或者多個原型、原始業務案例等。通過對文件的評審確定用例需求理解正確、專案風險評估合理、階段計畫可行等
精化階段:生命週期體系結構 (lifecyclearchitecture) 里程碑,包括風險分析文件、軟體體系結構基線、專案計畫、可執行的進化原型、初始版本的使用者手冊等。通過評審確定軟體體系結構已經穩定、高風險的業務需求和技術機制已經解決、修訂的專案計畫可行等。
構建階段:初始執行能力 (initial operational capability) 里程碑,包括可以執行的軟體產品、使用者手冊等,它決定了產品是否可以在測試環境中進行部署。此刻,要確定軟體、環境、使用者是否可以開始系統的執行。
產品化階段/移交階段:產品發布 (product release) 里程碑,確定最終目標是否實現,是否應該開始產品下乙個版本的另乙個開發周期。在一些情況下這個里程碑可能與下乙個週期的初始階段相重合。
4. 軟體企業為什麼能按固定節奏生產、固定週期發布軟體產品?它給企業專案管理帶來哪些好處?
利用軟體產品範圍的彈性,合理規劃範圍(20%業務決定80%滿意度),使得軟體生產按 固定節奏 執行,固定迭代週期、固定開發周期、固定公升級週期。為固定專案週期提供了可能。
rup將軟體的生命週期劃分為四個階段,並且開發被組織成一系列固定的短期小專案,稱為迭代,每次迭代都產生經過測試、整合並可執行的區域性系統。每次迭代都具有各自的需求分析、設計、實現和測試活動。因此,在每次迭代完成後,都有一定的產品可供發布
由於中間版本的產品是逐步產生的,而且核心功能和效能需求已經包含在前續版本中,所以,可以根據市場競爭的情況適時推出中間版本產品,降低市場風險,為企業專案管理帶來了好處
系統分析與設計(3)
瀑布模型 缺點 增量模型 缺點 螺旋模型 含原型方法 缺點 三大特點 用例驅動 以構架為中心 迭代和增量。關係 統一過程已經成為一種流行的構造物件導向系統的迭代軟體開發過程。它是一種基於 uml 的 以構架為中 心 用例驅動與風險驅動相結合的迭代增量過程。它將軟體開發過程要素和軟體工件要素整合在統一...
推薦系統 分析
收集使用者資訊的行為記錄模組 分析使用者喜好的模型分析模組 推薦演算法模組 推薦演算法 1.基於內容的推薦系統 content based recommendation 2.協同過濾推薦系統 collaborative filtering recommendation 3.混合推薦系統 hybrid...
系統分析基礎
1.軟體工程定義 總而言之,軟體工程就是把經過實踐考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。2.軟體危機 定義主要表現 解決途徑 3.comomo模型 定義 cocomo,英文全稱為constructive cost model,中文為構造性成本模型。它是一種精確 易於使用的,...