軟件工程的理解

前言

大學老師說:軟件工程是個很重要的課

以程序員的我,表示並沒有什麼卵用。直到有一天,我明白了原來軟件工程講的是讓我怎麼開展一件事情。

軟件工程

軟件工程 事件 產物
問題的定義 對系統的實際用戶和使用部門負責人的訪問調查 提出關於問題性質、工程目標和規模的書面報告
可行性分析 從技術,經濟,操作,法律方面分析上述問題 可行性分析報告
需求分析 確定目標系統必須具備哪些功能 產品原型圖PRD
總體設計 根據功能分解模塊,層級 系統架構(模塊)圖
詳情設計 確定模塊,層級功能的算法和數據結構 用例圖,E-R圖,順序圖 & 測試用例
編碼 針對詳情設計內碼編寫代碼 代碼及單元測試
測試 根據測試要求提供測試 測試&交付報告
維護 通過各種必要的維護活動使系統持久地滿足用戶的需要 系統正常運行
問題定義
  • 主處理人:產品經理
  • 問題的來源:
    1. 老闆要求的市場調研
    2. 客戶反饋的市場需求
    3. 競爭產品上的功能的市場調研
  • 對應會議: 無
可行性分析
  • 主處理人:產品經理
  • 分析過程:
    1. 技術諮詢併成本估算
    2. 法律諮詢
    3. 其它諮詢
  • 對應會議: 立項會
  • 會議目的:
    1. 大致說明產品功能及價值
    2. 解決大家相關疑問,確立項目
需求分析
  • 主處理人:產品經理
  • 分析過程:
    1. 根據各功能點,完成PRD
  • 對應會議: 需求評審會
  • 會議目的:詳細說明PRD中產品功能,價值以及產品的性能要求,並解決大家的疑問。
總體設計 & 詳情設計
  • 主處理人:技術經理(架構師),開發人員
  • 設計過程:
    1. 根據功能劃分模塊。系統架構(模塊)圖
    2. 確定各模塊內的數據結構與算法。用例圖,ER圖,順序圖
  • 對應會議: 架構評審會
  • 會議目的:介紹自己的設計,通過此設計是否可滿足產品需求
編碼
  • 主處理人:開發人員
  • 編碼過程:根據設計編寫代碼,及單元測試,代碼review

  • 主處理人:測試人員
  • 設計過程:
    1. 根據PRD,編寫測試用例
    2. 根據架構及詳情設計,確立產品性能測試方案
  • 對應會議: 測試用例評審會
  • 會議目的:介紹自己的測試範圍及測試方法,通過些方法是否可滿足用戶使用需求
測試
  • 主處理人:測試人員
  • 測試過程:根據測試用例及性能測試方案進行測試

  • 主處理人:開發人員,測試人員
  • 設計過程:
    1. 根據設計方案,制定發佈計劃。
    2. 確定回滾方案
  • 對應會議: 發佈計劃會
  • 會議目的:針對發佈計劃,回滾方案進行評審,接納各方意見,保證發佈順利進行。
維護
  • 主處理人:開發人員,測試人員,產品經理
  • 維護過程:
    1. 開發人員查看報警日誌
    2. 產品經理跟蹤用戶反饋
    3. 測試人員復現線上問題
  • 對應會議: 無

開發模式

針對軟件工程的生命週期,不同公司針對自身情況做了不同的調整

瀑布模型

瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求分析、設計、編碼、集成、測試、維護的步驟順序進行。

它的嚴格分級導致的自由度降低,需求調整代價高昂。需求不明並且在項目進行過程中可能變化的情況下基本是不可行的

迭代式開發

每次只設計和實現這個產品的一部分, 逐步逐步完成的方法叫迭代開發。

  • 整個開發工作被組織爲一系列的短小的、固定長度(如3周)的小項目,被稱爲一系列的迭代。
  • 每一次迭代都包括了需求分析、設計、實現與測試。

採用這種方法,開發工作可以在需求被完整地確定之前啓動, 並在一次迭代中完成系統的一部分功能或業務邏輯的開發工作。 再通過客戶的反饋來細化需求,並開始新一輪的迭代

螺旋開發

(略)

敏捷開發

(略)

總結

明確自己所在的位置,明確自己所做的事情後。也就不迷茫了。不要再怪會議多了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章