Frage

Ich habe immer gefragt worden, wie die Leute verwenden CRC (Klasse responsiblity Zusammenarbeit) -Karten. Ich habe über sie in Büchern zu lesen, fand vage Informationen über das Internet, aber nie begriffen es wirklich. Ich glaube, jemand sollte ein YouTube-Video zeigt eine Sitzung mit CRC-Karten machen, da eines meiner Bücher beschrieben, wie sehr hart seinen in Text zu formulieren, dass es sollte „es von jemandem, der bereits Meister angelernt“ werden. Leider weiß ich niemanden hier in der Nähe, die CRC-Karten verwendet, und ich möchte mehr erfahren.

UPDATE

Alle Links zu Videos, die Menschen mit dieser Technik erarbeiten würden geschätzt.

War es hilfreich?

Lösung

Ich werde versuchen, eine Antwort zu geben. So CRC-Karten werden für die Modellierung in einer objektorientierten Umgebung zu bekommen, ein besseres Verständnis des Systems im Allgemeinen verwendet, die entwickelt werden muss (aber, dass ich denke, Sie wissen schon). CRC-Karten kommen ganz am Ende, wenn Sie kurz vor der tatsächlichen Umsetzung kommen. Die verschiedenen Schritte, dieses Niveau zu erreichen, könnte die folgende sein:

  1. Der Ausgangspunkt ist die Forderung elicitation zu tun. Die Einbeziehung der Kunden frühzeitig und kontinuierlich hier vorgeschlagen wird (werfen Sie einen Blick auf Agile Ansätze, das heißt Extreme Programming)
  2. Die Anforderungen können dann entweder mit Use Case-Diagramme (UML) oder mit User Stories (agile Extreme Programming-Ansatz) modelliert werden. Das Hauptproblem hier ist, die richtigen beteiligten Objekte zu finden. Das hängt sehr stark von der Domain, die Sie sind in, natürlich. Wenn Sie den „harten“ Weg zu gehen, können Sie Techniken wie „Nomen Extraktion“ gelten. So können Sie das Spezifikationsdokument analysieren und alle Substantive extrahieren (einschließlich Verbund Namen und solche mit Adjektiven). Analysieren Sie alle von ihnen und verwerfen die irrelevante.
  3. Wenn Sie die richtigen Substantive haben -> Objekte können Sie beginnen Ihre CRC-Karten zu erstellen. Also, was ist in einer CRC-Sitzung durchgeführt? Die Hauptaufgabe ist es zu finden und die Aufgaben Ihrer (vorher) gefundenen Objekte zuweisen, die dann auf kleinen Karteikarten weglegen (unsere CRC-Karten). „Aufgaben“ sind vor allem die Kernfunktionalitäten eines bestimmten Objekts und der „Zusammenarbeit“ Teil sind die benötigten andere Objekte für die Erfüllung bestimmter Funktionen (das sind die Abhängigkeiten zwischen den verschiedenen Objekten im Modell). Wichtige Punkte für die Aufgaben zuweisen, dass die Verantwortlichkeit auch auf dem gesamten System in irgendeiner Art von ausgewogener Weise verteilt sind. Ein weiterer sehr wichtiger Punkt ist, Überschneidungen von Verantwortlichkeiten zwischen den Objekten zu vermeiden (dies ist, wo die CRC-Karten-Hilfe).
    eine CRC-Sitzung sollte mit einem Brainstorming, mit einer aktiven Diskussion unter den Entwicklern starten und es sollte auf durchgeführt werden die tatsächlichen Karteikarten direkt an.

Ich hoffe, ich konnte irgendwie helfen.

Grüße, Juri

Andere Tipps

Es ist schwer, in einem SO beantworten zusammenzufassen, aber ich werde es versuchen. Eine der Herausforderungen der Gestaltung Objekte balanciert aus einer Gesamtperspektive Denken mit aus der Perspektive eines einzelnen Objekts zu denken. Sie müssen die Gesamtperspektive die Berechnung abgeschlossen zu bekommen, aber Sie müssen die einzelnen Objekt Perspektive, um effektiv die Logik und Daten unterteilen.

Die Aufrechterhaltung dieses Gleichgewicht ist, wo CRC-Karten kommen in. Wenn sie dort auf dem Tisch sitzen, erhalten Sie als Ganzes bei der Berechnung zu suchen. Wenn Sie eine einzelne Karte abholen, aber sind Sie körperlich, kinästhetisch ermutigt, den Standpunkt, dass eine Objekt zu nehmen - ich habe dieses kleine Stück dieser Berechnung mit begrenzten Ressourcen zu tun, wie soll ich es tun geht?

Im Laufe der Zeit die Fähigkeit, gleichzeitig beide Perspektiven zu halten scheint in das Gehirn zu tränken. Immer weniger wird auf die Karten geschrieben. Dann sind die Karten leer. Nach einer Weile zeigen die Menschen nur zu, wo die Karte sein würde, wenn sie einen leeren ein vom Stapel nehmen würde stören. Schließlich haben die Menschen die Vorteile des Denkstiles ohne Karten überhaupt zu benötigen. Wenn sie mit sprechen jemand, der das Gleichgewicht nicht gemeistert hat, reelle Zahlen Karten herausziehen kann eine nützliche Kommunikation sein helfen, though.

Die größte Schwäche, die ich mit den Karten zu finden, ist der Mangel an Feedback. Sie können sich über täuschen, wie der Code ausfallen wird. Ich würde vorschlagen, Karten nur bis eine interessante Frage kommt, wenden sich an Tests / Code zur Bestätigung eingeben und dann die Planung wieder aufnehmen.

Werden und ich habe ein Video 15 Jahre oder so vor einer Design-Sitzung, aber ich weiß es nicht überall online finden, und ich habe keine Kopie. Ich bin mir nicht sicher, dass es als Lehrmittel in jedem Fall sinnvoll wäre. Ich weiß nicht, von anderen Videos, aber sie könnte interessant sein, vor allem wenn man mehr verschiedenen Designer-Stile vergleichen bekommt.

zur die Quelle - Kent Beck, Ward Cunningham, je von ihnen gehört?

Ich denke, Ihre Aussage „Ich niemand weiß, um hier die CRC-Karten verwendet“ ziemlich fasst den Stand der CRC-Karten in der Entwicklung. CRC-Karten, meiner Meinung nach, waren ein Schritt auf dem Weg von den traditionellen, planungsgesteuerten Entwicklung agiler Entwicklung. Die Welt hat sich weiterentwickelt. Statt sich auf, wie CRC-Karten zu verwenden, würde ich Techniken untersuchen, wie TDD , die kann Verwendung von Techniken wie UML und CRC-Karten als Zwischen Artefakte machen, aber die auf Code konzentriert und insbesondere auf Tests. Das ist die Richtung, dass die Erfinder von CRC-Karten genommen haben und ich würde empfehlen, dass Sie auch nehmen.

Der einfachste Weg, um sie meiner Meinung nach verwenden, ohne in ein Chaos zu bekommen wenig CRC-Karten in der Datei-Header wie folgt aufschreiben:

///////////////////////
//* CRC CARD
//*  Class: UISliderEvent
//*  Responsability: Event that holds the value and id of a Slider's movement
//*  Collaborators: UISlider, UIEvent
//////////////////////

Dann jedes Mal müssen Sie eine Funktion überprüfen Sie Ihre Karte hinzuzufügen und sicherzustellen, dass Sie nicht brechen eine der Verträge Sie darin angegeben. Wie die plötzlich alle zum Beispiel auf UIMouseEvent abhängig, das ist nirgendwo auf der Karte, so ist es ein no-no es aufzunehmen.

In ihrem Buch Objektgestaltung: Rollen, Verantwortlichkeiten und Kooperationen veröffentlicht 2003 Rebecca Wirfs-Brock & Alan McKean CRC-Karten im Detail diskutieren. Sie betonen den Unterschied es für das gesamte Verfahren macht, dass dies eine sehr taktile Erfahrung sein sollte und es lockert das Denken der Menschen rund um ein physisches Objekt zu vorbei, wenn ein Design / Anforderung zu konkretisieren versucht.

Der Untertitel dieses Kapitels legt nahe, dass die Karten verwendet, ist ein Teil der Phase ‚Sondierungs Design‘, so dass es wahrscheinlich vor tun viel Codierung kommt, aber ich sehe keinen Grund, würden Sie nicht zu ihnen kommen immer wieder in jeder Iteration eines agilen Projekts und erinnert sich, wo Sie dachten, Sie würden, und die Überprüfung, dass, wenn bedarfs sein (als Gruppe natürlich).

Ich glaube ich zu erinnern, dass sie sogar einen Ball durch den Raum legen nahe vorbei, so dass nur die Person, die den Ball zu sprechen ist, hat erlaubt, so ist es vielleicht nicht so sehr die CRC-Karten wie die immer alle in einem Raum über Rollen im Gespräch und Verantwortung von Objekten, was zählt?

Wenn Sie möchten, eine Fallstudie von CRC-Karten in Aktion lesen (zusätzlich zu Kent und Werden ursprüngliches Papier natürlich) hat dann einen Blick auf Das CRC-Kartenbuch .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top