構建之法讀後感 第1章 緒論

2022-08-31 10:03:09 字數 1530 閱讀 5182

首先,文章對於程式、使用者需求、工程等等概念用了阿超給兒子編寫的乙個出題程式來分別解釋了個中的含義,尤其是程式和工程的區別,程式大概就是用很多語言或工具編寫的乙個簡單能實現目標要求的一行行**,而工程就是在這個程式的基礎上不斷滿足使用者的需求、修復程式的bug、提供後續維護等服務。

需求分析:梳理需求,逐步展開後續工作,如設計(軟體架構)、實現(寫資料結構和演算法),測試,發布軟體

軟體=程式+軟體工程(軟體企業=軟體+商業模式)

軟將工程的核心部分:構建管理、源**管理、軟體設計、軟體測試、專案管理(廣義上還有使用者體驗、使用者介面設計等

然後對於軟體開發的不同階段有乙個詳細而有趣的舉例

1.玩具階段

通過「設計/製造紙飛機」的例子說明所有的事物都或多或少都體現了某些基本理論

2.業餘愛好階段

講述了夢想和愛好對於人類社會能有多大的貢獻(愛好者的嘗試:氣球+沙灘椅公升空)

3.探索階段

持續探索實踐對於實現夢想的重要性,以及先行者偉大的鑽研精神(萊特兄弟飛行)

4.成熟的產業階段

在先人的基礎上不斷完善,成為乙個產業(飛機製造業)

接著闡述了軟體工程的定義

其中比較令人深思的部分就是軟體開發過程中的五點難題

1.複雜性(complexity)

「軟體的各個模組之間有各種顯性或隱性的依賴關係,隨著系統的成長和模組的增多,這些關係的數量往往以幾何級數的速度增長,而理解運用這些複雜性的人並沒有太大的變化「,這樣意味著雖然現在的軟體看起來功能越來越強大,使用也非常便捷,但實際上這種強大是建立在更多的人手和更長的開發時間上的,所以如何解決人力問題是今後快速開發大型複雜問題的重中之重。

2.不可見性(invisibility)

「軟體以機器碼的形式高速執行,還可能在幾個cpu核上同時執行,工程師是『看『』不到自己的源**如何具體地在使用者的機器上被執行的」,就是程式總會以自己無法預知的方式執行,當程式出錯時,幾乎無法完整重現程式到底出了什麼問題,這對於bug的修復實在是有點無力。

3.易變性(changeability)

「正確地修改軟體是一件很困難的事情」,這點在我們親自程式設計的過程中已經有了深刻地了解。。。

4.服從性(conformity)

「軟體不能獨立存在,它總要執行在硬體上面,它要服從系統中其他組成部分的要求,它還要服從使用者的要求、行業系統的要求」,意味著如果想要廣為發布乙個程式,除了程式本身的正確性,還要考慮很多外在因素才能保證程式的良好執行。

5.非連續性(discontinuity)

「有時輸入上很小的變化,會引起輸出上極大的變化」,這需要從設計上著手考慮如何讓使用者更好地熟悉乙個程式的操作,不能讓使用者對自己操作的結果摸不著頭腦。

構建之法第8 9 10章讀後感

第八章 需求分析 本章節講述軟體需求的4個步驟,1 獲取和引導需求 2 分析和定義需求 3 驗證需求 4 在軟體產品的生命週期中管理需求 在軟體工程中分析軟體需求需要考慮相關者的利益關係,例如使用者 顧客 市場分析師 監管機構 軟體工程師等之間的關係。講述了9種使用者調研方法 1 焦點小組 2 深入...

《構建之法》第4章讀後感

規範 我們寫的 不僅是給我們自己看,也是給其他人看。看 本來就是比較乙個枯燥的過程,如果你的 格式亂七八糟,命名不規範,那麼別人也不會想看你寫的 即使看了也不懂你的 是想表達什麼,而 構建之法 也寫了一些關於如何規範 縮排 行寬 括號 斷行與空白的 行 分行 命名等等。在編碼後,還要對 複審,找出錯...

《構建之法》第1 2 3章讀後感

第一章 概論 總結 主要了解軟體工程的定義和初步知識,了解了軟體開發與發展的不同階段,了解到軟體有集中特性譬如複雜性,不可見性,易變性,服從性,連續性 還有軟體工程的相關只知識領域,和其他科學的一些關係,提出了軟體工程的目標,其包括提高使用者滿意度,增強軟體自身可靠性,提高軟體流程的質量,增強可維護...