1. 程式人生 > >二、類模型-領域類映射

二、類模型-領域類映射

類關系 問題 字符界面 ima 產品 而是 系統 body gpo

第一步,照貓畫虎

首個要解決的問題是:類從哪裏來?

從上一章中總結的領域模型關系圖中可以看到,這些領域對象基本上就是我們所需要的類,只是有些映射到軟件類後並不是系統真正參與的類,所以要剔除掉。

技術分享圖片

領域類是需求涉及的業務的概念,軟件類是軟件系統內部的概念。

以POS機為例,顧客這個領域類可以剔除,因為它不是業務流程中的一個重要參會者,但它不是POS機內部需要實現的一個實體。POS機業務中,顧客甚至不會和POS機直接交互。站在POS機軟件系統角度上,顧客和POS機沒有任何關系。

鍵盤、屏幕、掃碼槍這些是硬件組成部分,不是軟件組成部分,也可以剔除。假設屏幕顯示要求是既可以圖形界面,也可以字符界面,那麽軟件系統就要處理這種邏輯,此時,屏幕就是軟件系統的一組成部分,就需要從領域類轉換成軟件類。

接下來的工作就是細化了,首先:

【名稱映射】 根據領域類的名稱,起個合適的軟件類名稱。

【屬性映射】 根據領域類的屬性來設計軟件類的屬性,基本上可以理解為照搬。

【提煉方法】 由於領域類中沒有方法,因此根據用例模型中涉及到的“動詞”來提煉方法。

【篩選】我們可以從用例模型中找到很多的方法,找出來後,我們要篩選掉不屬於軟件類的方法。

【進階提煉】例如:我們可以看到方法中有“掃描”、“手動輸入條形碼”這兩個動作。首先用例模型中,這兩個動作都是收銀員的動作,但提煉到軟件類中它倆則不屬於收銀員,而是屬於掃碼槍和鍵盤提供的功能,收銀員只是借助這兩個工具來實現。另外,這兩個的動作雖然不一樣,但都是向系統中“增加交易產品”,因此可以提煉出一個動作,就是“增加交易商品”這個動詞。提煉這些動詞的精確度和完善度是和人員的經驗有關的,要加強抽象的思維。

【分配】將提煉出來的動詞,分配到合適的類中。這個也是跟經驗很有關系。分配之後的得到如下軟件類關系圖:

技術分享圖片

二、類模型-領域類映射