在軟體領域對應的就是「軟體工程」。
軟體需要基於軟體工程的方法開發、執行和維護。
為了為了擺脫軟體危機,1968 年秋季,北大西洋公約組織的科技委員會召集了近 50 名一流的程式設計人員、計算機科學家和工業界巨頭,討論和制定對策。
在這次會議上,同時也提出了「軟體工程」的定義:
1993 年,電氣電子工程師學會(ieee)給出了乙個更加綜合的定義:
軟體工程的本質:
軟體專案裡的各種角色:專案經理、產品經理、架構師、程式設計師、測試工程師、運維工程師。
整個過程的管理:「專案管理」。
同時,也很自然就衍生出一套最基礎的過程模型:瀑布模型。
瀑布模型的誕生的意義:
然而瀑布的特性決定了它只能從上往下流,而且從上到下走完整個週期很長,所以一旦出現了需求的變更,將會非常痛苦,很多事情需要重頭再來。
於是基於瀑布模型,又衍生出 v 模型、原型設計、增量模型、螺旋模型等模型,試圖改善瀑布模型存在的一些缺陷。
這些改進模型的發展趨勢上就是縮短專案週期,快速迭代。
這樣到了 90 年代,各種輕量級開發方法例如 scrum、極限程式設計等也不斷被提出。
到了 2001 年,這些輕量級開發方法一起組成了敏捷聯盟,其後敏捷開發如同星星之火,逐漸形成燎原之勢。
近些年,雲計算、微服務這些新技術的產生,也對軟體工程產生了影響。雲服務讓分工更細,很多企業可以將運維、伺服器維護、dba、甚至某些獨立服務交給雲服務商;微服務讓大團隊變成小團隊,每個小團隊可以更專注於細分領域,減少相互之間的依賴。
軟體工程就是用工程化的方法來開發維護軟體。也可以說軟體工程就是用一定的過程,採用科學的方法,借助工具來開發軟體。
工程方法:
工程方法通常會分成六個階段:想法、概念、計畫、設計、開發和發布。
工程思維,本質上是一種思考問題的方式,在解決日常遇到的問題時,嘗試從乙個專案的角度去看待問題、嘗試用工程方法去解決問題、站在乙個整體而不是區域性的角度去看問題。
二、需求分析
三、軟體設計
四、程式編碼
五、軟體測試
六、執行維護
瀑布模型在提出後,因為其簡單可行,切實有效,馬上就在很多軟體專案中應用起來,一直到 2000 年前後,都是最主流的軟體開發模型,即使到現在,你也能在很多軟體專案中看到它的影子。
也是從那時開始,有了「軟體生命週期」(software life cycle,slc) 的概念。
學習瀑布模型的意義:
缺點:鑑於瀑布模型存在的這些問題,後來又有很多人提出了其他的軟體生命週期模型,比如快速原型開發模型、增量模型、迭代模型,以期保留瀑布模型的這些優點,克服瀑布模型中存在的問題。
瀑布模型的出現,也解決了軟體專案開發中的幾個重要問題:
學習後總結,總結後再學習
學習後總結,總結後再學習 2010年畢業以來,讀了幾百本書籍,包括it技術 管理 歷史 營銷 金融 心理等等,在讀某商學院mba一年後感覺有些東西還是要寫寫,除了能增加自己對某些知識和理論的理解外,也許其他人也碰巧想關注一下,了解這方面的東西。我所寫的都是一些簡單的概念層面的解釋,不會做太深入的闡述...
學習總結 近期acm學習的總結
開學已經乙個月了,對acm的學習也乙個月了,做了一下總結 對自己不好的地方的反省 1.開學一開始學的是stl,不得不說stl是乙個很好的東西,熟練的運用stl大大的減少了 量,也使演算法容易實現。但是我在用stl後使自己產生了一種惰性思維。在兩個星期的stl練習後,我發現自己變得越來越懶,不願意自己...
深度學習學習總結
北京大學人工智慧實踐 tensorflow2.0 學習1 6章 複習1 4章 第4章需要寫乙個部落格 寫4,5,6章 吳恩達深度學習第四步 卷積神經網路 學習1 2周 複習1 2周 殘差網路和inception網路不太懂,目前用不到 三四周是目標定位,人臉識別,神經風格轉換目前用不到 油管最新最熱t...