天天看點

<五>面向對象分析之UML核心元素之邊界

一:基本概念

        ---->邊界在UML圖符裡的定義隻是一個簡單的矩形,四個邊決定了邊界的内外。參與者,用例和邊界相生相克。

        ---->邊界是一個很重要的概念,和封裝的概念師出同門。面向對象,任何一個對象都有一個邊界。

        --->在收集需求時,我們總要先假定一個範圍邊界。在這個邊界内尋找需求,而找到的需求集合又決定了最終邊界的大小。在需求出來之前,我們必須先設想一個邊界,這個邊界的大小是不确定的,随着需求的明确,邊界也逐漸變得明朗。但是問題出在确定需求靠什麼?靠參與者和用例對吧?而參與者和用例得意明确的前提條件是邊界确定的,而偏偏這個時候邊界是無法确定的。是的,這是一個沖突,實際上需求就是在不斷地調整這個沖突的過程中逐漸明确進而更加确定邊界的。這個調整過程不可避免地會導緻參與者和用例的變化,是以需求過程是一個動态的過程,不可能一蹴而就,也因為統一過程需要疊代,而不能采用瀑布方法。

二:邊界決定視界

        ---->站在不同的邊界外,看到的參與者和用例是不一樣的。

        ---->站在大樓外邊,看見樓層,大門。站在大樓内部,看見電梯,柱子。

三:邊界決定抽象層次

        ---->一般大型系統,自頂向下抽象。尋找邊界,參與者,用例

四:靈活使用邊界

        ---->其實邊界不僅能夠在需求方面發揮作用,在設計層面也能發揮重要作用。軟體設計也面臨着很大的資訊量,既要實作需求,又要保證性能,要具有擴充能力,還要友好易用。如果把這些要求都參雜在一起,設計師的腦袋就得痛了。這時設定一些邊界就能有效地降低複雜度,比如将實作需求的任務交給分析墨香,在這個邊界内隻考慮需求實作;将擴充能力交給架構設計,在這個邊界内專心設計靈活的架構;然後在架構的束縛下把分析模型轉化為設計模型,這就比分析模型中考慮擴充能力簡單多了。

        ----->總之,邊界是無形的,與其說它是一個UML元素,不如說它是一種分析方法。在面向對象的方法中,邊界大到業務模組化,小到接口設計都發揮重要的作用。讀者在實際工作中應當學會靈活地使用邊界,用邊界來決定抽象層次和視角,進而排除邊界外大量的雜音來降低複雜程度,這也是面向對象能夠比面向過程厲害的地方。

繼續閱讀