今天我閱讀了《構建之法》的第一章——概論,其中有一個等式對個人感觸特別深,那就是:軟件 = 程序 + 工程。誠如書上所說,絕大多數的像咱們同樣剛進入軟程序員
件工程的學生都知道:程序 = 數據結構 + 算法。而咱們卻一直認爲軟件就是程序,學好了程序便至關於學好了軟件工程。其實否則,軟件工程絕非學好程序就能夠學好的。算法
正如書中的例子所說,移山公司的程序員阿超爲兒子編寫的一個小程序在通過老師、教導主任以及校長的不一樣需求之下進行了不少次的修改,並且最後還要考慮到當小程序
網站打不開時對網站的管理和維護。從這裏面咱們能夠看出軟件工程不一樣於其餘計算機學科的最大特色,也就是老師上課所講的:軟件工程的軟件是作給人用的,也就是說數據結構
咱們作的程序要知足用戶的需求,同時也要根據用戶的各類需求來修改本身的程序,在修改的過程當中咱們不停地對本身的算法以及數據進行修正和刪改,這就是一個構建的測試
過程。當咱們獲得一個開發軟件的項目的時候,咱們須要作:需求分析,軟件測試,軟件維護等等,而這全部的工做都是以客戶的需求爲中心點的。從這裏咱們不難看出,網站
軟件工程絕非程序那麼簡單。操作系統
第二,書中講述的關於軟件的「好與壞」引起了個人深思。世界上沒有完美的軟件,即便軟件沒人任何Bug,同時在任何操做系統之下都可以完整的運行,可是若是客開發
戶對它不滿意,或者單純的是客戶不喜歡它的界面,咱們也不可以說它是一個好的軟件。世界上每個人的審美和需求都是不盡相同的,所以咱們須要儘可能作出最知足大部軟件
分人需求和審美的軟件,與此同時咱們也不可以一條路走到黑,不能由於個別客戶的需求不一樣而影響整個軟件的開發進度。而這也是軟件工程的一個重要的任務——決定一軟件工程
個軟件在何時可以「足夠好」,能夠發佈。
最後,用書中的一句話總結軟件工程——軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護上的過程