1 回答

TA貢獻1863條經驗 獲得超2個贊
UIDesigner是騰訊用戶研究與體驗設計部(CDC)設計研發的一款設計類軟件,打造一款可以讓設計師統一平臺和團隊協作的平臺型設計工具,經過1.0和2.0版本的經驗沉淀,我們決定對3.0版本進行全新的架構設計。
開發一個軟件系統,前期的架構設計承載著整個軟件的設計思想和關鍵決策,可以說是重中之重。
根據軟件架構設計思想,關注分割和交互,好的架構必須使每個關注點相互分離。我們進行了最基本的需求分析,得出兩個關注點:一是工具,二是設計繪圖,關系如圖1所示。
得到最基本的兩個關注點后,接著將提取關鍵需求(包括:關鍵功能需求、關鍵質量需求和關鍵商業需求),根據兩個關注點進行架構的細化設計。
一、關注點——工具
這里我們結合UIDesigner的實際需求,提取出屬于“工具”范疇的關鍵功能需求、關鍵質量需求和關鍵商業需求。
首先,“工具”的關鍵功能需求,必須包括:磁盤文件讀寫、異常捕捉、日志記錄、安全性管理;非工具所必須,但是UIDesigner本身所要求的,包括:配置管理、緩存管理、線程服務、服務器和客戶端通訊管理、國際化服務。
其次,“工具”的關鍵質量需求,質量需求包括開發期質量需求和運行期質量需求兩部分,經過分析和權衡,UIDesigner的性能主要取決于設計繪圖,而穩定性、可擴展性和可維護性才是決定“工具”本身發展的質量需求,因此,對“工具”的質量需求設計將以穩定性、可擴展性和可維護性為主。
最后,“工具”的關鍵商業需求,因為UIDesigner本身并沒有很復雜的業務需求,因此關鍵商業需求是在設計流程的優化和規范上得到體現,這方面的設計已經屬于高層模塊和使用流程的設計,對架構的影響非常小,可以暫時性的忽略。
經過關鍵需求的提取,我們得到了“工具”的設計目標——可以提供通用功能(關鍵功能需求)的高穩定性、擴展性和維護性的客戶端應用。根據此目標,我們采取了DI(Dependency-Injection)和MVP(Model-View-Presenter)結合的架構,概念架構設計如圖2所示。
- 1 回答
- 0 關注
- 3098 瀏覽
添加回答
舉報