Az osztály-felelősség-együttműködés kártyák (angolul class-responsibility-collaboration (CRC)) ötletbörze eszközök, amelyeket az objektumorientált szoftverek tervezéséhez használnak. Eredetileg Ward Cunningham és Kent Beck javasolta oktatási eszközként, de a szakértő programtervezők körében is népszerűekMartin Fowler, UML Distilled, chapter 4 és a extrém programozási pártolói is ajánlják.A concise introduction at extremeprogramming.org Martin Fowler a CRC-kártyákat az UML szekvenciadiagram életképes alternatívájaként írta le az objektum-interakció és együttműködés dinamikájának megtervezéséhez.
A CRC-kártyákat általában indexkártyákból hozzák létre. Az ötletbörze tagjai egy-egy CRC-kártyát használnak, amelyekre adatokat írnak a terv minden egyes osztályáról/ objektumáról. A kártyát három részre osztják:
A kártya tetején az osztály neve Bal oldalon az osztály felelőssége Jobb oldalon együttműködők (más osztályok), amellyel az osztály interakcióba lép a kötelezettségeinek teljesítése érdekében
Kis kártyák használatával a terv bonyolultsága minimális szinten tartható. Segítségével a programtervezők összpontosíthatnak az osztályok lényegére és megakadályozza őket, hogy belemerüljenek a részletekbe, amikor azok még nem hasznosak. Ezenfelül elbátortalanít attól, hogy egy osztálynak túl sok felelősséget adjanak. Mivel a kártyák hordozhatóak, ezért könnyedén kirakhatóak egy asztalra és a terv megbeszélése közben átrendezhetőek.
CRC-kártyák létrehozása Egy CRC-kártya létrehozásához először is egy forgatókönyvvel kell előállni, amely megállapítja, hogy kik a fő szereplők és mik a szereplők által végrehajtott műveletek. Csak az adott helyzetben előforduló műveletek és szereplők legyenek benne. A főneveknek kellene az osztály nevekké, az igéknek pedig az osztály felességekké válniuk, az együttműködők pedig a többi osztályok, amelyek azzal az osztállyal interakcióba lép.
Jegyzetek
Fordítás
További információk A Laboratory For Teaching Object-Oriented Thinking Kent Beck és Ward Cunningham papírja A HotDraw CRC leírása Tömör bevezetés az extremeprogramming.org oldalon Egy egyszerű online CRC-szerkesztő
Kapcsolódó szócikkek Objektumorientált tervezés Unified Modeling Language
Kategória:Extrém programozás Kategória:Szoftverfejlesztés