文章目錄
- 一 項目背景與目標
- 二 核心需求分析
- 初步需求詳細分析
- 需求總結表
- 三 DDD核心概念與開發流程
- 領域和領域專家
- 領域驅動設計開發流程
- 四 潛在擴展需求
一 項目背景與目標
-
項目定位
- 開發基于SaaS的企業管理系統,聚焦軟件服務企業的細分市場,功能需求包括工時管理、考勤管理、項目管理、請加管理等核心功能。
- 采用多租戶架構,支持企業按需付費使用,降低客戶運維成本。
-
迭代規劃
- 分三個階段迭代開發,逐步擴展需求復雜性和靈活性。
- 迭代一目標:實現最小閉環功能,覆蓋從需求分析到代碼實現的完整流程。
二 核心需求分析
- 領域(Business Domain)/業務領域指的是軟件要解決的那些業務問題。在本例里, “企業管理”就是要處理的領域。
- 在領域驅動設計中“領域專家”(業務專家),需要對業務有總體性和本質性的把握,同時對業務發展也要有一定前瞻性。
在很多企業中領域專家是多年業務經驗中級管理干部或者是產品經理。
初步需求詳細分析
- 目前項目的初步需求如下:
-
租戶管理:支持租戶(企業客戶)的增刪改查,確保數據隔離。
-
人員與組織管理:支持部門層級管理(如開發中心、開發組、直屬部門)。員工管理:增刪改查功能,且員工需歸屬至單一部門。
- 人員和組織結構圖:
- 項目管理
- 客戶管理:租戶可維護其客戶列表,每個客戶分配客戶經理。
- 合同管理:支持合同增刪改查,關聯銷售負責人及起止時間。
- 項目管理:合同下可創建多個項目,分配項目經理,記錄項目周期。
- 客戶、合同、項目的關系圖:
- 人員分配
- 支持員工跨項目分配,記錄預計投入時間百分比。
- 目標:優化人力資源調配,實現利用率最大化。
- 人員和項目將投入的關系:
- 工時登記
- 僅允許已分配至項目的員工登記工時。
- 功能:按周填報每日工時,支持修改及備注。
- 工時登記的界面原型
需求總結表
三 DDD核心概念與開發流程
領域和領域專家
- 領域與領域專家
- 領域定義:系統解決的業務問題(如“企業管理”)。
- 領域專家角色:由資深業務人員或產品經理擔任,負責業務本質的抽象與前瞻性規劃。
領域驅動設計開發流程
- 開發流程
- 模型建立階段
- 行為需求捕獲:通過事件風暴(替代傳統用例建模)識別功能流程。
- 領域建模:用業務語言構建模型,業務專家參與評審。
- 模型實現階段
- 架構設計:包括微服務(進程間)和DDD分層架構(進程內)。
- 數據庫設計與代碼實現:將領域模型轉化為技術方案。
- 模型建立階段
- 領域驅動設計主要的開發流程:
- 流程特點
- 非線性的敏捷迭代:各步驟反復穿插,以領域模型為核心驅動。
- 業務與技術邊界明確:模型建立階段禁用技術術語,確保業務可理解性。
四 潛在擴展需求
- 安全性:用戶認證與權限控制(如角色基于訪問權限)。
- 擴展性:支持動態字段以滿足行業差異化需求。
- 數據分析:工時利用率報表、資源負載預測等高級功能。