CRC karty (zkratka z Class-Responsibility-Collaboration,tj. třída-zodpovědnost-spolupráce) jsou nástrojem používaném při návrhu objektově orientovaného softwaru. Jedná se o jednoduchou techniku používanou při brainstormingu, kdy se s pomocí procházení scénářů tým snaží definovat jaké se budou v systému vyskytovat třídy a jak budou interagovat.

Vzhled editovat

CRC karta není nic jiného než obyčejný kartotéční lístek, který obsahuje záhlaví se jménem třídy, jmény jejích podtříd a nadtříd a dva sloupce. Levý se zodpovědnostmi třídy a pravý pro jména tříd, s jejichž pomocí bude třída tuto zodpovědnost realizovat.

Tvorba editovat

Karty jsou vytvářeny při brainstormingových sezeních. Jako počátek lze vzít specifikaci programu a z podstatných jmen vytvořit třídy a ze sloves odpovědnosti. Další karty, zodpovědnosti a vazby mezi třídami (stejně jako změny v jichž hotových kartách) se pak odhalí při procházení scénářů a diskuse nad nimi.

Používání malých karet udržuje komplexitu návrhu na minimu. Nutí zabývat se zásadními věcmi a zabraňuje zabřednutí do přílišných detailů ve chvíli, kdy takové detaily jsou spíše kontraproduktivní. Také nutí návrháře, aby třídám nedával příliš mnoho zodpovědností. Díky tomu, že jsou karty malé, lze je snadno rozložit například na stole a přerovnávat je podle potřeba při diskusi s ostatními členy týmu.

CRC karty jsou výtvorem Warda Cunninghama.

Externí odkazy editovat