在我正式開始閱讀這本書之前,我對於軟體工程這個詞彙的概念還是模糊的,認為它只是停留在是一門學科,乙個專業,或者是一大堆硬生生的理論知識,然而當我讀完構建之法這本書的推薦序和第一,第二版前言開始,我就深刻意識到我之前對於軟體工程的膚淺認識是多麼錯誤。
我看書一般喜歡從從書的封面開始看起,或許這也是大多數人看書的習慣,·在本書的封面素描著一副魯班鎖,剛開始讓人感覺有點奇怪,明明是一本講軟體工程的書,為什麼要用魯班鎖做為封面圖案呢?原來玄機深藏於魯班鎖的內部,這魯班鎖從外部看,是嚴絲合縫的十字立方體,但是各個部件在內部凹凸部分互相咬合,這正是「構建之法」的體現。
上完資料結構的課程後,或者在更早之前,「程式=資料結構+演算法」這句話,就早已深記於心,可是乙個實現理論的程式在實際的學習和生活中好像並沒有什麼用,我們在工作中,老闆不可能叫你完成乙個求最短路徑演算法的實現,我們要完成的專案是包括需要求最短路徑在內的各種程式的集合,本書中的引例就非常詳細並且生動的說明了所謂的程式,軟體,軟體工程這三者之間的關係,從完成乙個隨機列印小學二年級的加減法題目,到由此帶來的使用者和需求,進而擴充套件為支援例如二元一次方程的,並且**可以長時間訪問的乙個工程。從乙個簡單的程式,擴充套件到滿足各種功能的應用軟體,再擴充套件到能保證維修的軟體服務,這正是軟體工程的這一「工程」的一步步構建的過程。
一般來說,軟體團隊都要使用者提出需求開始的,再到軟體的整體構建,然後是軟體設計,這是各個功能的**實現階段,再者是軟體測試階段,測試完之後,投入到實際生活中使用,在實際生活中接受使用者的各種各樣的反饋,解決bug,維護軟體。這是一整個軟體開發的流程,再加上對源**以及專案的管理,構成了軟體開發的核心,廣義上的軟體工程還包括使用者體驗部分,互動介面的設計部分等等,由此,作者得出乙個推論:
軟體 = 程式 + 軟體工程
這個推論讓我對軟體這個概念有了深刻的認識。
然而軟體工程這個名詞解釋是什麼呢,作者給出的解釋是「·軟體工程是把系統的,有序的,可量化的方法應用到軟體的開發,運營和維護上的過程;軟體工程包括下列領域:軟體需求分析,軟體設計,軟體構建,軟體測試和維護;軟體工程和下列學科相關:電腦科學,計算機工程,管理學,數學等等。」
從作者講到的軟體的不同開發階段,也讓我對軟體的開發有了進一步認識,那就是乙個成熟的軟體都是從乙個玩具模型(簡單的程式)開始然後慢慢發展到影響到乙個公司或者一群使用者的生態系統,例如**和windows作業系統,如果說這兩者都出現了更新上嚴重錯誤,那麼這將會對人們的生產生活造成巨大的影響。
讀完本書的緒論,就激起了我對軟體工程巨大的興趣,也徹底顛覆了我原來對軟體及軟體工程的理解。乙個複雜且龐大的軟體的構建過程不亞於一棟大廈的建造過程,用「工程」稱其,當之無愧。
初識軟體工程 《構建之法 現代軟體工程》
每次開學都是乙個新的開始。當看到 軟體工程 這四個字時,既熟悉又陌生,熟悉是因為我的專業就是軟體工程,陌生的是他作為一門課程,我不知如何下手。從老師的推薦中,我選擇了這本 構建之法 現代軟體工程 他向我展現了乙個新的世界,讓我有了新的認知,同時也帶來了新的探索。問題 1.對於剛接觸這方面知識的我們,...
構建之法 現代軟體工程
我理解的軟體工程 軟體工程就是把系統的,有序的,可量化的方法應用到軟體的開發,運營和維護上的過程。軟體工程包含的領域有很多,軟體需求分析,軟體設計,軟體構建,軟體測試和軟體維護。我理解的軟體工程是,這必須需要乙個團隊或者乙個小組合作才能做出優秀的產品,乙個人是不可能完成的。軟體工程並不是我以前理解的...
構建之法 軟體工程簡介
這一周的主要授課知識點是軟體工程相關概念,軟體工程和電腦科學的關係,源 管理。實踐內容是簡單的源 管理操作。首先我們應該認識到我們在學習時,軟體工程可分為以下階段 需求分析,設計階段,實現階段,穩定階段,發布階段,維護階段。但是在現實工作時,實習生往往是先從維護階段開始,學習並維護一些已有的軟體,接...