系統設計的目的->系統設計的目標->圍繞目標的核心設計->圍繞核心設計形成的設計原則->各子系統,模組的詳細設計。
1) 系統設計的目的
是指做這個系統設計的目的到底是什麼,很多人在做系統設計時,是搞不清為什麼要做乙個新系統的設計,或者為什麼要做乙個系統的重構/演進的設計,如果搞不清楚這個目的,後面的系統設計上是很容易形成偏差的,導致本來是為了解決乙個問題,要去做新的系統或重構/公升級舊的系統,但最後完全脫離了初心。
另外,還有很重要的一點是,乙個大架構師是需要給很多人講解系統設計的,只有理解並講清了系統設計的目的,團隊才能更好的去實現。
2) 系統設計的目標
圍繞上面的目的,能不能形成一些可衡量的目標,從而確保最終系統實現和最初的目的不要出現太大的偏差,相信很多人都經歷過最終的系統實現和系統設計偏差極大的現象,主要的原因基本都是沒有制定衡量系統設計的目標,並在系統設計上讓系統能透出這些目標的情況。
3) 圍繞目標的核心設計
這步最重要的就是通過設計如何去實現上面的目標,這個環節中技術的專業、視野、全面的考慮、權衡取捨的主觀原則、解題的思路,這是形成最後的核心設計的關鍵。
在核心設計的這個階段中,會產生一些新的衡量設計最後實現情況的目標,這些也都要增加到系統設計中,確保最後的實現和設計的偏差度是可視的。
4) 圍繞核心設計形成的設計原則
有了上面的核心設計後,可以真正的形成一些設計原則,確保後面的子系統/模組的詳細設計中能夠遵循,並在詳細設計中體現出來,這樣才能讓整個大的系統設計的一致性。
5) 各子系統/模組的詳細設計
這個部分我倒覺得難度不會太大,畢竟有了前面的鋪墊,就是解好乙個更小範圍的題,程式設計師群體在解題能力上通常是不錯的,所以我一直覺得數學功底好是程式設計師的基本,數學就是典型的解題的學科。
這就是做分享/培訓的好處,藉機仔細整理自己的碎片,從而形成體系。
關於怎麼更好的讓大家能掌握並運用這個思考框架,我的想法就是在講每個步驟的時候講講自己當年在這些步驟上犯的錯,實際的經驗,這樣我覺得也許大家以後在做系統設計時就能想起,所以我覺得系統設計這種培訓絕對是需要具備大量實際經驗的架構師才能做。
在運用部分,採取的方法就是通過互動,讓大家按照同樣的思考框架來講自己的所負責的系統,通過互動來更好的彼此對齊,並藉此逐漸變成習慣。
系統設計的套路
區別就是層級不同 架構風格 設計模式 慣用法。在需求分析與軟體設計之間有乙個銜接。分為結構化設計和物件導向設計。通常,我們這些半吊子水準,一知半解的人,什麼概要設計 詳細設計張嘴就來。但事實上,這兩個概念 於結構化設計。目前來說,物件導向設計才是主流。sd和ood就好像中西醫結合一樣,二者結合著用。...
亂彈琴的系統設計套路 適合新手
一家之言,不對可以指出,就事論事,切勿人身攻擊 第0步 確定問題領域 乙個的簡單需求 電子教材管理系統,教材要分章節顯示內容 我們要分析的領域就是電子教材管理了 第一步 分析領域內物件 物件,是這裡物件是哪些名詞以及邏輯概念,這裡分析物件的屬性 有些物件不但有屬性,還有方法,而有些物件,只有屬性值,...
C 多型的設計套路
第一部分 正常的多型繼承 include using namespace std class people virtual void get util to eat class children public people int main 在基類中使用子類的方法 這是非常常見的程式設計 我們一般是...