| 用例 ID | 用例名稱 | 參與者 | 關鍵流程 |
| UC-01 | 定時觸發構建 | 排程器 | Cron 觸發 → 檢出代碼 → Ant 構建 → 發布產物 → 更新儀表板 |
| UC-02 | 手動觸發構建 | 構建管理員 | Web 點擊 → 參數確認 → 排入隊列 → 執行 → 通知結果 |
| UC-03 | 查看構建歷史 | 開發/管理 | 列表/篩選 → 詳情 (日誌/測試報告/產物下載) |
| UC-04 | 構建失敗告警 | 相關開發 | 失敗 → 郵件/IM 通知提交者 → 鏈接至失敗日誌 |
| UC-05 | 項目度量報表 | 管理層 | 趨勢圖 (構建時長/成功率/測試覆蓋/代碼行數/提交統計) |
非功能需求
- 可靠性:構建過程崩潰可恢復、日誌不丟失
- 效能:單次構建 < 30 分鐘 (增量編譯)、儀表板秒級響應
- 安全:角色權限 (管理員/開發/只讀)、审計日誌
- 擴展性:插件化構建步驟、多專案/多分支支援
領域分析模型 (問題空間)
核心實體
- BuildJob:構建任務定義 (SCM 地址、Ant 目標、觸發規則、通知名單)
- BuildExecution:單次構建實例 (狀態、開始/結束時間、日誌引用、產物引用、測試結果)
- Project:專案容器 (多模塊、分支策略、權限)
- Artifact:構建產物 (JAR/WAR、文檔、報告、校驗和)
- MetricSnapshot:度量快照 (覆蓋率、代碼行、循環複雜度、提交者統計)
關鍵服務介面
interface BuildScheduler {
void schedule(BuildJob job); // 定時排程
void triggerManually(BuildJob job); // 手動觸發
}
interface BuildExecutor {
BuildExecution execute(BuildJob job); // 同步執行 (內部異步)
void cancel(BuildExecution execution);
}
interface BuildRepository {
BuildExecution findById(String id);
List queryHistory(Project project, DateRange range);
void save(BuildExecution execution);
}
interface DashboardService {
MetricSnapshot getMetrics(Project project, DateRange range);
List getRecentFailures(int limit);
}
技術選型預覽 (設計章節將詳述)
- 構建引擎:Ant (成熟、XML 腳本、跨平台) + 自定義 Task
- Web 儀表板:Struts 2 + Spring + Hibernate + JFreeChart/ECharts
- 排程:Quartz (集群支援、持久化觸發器)
- SCM 整合:CVS/SVN/Git 命令行封裝 Task
- 通知:JavaMail + 企業微信/钉钉 Webhook
需求文檔以用戶為讀者主體,分析模型以開發者為讀者主體,設計模型以實現者為讀者主體。三層文檔、三類讀者、一致性貫穿始終。
- 上一篇文章: JBuilder 9 開發 Struts 實戰:四大精靈加速 MVC 構建全流程
- 下一篇文章: 實戰每夜構建(二):構建管理服務與項目構建服務設計
Copyright ©
程式碼之家 All Rights Reserved