標籤:介紹 傳統 發布 需求分析 有感 軟體工程 需求 資料 領域
對於任何一個學電腦的人來說,軟體都不陌生,甚至於一個普通的朝九晚五的上班族,他的每日生活工作也都與軟體有著密不可分的關係。然而,程式又是如何從一行行指尖留下的代碼,機器儲存的資料變成快捷高效的軟體的呢?這中間我們所經曆的一系列過程的總和,我們稱之為軟體工程。
從本科開始學習電腦,我們就不可避免的接觸了形形色色的軟體,瞭解大量的軟體開發工具,我那個時候甚至沒有軟體工程這個概念,只認為,我們所用的軟體就是開發工具編譯、執行、封裝、發布的產物。後來,開設了軟體工程這門課程,才開始系統地接受軟體工程方面的教育,然而,教科書太過死板,給我們的印象中大多留下的是一個個生澀的概念和工程的流程圖。直到接觸了構建之法,我才真正理解了什麼是軟體工程,軟體經過了怎樣的流程來到使用者的手中並為其服務的。
構建之法這本書寫得生動且貼進實際,對相關的定義有其獨特的闡釋,讓我們更為瞭解軟體工程,就比方說,書中對軟體這一名詞的定義:軟體 = 程式 + 軟體工程,這很直觀地表示了軟體的兩個方面:一個是軟體的載體,是程式;另一個是軟體形成手段工具,軟體工程。倘若你到傳統的教科書中去尋找,或是臨時為了考試而抱佛腳而百度,可能得到的答案是這樣,軟體:與硬體相對,是一系列按照特定順序組織的電腦資料和指令的集合(見百度百科)。這個定義好高大上,從硬體本質的基礎上來解釋什麼叫軟體,然而會令剛入門的一頭霧水。筆者對軟體開發的不同階段的介紹也很風趣,使用飛機行業的發展來類比軟體產業的前進,既簡明貼切,又讓人茅塞頓開。筆者在書中也多次提及曾經的工作經曆用以佐證:比如筆者用他二十多年的從業經曆中所見過的軟體項目的特點和目的來證明電腦科學與軟體工程是密切相關的兩個部分。
作者對於軟體工程的定義是:把系統的、有序的、可量化的方法應用到軟體的開發、運營、和維護上的過程。介紹了軟體工程所包含的領域:軟體需求分析、軟體設計、軟體構建、軟體測試、軟體維護,並從工程的角度去理解軟體工程,即設計和建造的過程中涉及大量的計算、計劃、各類角色的協作,以及成千上百的人、動物、機械經年累月的勞作。也用執行個體來描述軟體工程的目標:使用者滿意度高、可靠性強、軟體流程品質高、可維護性強。先是從個人角度來講,通過個人的鍛煉成為合格的軟體工程師,其中介紹了程式的單元測試、效能分析和個人軟體開發的整個流程。之後從個人升級為結對程式設計,開始學會協作開發。最終在合作的過程中學會如何進行團隊合作,開始參與一個團隊來開發軟體,進入真正的軟體工程。書末介紹了很多有利於更好地推動軟體工程的策略方法:比如敏捷流程、Scrum會議。
通過這本書,我對軟體工程的理解由書本定義進入到實際應用,也因而對此有了更進一步的瞭解。
8th 對軟體工程的理解(讀構建之法有感)