最近要分析好幾個系統。簡單總結一個學習和分析系統的方法,供你們參考。架構
如何去了解一個龐大的現有軟件系統:工具
- 先從業務角度出發,瞭解產品、客戶、功能、價值。
- 業務架構:瞭解這個產品中都有哪些業務組件,以及相互之間的關係如何。瞭解這個產品還與外部哪些業務應用有何種關係。
- 邏輯架構:瞭解整個系統劃分爲哪些子系統或模板。這些子系統間是什麼關係。
- 物理/部署架構:瞭解整個系統(含子系統),分爲哪些物理的部署組件,以及這些組件如何部署在各物理機上,以及它們的調用關係是怎樣的。
- 開發架構:從開發人員視角,瞭解各子系統的開發架構,如分層邏輯、劃分模塊、調用關係等。
- 領域模型:在深刻了解業務子系統或業務模塊時,重點須要對內部的業務進行領域建模,繪製出相應的領域模型圖。
- 數據架構:瞭解子系統內部的領域模型是以何種方式來存儲的。
- 關鍵模塊設計:先了解此模塊的使用方法、對外的接口,而後再瞭解此模塊的內部結構。一邊看代碼的同時,一邊繪製相應的包圖、類圖、序列圖。
整個分析過程,我以爲至少必備的工具:思惟導圖、UML。學習