系統分析師的主要工作是將問題領域中的真實事物,轉換成資訊系統該擔負的責任(系統責任)。以「物件」代表問題領域中的真實事物,以「類別」代表資訊系統該擔負的責任。
但,並非在問題領域中尋找到的所有物件,都適合放到分析模式中。所以,如果,幸運地找到一些物件之後,系統分析師接著又該思考些什麼呢?
在接下來的各段落中,原著作者將立即為我們回答這個問題。不過,在這裡,我們可以先透露一下,或許你也可以自己先想想看這8個必須要思索的問題喔!
1. 哪些資訊需要物件長期記得的?
2. 物件需要提供哪些行為?
3. 物件需要保存的屬性是否不只一個?
4. 是否群聚了不只一個的物件?
5. 類別中的屬性是否總是適用在所有物件上?
6. 類別中的操作是否總是適用在所有物件上?
7. 所關注的需求是否是跟問題領域相關的?
8. 是否有剔除衍生性的產出?
Q1.必需記得的資訊
「哪些資訊需要物件長期記得的?」真實世界中的問題領域,充滿著太多的資訊,系統分析師必需過濾出,需要由系統長期保存的資訊,才放到類別中,而且這些資訊通常會對映成屬性。
例如,在問題領域中的「顧客」具有姓名、密碼、地址、身高、體重、年齡、興趣、電話、身分證字號、電子郵址等等,可是對於線上購物系統而言,僅僅需要記得顧客的姓名、密碼和電子郵址即可,如圖1所示。所以,系統分析師得問自己「哪些資訊需要物件長期記得的?」這個問題,學會過濾一些多餘的資訊。
Q2.必需提供的行為
「物件需要提供哪些行為?」系統分析師仔細思索這個問題,其實很輕易就能找到類別的操作了。以線上購物系統為例,顧客在設定
密碼時,需要遵守密碼設定規則,像是:密碼必須是6~12位數,而且是英文字與數字所組成,還有首位數必須是英文字母。
因此,針對首次設立的密碼,或者是重新設立的密碼,都得通過密碼設定規則。所以,這個時候,系統分析師就可能在顧客類別中,新增一個名為「檢驗密碼的合法性」的操作,如圖2所示。
Q3.多個屬性
「物件需要保存的屬性是否不只一個?」針對某一種物件,如果只找到一、兩個屬性需要保存的話,或許把它當做一般的屬性來處理,就可以了,不一定要視為物件。
以線上購物系統為例,每一筆銷售交易都需要記錄顧客的送貨地點,如圖3所示。可是,你可以發現,送貨地點類別裡頭其實只有一個名為「地址」的屬性。
在這種情況下,其實我們可以把圖3改成圖4,刪去送貨地點類別,並且把它的屬性併入到銷售交易類別中,如圖4所示。
特別是我們剛才在前面有提到「地點」,如實際的場所、辦公室、網站等等,都算是一種地點物件。所以,很容易就會過於濫用,把只有一個屬性的地點也視為物件,如圖5所示,其實沒有這樣的必要。
要是物件化過了頭,反而會出現許多細微的物件,讓系統更加複雜。所以,或許把圖5中的地點刪去,將它的屬性分別併到銷售交易和會員兩類別中,改成如圖6會更為恰當。

Q4.多個物件
「是否群聚了不只一個的物件?」如果發現某一個類別,它永遠都只有一個物件時,就得特別注意了。不過,這並不是不可能發生,只是系統分析師要對這樣的類別敏感些,畢竟大部分的類別都擁有多個物件。
Q5和Q6.總是適用的屬性與操作
「類別中的屬性是否總是適用在所有物件上?」以圖7為例,並不是所有的手機都具有照相的功能,因此手機類別中的畫素屬性,就不會適用在所有的手機物件上頭。
遇到這種情況的時候,系統分析師可以考慮使用一般化關係,將所有手機相同的屬性放到父類別中,然後新增一個名為「照相手機」的子類別,再把跟照相手機有關的「畫素」屬性放進來,如圖8所示。
至於,「類別中的操作是否總是適用在所有物件上?」系統分析師同樣可以使用一般化關係,來將專用的操作放到子類別中。繼續剛才的手機的範例,並不是所有手機都具備有照相的功能,如圖9所示。
所以,同樣的,我們可以把圖9改成圖10的樣子,把「照相」這項操作,移到照相手機子類別中,如圖10中所示。
Q7.問題領域相關之需求
「所關注的需求是否是跟問題領域相關的?」由於,系統分析模式
關注的是問題領域的需求,而不是資訊系統的實作細節。所以,分析模式中的類別,不該放置跟問題領域無關,卻關乎實作平臺的屬性或操作。
請看到圖11的範例,把顧客的資料儲存到資料庫去,這是跟實作有關的操作,並不適合出現在分析模式中。
Q8.剔除衍生性產出
「是否有剔除衍生性的
產出?」有些資料是系統可以算出來的,這類可以衍生推得而知的屬性,可以不必放在類別中。以矩形為例,矩形類別中保存了長、寬和面積,如圖12所示。
但是,面積是個衍生值,在得知矩形的長和寬之後,就可以相乘得知面積,所以把面積剔除掉,將原先的圖12改成此處的圖13或許會更佳。
作者簡介:
邱郁惠
研究OOAD、UML、MDA十餘年,經歷過顧問、專案、教學及寫作工作。離職後創辦UML Blog推廣UML,組織《UML互助會》社群定期舉辦軟體技術講座,出版多本UML專業書籍與電子書。目前擁有OCUP/UML三級認證、PMP認證。
熱門新聞
2025-12-12
2025-12-15
2025-12-12
2025-12-12
2025-12-15
2025-12-12