SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
歡迎加入軟體構築的行列
第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節
用來確定你在設計的是哪一種軟體

Weitere ähnliche Inhalte

Was ist angesagt?

從敏捷開始的測試 從測試開始的自動化
從敏捷開始的測試 從測試開始的自動化從敏捷開始的測試 從測試開始的自動化
從敏捷開始的測試 從測試開始的自動化少齊 張
 
專案進度追蹤
專案進度追蹤專案進度追蹤
專案進度追蹤黑狗 大
 
SharePoint 项目实施团队的成功之道
SharePoint 项目实施团队的成功之道SharePoint 项目实施团队的成功之道
SharePoint 项目实施团队的成功之道Yi Zhang
 
TDD 介紹
TDD 介紹TDD 介紹
TDD 介紹williewu
 
移动开发敏捷实践
移动开发敏捷实践移动开发敏捷实践
移动开发敏捷实践Yuan Mai
 
Component Unit Test
Component Unit TestComponent Unit Test
Component Unit TestWilliam Wang
 
Scrum过程介绍
Scrum过程介绍Scrum过程介绍
Scrum过程介绍ben
 
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?棋文 鄭
 
老成的專案管理以及經驗分享
老成的專案管理以及經驗分享老成的專案管理以及經驗分享
老成的專案管理以及經驗分享智遠 成
 
給沒有程式設計經驗的人
給沒有程式設計經驗的人給沒有程式設計經驗的人
給沒有程式設計經驗的人PingLun Liao
 
版本控制系统进阶
版本控制系统进阶版本控制系统进阶
版本控制系统进阶killmyday
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)Gelis Wu
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)Gelis Wu
 
單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試option0417
 
透過測試提升軟體品質 - twMVC#7
透過測試提升軟體品質 - twMVC#7透過測試提升軟體品質 - twMVC#7
透過測試提升軟體品質 - twMVC#7twMVC
 

Was ist angesagt? (15)

從敏捷開始的測試 從測試開始的自動化
從敏捷開始的測試 從測試開始的自動化從敏捷開始的測試 從測試開始的自動化
從敏捷開始的測試 從測試開始的自動化
 
專案進度追蹤
專案進度追蹤專案進度追蹤
專案進度追蹤
 
SharePoint 项目实施团队的成功之道
SharePoint 项目实施团队的成功之道SharePoint 项目实施团队的成功之道
SharePoint 项目实施团队的成功之道
 
TDD 介紹
TDD 介紹TDD 介紹
TDD 介紹
 
移动开发敏捷实践
移动开发敏捷实践移动开发敏捷实践
移动开发敏捷实践
 
Component Unit Test
Component Unit TestComponent Unit Test
Component Unit Test
 
Scrum过程介绍
Scrum过程介绍Scrum过程介绍
Scrum过程介绍
 
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
 
老成的專案管理以及經驗分享
老成的專案管理以及經驗分享老成的專案管理以及經驗分享
老成的專案管理以及經驗分享
 
給沒有程式設計經驗的人
給沒有程式設計經驗的人給沒有程式設計經驗的人
給沒有程式設計經驗的人
 
版本控制系统进阶
版本控制系统进阶版本控制系统进阶
版本控制系统进阶
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試
 
透過測試提升軟體品質 - twMVC#7
透過測試提升軟體品質 - twMVC#7透過測試提升軟體品質 - twMVC#7
透過測試提升軟體品質 - twMVC#7
 

Ähnlich wie 歡迎加入軟體構築行列

從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
Chapter 2 程式設計基本流程
Chapter 2 程式設計基本流程Chapter 2 程式設計基本流程
Chapter 2 程式設計基本流程hhliu
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
版控實務
版控實務版控實務
版控實務Robin
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意cucued
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章浒 刘
 
Qa engineer training
Qa engineer trainingQa engineer training
Qa engineer trainingychw365
 
杨根兴 软件过程改进与敏捷方法
杨根兴   软件过程改进与敏捷方法杨根兴   软件过程改进与敏捷方法
杨根兴 软件过程改进与敏捷方法Odd-e
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
2017-refactoring-01-簡介
2017-refactoring-01-簡介2017-refactoring-01-簡介
2017-refactoring-01-簡介Shang-Pin Ma
 
大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践Sean Zhong
 

Ähnlich wie 歡迎加入軟體構築行列 (20)

從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
Chapter 2 程式設計基本流程
Chapter 2 程式設計基本流程Chapter 2 程式設計基本流程
Chapter 2 程式設計基本流程
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
單元測試
單元測試單元測試
單元測試
 
版控實務
版控實務版控實務
版控實務
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
软件工程2010
软件工程2010软件工程2010
软件工程2010
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
 
Qa engineer training
Qa engineer trainingQa engineer training
Qa engineer training
 
SCM第一讲
SCM第一讲SCM第一讲
SCM第一讲
 
杨根兴 软件过程改进与敏捷方法
杨根兴   软件过程改进与敏捷方法杨根兴   软件过程改进与敏捷方法
杨根兴 软件过程改进与敏捷方法
 
Ch09
Ch09Ch09
Ch09
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
軟體安全防護大作戰
軟體安全防護大作戰軟體安全防護大作戰
軟體安全防護大作戰
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
2017-refactoring-01-簡介
2017-refactoring-01-簡介2017-refactoring-01-簡介
2017-refactoring-01-簡介
 
大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践
 

Mehr von Chris Wang

屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf
屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf
屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdfChris Wang
 
「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色Chris Wang
 
自我探索的資訊教育
自我探索的資訊教育自我探索的資訊教育
自我探索的資訊教育Chris Wang
 
完美 camp 進化論
完美 camp 進化論完美 camp 進化論
完美 camp 進化論Chris Wang
 
Dm create message old
Dm create message oldDm create message old
Dm create message oldChris Wang
 
Dm create message new
Dm create message newDm create message new
Dm create message newChris Wang
 
MVC Design in Web backend Server
MVC Design in Web backend ServerMVC Design in Web backend Server
MVC Design in Web backend ServerChris Wang
 
Bug afx ini-line122
Bug afx ini-line122Bug afx ini-line122
Bug afx ini-line122Chris Wang
 
物件的值莫名奇妙被改掉
物件的值莫名奇妙被改掉物件的值莫名奇妙被改掉
物件的值莫名奇妙被改掉Chris Wang
 
VC6 font setup tips
VC6 font setup tipsVC6 font setup tips
VC6 font setup tipsChris Wang
 
MFC tips for single document
MFC tips for single documentMFC tips for single document
MFC tips for single documentChris Wang
 
CString of MFC skills
CString of MFC skillsCString of MFC skills
CString of MFC skillsChris Wang
 
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片Chris Wang
 
偷偷學習 Python3
偷偷學習 Python3偷偷學習 Python3
偷偷學習 Python3Chris Wang
 
思考 Vuex 發送 API 的架構
思考 Vuex 發送 API 的架構思考 Vuex 發送 API 的架構
思考 Vuex 發送 API 的架構Chris Wang
 
從 Flux 認識 vuex
從 Flux 認識 vuex從 Flux 認識 vuex
從 Flux 認識 vuexChris Wang
 
Information architecture reading ch7
Information architecture reading ch7Information architecture reading ch7
Information architecture reading ch7Chris Wang
 
Cppunit下載、編譯、使用與困難排除
Cppunit下載、編譯、使用與困難排除Cppunit下載、編譯、使用與困難排除
Cppunit下載、編譯、使用與困難排除Chris Wang
 
如何寫好程式
如何寫好程式如何寫好程式
如何寫好程式Chris Wang
 

Mehr von Chris Wang (20)

屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf
屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf
屏東縣政府112年度大專青年公部門暑期工讀計畫簡章.pdf
 
「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色
 
自我探索的資訊教育
自我探索的資訊教育自我探索的資訊教育
自我探索的資訊教育
 
完美 camp 進化論
完美 camp 進化論完美 camp 進化論
完美 camp 進化論
 
Dm create message old
Dm create message oldDm create message old
Dm create message old
 
Dm create message new
Dm create message newDm create message new
Dm create message new
 
MVC Design in Web backend Server
MVC Design in Web backend ServerMVC Design in Web backend Server
MVC Design in Web backend Server
 
Bug afx ini-line122
Bug afx ini-line122Bug afx ini-line122
Bug afx ini-line122
 
物件的值莫名奇妙被改掉
物件的值莫名奇妙被改掉物件的值莫名奇妙被改掉
物件的值莫名奇妙被改掉
 
VC6 font setup tips
VC6 font setup tipsVC6 font setup tips
VC6 font setup tips
 
MFC tips for single document
MFC tips for single documentMFC tips for single document
MFC tips for single document
 
CString of MFC skills
CString of MFC skillsCString of MFC skills
CString of MFC skills
 
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片
應用於液晶電視中動態背光調光技術之演算法與系統整合實現 論文口試投影片
 
偷偷學習 Python3
偷偷學習 Python3偷偷學習 Python3
偷偷學習 Python3
 
思考 Vuex 發送 API 的架構
思考 Vuex 發送 API 的架構思考 Vuex 發送 API 的架構
思考 Vuex 發送 API 的架構
 
從 Flux 認識 vuex
從 Flux 認識 vuex從 Flux 認識 vuex
從 Flux 認識 vuex
 
Information architecture reading ch7
Information architecture reading ch7Information architecture reading ch7
Information architecture reading ch7
 
用Vue改dom
用Vue改dom用Vue改dom
用Vue改dom
 
Cppunit下載、編譯、使用與困難排除
Cppunit下載、編譯、使用與困難排除Cppunit下載、編譯、使用與困難排除
Cppunit下載、編譯、使用與困難排除
 
如何寫好程式
如何寫好程式如何寫好程式
如何寫好程式
 

歡迎加入軟體構築行列