i:三問:
是什么?
為什么?
怎么樣?
ii:詳細化問題指引:
是什么的目的在于確定系統的大致范圍,明確目標:
->平臺的主要功能是什么?業務流程是怎樣的?業務范圍有多大?
->主體框架可知嗎?用了什么技術和功能組件?用了什么算法?
->系統或者平臺是否留下有歷史文檔,版本跟蹤的信息?獲得它們。。
->主要的幾個子功能是什么呢?怎么切割?
->是否存在有GUI的界面,在Gui是怎么劃分功能的呢?
->有數據庫么?什么數據庫?
->這個平臺或者系統,是否和其它系統存在關系?
-->所有的關系列表應列明如下:
1、包含和被包含
2、依賴和被依賴
3、完全獨立
為什么的目的在于明確系統的設計思路,基本實現:
->系統的框架是不是比較陳舊,是否有用新式框架代替的計劃?
->主體架構,各個模塊的架構,具體怎么組成?模塊和模塊之間的交互怎么完成?上層和底層的依賴怎么完成?符合3大設計原則么?
->數據庫的ER圖能畫出來?嘗試畫一個;
->系統和平臺和其它系統若是存在關系:
--> 包含和被包含:
---> 什么數據產生了互相的引用和依賴;
---> 在被包含的系統中承擔什么角色:工人模塊(只是提供一個或者某些服務),管理者模塊(為其它幾個模塊提供邏輯和調度工作)
---> 在包含其它系統中承擔什么角色:服務調用者,所有服務的總體統一者
--> 依賴和被依賴:
---> 依賴和被依賴的是哪個部分的數據或者功能模塊,具體是那些功能和數據?
---> 用什么方式或者技術進行依賴(WebService,WebAPI等等) ? 這些方式有歷史的接口文檔嗎?獲得它們。。
---> 在依賴和被依賴的過程中,承擔的角色是什么? 一般是 服務調用者,服務提供者,甚至是服務轉接者(比如ESB平臺)
怎么樣的目的在于明確能明確的大部分細節,也應當是耗時最長的部分:
-> 按模塊了解具體的實現,模塊之間有交互的,要回到是什么和為什么繼續細化了解。。
--> 若是留有舊的需求文檔,試圖完善需求文檔,查看文檔是否有功能的缺失
--> 若是不存在舊的需求文檔,
i: 應先畫出具體的結構圖,從業務的邏輯入手,了解具體實現,再慢慢整理出需求文檔
ii: 或者從系統界面入手,分界面模塊切割,其實也是從業務層面處進行的入手
(
提示: 可以通過試寫某些常用代碼的方式,做一個大概的了解,比如數據庫的增刪查改操作;
)
-> 系統或者平臺怎么和數據庫進行的交互?
--> 目前掌握到的特征方法有三:
比較基本的ORM(看不見具體Sql),數據庫直接映射到實體:Linq dbml,NHibernate,Entiy Framework等
比較特殊的ORM(在某些不是代碼的地方看見Sql),數據庫不一定直接映射到實體:SqlMap等
比較直接的方法:直接使用Connection的方法,把Sql傳入數據庫
-> 和其它系統平臺或者模塊存在的關系:
--> 了解當前平臺和系統所承擔的是什么角色的前提下,了解具體的實現方式,整理接口文檔等等;
文章列表