系统分析与建模5
邊界
邊界本質上是面向對象方法的一個重要概念,與封裝的概念師出同源。面向對象里,任何一個對象都有一個邊界,外界只能通過這個邊界來認識對象,與對象打交道,而對象內部則是一個禁區。
在需求出來之前,必須先設想一個邊界,這個邊界的大小是不確定的,隨著需求的明確,邊界也逐漸變得明朗。但是問題是確定需求,依靠參與者和用例;而明確參與者和用例,前提條件是邊界是明確的,而偏偏這是邊界又是不明確的,所以這就是一個矛盾。實際上需求就是在不斷地調整這個矛盾的過程中逐步明確,進而更加確定邊界的。這個調整過程,不可避免地會導致參與者和用例的變化。所以需求過程是一個動態的過程,需要迭代的過程,而不是瀑布方法。
邊界決定視界
邊界是可大可小的,由建模者主觀臆定。對于建模來說,同樣的需求交給10個不同的人,可能得出10個不同的結果。因為除了對業務的理解不同之外,不同的人選擇的邊界不同,視角也不同。但那一個更正確呢?只能把這些不同的結果進行對比、思考、討論,最終希望得到一個恰當的結果,就像盲人摸象一樣,多方結果的相互印證得出的結論總是會更接近真相。所以建模過程中,如果對建模結果感到疑惑,就可以試著改變邊界設定,得到不同的參與者和用例,再通過相互印證的方式得到更好的結果。
邊界決定抽象層次
在建模的時候,如果一個很龐大的系統,信息量之多會超出人腦的處理能力,進而失去分析能力。這就需要很好地把抽象層次,排除掉非本層次之內的信息,自頂向下地把整個系統描述清楚。邊界的設定可以幫上大忙。
比如有一個大系統,其涉及的單位包括商業網站、銀行、政府機構、工廠、物流、批發商、零售商等,這里面的業務非常復雜。
可以先把邊界設定為整個商業過程,得到的參與者是商業網站、銀行、政府機構、工廠等,進而得到 商業網站—>宣傳商業信息、銀行—>管理財務、政府機構—>監管市場、工廠—>生產商品等,這些抽象層次非常高的用例。為這些用例建模、獲取領域模型、建立業務架構等工作,確保參與者都能達到其業務目標,整個商業模式得以實現。
再接下來,把邊界縮小到宣傳商業信息領域,也就是商業網站部分,進而降低了抽象層次,就會得到廣告策劃人員、平面設計人員、網站管理員等參與者,進而得到策劃廣告、設計廣告、發布廣告等用例,而這些粒度小一些的用例保證滿足宣傳商業信息這一大用例。
如此這般,層層推進,直到抽象層次降低到對象的級別。
靈活使用邊界
邊界在設計層也能發揮重要的作用。軟件設計也面臨著很大的信息量,既要實現需求,又要保證性能,要具有擴展能力,還要友好易用。這時設定一些邊界就能有效地降低復雜度,比如將實現需求的任務交給分析模型,在這個邊界內只考慮需求和實現;將擴展能力交給框架設計,在這個邊界內專心設計靈活的框架;然后再在框架的約束下,把分析模型轉化成設計模型。
轉載于:https://www.cnblogs.com/simpro/p/4361265.html
總結
- 上一篇: nginx+mysql+php
- 下一篇: 巧用DOS命令合并多个文本文件的内容