Top12原則: 開發各階段流程及規範 需求、架構、設計、開發、測試等階段流程及規範 需求是基石 總流程 :戰略規劃 3-4年->產品立項-> 用戶調研+競品分析->業務信息 -> 需求分析 -> 指導 開發 與測試規範 -> 標尺【功能清單 + 4 要素: 界面 + 邏輯 + 交互 + 數據】-> ...
Top12原則:
- 主要資源,重要功能,依據需求重要度進行資源分配, 項目100功能 1 day -> 100Task -> 10 Dev 20% 80%
開發各階段流程及規範
需求、架構、設計、開發、測試等階段流程及規範
需求是基石
總流程 :戰略規劃 3-4年->產品立項-> 用戶調研+競品分析->業務信息 -> 需求分析 -> 指導 開發 與測試規範 -> 標尺【功能清單 + 4 要素: 界面 + 邏輯 + 交互 + 數據】-> 架構過程 -> 主體結構【系統模塊/介面/分層/框架】-> 項目管理分工->詳細設計【模塊代碼 結構定義】-> 代碼實現 -> 迭代開發 + 迭代測試 + 持續集成 -> 系統測試 -> alpha test -> 用戶驗收測試 -> Beta Test -> 商用
產品效率質量 =團隊能力 + 寫作流程
改進收益: 需求>測試>架構>編碼
軟體研發完成過程 -> 迭代畫開發 ->敏捷開發
敏捷開發過程 : REQ ->Architecure -> Iteration[Desing + Coding + Test] -> System Test
迭代過程 ex :24month project
HLR(高階需求,只列出功能列表) 5% 2 week 400 Feature-> Architecture 5% module/interface/Layers/Tiers/Deploy/Process(系統有多少層, 每個層有多少個模塊, 每個模塊的介面,分層,物理分層,) -> 20 Iterations {20Feature -> 8 developer -> US LLR (低階需求) 3day + Design 2 day + Code 2 Week + 1 week IT(集成測試) }
迭代過程伴隨 Continous Integration -> System Test -> User Acceptence Test -> Beta Test -> Maintenance
需求階段:最重要 + 改進 收益最大 -> 軟體研發 唯一依據 標尺 -> 開發 + 測試 (兩者無歧義)-> UML建模(容易被開發測試理解)
以用戶為中心 軟體研發過程
以用戶需求為中心 軟體研發過程
Conception -> Feature -> Scenarion ->UseCase
HLR(高階需求) High Level Requirements -> Scope -> Feature Bucket -> Function List 在軟體設計初步完成
Conception :一級業務需求 業務方向 業務目標-> Architecture (ps: 一個concept 就是一個模塊 所有模塊加起來就是Architecture )
Feature: 三級業務需求/四級業務需求 具體系統業務功能->Design
Statements Of Work SOW
LLR(低階需求)Low Level Requirements 在迭代中完成
Scenatio : 業務描述 每個獨立業務功能 真實場景 --> 業務痛點
Use Case: 軟體 界面 + 交互 + 業務邏輯 + 數據變化 4要素 ->Code
需求輸出: 需求規格說明書【需求用例描述】
敏捷迭代開發流程圖
- 高階需求-> 系統功能清單 400
- 架構設計 : 模塊設計
- 迭代開發: 月迭代50 4Week 功能低階需求分析【】
- 最終測試: 系統測試 + alpha test /用戶驗收測試 + beta test/灰度測試
- 商用運維
以需求/業務架構設計為中心,軟體研發-> 以模塊 分解 分工 協作【USER + PM + DEV +TEST + OPRATION】->系統化工程->模塊化開發
Conception ->業務模塊分析UML分析 ->Architecture -> 4 + 1 視圖【邏輯視圖/組件視圖/併發視圖/部署視圖】-> 系統測試【功能性測試+非功能性測試】
Feature->業務功能分析UML分析-> Design【類圖 面向對象設計原則】->集成測試【功能性測試】
Feature細化: Scenario/UseCase -> 用例分析 UML分析->Code->測試用例
系統測試->迭代集成測試->測試用例
架構設計【模塊間設計】-> 詳細設計【模塊內類間設計】->編碼
設計階段:架構設計 + 詳細設計
架構設計->系統模塊 + 模塊介面 + 系統介面 + 分層 + 進線程 + 組件 + 部署
輸出物:架構文檔
詳細設計-> 每個模塊都有個詳細設計
目的:完成 類 + 公有函數 + 介面 + 繼承 + 抽象類
輸出物:設計規格說明書
編碼階段:不同模塊開發人員 依據 詳細設計說明書 + 需求規格說明書 每天代碼實現
編碼/單元測試 + 持續集成【TFS/GIT/SVN/Jenkins】 + 迭代
- 開發人員每天代碼提交
- 每天晚上代碼集成 - CI
- 代碼編碼
- 代碼靜態質量檢查
- 代碼單元測試
- 自動化測試 Selenium
- 自動集成
- 自動部署
測試階段: 迭代測試 + 整體測試
迭代測試-> 測試用例 + 集成測試 + 回歸測試
整體測試-> 系統測試 + 驗收測試 + 灰度測試
每日測試-> 自動化測試 + 單元測試
需求分析 - 業務架構設計
系統架構設計
測試實踐
案例貫穿:去哪兒網
系統集成架構設計
需求 業務->業務架構分析->架構 技術
架構:整體結構定義 功能性需求 + 非功能性需求 技術定義
功能性需求-> 業務架構分析->功能性需求架構定義-> 邏輯架構設計 -> 靜態結構
非功能性需求->非功能性需求架構定義->框架架構設計->Framework->擴展性/配置性->動態解決方案
架構設計粒度:模塊間關係 package
詳細設計粒度:模塊內類間關係
架構設計 = 系統模塊 + 模塊間關係 + 系統框架
架構設計 = 邏輯架構設計 + 框架設計
架構設計6個階段: 業務架構設計 -> 邏輯架構設計 -> 框架架構設計 -> 架構評審-> 架構上線 -> 架構重構
架構設計4個輸出 : 業務架構 + 數據架構 + 應用架構 + 框架架構API
架構層面 - 粒度
架構設計與詳細設計
架構設計與需求分析
架構設計與項目管理
去哪兒網 / 抖音 背景-> 業務架構設計 -> 邏輯架構/應用 設計 -> 基礎/框架 架構
需求 = 高階 + 低階
高階需求
Conception: 業務大方向/業務大目標,業務域/業務模塊多維分析,系統間關係 UML建模
Feature:
低階需求
Scenrio
UseCase
UML工具選型
Rational Rose: 成本高,層次UML
Enterpris Achitecture: 層次UML
Visio: 美觀,沒有層次
去哪兒網:
項目發起人, 2*1.5 用戶訪談
建設背景:所有商務人士,所有航班線上預訂, 所有酒店的線上檢索與預訂,線上訂單,線上支付,賬戶,廣告管理,促銷活動,用戶基本信息,
一期系統大目標-業務模塊
航班服務
酒店服務
團購服務
保險服務
火車服務
旅游服務
報銷中心
訂單中心
支付中心
賬戶中心
廣告管理
促銷管理
用戶中心
金融中心