歡迎加入軟體構築的行列
第1章
歡迎加入軟體構築的行列
1. 什麼是軟體構築?
2. 軟體構築有多重要?
3. 如何使用本書?
什麼是軟體構築?
問題定義
需求分析
規劃
軟體架構或高階設計
細部設計
程式撰寫及除錯
整合測試
系統整合
系統測試
維護
什麼是軟體構築?
問題定義
需求分析
規劃
軟體架構或高階設計
細部設計
程式撰寫及除錯
整合測試
系統整合
系統測試
維護
自學起家
不太正式專案
專家眼中
不知道界線
通通都稱為「程式設計」
什麼是軟體構築?
問題定義
需求分析
規劃
軟體架構或高階設計
細部設計
程式撰寫及除錯
整合測試
系統整合
系統測試
維護
自學起家
不太正式專案
專家眼中
這些只是「軟體構築」
什麼是軟體構築?
問題定義
需求分析
規劃
軟體架構或高階設計
細部設計
整合測試
系統整合
系統測試
維護
自學起家
不太正式專案
專家眼中
這些只是「軟體構築」
程式撰寫
及除錯
以它為中心
什麼是軟體構築?
• 軟體構築=?=撰寫程式(coding)
– 撰寫程式≡不用大腦的打字
設計藍圖→coding→程式碼
• 軟體構築=?=程式設計;編程
(programming)
– 程式設計≡充滿創意及判斷的心智活動
什麼是軟體構築?
軟體構築≡程式設計;編程
(programming)
什麼是軟體構築?
• 軟體構築的細節
– 確定軟體根基已經扎穩到足以繼續施工
– 決定該如何測試程式
– 設計、撰寫類別及常式
– 定義、命名變數及常數
– 選擇控制結構,組識程式區塊
– 單元測試,整合測試,除錯
– 同僚互審:低設計及程式碼
– 潤飾程式:排版及註解
– 調校程式:更快、更節省資源
– …..
– 參考本書目錄
• 非軟體構築?
– 專案管理
– 需求分析
– 軟體架構
– 使用者介面設計系統
– 測試
– 維護
– 本書35章提供書單
本書35章提供書單
The Pragmaitc Programmer
專注於程式撰寫(coding)相關的行為,包含測試、除
錯、判斷提示(assertions)的應用等
並未深入鑽研程式本身,而是包含數不清關於寫出好程
式的原則。
翻譯本:
簡中:程序員修鍊之道
Programming Pearls
詳述程式設計之中的藝術及科學層面的細節。
就像是論文集,闡述許多實際構築技術的見解,同時富
有對軟體構築的真誠熱情。
每次看都可以學到好多東西。
翻譯本:
簡中:編程珠機
本書35章提供書單
Extreme Programming Explained:
Embrace Change
定義一個以軟體構築為中心的軟研發方法。
這本書對內部程式撰寫的經濟效益未經由企業研究證
實,然而不論團隊使用極道程式設計或其它方法,它的
許多建議都很有用。
翻譯本:
簡中:解析極限編程-擁抱變化
本書35章提供書單
極限編程解析.ppt
Writing Solid Code
專注於商業品質軟體應用的構築實務,大部份是根據作
者在研發微軟office的應用經驗。
它專注於旁用C語言的技術。
它不大註重物件導向程式構築的議題。但大部份強調的
課題適用於任何環境。
翻譯本:
簡中:編程精粹 繁中:完美程式設計指南
本書35章提供書單
本書35章提供書單
The Practice of Programming
專注於程式撰寫細微末節的實務面,補足了學術上的電
腦科學知識和實用課程之間的空白。
它包含撰寫程式設計的型態、設計、除錯及測試的議
題。
它假設讀者對C和C++的語言很熟。
翻譯本:
簡中:程序設計實戰 繁中:程式專家手冊
本書35章提供書單
Programmers at Work
訪談企業中倍受矚目的軟體研發者。
探究他們的人格、工作習實及對程式撰寫的態度。
包含比爾蓋茲、John Warnock(Adobe創辦人)、
Andy Jertzfeld(Mac OS主要研發者)、Butler
Lampson(DEC資深工程師)、Wayne Ratliff(dBase
發明者)
這些書單都和軟體構築相關
資料概述
軟體工程概述
↖作者說:有了CODE COMPLATE,這本就沒什麼了
軟體構築有多重要?
• 「改善軟體品質及生產力是很重要的」
• 「改善軟體開發個質是重要的、是值得的」
若同意上面的問題。
那麼問題就變成…
• 為什麼本書要將焦點擺在「構築」上?
軟體構築有多重要?
• 為什麼本書要將焦點擺在「構築」上?
– 「軟體構築」佔整個軟體開發的一大部份
– 「軟體構築」是軟體開發的核心任務
– 重心放在「軟體構築」,大幅提昇個別程式員的生產能力
– 「軟體構築」產出程式碼,唯一準確描述軟體。
– 「軟體構築」是唯一非做不可的事。
架構
構築
測試
30%
80%
0%
如何使用本書?
• 依序讀?→第二章!GO!!!
• 跳著讀?
– 學特定程式技巧→第六章!
– 再依據左邊附的交互參考資訊挑你感興趣的課題
• 不知道哪一種讀法適合→讀3.2節
用來確定你在設計的是哪一種軟體

歡迎加入軟體構築行列