在進行系統構思之後,我們會進行領域分析領域分析的目的是為了構建與業務對應的模型,領域分析步驟如下
1. 尋找類
根據名稱和概念,我們可以初步提取一些類
如:銷售不同劇院劇目入場券的預定系統,我們提取的暫定類有 劇院,劇目,入場券,預定,系統
不是所有類都符合我們的系統,所以我們需要移除與領域無關的類
移除冗餘類:如客戶和使用者,這兩個概念是相同的,所以我們需要移除乙個
移除操作:如「使用者可以通過**預約我們的房間」,**預約是乙個操作,如果我們不想記錄這個操作,那麼我們可以移除這個類
移除實現製品:如程序,cpu,使用者工廠,xx管理器等,在實現階段才會用到,在領域分析中不應該出現
2. 準備資料詞典
資料詞典就是乙份類名的說明文件,資料詞典用於解釋我們每個類的意義
3. 尋找關聯
類之間的關係有:依賴,關聯,聚合,泛化
關聯:指2個類之間非臨時性的引用,聚合是一種強型別的關係
尋找關聯就是確定類之間的關係,如:」公司招聘雇員「,」銀行擁有出納櫃檯「,」atm列印收據「,這些語句都描述了兩個類之間的關係
我們需要從語句中判斷類之間的關係,或者其隱含的關係
刪除無關關聯:有些關聯對於我們所做的系統是無關的
動作:動作一般隱含兩個類之間的關係,如」公司招聘雇員「隱含公司具有雇員(公司1——*雇員),而」atm接收銀行卡「並不能說明atm具有銀行卡(即atm和銀行卡沒有關聯)
三元關聯:一般三元關係我們可以消為二元關聯,你要問我怎麼消,我也不知道
限定關聯:對於 *——*,1——* 我們應該考慮是否加上限定符使 * 變為 1
聚合:有時候我們會糾結是否是使用聚合還是關聯,我們不用過多的糾結這個問題,用你覺得合適的就行
4. 屬性
提公升為限定符:有些屬性會作為限定符,如name,多數情況下,name都是唯一的(例,乙個站點的使用者名稱不能相同,但不同站點的使用者名稱可以相同)
5. 使用繼承細化
1. 確定具有狀態的類
並不是每個類都需要有狀態圖,很多類就只有建立和銷毀,我們不需要為其話狀態圖
2. 尋找狀態
3. 尋找事件
事件就是推進類狀態改變的動作
4. 構建狀態圖
摘譯 面向領域建模
還是原來我在blog中提到過的,微軟的思路 dsl,包括現在說的dsm,其實都是或者說來自mda的思路。只不過是 1 不是用的uml的標準。2 現在通過領域限定來降低目前實現mda支援的難度。而且和微軟的大多數產品一樣,微軟做的東西易用性上會好一些,這一點足夠重要。dsm規避了mda發展中的難題,不...
物件導向建模
建模 為了理解事物而對事物作出的一種抽象,是對事物的一種無歧義的書面描述。建模的目的 減少複雜性。物件導向方法最基本的原則 按照人們習慣的思維方式,用物件導向觀點建立問題域的模型,開發出盡可能自然地表現求解方法的軟體。用物件導向方法開發軟體,通常需要建立3種形式的建模,它們分別是描述系統資料結構的物...
UML物件導向需求分析與建模(四)
需求獲取 用例圖 活 需求分析 類圖 物件圖和包圖 系統分析與設計 狀態圖 順序圖 協作圖 活 元件圖 測試 單元測試用類圖 整合測試用部署圖 確認測試用用例圖 參與者 用例 關係 用例圖顯示了系統和系統外實體之間的互動。這些實體被引用為參與者。參與者代表角色,可以包括使用者 外部硬體和其它系統 用...