重點摘要#
- 軟體架構不僅是技術活動,更是平衡利害關係人利益與技術需求的藝術
- 架構師需要考量安全性、可用性、可支援性、發布管理、部署選項等多面向
- 短期內可以向某個優先級傾斜,但長期必須維持適當的平衡
- 平衡應根據上下文(軟體預期壽命、業務關鍵性、組織文化等)來調整
詳細內容#
當我們想到軟體架構時,往往首先想到的是傳統技術活動:模組化系統、定義介面、分配責任、套用模式、優化效能。然而,架構師還需要考慮安全性、可用性、可支援性、發布管理和部署選項等。
利害關係人分析#
採用**「利害關係人及其利益」**的方法進行需求分析,是確保軟體需求規格完整性的優秀方式。分析利害關係人及其利益,揭示了影響架構師的最終優先級集合。
平衡的藝術#
架構師的工作不僅是為使用者創建功能完善、高品質的軟體,還要在以下需求之間取得平衡:
- 業務 CEO 的成本控制利益
- 運維人員的易管理利益
- 未來程式設計師的易學習和易維護利益
- 軟體架構專業的最佳實踐
軟體架構不僅僅是傳統的技術活動,它是在專案中平衡技術需求與利害關係人的業務需求。
上下文決定平衡#
達到的平衡需要適合當前的上下文,考慮因素包括:
- 軟體的預期壽命
- 軟體對業務的關鍵程度
- 組織的技術與財務文化
— By Randy Stafford