CRC(Class-Responsibility-Collaborator)卡建模是一種簡(jiǎn)單且有效的面向?qū)ο蟮姆治黾夹g(shù)。在一個(gè)OO(面向?qū)ο?開發(fā)項(xiàng)目中,包括用戶、系統(tǒng)分析員和開發(fā)者在建模和設(shè)計(jì)過程中經(jīng)常應(yīng)用CRC卡建模,使整個(gè)開發(fā)團(tuán)隊(duì)普遍的理解形成一致。
它由三部分組成:
1. 類(Class)
2. 職責(zé)(Responsibility)
3. 協(xié)作(Collaborator)
一個(gè)類代表許多類似的對(duì)象。而對(duì)象是系統(tǒng)模型化中關(guān)注的事物。他們可以是一個(gè)人、地方、事情、或任何對(duì)系統(tǒng)有重要性的概念。類名一般列在CRC卡的頂部。
職責(zé)是類需要知道或做的任何事物。這些職責(zé)是類自身所知的知識(shí),或類在執(zhí)行時(shí)所需的知識(shí)。
協(xié)作是指為獲取消息,或協(xié)助執(zhí)行活動(dòng)的其他類。在特定情形下,與指定的類按一個(gè)設(shè)想共同完成一個(gè)(或許多)步驟。協(xié)作的類順著CRC卡的右邊排列。
CRC模型是CRC卡的集合,它代表一個(gè)應(yīng)用域或問題域的全部或一部分。CRC模型是最普遍的用戶,其中的白皮書地址是用于收集和定義一個(gè)面向?qū)ο髴?yīng)用的用戶需求。圖中展示了一個(gè)航運(yùn)/存貨控制系統(tǒng)的CRC模型例子,展示的CRC卡將被放在一張書桌或工作桌上。注意卡的放置:相互協(xié)作的卡是彼此接近的,無(wú)關(guān)系的卡不能放在附近。

下面我們來(lái)談?wù)勅绾蝿?chuàng)造一個(gè)CRC模型的?有六個(gè)步驟:
1、 CRC模型組一起加入(模型組包括相關(guān)的客戶領(lǐng)域人員、設(shè)計(jì)者、記錄員、系統(tǒng)分析員等)。
2、 安排模型房間。
3、 進(jìn)行集體自由討論
內(nèi)容根據(jù)此CRC模型的系統(tǒng)目標(biāo)進(jìn)行,如系統(tǒng)是為誰(shuí)開發(fā)的?那些商業(yè)業(yè)務(wù)需要這個(gè)系統(tǒng)的何種支持?工作時(shí)需要什么信息?……總之盡量按能達(dá)到系統(tǒng)要求實(shí)現(xiàn)的目標(biāo)進(jìn)行,包括進(jìn)行活動(dòng)時(shí)對(duì)資源、條件、活動(dòng)及人員的要求。
4、 講解CRC模型技術(shù)(完成集體討論后,設(shè)計(jì)者將描述CRC模型過程。通常需要花費(fèi)十至十五分鐘,該過程包括創(chuàng)造幾個(gè)CRC卡范例,范例參考上圖)。
5、 重復(fù)地執(zhí)行CRC模型步驟。
6、 執(zhí)行用例情景試驗(yàn)
用戶情景試驗(yàn)是一個(gè)任務(wù)過程模式,其中用戶們將積極地參與以保證需求是準(zhǔn)確的。基本的思想是一組商業(yè)領(lǐng)域?qū)<遥ㄒ簿褪强蛻舴剑?,設(shè)計(jì)者,系統(tǒng)分析員一步步通過一系列的用例證實(shí)CRC模能準(zhǔn)確地反映出用戶的需求。
其實(shí)說(shuō)白了,CRC模型就是一種溝通方式,客戶方與開發(fā)方如何通過這種有效的、易實(shí)現(xiàn)、易操作的方式建立一個(gè)能描述準(zhǔn)確的、雙方達(dá)成共識(shí)的系統(tǒng)需求。CRC建模因?yàn)橛脩舴e極參與到模型的定義中,他們對(duì)工作的滿意度就會(huì)增加,并與開發(fā)者們并肩創(chuàng)造這個(gè)CRC模型,通過這個(gè)一連串的模型卡,雙方對(duì)待建的系統(tǒng)需求目標(biāo)達(dá)成共識(shí)。當(dāng)然CRC模型也存在一定的缺點(diǎn),CRC模型只是一個(gè)面向?qū)ο髴?yīng)用的用戶需求定義的一部分。你也應(yīng)該考慮到用例,原型,和正式的需求文檔。是否要使用CRC建模,就根據(jù)項(xiàng)目、企業(yè)、客戶自身存在和所需的條件而定了。
本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請(qǐng)注明出處,如有版權(quán)問題請(qǐng)及時(shí)通知。由于博客時(shí)間倉(cāng)促,錯(cuò)誤之處敬請(qǐng)諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。