2 軟件如何而來

1  軟件怎麼被創造出來的

  軟件的出現,一般都是某個人或者某些人有想法有意圖,想做個什麼東西方便自己方便他人。張小龍的微信,喬布斯的IOS。這些偉大的軟件需要很多人來協同完成。

比如微信,2010年立項,2011第一版上線,當時只能發送文本消息和照片,之後一個版本一個版本更新。

  像這樣有計劃有步驟有人蔘與的產品------->工程。

2 軟件危機是什麼?

  工程的本質就是要做出有用的產品。造房子的建築工程,造火箭的航天工程。同樣,軟件領域,也就是軟件工程。不按照建築工程去造房子是會出事故甚至死人的。

  咋們看看建築工程。設想一下建一座房子:首先要先立項、設定預算,然後畫設計圖,再是施工,施工完成後,有專業人士進行質量檢查,質檢合格後入住。

  OS/360(上世紀60年代的大型軟件項目)------->開發人員(1000)----->最終無法運行------><人月神話>詳細的說明了此次事故。

  當計算機才發明出來的時候,計算機的能力非常有限,不需要軟件工程也可以開發簡單的軟件。但是隨着項目越來越複雜,規模越來越大,軟件項目開發維護過程中問題就出來了------>

  軟件產品質量低劣、軟件維護工作量大、成本不斷上升、進度不可控、程序人員無限度地增加。所以在 60 年代,“軟件危機”的概念被提出來。

3 軟件工程的歷史

(1)軟件工程幾個階段

  整個軟件開發過程也被分成了幾個階段:需求定義與分析、設計、實現、測試、交付和維護,這也就是我們常說的軟件項目生命週期。

  對應不同的階段,就是不同的職位。項目經理、產品經理、架構師、程序員、測試工程師、運維工程師。而對這整個過程的管理,我們通常稱之爲“項目管理”。這個時候出現了瀑布模型

(2)瀑布模型

  瀑布模型的誕生,在當時讓軟件開發從無序到有序,讓大家更好的分工協作,同時每個階段又衍生出各自的方法學和工具,例如需求分析、軟件測試等等。

  然而瀑布的特性決定了它只能從上往下流,而且從上到下走完整個週期很長,所以一旦出現了需求的變更,將會非常痛苦,很多事情需要重頭再來。

 

(3)瀑布模型缺點

 瀑布模型的特點是從上到下,而且週期相對比較長,如果中途某個環節出了問題需要從頭再來。所以當時爲了縮短項目週期,相繼推出了基於瀑布模型,又衍生出 V 模型、原型設計、增量模型、螺旋模型等模型。

(4)目前的敏捷開發

  雲計算、微服務這些新技術的產生,也對軟件工程產生了影響。雲服務讓分工更細,很多企業可以將運維、服務器維護、DBA、甚至某些獨立服務交給雲服務商;微服務讓大團隊變成小團隊,每個小團隊可以更專注於細分領域,減少相互之間的依賴。

4 總結

  那麼現在看軟件工程是什麼,就是用一定的過程,採用科學的方法,藉助工具來開發軟件。有個表達式,軟件工程 = 過程 + 方法 + 工具。軟件過程不是搞科研,不是搞藝術,而是解決多人合作將一個想法落地的學科,其中包括嚴謹的過程步驟、規範,用於提高效率或防範風險的工具。

軟件工程的主體是工程,這就要求我們具備基本的工程思維:模塊化思維、抽象思維;具備一些關鍵的意識:質量意識、風險意識、交付意識。

發佈了34 篇原創文章 · 獲贊 65 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章