CRC(Class-Responsibility-Collaborator)卡建模是一種簡單且有效的面向?qū)ο蟮姆治黾夹g(shù)。在一個OO(面向?qū)ο?開發(fā)項目中,包括用戶、系統(tǒng)分析員和開發(fā)者在建模和設(shè)計過程中經(jīng)常應(yīng)用CRC卡建模,使整個開發(fā)團隊普遍的理解形成一致。
它由三部分組成:
1. 類(Class)
2. 職責(Responsibility)
3. 協(xié)作(Collaborator)
一個類代表許多類似的對象。而對象是系統(tǒng)模型化中關(guān)注的事物。他們可以是一個人、地方、事情、或任何對系統(tǒng)有重要性的概念。類名一般列在CRC卡的頂部。
職責是類需要知道或做的任何事物。這些職責是類自身所知的知識,或類在執(zhí)行時所需的知識。
協(xié)作是指為獲取消息,或協(xié)助執(zhí)行活動的其他類。在特定情形下,與指定的類按一個設(shè)想共同完成一個(或許多)步驟。協(xié)作的類順著CRC卡的右邊排列。
CRC模型是CRC卡的集合,它代表一個應(yīng)用域或問題域的全部或一部分。CRC模型是最普遍的用戶,其中的白皮書地址是用于收集和定義一個面向?qū)ο髴?yīng)用的用戶需求。圖中展示了一個航運/存貨控制系統(tǒng)的CRC模型例子,展示的CRC卡將被放在一張書桌或工作桌上。注意卡的放置:相互協(xié)作的卡是彼此接近的,無關(guān)系的卡不能放在附近。
下面我們來談?wù)勅绾蝿?chuàng)造一個CRC模型的?有六個步驟:
1、 CRC模型組一起加入(模型組包括相關(guān)的客戶領(lǐng)域人員、設(shè)計者、記錄員、系統(tǒng)分析員等)。
2、 安排模型房間。
3、 進行集體自由討論
內(nèi)容根據(jù)此CRC模型的系統(tǒng)目標進行,如系統(tǒng)是為誰開發(fā)的?那些商業(yè)業(yè)務(wù)需要這個系統(tǒng)的何種支持?工作時需要什么信息?……總之盡量按能達到系統(tǒng)要求實現(xiàn)的目標進行,包括進行活動時對資源、條件、活動及人員的要求。
4、 講解CRC模型技術(shù)(完成集體討論后,設(shè)計者將描述CRC模型過程。通常需要花費十至十五分鐘,該過程包括創(chuàng)造幾個CRC卡范例,范例參考上圖)。
5、 重復地執(zhí)行CRC模型步驟。
6、 執(zhí)行用例情景試驗
用戶情景試驗是一個任務(wù)過程模式,其中用戶們將積極地參與以保證需求是準確的。基本的思想是一組商業(yè)領(lǐng)域?qū)<遥ㄒ簿褪强蛻舴剑O(shè)計者,系統(tǒng)分析員一步步通過一系列的用例證實CRC模能準確地反映出用戶的需求。
其實說白了,CRC模型就是一種溝通方式,客戶方與開發(fā)方如何通過這種有效的、易實現(xiàn)、易操作的方式建立一個能描述準確的、雙方達成共識的系統(tǒng)需求。CRC建模因為用戶積極參與到模型的定義中,他們對工作的滿意度就會增加,并與開發(fā)者們并肩創(chuàng)造這個CRC模型,通過這個一連串的模型卡,雙方對待建的系統(tǒng)需求目標達成共識。當然CRC模型也存在一定的缺點,CRC模型只是一個面向?qū)ο髴?yīng)用的用戶需求定義的一部分。你也應(yīng)該考慮到用例,原型,和正式的需求文檔。是否要使用CRC建模,就根據(jù)項目、企業(yè)、客戶自身存在和所需的條件而定了。
本博客為學習交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請注明出處,如有版權(quán)問題請及時通知。由于博客時間倉促,錯誤之處敬請諒解,有任何意見可給我留言,愿共同學習進步。