什么是領(lǐng)域模型 ?
領(lǐng)域 :軟件程序是為了執(zhí)行用戶的某項(xiàng)活動(dòng)蹬竖,或是滿足用戶的某種需求沼沈,這些問(wèn)題區(qū)域就是軟件的領(lǐng)域。例如機(jī)票預(yù)訂程序領(lǐng)域的中包括飛機(jī)的乘客币厕。
模型 :為了創(chuàng)建真正能為用戶活動(dòng)所用的軟件列另,開發(fā)團(tuán)隊(duì)必須運(yùn)用一套與這些活動(dòng)有關(guān)的知識(shí)體系。所需的知識(shí)的廣度可能令人望而生畏旦装,龐大的信息也可能超會(huì)想象页衙。模型這種知識(shí)形式對(duì)知識(shí)進(jìn)行了選擇性的簡(jiǎn)化和有意的結(jié)構(gòu)化。適當(dāng)?shù)哪P涂梢允谷死斫庑畔⒌囊饬x阴绢,并專注問(wèn)題店乐。
領(lǐng)域模型:就是為了解決描述領(lǐng)域里復(fù)雜問(wèn)題,而抽象出來(lái)的模型呻袭。
領(lǐng)域?qū)<遥阂粋€(gè)領(lǐng)域里的專家眨八,例如物流控制軟件中的物流管理人員,注意左电。PM不是領(lǐng)域?qū)<摇?/p>
模型在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中的作用
- 模型和設(shè)計(jì)的核心相互影響廉侧。
- 模型是團(tuán)隊(duì)所有成員使用的通用語(yǔ)言中樞。
- 模型是濃縮的知識(shí)
如何有效建模 篓足?
- 模型和實(shí)現(xiàn)的綁定
好的程序員會(huì)自然而然的抽象并開發(fā)出一個(gè)可以完成更多工作的模型段誊,但是如果建模時(shí)只是技術(shù)人員唱獨(dú)角戲,而沒(méi)有領(lǐng)域?qū)<业膮f(xié)作栈拖,那么得到的概念將是很幼稚的枕扫。使用這些膚淺的知識(shí)開發(fā)出來(lái)的軟件只能做基本工作,而無(wú)法充分反映出領(lǐng)域?qū)<业乃伎挤绞?/p>
- 建立一種基于模型的語(yǔ)言
基于模型建立一套領(lǐng)域模型語(yǔ)言辱魁,基于領(lǐng)域模型語(yǔ)言進(jìn)行溝通烟瞧,可以有效的明白領(lǐng)域?qū)<颐枋龅念I(lǐng)域問(wèn)題诗鸭,領(lǐng)域?qū)<乙部梢詮某绦騿T的描述里理解到軟件的設(shè)計(jì)
- 開發(fā)一個(gè)蘊(yùn)含豐富知識(shí)的模型
當(dāng)我們的建模不再局限于尋找實(shí)體和值對(duì)象時(shí),我們才能充分的吸取知識(shí)参滴,因?yàn)闃I(yè)務(wù)規(guī)則之間可能存在不一致强岸。領(lǐng)域?qū)<以诜磸?fù)的提出需求,修改需求是根據(jù)日常知識(shí)來(lái)進(jìn)行設(shè)計(jì)的砾赔,他們往往意識(shí)不到自己的思路有多復(fù)雜蝌箍。軟件是無(wú)法實(shí)現(xiàn)的。 為了解決此類問(wèn)題暴心,程序員必須與領(lǐng)域?qū)<揖o密協(xié)作來(lái)消化知識(shí)妓盲,豐富模型,解除矛盾专普。
- 提煉模型
有用的模型很少停留在表面悯衬,隨著對(duì)領(lǐng)域和需求的逐步理解和加深,我們往往會(huì)丟棄那些最初看起來(lái)很重要的表面要素檀夹,或者切換它們的角度筋粗。這時(shí)一開始可能發(fā)現(xiàn)不了的巧妙抽象就會(huì)浮出水面,而它們恰恰切中要害炸渡。