【復習筆記】軟件工程概論復習(0)
阿新 • • 發佈:2018-01-01
周期 and 噴泉 code 用戶故事 軟件 鼓勵 合同 體系
【復習筆記】軟件工程概論復習(0)
本文大多數論述引自《軟件工程 實踐者的研究方法》
軟件
軟件是產品。
軟件顯示了由計算機硬件體現的計算能力。
軟件是指令、數據結構、軟件描述信息(文檔)的集合
軟件特性
軟件不會磨損
軟件是開發(develop)的
軟件是根據需求定制的
軟件是復雜的
軟件退化
軟件面臨變更,每次變更都可能引入新的錯誤,使得軟件失效率陡然上升。不斷地變更就是軟件退化的原因。
軟件危機
- 第一次軟件危機(1945-1968)
表現:軟件生產效率低下,成本高,質量差,難以維護
原因:手工作坊模式code and fix,軟件理論體系和開發管理不完善。
結果:軟件工程理論體系形成- 第二次軟件危機(1968-2001)
表現:產品有錯,低質量,延遲,效率低,違約現象嚴重
原因:認為需求可以在軟件編寫前充分了解,軟件開發黑盒模式
結果:軟件開發白盒模式出現,允許項目變更- 第三次軟件危機(2001-now)
表現:變更/演化/重用。知識產權問題。軟件安全問題。
根源:遺產系統的重用。開源軟件/代碼的使用。動態的需求。
結果:軟件智能化。自主軟件(渾源/開源/閉源)標準。
軟件工程
軟件工程是(1)將系統化的、規範的、可量化的方法應用於軟件的開發、運行和維護;(2)對(1)中所述方法的研究。
四個層次(左低右高):質量關註點->過程->方法->工具
軟件過程
軟件過程是軟件工程的基礎
軟件過程是工作產品構建是所執行的一些列活動、動作和任務的集合。
活動(activity)是指實現寬泛的目標,例如完成需求
動作(action)是指包含了主要工作產品的生產過程。例如用例建模
任務(task)關註小而明確的目標。如單元測試。
過程框架
- 通用框架活動(fragment activities)
- 溝通
- 策劃
- 建模
- 構建
- 部署
- 普適性活動(unbrella activities)
- 軟件項目跟蹤
- 風險管理
- 軟件質量保證
- 技術評審
- 測量
- 軟件配置管理
- 復用管理
- 工作產品的準備和生產
軟件生存周期
軟件生存周期(SDLC,Systems Development Life Cycle)是軟件的產生直到報廢的生命周期,周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段
軟件過程模型
- 瀑布模型
- V模型
- 增量模型
- 演化模型
- 螺旋模型
- 噴泉模型
- UP模型
每個模型的詳細解釋就不寫了
敏捷開發
敏捷開發宣言:
- 個體和交互 勝過 過程和工具
- 可以工作的軟件 勝過 面面俱到的文檔
- 客戶合作 勝過 合同談判
- 響應變化 勝過 遵循計劃
雖然右項也有價值,但是我們認為左項具有更大的價值
極限編程 XP
極限是敏捷過程中最常見的模型
- 策劃 策劃產生一系列"用戶故事"(user stories),XP團隊成員評估每一個故事並給出成本
- 設計 設計嚴格遵守KIP原則(keep it simple) CRC卡作為XP過程的唯一工作產品,建立spike sulutions,鼓勵重構
- 編碼 先開發一系列用於檢測本次增量發布實驗的所有故事的單元測試,再針對單元測試進行編碼,鼓勵結對編程。
- 測試 單元測試納入日常活動,推行客戶驗收測試
重構
重構是指不改變代碼外部行為而改進其內部結構的過程
【復習筆記】軟件工程概論復習(0)