第二次讀這本書,好好地好好地理解一遍。
第一章:軟件的本質
軟件的本質
定義軟件
????軟件是邏輯而非物理的系統(tǒng)元素,因此軟件不會“磨損”
軟件的應用領域
? ? 1:系統(tǒng)軟件
? ? 2:應用軟件
? ? 3:工程/科學軟件
? ? 4:嵌入式軟件
? ? 5:產(chǎn)品線軟件
? ? 6:人工智能軟件
遺留軟件
? ? 是指那些年代久遠的軟件,它們誕生于幾十年之前,不斷被修改以滿足商業(yè)需要和計算平臺的變化。它們的特點是維護代價高,演化代價高。
軟件變更的本質
在行業(yè)中占主導地位的四大類軟件
1:WebApp ? ?
? ? 在網(wǎng)頁上提供計算力的應用
2:移動App
????在移動平臺上專門設計的軟件。
3:云計算
? ? 前端訪問(客戶)+后端支撐(數(shù)據(jù)庫,計算力)
4:產(chǎn)品線軟件
? ? 一種軟件密集型系統(tǒng)+公用可管理特性(通用接口),例如AresRTT
第二章:軟件工程
2.1定義軟件工程
將系統(tǒng)化的、規(guī)范的、可量化的方法應用于軟件的開發(fā)、運行和維護,即將工程化方法應用于軟件;
2.2軟件過程
軟件過程是工作產(chǎn)品構建時所執(zhí)行的一系列活動、動作和任務的集合。
活動:主要實現(xiàn)寬泛的目標,與應用領域、項目大小、結果復雜性或者實施軟件工程的重要程度沒有直接關系。例如:項目的前期立項
動作:如體系結構設計,包含主要工作產(chǎn)品生產(chǎn)過程中的一系列任務。比如架構開發(fā),建模。
任務:具體的編碼實現(xiàn),比如一個單元測試
2.2.1過程框架
過程框架也叫做:“通用的框架活動”,包括
溝通
策劃
建模
構建
部署
2.2.2普適性活動
軟件項目跟蹤和控制
風險管理
軟件質量保證
測量
軟件配置管理
可復用管理
工作產(chǎn)品的準備和生產(chǎn)
2.2.3過程的適應性調整
2.3軟件工程實踐
2.3.1實踐的精髓
1:理解問題(溝通和分析)
2:策劃解決方案(建模和軟件設計)
3:實施計劃(代碼生成,也就是寫代碼)
4:檢查結果的正確性(測試和質量保證)
2.3.2通用原則
第1原則:存在價值
第2原則:保持簡潔
第3原則:保持愿景
第4原則:關注使用者
第5原則:面向未來
第6原則:提前設計復用
第7原則:認真思考
2.4軟件開發(fā)神話
2.5這一切是如何開始的
第3章:軟件過程結構
3.1通用過程模型
過程流:
????1線性過程流:
????2迭代過程流:
????3演化過程流:
????4并行過程流:
3.2定義框架活動
繼續(xù)細分框架活動:
溝通包括:
策劃包括:
建模包括:
構建包括:
部署包括:
3.3明確任務集
也就是做事情的列表:
????小型項目任務集:
????大型項目任務集
3.4過程模式
即哪種開發(fā)過程,是開中的一種解決方案,一種比較通用的問題解決方法。
三種類型:
1.步驟模式
2.任務模式
3.階段模式
第四章:過程模型
4.1慣用過程模型
4.1.1 瀑布模型
4.1.2 增量過程模型
4.1.3 演化過程模型
4.1.4 并發(fā)模型
4.1.5 演化過程的最終評述
4.2 專用過程模型
4.2.1 基于構件的開發(fā)
4.2.2 形式化方法模型
4.2.3 面向方面的軟件開發(fā)
4.3 統(tǒng)一過程
4.3.1 統(tǒng)一過程的簡史
4.3.2 統(tǒng)一過程的階段
第五章:敏捷開發(fā)
5.1 什么是敏捷
5.2 敏捷變更及變更成本
5.3 什么是敏捷過程
5.3.1 敏捷原則
5.3.2 敏捷開發(fā)戰(zhàn)略
5.4 極限編程
5.4.1 極限編程過程
5.4.2 工業(yè)極限編程
5.5 其他敏捷過程模型
5.5.1 Scrum
5.5.2 動態(tài)系統(tǒng)開發(fā)方法
5.5.3 敏捷建模
5.5.4 敏捷統(tǒng)一過程
5.6 敏捷過程工具集
第六章:軟件工程的人員方面
6.1 軟件工程師的特質
6.2 軟件工程心理學
6.3 軟件團隊
6.4 團隊結構
6.5 敏捷團隊
6.5.1 通用敏捷團隊
6.5.2 XP團隊
6.6社交媒體的影響
6.7 軟件工程中云的運用
6.8 協(xié)作工具
6.9 全球化團隊
第二部分:建模
7.1 需求工程
7.2 建立根基
7.2.1 確認利益相關者
7.2.2 識別多重觀點
7.2.3 協(xié)同合作
7.2.4 首次提問
7.3 獲取需求
7.3.1 協(xié)作需求收集
7.3.2 質量工程部署
7.3.3 使用場景
7.3.4 獲取工作產(chǎn)品
7.3.5 敏捷需求獲取
7.3.6 面向服務的方法
7.4 開發(fā)用例
7.5 構建分析模型
7.5.1 分析模型的元素
7.5.2 分析模式
7.5.3 敏捷需求工程
7.5.4 自適應系統(tǒng)的需求