软件工程之知识架构
文章目錄
- 軟件工程知識架構(gòu)全景圖
- 軟件工程的知識結(jié)構(gòu)
- 如何學(xué)習(xí)軟件工程?
- 學(xué)習(xí)軟件工程參考書目
軟件工程知識架構(gòu)全景圖
- 由圖可見,“質(zhì)量焦點”在最底層,這不難理解軟件工程是為了應(yīng)對軟件危機(jī)誕生的學(xué)科,其目標(biāo)就是為了要聚焦于質(zhì)量,構(gòu)建和維護(hù)高質(zhì)量的軟件??梢哉f,聚焦于質(zhì)量就是軟件工程的基石。
那“過程”指的是什么呢?
- 要構(gòu)建高質(zhì)量軟件,則要解決軟件過程中的混亂,將軟件開發(fā)過程中的溝通、計劃、建模、構(gòu)建和部署等活動有效地組織起來。而軟件過程,就是在軟件項目的生命周期內(nèi),也就是軟件從誕生到結(jié)束這期間,在開發(fā)與構(gòu)建系統(tǒng)時要遵循的步驟。
- 有兩種過程框架你一定經(jīng)常聽到,那就是瀑布模型和敏捷開發(fā)。這是在軟件工程多年的發(fā)展中,逐步形成的兩種主流的軟件過程指導(dǎo)框架。
那么,何為“方法”?
- 方法是指在整個過程中,如何構(gòu)建系統(tǒng)的方法學(xué)。比如說,如何分析用戶需求;如何對產(chǎn)品進(jìn)行測試驗收;如何進(jìn)行系統(tǒng)架構(gòu)設(shè)計等。
知道了過程,掌握了方法,那么具體落到操作層面,就會涉及到工具的使用。
- 我們需要工具來輔助方法的執(zhí)行,提高效率。通過工具,可以把一些手動的工作自動化,比如自動化測試工具,自動構(gòu)建部署工具;通過工具,可以幫助把一些流程規(guī)范起來,比如 Bug 跟蹤、源代碼管理;還可以通過工具,幫助提高編碼效率,比如各種編輯器 IDE、各種高級語言。
如果現(xiàn)在再回頭總結(jié)一下,軟件工程的核心知識點,就是圍繞軟件開發(fā)過程,產(chǎn)生的方法學(xué)和工具。
- 用一個簡單的公式來理解軟件工程,那就是:軟件工程 = 工具 + 方法 + 過程。
軟件工程的知識結(jié)構(gòu)
如何學(xué)習(xí)軟件工程?
學(xué)習(xí)軟件工程的四重境界
- 第一重:用器
- “器”就是工具,工具規(guī)則簡單,上手就可以用,也很快就能看到效果。比如,原型設(shè)計工具可以幫助你確定需求,持續(xù)集成工具可以幫助你簡化測試和部署的流程。對工具的學(xué)習(xí)是最為簡單的,也是最基礎(chǔ)的。
- 第二重:學(xué)術(shù)
- “術(shù)”就是方法,學(xué)會方法,你就能應(yīng)用方法去完成一個任務(wù),例如用需求分析的方法,你去搞清楚用戶想要什么,用 Scrum 去組織項目開發(fā)過程。
掌握了術(shù),甚至是可以脫離器的,例如你沒用原型設(shè)計工具,你用紙和筆,用白板,一樣可以去溝通確認(rèn)需求。
- 第三重:悟道
- “道”就是本源,軟件工程知識的核心思想和本質(zhì)規(guī)律。就像敏捷開發(fā),本身并不是一種方法,而是一套價值觀和原則,領(lǐng)悟了這個道,就可以成為你在處理項目過程中各種問題決策的依據(jù)。道是可以產(chǎn)生術(shù)的,你掌握了敏捷開發(fā)的道,你就可以領(lǐng)悟出 Scrum、極限編程這樣的術(shù)。
- 第四重: 傳道
- 當(dāng)你能把復(fù)雜的知識通過淺顯易懂的方式傳授給別人,那就說明你對知識的領(lǐng)悟已經(jīng)到了更高的境界。同時,教學(xué)也是最好的學(xué)習(xí)方式,通過傳授別人知識,可以讓你對知識本身有更深入的理解。
學(xué)習(xí)軟件工程參考書目
- 《構(gòu)建之法》
- 作者鄒欣是微軟的研發(fā)總監(jiān),同時在多所高校進(jìn)行了軟件工程的教學(xué)實踐,在此基礎(chǔ)上對軟件工程的各個知識點和技能要求進(jìn)行了系統(tǒng)性整理,形成教材。也是本專欄很多很好的補(bǔ)充。
- 《人月神話》
- 這是軟件工程歷史上的經(jīng)典著作,內(nèi)容發(fā)人深省,40 年來一直暢銷不衰,里面的觀點即使到現(xiàn)在也不過時。這本書即使你以前看過,隔一段時間再翻看一遍,可能都會有新的感悟。
- 《人件》
- 如果說《人月神話》關(guān)注“軟件開發(fā)”本身,《人件》則關(guān)注軟件開發(fā)中的“人”。作者指出知識型企業(yè)的核心是人,而不是技術(shù)。
- 《知行合一: 實現(xiàn)價值驅(qū)動的敏捷和精益開發(fā)》
- 作者叢斌有二十多年從事軟件工程教學(xué)、咨詢和研究的經(jīng)驗,所以書寫的特別接地氣,文章有很多真實案例,對敏捷開發(fā)和 CMMI 都有很深入描述。
- 《軟件工程——實踐者的研究方法》
- 這是大部分高校采用的軟件工程標(biāo)準(zhǔn)教材,可以作為一個參考。
- 《持續(xù)交付》
- 講述如何實現(xiàn)更快、更可靠、低成本的自動化軟件交付,描述了如何通過增加反饋,并改進(jìn)開發(fā)人員、測試人員、運(yùn)維人員和項目經(jīng)理之間的協(xié)作來達(dá)到這個目標(biāo)。
- 《走出軟件作坊》
- 這本書生動的描述了國內(nèi)小型 IT 企業(yè)在發(fā)展過程中遇到的一系列項目管理問題,以及作者是如何去解決這些問題的。
你知道的越多,你不知道的越多。
總結(jié)
- 上一篇: 第一课 回归问题与应用
- 下一篇: array专题4