1. 程式人生 > >【復習筆記】軟件工程概論復習(0)

【復習筆記】軟件工程概論復習(0)

周期 and 噴泉 code 用戶故事 軟件 鼓勵 合同 體系

【復習筆記】軟件工程概論復習(0)

本文大多數論述引自《軟件工程 實踐者的研究方法》

軟件

軟件是產品。
軟件顯示了由計算機硬件體現的計算能力。
軟件是指令、數據結構、軟件描述信息(文檔)的集合

軟件特性

軟件不會磨損
軟件是開發(develop)的
軟件是根據需求定制的
軟件是復雜的

軟件退化

軟件面臨變更,每次變更都可能引入新的錯誤,使得軟件失效率陡然上升。不斷地變更就是軟件退化的原因。

軟件危機

  1. 第一次軟件危機(1945-1968)
    表現:軟件生產效率低下,成本高,質量差,難以維護
    原因:手工作坊模式code and fix,軟件理論體系和開發管理不完善。
    結果:軟件工程理論體系形成
  2. 第二次軟件危機(1968-2001)
    表現:產品有錯,低質量,延遲,效率低,違約現象嚴重
    原因:認為需求可以在軟件編寫前充分了解,軟件開發黑盒模式
    結果:軟件開發白盒模式出現,允許項目變更
  3. 第三次軟件危機(2001-now)
    表現:變更/演化/重用。知識產權問題。軟件安全問題。
    根源:遺產系統的重用。開源軟件/代碼的使用。動態的需求。
    結果:軟件智能化。自主軟件(渾源/開源/閉源)標準。

軟件工程

軟件工程是(1)將系統化的、規範的、可量化的方法應用於軟件的開發、運行和維護;(2)對(1)中所述方法的研究。

四個層次(左低右高):質量關註點->過程->方法->工具

軟件過程

軟件過程是軟件工程的基礎
軟件過程是工作產品構建是所執行的一些列活動、動作和任務的集合。
活動(activity)是指實現寬泛的目標,例如完成需求
動作(action)是指包含了主要工作產品的生產過程。例如用例建模
任務(task)關註小而明確的目標。如單元測試。

過程框架

  1. 通用框架活動(fragment activities)
    • 溝通
    • 策劃
    • 建模
    • 構建
    • 部署
  2. 普適性活動(unbrella activities)
    • 軟件項目跟蹤
    • 風險管理
    • 軟件質量保證
    • 技術評審
    • 測量
    • 軟件配置管理
    • 復用管理
    • 工作產品的準備和生產

軟件生存周期

軟件生存周期(SDLC,Systems Development Life Cycle)是軟件的產生直到報廢的生命周期,周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段

軟件過程模型

  • 瀑布模型
  • V模型
  • 增量模型
  • 演化模型
  • 螺旋模型
  • 噴泉模型
  • UP模型

每個模型的詳細解釋就不寫了

敏捷開發

敏捷開發宣言:

  • 個體和交互 勝過 過程和工具
  • 可以工作的軟件 勝過 面面俱到的文檔
  • 客戶合作 勝過 合同談判
  • 響應變化 勝過 遵循計劃
    雖然右項也有價值,但是我們認為左項具有更大的價值

極限編程 XP

極限是敏捷過程中最常見的模型

  • 策劃 策劃產生一系列"用戶故事"(user stories),XP團隊成員評估每一個故事並給出成本
  • 設計 設計嚴格遵守KIP原則(keep it simple) CRC卡作為XP過程的唯一工作產品,建立spike sulutions,鼓勵重構
  • 編碼 先開發一系列用於檢測本次增量發布實驗的所有故事的單元測試,再針對單元測試進行編碼,鼓勵結對編程。
  • 測試 單元測試納入日常活動,推行客戶驗收測試

重構

重構是指不改變代碼外部行為而改進其內部結構的過程

【復習筆記】軟件工程概論復習(0)