軟體危機:由於軟體規模越來越大,軟體複雜性越來越高,可靠性問題也越來越突出,傳統的個人設計,個人實現的方式不再滿足要求,迫切需要改變軟體生產方式,提高軟體開發效率,軟體危機隨之爆發。
「在10年內無法找到解決軟體危機的殺手鐗(銀彈)。
在大型軟體中打造抽象的軟體概念模型,最難的點是缺乏有效的管理。由於軟體概念結構的複雜性,無法達成軟體概念的一致性和完整性從,自然無法解決軟體危機帶來的困境。
分析——需求分析和定義,如敏捷統一過程中的用例建模和業務領域建模。
設計——軟體架構設計和軟體詳細設計,前者和分析階段聯絡緊密,後者和實現階段聯絡緊密
實現——分為編碼和測試
交付——主要是部署,交付測試
維護——時間最長,而且維護階段可能會形成單獨專案最後再次合併進維護階段。
描述性過程是客觀陳述在軟體開發過程中實際發生什麼。
說明性過程主觀陳述在開發過程中應該會發生什麼,有利於整個團隊對軟體過程形成一致的理解。
瀑布模型
順序結構的軟體過程模型,沒有任何迭代,適用於能夠完全徹底理解的需求和需求不會發生改變的情況。只有在生命週期的後期才能看到結果。
計畫--需求分析--概要設計--詳細設計--編碼和實現--單元測試--系統測試--驗收測試--維護
帶原型的瀑布模型
由於瀑布模型在軟體過程的後期才能看到結果,會將各種風險積攢到後期,為了盡早暴露風險進行風險控制,在瀑布模型的基礎上增加乙個原型化階段,可以將風險前移。
原型是軟體開發人員和使用者或客戶互動得到的,如使用者介面原型,其可以在需求分析階段提供直觀的反饋;在設計階段,原型可能是系統架構的一部分,有利於驗證技術方案的可行性。
v模型
v模型是在瀑布模型的基礎上發展出來的,單元測試,整合測試和系統測試都是為了驗證設計階段,交付測試是為了確認需求階段。也就是說,瀑布模型前後兩端具有內在的緊密聯絡。將前後兩端整合起來可以提高活動的內聚度。
提供一種工作思路,在進行一項工作前,先思考驗證該工作的方法。
分階段增量和迭代
分階段的開發分為兩種策略,一種是增量開發,一種是迭代開發。
螺旋模型
尤其重視系統風險,特別適用於龐大且複雜,風險高的專案
通常分為四個階段:制定計畫、確定目標和備選方案、風險評估、開發測試。
在每個迭代階段,構建原型是螺旋模型減小風險的基本策略。
規模、凝聚力、團隊協作的基本條件
軟體團隊的成熟度越高,軟體開發的能力越強。cmmi分為了五個等級:
一級,初始級,軟體團隊對目標與要做的努力很清晰,專案能否成功取決於實施人員。
二級,管理級,可以做到職責到人,並對專案流程進行監測,保證好了軟體專案的成功率。
**,已定義級,對標準流程制度化(定義了什麼,肯定是定義了制度),不僅能做到同類軟體專案的成功,也能在其他專案上成功,科學管理已經成為組織文化。
四級,量化管理級,管理達到數位化,實現了管理的精度,降低專案實施在質量上的波動。
五級,持續優化級,已經可以做到對專案實施中可能出現的問題予以預防。能使用新技術優化流程。
cmmi有兩種方來評價組織軟體過程的成熟度,軟體過程評估和軟體能力評估計。主要用於能力評估和過程改進。
個體和互動 高於 流程和工具
工作的軟體 高於 詳盡的文件
客戶合作 高於 合同談判
響應變化 高於 遵循計畫
敏捷方法遵循的原則就是盡可能實現左項。激發個體鬥志,以他們為核心來搭建專案,提供所需的環境,進而達成目標
devops是一組過程、方法與系統的統稱,用於促進軟體開發、技術運營和質量保障(qa)部門之間的溝通、協作與整合,可以看做三者的交際。
精益原則包括精益生產、精益創業和最小可行產品。
精益生產追求零庫存與快速反應,強調人力資源的重要性。
精益創業的核心思想是先投入乙個極簡原型產品,並根據使用者反饋來不斷迭代,以適應市場。做到全過程、全員化、標準化、責任化。
mvp是把最核心的功能用最小的成本實現,並快速徵求使用者意見。
軟體工程 軟體危機
軟體危機是指落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程中出現一系列嚴重問題的現象。軟體危機 software crisis 20 世紀60年代以前,計算機剛剛投入實際使用,軟體設計往往只是為了乙個特定的應用而在指定的計算機上設計和編制,採用密切依賴於計算機的機器 ...
軟體工程 軟體危機
軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。它包括兩方面 如何開發軟體,以滿足軟體日益增長的需求 如何維護數量不斷增長的已有軟體。軟體危機的典型表現 對軟體開發成本和進度的估計常常很不準確。常常出現實際成本比估算成本高出一乙個數量級 實際進度比計畫進度拖延幾個月甚至幾年的現象。...
軟體危機 軟體工程 軟體質量
軟體危機就是軟體在開發和維護過程中所遇到的一系列難以控制的問題。主要表現為 對軟體開發成本和時間估計不准 使用者對已完成的軟體不滿意 軟體不可維護 軟體缺少文件 軟體成本過高 軟體發展速度跟不上硬體發展速度。導致軟體危機的原因有 一,與軟體本身特點有關,缺乏可見性,質量難以評價,規模龐大難以維護 二...