軟件工程知識架構全景圖、應用解析及推薦書單
軟件工程是軟件行業知識體系的內核。無論你想走技術路線,還是轉向做管理,想要走的更快更穩,那就繞不開軟件工程。
軟件工程是一門實踐性很強的基礎學科,對技術人的整個軟件項目開發尤爲重要,我們理解了“學什麼”,現在就要解決“怎麼學”的問題。你要先知道,軟件工程的“知識樹”結構是什麼樣的,才能更好地理解每個知識點和彼此間的聯繫。
軟件工程知識架構全景圖
軟件工程的核心知識點,用一個簡單的公式來理解就是:軟件工程=過程+方法+工具。
在《軟件工程——實踐者的研究方法》這本經典軟件工程教材中,作者Roger S.Pressman畫了一張圖,高度概括了整個軟件工程的核心知識。
由圖可見,“質量焦點”在最底層,這不難理解,軟件工程是爲了應對軟件危機誕生的學科,其目標就是爲了要聚焦於質量,構建和維護高質量的軟件。可以說,聚焦於質量就是軟件工程的基石。
- 過程
解決軟件過程中的混亂,將軟件開發過程中的溝通、計劃、建模、構建和部署等活動有效地組織起來。兩大主流的軟件過程指導框架:瀑布模型和敏捷開發。
思維導圖1
-
過程
- 瀑布模型
- 瀑布模型
- 增量模型
- 迭代模型
- 其他衍生模型
- 敏捷開發
- Scrum
- 極限編程
- 看板
- 其他敏捷方法
- 瀑布模型
-
方法
如何分析用戶需求?如何對產品進行測試驗收?如何進行系統架構設計等?在軟件開發的整個過程中,你需要掌握構建系統的方法學。
思維導圖2
-
方法
- 項目定義和計劃
- 可行性分析
- 項目計劃
- 流程規範
- 風險管理
- 配置管理
- 需求分析
- 需求分析
- 變更管理
- 設計
- 架構設計
- 技術選型
- 重構
- 編碼
- 程序編碼
- 單元測試、集成測試
- 持續集成
- 測試
- 測試用例編寫
- 功能測試、性能測試
- 質量與安全
- 運行維護
- 版本發佈
- 故障調試
- 日誌分析
- 線上監控
- 項目定義和計劃
-
工具
知道了過程,掌握了方法,那麼具體落到操作層面,就會涉及到工具的使用。你需要工具來輔助方法的執行,把一些手動的工作自動化,把流程規範化,提高編碼效率,並把一些流程規範起來。
思維導圖3
- 工具
- 項目管理
- 任務跟蹤工具
- 項目計劃工具
- 團隊溝通工具
- 需求分析
- 需求跟蹤工具
- 原型製作工具
- 設計
- UML建模工具
- 圖標製作工具
- 開發
- 源代碼管理
- 持續集成工具
- 測試
- Bug跟蹤工具
- 測試管理平臺
- 自動化測試工具
- 壓力測試工具
- 運行維護
- 自動化部署
- 日誌分析工具
- 線上監控工具
- 項目管理
軟件工程應用解析
給了你軟件工程學的公式,也對軟件工程有了更爲全面的瞭解,看起來軟件工程學很簡單,但這些內容一下子要吃透也不容易。除了理論之外,你還需要學習國內外前沿的、典型的項目案例,這樣才能幫你真正理解軟件工程,並應用到軟件項目開發實踐中。
這些問題在專欄中都會有具體的案例幫你理解。
1、小團隊如何應用軟件工程?
- 小團隊的問題和瓶頸是什麼
- 軟件工程在哪些方面可以幫助改善
- 找到適合團隊的最佳實踐
2、以 VS Code 爲例,看大型開源項目是如何應用軟件工程的?
- 功能如何產生的
- Bug如何跟蹤修復
- 一個PR(Pull Request)的工作流程
- 如何測試和發佈
3、微軟、谷歌、阿里巴巴等大廠是怎樣應用軟件工程的?
- 微軟的MSF框架,Windows的項目管理
- 不差錢不缺人的谷歌是怎麼構建高質量產品的
- 阿里巴巴是怎樣通過軟件工程來保障像雙11這樣項目的質量的
4、從軟件工程的角度理解微服務、雲計算、人工智能。
- 跳出技術之外去理解新技術
- 新技術對軟件項目的開發和團隊構成的影響
推薦書單 | 專欄之外的延伸學習
除了專欄的學習之外,我也推薦你一些書籍,你可以參考,作爲專欄內容的補充。
1.基礎理論篇
-
《構建之法》作者:鄒欣
- 系統性整理軟件工程知識點及技能要求
-
《知行合一: 實現價值驅動的敏捷和精益開發》作者:叢斌
- 深入分析敏捷開發和CMMI
-
《軟件工程——實踐者的研究方法》作者:【美】羅傑 S.普萊斯曼(Roger S.pressman)
- 高校軟件工程標準教材
2.經典篇
-
《人月神話》作者:【美】弗雷德裏克·布魯克斯(Brooks,F.P.)
- 40年暢銷不衰
-
《人件》作者:美國 Tom DeMarco,Timothy Lister
- 知識型企業的核心是人,而不是技術。
3.實踐篇
-
《持續交付》作者:【英】Jez Humble , David Farley
- 實現更快、更可靠、低成本的自動化軟件交付
-
《走出軟件作坊》作者:阿朱
- 國內小型IT企業如何解決軟件開發過程中的問題
作者介紹
寶玉,碩士畢業於美國德保羅大學,團購鼻祖網站 Groupon 資深開發工程師,前上海衆遊技術總監,曾參加中國移動飛信項目的核心開發,微軟最有價值技術專家。
通過學習專欄,你將獲得
- 拿來即用的軟件工程方法論
- 日常工作的實戰場景剖析
- 谷歌、微軟等公司的最佳實踐案例
- 從軟件工程的視角來思考問題d