<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學(xué)___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
    什么是域建模呢?我們設(shè)計(jì)一個(gè)系統(tǒng),總是希望它能解決一些問題,這些問題總是映射到現(xiàn)實(shí)問題和概念。很明顯我們的系統(tǒng)依賴于這些問題,對這些問題進(jìn)行歸納、分析的過程就是域建模(這個(gè)域,指的就是問題域)。
    2005-9-15]
    連載:ICONIX 統(tǒng)一建模起步之三 域建模之一 發(fā)現(xiàn)類
      歡迎大家回到我的連載,從這一期開始,我們正式進(jìn)入ICONIX的世界。閑話少說,進(jìn)入正題。
      什么是域建模呢?我們設(shè)計(jì)一個(gè)系統(tǒng),總是希望它能解決一些問題,這些問題總是映射到現(xiàn)實(shí)問題和概念。很明顯我們的系統(tǒng)依賴于這些問題,對這些問題進(jìn)行歸納、分析的過程就是域建模(這個(gè)域,指的就是問題域)。
      好了,講理論大家要昏昏欲睡,我這個(gè)小小的連載也沒辦法把所有的概念說的一清二楚,要是有興趣的話可以打電話跟我暢談(前提是不許打手機(jī)),現(xiàn)在我來用一個(gè)實(shí)際的例子講述域建模。
      用個(gè)比較簡單的例子吧,本來昨天我是想用HelloWorld來的,可是它實(shí)在太簡單了,不能說明問題,考慮再三,我使用一個(gè)猜數(shù)游戲來說明問題。這個(gè)游戲相信學(xué)過編程語言的都應(yīng)該很熟悉了:輸入一個(gè)數(shù),如果猜中了顯示“你好棒啊”然后結(jié)束,如果不對,系統(tǒng)告訴你是太大還是太小,然后重新讓你輸入,直到猜中為止。
      現(xiàn)在請拿一張白紙,我們開始?xì)w納問題。
    +--------------------------------------------+
    |  系統(tǒng)應(yīng)該準(zhǔn)備一個(gè)正確答案        |
    |                      |
    |  玩家可以輸入一個(gè)答案          |
    |                      |
    |  系統(tǒng)應(yīng)該比較玩家輸入的答案和正確答案  |
    |                      |
    |  系統(tǒng)應(yīng)該顯示玩家每次輸入的結(jié)果     |
    +--------------------------------------------+
      遺憾我這個(gè)例子還是太過于簡單,不過簡單也有簡單的好處,從這個(gè)簡單的例子可以看出歸納問題的基本要點(diǎn)。
      第一是不要涉及內(nèi)部的流程,別出現(xiàn)“如果輸入不正確,就怎么怎么樣”的句子,這些并不是正確的問題,正確的問題必須明確的,清晰的,如果可能的話全部按照“什么可以干什么”的格式來寫。
      第二是不要一開始就進(jìn)入細(xì)節(jié)(抱歉,我這個(gè)例子例外,它實(shí)在是太簡單了),包涵太多細(xì)節(jié)的問題將會是一個(gè)長長的清單,這種清單根本沒什么用。盡量從最高一層分析,但也不要簡單到“用戶可以玩游戲”這種籠統(tǒng)的問題。總之一個(gè)原則是全面、清晰、明確。要做好問題域分析完全取決于設(shè)計(jì)師的水平與能力,這就不是可以簡單的看看書能達(dá)到的了。
      好了,現(xiàn)在我們有了一個(gè)系統(tǒng)問題域的清單,可以進(jìn)行下一步工作:發(fā)現(xiàn)類。
      把問題清單中的名詞都提出來,得到一個(gè)名詞列表,這就是類的來源(不過不忙,這只是初步過程)
    +----------------+
    |  系統(tǒng)    |
    |  玩家    |
    |  正確答案  |
    |  答案    |
    |  游戲結(jié)果  |
    +----------------+
      不是所有的名詞都能作為類的,接下來需要進(jìn)行篩選。
      玩家是參與者,應(yīng)該放到用例圖上去
      系統(tǒng)太籠統(tǒng),不能成為一個(gè)對象的名稱
      答案和正確答案容易混淆,但稱為輸入答案又容易被誤解成一個(gè)動作,干脆叫做玩家答案
      結(jié)果不明確,察看前面的需求,應(yīng)該分解成錯(cuò)誤信息和完成信息
      篩選完畢后,得到下面一個(gè)名詞列表:
    +----------------+
    |  正確答案  |
    |  玩家答案  |
    |  錯(cuò)誤信息  |
    |  完成信息  |
    +----------------+
      這個(gè)列表缺少了系統(tǒng),顯得太單薄,回過頭再仔細(xì)察看需求,應(yīng)該引入一個(gè)游戲引擎,由它來充當(dāng)調(diào)度者。
    +----------------+
    |  游戲引擎  |
    |  正確答案  |
    |  玩家答案  |
    |  錯(cuò)誤信息  |
    |  完成信息  |
    +----------------+
      同時(shí)修改前面的問題域,現(xiàn)在系統(tǒng)已經(jīng)明確是一個(gè)游戲引擎。這種替換當(dāng)然是一種理想情況,通常都會發(fā)生分解和關(guān)聯(lián),那時(shí)候需要擴(kuò)充問題域,有時(shí)候還需要建立新的問題域。
    +--------------------------------------------+
    |  游戲引擎應(yīng)該準(zhǔn)備一個(gè)正確答案      |
    |                      |
    |  玩家可以輸入一個(gè)答案          |
    |                      |
    |  游戲引擎應(yīng)該比較玩家答案和正確答案   |
    |                      |
    |  游戲引擎應(yīng)該顯示玩家每次輸入的結(jié)果   |
    +--------------------------------------------+
      現(xiàn)在可以用Rose來制作Class Diagram了,同時(shí)可以用RAD工具來搞一個(gè)小小的GUI來看看效果,發(fā)現(xiàn)類工作到此告一段落。不過問題域分析還沒完,類與類之間的關(guān)系還沒有歸納,當(dāng)然,那是下一段要講的事情了。

    posted on 2006-06-02 11:18 天外飛仙 閱讀(424) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品无码专区2| 免费理论片51人人看电影| 国产免费的野战视频| 妞干网在线免费视频| 亚洲国产成人精品女人久久久 | 91精品视频在线免费观看| 一个人免费观看视频www| 国产男女猛烈无遮挡免费视频网站| 亚洲精品成人在线| 亚洲国语精品自产拍在线观看 | 亚洲激情电影在线| 日韩国产欧美亚洲v片| 在线观看免费视频一区| 国产片AV片永久免费观看| 日韩精品电影一区亚洲| 亚洲va在线va天堂va888www| 亚洲精品天堂在线观看| 亚洲国产免费综合| 国产成人精品免费午夜app| 免费a级毛片永久免费| 亚洲av成人无码久久精品 | 亚洲精品人成电影网| 国产精品亚洲精品日韩动图 | 日韩精品在线免费观看| 四虎成人精品一区二区免费网站 | www.91亚洲| 中文字幕亚洲综合精品一区| 视频一区在线免费观看| 免费A级毛片av无码| 啊灬啊灬别停啊灬用力啊免费看| 亚洲AV无码久久精品狠狠爱浪潮| 最新亚洲精品国偷自产在线| 不卡视频免费在线观看| 黄瓜视频高清在线看免费下载| 亚洲伊人久久成综合人影院| 亚洲成aⅴ人在线观看| 亚欧国产一级在线免费| 无码日韩精品一区二区免费| 亚洲AV无码专区国产乱码电影| 亚洲精品理论电影在线观看| 性无码免费一区二区三区在线|