Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

crc [2010/10/24 13:57] (aktuell)
Christian Mann angelegt
Zeile 1: Zeile 1:
 +== CRC steht für ==
 +  * Class
 +  * Responsibility
 +  * Collaboration
 +
 +Auf der OOPSLA '89 wurde von Kent Beck & Ward Cunningham unter dem Titel "A Laboratory for teaching Object-Oriented Thinking" ein Verfahren vorgestellt, in dessen Rahmen objektorientiertes Design mittels Rollenspielen erstellt wird. Hierbei verkörpern die Teilnehmer eine (oder auch mehrere) Klassen, die jeweils auf Karteikarten verzeichnet werden. Eine Karte stellt eine Klasse bzw. eine bzw. (pars pro toto) alle Instanzen der Klasse dar.
 +
 +Auf jeder Karte steht im Kopf der Klassenname ("Class"); darunter werden zwei Spalten angelegt, deren eine (links) die Verantwortlichkeiten der = Nachrichten an die Klasse ("Responsibilitities") auflistet, wogegen in der rechten Spalte eingetragen wird, mit welchen Klassen/Objekten die Klasse zur Erfüllung der Verantwortlichkeit zusammenarbeiten muss ("Collaborations").
 +
 +Zwischen Klassennamen und den anderen beiden Feldern können als Erweiterung optional Ober- und Unterklassen verzeichnet werden.
 +
 +{{CRC.jpg}}
 +
 +In der Sitzung wird nun ein konkretes Szenario solange durchgespielt (d.h. die Teilnehmer "senden" einander Nachrichten), bis sich die Verantwortlichkeiten & Kollaborationen stabilisiert haben. Das Endergebnis wird protokolliert (etwa in einem [[Unified Modeling Language | UML]]-Sequenzdiagramm...) -- und fertig ist mein Design!
 +
 +
 +Erste "große" Anwendung fand diese Methode in Wirfs-Brocks "Responsibility Driven Design" (RDD).
 +
 +Vor allem [[Agile Prozesse]] (und dort wiederum vor allem [[Extreme Programming | XP]]) haben später dieses Vorgehen -- ungeachtet des ursprünglich eher didaktischen Hintergrundes -- als "Paper Case" adoptiert...
 +
 +
 +
 +Der Artikel von Cunningham & Beck findet sich wiederabgedruckt in:\\ "Kent Beck's Guide to Better Smalltalk. A _Sorted_ Collection" (Cambridge University Press, 1999)
 +
 + --- //[[dr.mann@ipponsoft.de|Christian Mann]] 2010/10/24 13:54//
 
crc.txt · Zuletzt geändert: 2010/10/24 13:57 von Christian Mann
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki