{"id":10870,"date":"2026-02-21T11:49:24","date_gmt":"2026-02-21T03:49:24","guid":{"rendered":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"modified":"2026-02-21T11:49:24","modified_gmt":"2026-02-21T03:49:24","slug":"mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","title":{"rendered":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger"},"content":{"rendered":"<blockquote data-nodeid=\"3344\">\n<p data-nodeid=\"3345\"><em data-nodeid=\"3691\">\u201eDer beste Weg, objektorientierte Gestaltung zu erlernen, ist nicht durch Auswendiglernen von Mustern \u2013 sondern durch das Spielen der Rollen.\u201c<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3346\">In diesem Artikel gehen wir Schritt f\u00fcr Schritt durch eine\u00a0<strong data-nodeid=\"3703\">Schritt-f\u00fcr-Schritt-Einf\u00fchrung in CRC-Karten<\/strong>\u00a0(Klasse\u2013Verantwortung\u2013Zusammenarbeit) anhand eines realen, anf\u00e4ngerfreundlichen Beispiels: eines\u00a0<strong data-nodeid=\"3704\">Bibliotheks-Buchverleih-System<\/strong>. Ob Sie gerade Ihre Reise in die Softwaregestaltung beginnen oder eine Team-Workshop leiten, CRC-Karten bieten eine einfache, leistungsstarke und kooperative Methode, objektorientierte Systeme zu modellieren.<\/p>\n<hr data-nodeid=\"3347\"\/>\n<h2 data-nodeid=\"3348\">\ud83c\udfaf Was sind CRC-Karten?<\/h2>\n<p data-nodeid=\"3349\"><strong data-nodeid=\"3714\">CRC-Karten<\/strong>\u00a0sind eine leichtgewichtige, physische (oder digitale) Modellierungstechnik, die in der objektorientierten Gestaltung verwendet wird. Jede Karte steht f\u00fcr eine\u00a0<strong data-nodeid=\"3715\">Klasse<\/strong>\u00a0und enth\u00e4lt drei zentrale Elemente:<\/p>\n<table data-nodeid=\"3351\">\n<thead data-nodeid=\"3352\">\n<tr data-nodeid=\"3353\">\n<th data-nodeid=\"3355\">Feld<\/th>\n<th data-nodeid=\"3356\">Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3359\">\n<tr data-nodeid=\"3360\">\n<td data-nodeid=\"3361\"><strong data-nodeid=\"3721\">Klasse<\/strong><\/td>\n<td data-nodeid=\"3362\">Der Name der Klasse (z.\u202fB.\u00a0<code data-backticks=\"1\" data-nodeid=\"3723\">Buch<\/code>)<\/td>\n<\/tr>\n<tr data-nodeid=\"3363\">\n<td data-nodeid=\"3364\"><strong data-nodeid=\"3728\">Verantwortlichkeiten<\/strong><\/td>\n<td data-nodeid=\"3365\">Was die Klasse\u00a0<strong data-nodeid=\"3737\">wei\u00df<\/strong>\u00a0oder\u00a0<strong data-nodeid=\"3738\">tut<\/strong><\/td>\n<\/tr>\n<tr data-nodeid=\"3366\">\n<td data-nodeid=\"3367\"><strong data-nodeid=\"3742\">Zusammenarbeit<\/strong><\/td>\n<td data-nodeid=\"3368\">Andere Klassen, mit denen diese Klasse zusammenarbeiten muss<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"3369\">Sie sind besonders effektiv bei\u00a0<strong data-nodeid=\"3757\">Brainstorming<\/strong>,\u00a0<strong data-nodeid=\"3758\">Entwerfen<\/strong>, und\u00a0<strong data-nodeid=\"3759\">validieren<\/strong>Klassengestaltungen fr\u00fch in der Entwicklung \u2014 bevor eine einzige Codezeile geschrieben wird.<\/p>\n<hr data-nodeid=\"3370\"\/>\n<h2 data-nodeid=\"3371\">\ud83d\udcda Fallstudie: Bibliotheks-Buchverleih-System<\/h2>\n<p data-nodeid=\"3372\">Stellen wir uns eine kleine \u00f6ffentliche Bibliothek vor, in der Mitglieder folgendes k\u00f6nnen:<\/p>\n<ul data-nodeid=\"3373\">\n<li data-nodeid=\"3374\">\n<p data-nodeid=\"3375\">Nach B\u00fcchern nach Titel suchen<\/p>\n<\/li>\n<li data-nodeid=\"3376\">\n<p data-nodeid=\"3377\">Verf\u00fcgbare B\u00fccher ausleihen (bis zu einer Grenze)<\/p>\n<\/li>\n<li data-nodeid=\"3378\">\n<p data-nodeid=\"3379\">B\u00fccher zur\u00fcckgeben, wenn sie benutzt wurden<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3380\">Das System muss verfolgen:<\/p>\n<ul data-nodeid=\"3381\">\n<li data-nodeid=\"3382\">\n<p data-nodeid=\"3383\">Welche B\u00fccher ausgeliehen sind<\/p>\n<\/li>\n<li data-nodeid=\"3384\">\n<p data-nodeid=\"3385\">Von wem<\/p>\n<\/li>\n<li data-nodeid=\"3386\">\n<p data-nodeid=\"3387\">Wann sie f\u00e4llig sind<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3388\">Wir werden die\u00a0<strong data-nodeid=\"3774\">CRC-Karten-Methode<\/strong>\u00a0verwenden, um die Klassen in diesem System zu entdecken und zu verfeinern \u2014 Schritt f\u00fcr Schritt.<\/p>\n<hr data-nodeid=\"3389\"\/>\n<h2 data-nodeid=\"3390\">\u2705 Schritt 1: Kandidaten-Klassen finden (Nomen brainstormen)<\/h2>\n<p data-nodeid=\"3391\">Beginnen Sie damit, die Situation zu lesen und\u00a0<strong data-nodeid=\"3781\">Nomen<\/strong>\u00a0\u2014 das sind potenzielle Klassen.<\/p>\n<p data-nodeid=\"3392\">Aus der Beschreibung identifizieren wir:<\/p>\n<ul data-nodeid=\"3393\">\n<li data-nodeid=\"3394\">\n<p data-nodeid=\"3395\">Bibliothek<\/p>\n<\/li>\n<li data-nodeid=\"3396\">\n<p data-nodeid=\"3397\">Mitglied (oder Besucher)<\/p>\n<\/li>\n<li data-nodeid=\"3398\">\n<p data-nodeid=\"3399\">Buch<\/p>\n<\/li>\n<li data-nodeid=\"3400\">\n<p data-nodeid=\"3401\">Ausleihe (oder Verleih)<\/p>\n<\/li>\n<li data-nodeid=\"3402\">\n<p data-nodeid=\"3403\">F\u00e4lligkeitsdatum (m\u00f6glicherweise zu klein)<\/p>\n<\/li>\n<li data-nodeid=\"3404\">\n<p data-nodeid=\"3405\">Bibliothekskarte (k\u00f6nnte Teil des Mitglieds sein)<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3406\">Wir filtern und behalten nur die bedeutungsvollsten heraus:<\/p>\n<blockquote data-nodeid=\"3407\">\n<p data-nodeid=\"3408\">\u2705\u00a0<strong data-nodeid=\"3802\">Mitglied<\/strong>,\u00a0<strong data-nodeid=\"3803\">Buch<\/strong>,\u00a0<strong data-nodeid=\"3804\">Ausleihe<\/strong><\/p>\n<\/blockquote>\n<blockquote data-nodeid=\"3409\">\n<p data-nodeid=\"3410\">\u26a0\ufe0f\u00a0<em data-nodeid=\"3810\">Hinweis: Machen Sie sich keine Sorgen, wenn Sie alle Klassen gleich richtig bekommen \u2014 das ist ja gerade die Sch\u00f6nheit der CRC-Karten. Sie werden die fehlenden Klassen durch Rollenspiel entdecken!<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3411\"\/>\n<h2 data-nodeid=\"3412\">\u270f\ufe0f Schritt 2: Erstellen Sie die ersten CRC-Karten<\/h2>\n<p data-nodeid=\"3413\">Nun weisen wir<strong data-nodeid=\"3821\">Verantwortlichkeiten<\/strong>und<strong data-nodeid=\"3822\">Zusammenarbeit<\/strong>jeder Klasse zu.<\/p>\n<h3 data-nodeid=\"3414\">\ud83d\udcd8\u00a0<strong data-nodeid=\"3827\">Klasse: Buch<\/strong><\/h3>\n<table data-nodeid=\"3416\">\n<thead data-nodeid=\"3417\">\n<tr data-nodeid=\"3418\">\n<th data-nodeid=\"3420\">Verantwortlichkeiten<\/th>\n<th data-nodeid=\"3421\">Zusammenarbeit<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3424\">\n<tr data-nodeid=\"3425\">\n<td data-nodeid=\"3426\">Seinen Titel kennen<\/td>\n<td data-nodeid=\"3427\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3428\">\n<td data-nodeid=\"3429\">Seinen Autor kennen<\/td>\n<td data-nodeid=\"3430\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3431\">\n<td data-nodeid=\"3432\">Seine ISBN kennen<\/td>\n<td data-nodeid=\"3433\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3434\">\n<td data-nodeid=\"3435\">Ob es derzeit verf\u00fcgbar ist<\/td>\n<td data-nodeid=\"3436\">Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3437\">\n<td data-nodeid=\"3438\">Ausgeliehen werden<\/td>\n<td data-nodeid=\"3439\">Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3440\">\n<td data-nodeid=\"3441\">Zur\u00fcckgegeben werden<\/td>\n<td data-nodeid=\"3442\">Ausleihe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3443\">\n<p data-nodeid=\"3444\">\ud83d\udcac\u00a0<em data-nodeid=\"3846\">Das Buch \u201ewei\u00df\u201c nicht, wer es ausgeliehen hat \u2014 es wei\u00df nur, ob eine aktive Ausleihe besteht.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3445\"\/>\n<h3 data-nodeid=\"3446\">\ud83d\udc64\u00a0<strong data-nodeid=\"3851\">Klasse: Mitglied<\/strong><\/h3>\n<table data-nodeid=\"3448\">\n<thead data-nodeid=\"3449\">\n<tr data-nodeid=\"3450\">\n<th data-nodeid=\"3452\">Verantwortlichkeiten<\/th>\n<th data-nodeid=\"3453\">Kooperationspartner<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3456\">\n<tr data-nodeid=\"3457\">\n<td data-nodeid=\"3458\">Name kennen<\/td>\n<td data-nodeid=\"3459\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3460\">\n<td data-nodeid=\"3461\">Mitglieds-ID kennen<\/td>\n<td data-nodeid=\"3462\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3463\">\n<td data-nodeid=\"3464\">Wissen, wie viele B\u00fccher derzeit ausgeliehen sind<\/td>\n<td data-nodeid=\"3465\">Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3466\">\n<td data-nodeid=\"3467\">Ein Buch ausleihen (falls erlaubt)<\/td>\n<td data-nodeid=\"3468\">Buch, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3469\">\n<td data-nodeid=\"3470\">Ein Buch zur\u00fcckgeben<\/td>\n<td data-nodeid=\"3471\">Buch, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3472\">\n<td data-nodeid=\"3473\">Pr\u00fcfen, ob die Ausleihgrenze erreicht ist<\/td>\n<td data-nodeid=\"3474\">Ausleihe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3475\">\n<p data-nodeid=\"3476\">\ud83d\udcac\u00a0<em data-nodeid=\"3870\">Das Mitglied verwaltet sein eigenes Ausleihverhalten und pr\u00fcft die Grenzen \u00fcber die Ausleihe-Klasse.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3477\"\/>\n<h3 data-nodeid=\"3478\">\ud83d\udcc5\u00a0<strong data-nodeid=\"3875\">Klasse: Ausleihe<\/strong><\/h3>\n<table data-nodeid=\"3480\">\n<thead data-nodeid=\"3481\">\n<tr data-nodeid=\"3482\">\n<th data-nodeid=\"3484\">Verantwortlichkeiten<\/th>\n<th data-nodeid=\"3485\">Kooperationspartner<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3488\">\n<tr data-nodeid=\"3489\">\n<td data-nodeid=\"3490\">Aufzeichnen, welches Buch ausgeliehen wurde<\/td>\n<td data-nodeid=\"3491\">Buch<\/td>\n<\/tr>\n<tr data-nodeid=\"3492\">\n<td data-nodeid=\"3493\">Aufzeichnen, welches Mitglied es ausgeliehen hat<\/td>\n<td data-nodeid=\"3494\">Mitglied<\/td>\n<\/tr>\n<tr data-nodeid=\"3495\">\n<td data-nodeid=\"3496\">Ausleihdatum aufzeichnen<\/td>\n<td data-nodeid=\"3497\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3498\">\n<td data-nodeid=\"3499\">F\u00e4lligkeitsdatum berechnen<\/td>\n<td data-nodeid=\"3500\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3501\">\n<td data-nodeid=\"3502\">Wissen, ob es \u00fcberf\u00e4llig ist<\/td>\n<td data-nodeid=\"3503\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3504\">\n<td data-nodeid=\"3505\">Als zur\u00fcckgegeben markieren<\/td>\n<td data-nodeid=\"3506\">Buch<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3507\">\n<p data-nodeid=\"3508\">\ud83d\udcac\u00a0<em data-nodeid=\"3894\">Die Klassen &#8216;Loan&#8217; h\u00e4lt die Beziehung zwischen einem Mitglied und einem Buch, einschlie\u00dflich Zeitangaben.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3509\"\/>\n<h2 data-nodeid=\"3510\">\ud83c\udfad Schritt 3: Rollenspiel einer Szene \u2014 \u201eEin Buch ausleihen\u201c<\/h2>\n<p data-nodeid=\"3511\">Jetzt kommt der lustige Teil:\u00a0<strong data-nodeid=\"3904\">Rollenspiel<\/strong>\u00a0die Szene so, als w\u00e4ren die Karten echte Objekte.<\/p>\n<h3 data-nodeid=\"3512\">\ud83d\udcd6 Szene: Curtis m\u00f6chte ausleihen\u00a0<em data-nodeid=\"3912\">\u201eClean Code\u201c<\/em>, das verf\u00fcgbar ist.<\/h3>\n<p data-nodeid=\"3513\">Lassen Sie uns Schritt f\u00fcr Schritt durchgehen:<\/p>\n<ol data-nodeid=\"3514\">\n<li data-nodeid=\"3515\">\n<p data-nodeid=\"3516\"><strong data-nodeid=\"3947\">Mitglied (Curtis)<\/strong>\u00a0sagt:\u00a0<em data-nodeid=\"3948\">\u201eIch m\u00f6chte \u201aClean Code\u2018 ausleihen.\u201c<\/em><br \/>\n\u2192 Erste \u00dcberpr\u00fcfung:\u00a0<em data-nodeid=\"3949\">\u201eHabe ich bereits weniger als 3 B\u00fccher?\u201c<\/em><br \/>\n\u2192 Fragt\u00a0<strong data-nodeid=\"3950\">Ausleihe<\/strong>:\u00a0<em data-nodeid=\"3951\">\u201eWie viele aktive Ausleihen habe ich?\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3517\">\n<p data-nodeid=\"3518\"><strong data-nodeid=\"3961\">Ausleihe<\/strong>\u00a0antwortet:\u00a0<em data-nodeid=\"3962\">\u201eSie haben 1 aktive Ausleihe \u2192 Sie k\u00f6nnen ausleihen.\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3519\">\n<p data-nodeid=\"3520\"><strong data-nodeid=\"3988\">Mitglied<\/strong>\u00a0sucht das Buch:\u00a0<em data-nodeid=\"3989\">\u201eWo ist \u201aClean Code\u2018?\u201c<\/em><br \/>\n\u2192 Fragt\u00a0<strong data-nodeid=\"3990\">Buch<\/strong>:\u00a0<em data-nodeid=\"3991\">\u201eSind Sie verf\u00fcgbar?\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3521\">\n<p data-nodeid=\"3522\"><strong data-nodeid=\"4013\">Buch<\/strong>\u00a0\u00fcberpr\u00fcft:\u00a0<em data-nodeid=\"4014\">\u201eHabe ich einen aktiven (noch nicht zur\u00fcckgegebenen) Leihvorgang?\u201c<\/em><br \/>\n\u2192 Fragt\u00a0<strong data-nodeid=\"4015\">Leihvorgang<\/strong>:\u00a0<em data-nodeid=\"4016\">\u201eGibt es f\u00fcr mich einen aktiven Leihvorgang?\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3523\">\n<p data-nodeid=\"3524\"><strong data-nodeid=\"4029\">Leihvorgang<\/strong>\u00a0antwortet:\u00a0<em data-nodeid=\"4030\">\u201eNein \u2014 Sie sind verf\u00fcgbar!\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3525\">\n<p data-nodeid=\"3526\"><strong data-nodeid=\"4039\">Mitglied<\/strong>\u00a0erstellt ein neues\u00a0<strong data-nodeid=\"4040\">Leihvorgang<\/strong>\u00a0Objekt:<\/p>\n<ul data-nodeid=\"3527\">\n<li data-nodeid=\"3528\">\n<p data-nodeid=\"3529\">Verkn\u00fcpft mit diesem\u00a0<strong data-nodeid=\"4049\">Buch<\/strong>\u00a0und\u00a0<strong data-nodeid=\"4050\">Mitglied<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"3530\">\n<p data-nodeid=\"3531\">Legt Ausleihdatum = heute fest<\/p>\n<\/li>\n<li data-nodeid=\"3532\">\n<p data-nodeid=\"3533\">Berechnet F\u00e4lligkeitsdatum = heute + 14 Tage<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3534\">\n<p data-nodeid=\"3535\"><strong data-nodeid=\"4062\">Buch<\/strong>\u00a0wird aktualisiert:\u00a0<em data-nodeid=\"4063\">\u201eJetzt habe ich einen aktiven Leihvorgang \u2192 Ich bin nicht mehr verf\u00fcgbar.\u201c<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3536\">\u2705\u00a0<strong data-nodeid=\"4069\">Ergebnis<\/strong>: Der Ausleihvorgang f\u00fchlt sich nat\u00fcrlich, dezentral und logisch an.<\/p>\n<hr data-nodeid=\"3537\"\/>\n<h2 data-nodeid=\"3538\">\ud83d\udd04 Schritt 4: Ein weiterer Szenario \u2014 \u201eEin Buch zur\u00fcckgeben\u201c<\/h2>\n<h3 data-nodeid=\"3539\">\ud83d\udcd6 Szenario: Curtis gibt zur\u00fcck\u00a0<em data-nodeid=\"4080\">\u201eSauberer Code\u201c<\/em><\/h3>\n<ol data-nodeid=\"3540\">\n<li data-nodeid=\"3541\">\n<p data-nodeid=\"3542\"><strong data-nodeid=\"4094\">Mitglied (Curtis)<\/strong>\u00a0sagt:\u00a0<em data-nodeid=\"4095\">\u201eIch m\u00f6chte das Buch \u201aClean Code\u2018 zur\u00fcckgeben.\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3543\">\n<p data-nodeid=\"3544\"><strong data-nodeid=\"4108\">Mitglied<\/strong>\u00a0findet die passende\u00a0<strong data-nodeid=\"4109\">Ausleihe<\/strong>\u00a0(wahrscheinlich durch Abfrage von<strong data-nodeid=\"4110\">Ausleihe<\/strong>\u00a0mit dem Buch und dem Mitglied).<\/p>\n<\/li>\n<li data-nodeid=\"3545\">\n<p data-nodeid=\"3546\"><strong data-nodeid=\"4119\">Ausleihe<\/strong>\u00a0markiert sich als\u00a0<em data-nodeid=\"4120\">zur\u00fcckgegeben<\/em>.<\/p>\n<\/li>\n<li data-nodeid=\"3547\">\n<p data-nodeid=\"3548\"><strong data-nodeid=\"4134\">Ausleihe<\/strong>\u00a0teilt mit\u00a0<strong data-nodeid=\"4135\">Buch<\/strong>:\u00a0<em data-nodeid=\"4136\">\u201eSie sind nun wieder verf\u00fcgbar.\u201c<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3549\">\u2705\u00a0<strong data-nodeid=\"4142\">Sauber, klar und koh\u00e4rent<\/strong>\u00a0\u2014 keine Klasse f\u00fchrt Arbeit au\u00dferhalb ihrer Verantwortung aus.<\/p>\n<hr data-nodeid=\"3550\"\/>\n<h2 data-nodeid=\"3551\">\ud83d\udd0d Schritt 5: Verbessern und fehlende Klassen hinzuf\u00fcgen<\/h2>\n<p data-nodeid=\"3552\">Nach der Rollenspiel-\u00dcbung bemerken wir eine\u00a0<strong data-nodeid=\"4151\">L\u00fccke<\/strong>:<\/p>\n<blockquote data-nodeid=\"3553\">\n<p data-nodeid=\"3554\">\u2753\u00a0<em data-nodeid=\"4156\">Wer findet das Buch anhand des Titels?<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3555\">Derzeit\u00a0<strong data-nodeid=\"4178\">Mitglied<\/strong>\u00a0fragt nach\u00a0<strong data-nodeid=\"4179\">Buch<\/strong>\u00a0direkt \u2014 aber\u00a0<strong data-nodeid=\"4180\">Buch<\/strong>\u00a0wei\u00df nicht, wie man sucht!<br \/>\nWir brauchen einen\u00a0<strong data-nodeid=\"4181\">zentrale Koordinatorin<\/strong>.<\/p>\n<h3 data-nodeid=\"3556\">\u2795 Neue Klasse:\u00a0<strong data-nodeid=\"4186\">Bibliothek<\/strong><\/h3>\n<table data-nodeid=\"3558\">\n<thead data-nodeid=\"3559\">\n<tr data-nodeid=\"3560\">\n<th data-nodeid=\"3562\">Verantwortlichkeiten<\/th>\n<th data-nodeid=\"3563\">Kooperationspartner<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3566\">\n<tr data-nodeid=\"3567\">\n<td data-nodeid=\"3568\">F\u00fcge ein neues Buch der Sammlung hinzu<\/td>\n<td data-nodeid=\"3569\">Buch<\/td>\n<\/tr>\n<tr data-nodeid=\"3570\">\n<td data-nodeid=\"3571\">Finde Buch nach Titel<\/td>\n<td data-nodeid=\"3572\">Buch<\/td>\n<\/tr>\n<tr data-nodeid=\"3573\">\n<td data-nodeid=\"3574\">Registriere einen neuen Mitglied<\/td>\n<td data-nodeid=\"3575\">Mitglied<\/td>\n<\/tr>\n<tr data-nodeid=\"3576\">\n<td data-nodeid=\"3577\">Bearbeite Anfrage zum Ausleihen eines Buches<\/td>\n<td data-nodeid=\"3578\">Mitglied, Buch, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3579\">\n<td data-nodeid=\"3580\">Bearbeite R\u00fcckgabe eines Buches<\/td>\n<td data-nodeid=\"3581\">Mitglied, Buch, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3582\">\n<td data-nodeid=\"3583\">Kenne alle aktuellen Ausleihen<\/td>\n<td data-nodeid=\"3584\">Ausleihe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3585\">\n<p data-nodeid=\"3586\">\ud83d\udcac\u00a0<em data-nodeid=\"4205\">Die Bibliothek fungiert als zentraler Knotenpunkt \u2014 sie kennt alle B\u00fccher, alle Mitglieder und alle Ausleihen.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3587\"\/>\n<h3 data-nodeid=\"3588\">\u2728 Aktualisierter Ablauf: \u201eEin Buch ausleihen\u201c mit Bibliothek<\/h3>\n<ol data-nodeid=\"3589\">\n<li data-nodeid=\"3590\">\n<p data-nodeid=\"3591\"><strong data-nodeid=\"4228\">Mitglied<\/strong>\u00a0\u2192\u00a0<strong data-nodeid=\"4229\">Bibliothek<\/strong>:\u00a0<em data-nodeid=\"4230\">\u201eFinde Buch mit dem Titel \u201aClean Code\u2018.\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3592\">\n<p data-nodeid=\"3593\"><strong data-nodeid=\"4241\">Bibliothek<\/strong>\u00a0durchsucht ihre Sammlung und gibt das\u00a0<strong data-nodeid=\"4242\">Buch<\/strong>\u00a0oder\u00a0<code data-backticks=\"1\" data-nodeid=\"4239\">null<\/code>\u00a0falls nicht gefunden).<\/p>\n<\/li>\n<li data-nodeid=\"3594\">\n<p data-nodeid=\"3595\"><strong data-nodeid=\"4256\">Mitglied<\/strong>\u00a0wei\u00df nun, dass das Buch existiert \u2192 fragt\u00a0<strong data-nodeid=\"4257\">Bibliothek<\/strong>:\u00a0<em data-nodeid=\"4258\">\u201eKann ich dieses Buch ausleihen?\u201c<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3596\">\n<p data-nodeid=\"3597\"><strong data-nodeid=\"4263\">Bibliothek<\/strong>\u00a0\u00fcberpr\u00fcft:<\/p>\n<ul data-nodeid=\"3598\">\n<li data-nodeid=\"3599\">\n<p data-nodeid=\"3600\">Ist das Buch verf\u00fcgbar? (\u00fcber\u00a0<code data-backticks=\"1\" data-nodeid=\"4265\">Buch.isVerfuegbar()<\/code>)<\/p>\n<\/li>\n<li data-nodeid=\"3601\">\n<p data-nodeid=\"3602\">Ist das Mitglied unter der Ausleihgrenze? (\u00fcber\u00a0<code data-backticks=\"1\" data-nodeid=\"4268\">Ausleihe.anzahlAktiveAusleihen(Mitglied)<\/code>)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3603\">\n<p data-nodeid=\"3604\">Falls ja \u2192\u00a0<strong data-nodeid=\"4287\">Bibliothek<\/strong>\u00a0erstellt eine neue\u00a0<strong data-nodeid=\"4288\">Ausleihe<\/strong>\u00a0und aktualisiert sowohl\u00a0<strong data-nodeid=\"4289\">Buch<\/strong>\u00a0als auch\u00a0<strong data-nodeid=\"4290\">Ausleihe<\/strong>.<\/p>\n<\/li>\n<li data-nodeid=\"3605\">\n<p data-nodeid=\"3606\"><strong data-nodeid=\"4299\">Buch<\/strong>\u00a0wird nicht mehr verf\u00fcgbar;\u00a0<strong data-nodeid=\"4300\">Ausleihe<\/strong>\u00a0verfolgt die Beziehung.<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3607\">\u2705\u00a0<strong data-nodeid=\"4310\">Jetzt macht der Ablauf Sinn<\/strong>\u00a0\u2014 die\u00a0<strong data-nodeid=\"4311\">Bibliothek<\/strong>\u00a0verwaltet Entdeckung und Koordination.<\/p>\n<hr data-nodeid=\"3608\"\/>\n<h2 data-nodeid=\"3609\">\ud83e\udde9 Endg\u00fcltige CRC-Karten-Zusammenfassung (Einfach f\u00fcr Anf\u00e4nger)<\/h2>\n<table data-nodeid=\"3611\">\n<thead data-nodeid=\"3612\">\n<tr data-nodeid=\"3613\">\n<th data-nodeid=\"3615\">Klasse<\/th>\n<th data-nodeid=\"3616\">Wichtige Verantwortlichkeiten<\/th>\n<th data-nodeid=\"3617\">Wichtige Kooperationspartner<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3621\">\n<tr data-nodeid=\"3622\">\n<td data-nodeid=\"3623\"><strong data-nodeid=\"4319\">Bibliothek<\/strong><\/td>\n<td data-nodeid=\"3624\">Verwaltet B\u00fccher, Mitglieder, Ausleihen; behandelt Ausleihen\/R\u00fcckgaben<\/td>\n<td data-nodeid=\"3625\">Buch, Mitglied, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3626\">\n<td data-nodeid=\"3627\"><strong data-nodeid=\"4325\">Mitglied<\/strong><\/td>\n<td data-nodeid=\"3628\">Kennt pers\u00f6nliche Daten; initiiert Ausleihe\/R\u00fcckgabe<\/td>\n<td data-nodeid=\"3629\">Bibliothek, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3630\">\n<td data-nodeid=\"3631\"><strong data-nodeid=\"4331\">Buch<\/strong><\/td>\n<td data-nodeid=\"3632\">Speichert Metadaten; verfolgt Verf\u00fcgbarkeit<\/td>\n<td data-nodeid=\"3633\">Bibliothek, Ausleihe<\/td>\n<\/tr>\n<tr data-nodeid=\"3634\">\n<td data-nodeid=\"3635\"><strong data-nodeid=\"4337\">Ausleihe<\/strong><\/td>\n<td data-nodeid=\"3636\">Verfolgt die Ausleihgeschichte; berechnet F\u00e4lligkeitsdaten; verwaltet R\u00fcckgabestatus<\/td>\n<td data-nodeid=\"3637\">Mitglied, Buch, Bibliothek<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3638\">\n<p data-nodeid=\"3639\">\u2705\u00a0<strong data-nodeid=\"4353\">Entwurfprinzip<\/strong>: Jede Klasse hat\u00a0<strong data-nodeid=\"4354\">einen klaren Zweck<\/strong>, und die Verantwortlichkeiten sind\u00a0<strong data-nodeid=\"4355\">koh\u00e4rent und gut verteilt<\/strong>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"3640\"\/>\n<h2 data-nodeid=\"3641\">\ud83c\udf1f Warum CRC-Karten so gut funktionieren (Einsteiger-Tipps)<\/h2>\n<table data-nodeid=\"3643\">\n<thead data-nodeid=\"3644\">\n<tr data-nodeid=\"3645\">\n<th data-nodeid=\"3647\">Vorteil<\/th>\n<th data-nodeid=\"3648\">Erkl\u00e4rung<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3651\">\n<tr data-nodeid=\"3652\">\n<td data-nodeid=\"3653\"><strong data-nodeid=\"4362\">Verantwortungsorientiertes Design<\/strong><\/td>\n<td data-nodeid=\"3654\">Zwingt dich zum Nachdenken:\u00a0<em data-nodeid=\"4370\">\u201eWas wei\u00df oder tut diese Klasse?\u201c<\/em>\u00a0anstatt nur Daten zu speichern.<\/td>\n<\/tr>\n<tr data-nodeid=\"3655\">\n<td data-nodeid=\"3656\"><strong data-nodeid=\"4374\">Nat\u00fcrliche Entdeckung fehlender Klassen<\/strong><\/td>\n<td data-nodeid=\"3657\">Rollenspiel zeigt L\u00fccken auf (wie die fehlende\u00a0<code data-backticks=\"1\" data-nodeid=\"4376\">Bibliothek<\/code>) \u2014 keine Vermutungen n\u00f6tig.<\/td>\n<\/tr>\n<tr data-nodeid=\"3658\">\n<td data-nodeid=\"3659\"><strong data-nodeid=\"4381\">Sofortige R\u00fcckmeldung durch Rollenspiel<\/strong><\/td>\n<td data-nodeid=\"3660\">Wenn ein Ablauf unangenehm wirkt, wei\u00df man, dass die Verantwortung am falschen Ort liegt.<\/td>\n<\/tr>\n<tr data-nodeid=\"3661\">\n<td data-nodeid=\"3662\"><strong data-nodeid=\"4388\">Geringer Aufwand &amp; kooperativ<\/strong><\/td>\n<td data-nodeid=\"3663\">Keine komplexen Werkzeuge \u2014 nur Indexkarten, Post-its oder eine Tafel. Ideal f\u00fcr Teams.<\/td>\n<\/tr>\n<tr data-nodeid=\"3664\">\n<td data-nodeid=\"3665\"><strong data-nodeid=\"4393\">Verbindet Anforderungen mit Code<\/strong><\/td>\n<td data-nodeid=\"3666\">Wandelt Benutzerstories in echte Klasseninteraktionen um.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"3667\"\/>\n<h2 data-nodeid=\"3668\">\ud83d\udee0\ufe0f Schnelle Tipps f\u00fcr deine erste CRC-Sitzung<\/h2>\n<ol data-nodeid=\"4729\">\n<li data-nodeid=\"4730\">\n<p data-nodeid=\"4731\"><strong data-nodeid=\"4821\">Verwende physische Karten<\/strong>\u00a0(3\u00d75-Indexkarten oder Post-its) \u2014 es ist interaktiver.<\/p>\n<\/li>\n<li data-nodeid=\"4732\">\n<p data-nodeid=\"4733\"><strong data-nodeid=\"4826\">Eine Klasse pro Karte<\/strong>\u00a0\u2014 halte es einfach.<\/p>\n<\/li>\n<li data-nodeid=\"4734\">\n<p data-nodeid=\"4735\"><strong data-nodeid=\"4831\">Schreibe gro\u00df und gut lesbar<\/strong>\u00a0\u2014 andere sollten es leicht lesen k\u00f6nnen.<\/p>\n<\/li>\n<li data-nodeid=\"4736\">\n<p data-nodeid=\"4737\"><strong data-nodeid=\"4836\">Spiele laut vor<\/strong>\u00a0\u2014 verteile die Karten wie echte Objekte.<\/p>\n<\/li>\n<li data-nodeid=\"4738\">\n<p data-nodeid=\"4739\"><strong data-nodeid=\"4841\">Beginne mit 3\u20136 zentralen Szenarien<\/strong>\u00a0(z.\u202fB. ausleihen, zur\u00fcckgeben, suchen).<\/p>\n<\/li>\n<li data-nodeid=\"4740\">\n<p data-nodeid=\"4741\"><strong data-nodeid=\"4850\">Ziele nicht auf Perfektion<\/strong>\u00a0\u2014 Das Ziel ist\u00a0<strong data-nodeid=\"4851\">Iteration<\/strong>, nicht ein endg\u00fcltiges Design. Verbessern Sie es im Laufe der Zeit.<\/p>\n<\/li>\n<li data-nodeid=\"4742\">\n<p data-nodeid=\"4743\"><strong data-nodeid=\"4856\">Verwenden Sie einfache, dom\u00e4nenspezifische Namen<\/strong>\u00a0\u2014 Vermeiden Sie fachsprachliche Begriffe. Verwenden Sie \u201eMitglied\u201c anstelle von \u201eGast\u201c, falls Ihr Team zustimmt.<\/p>\n<\/li>\n<li data-nodeid=\"4744\">\n<p data-nodeid=\"4745\"><strong data-nodeid=\"4861\">Laden Sie alle zur Teilnahme ein<\/strong>\u00a0\u2014 Selbst Nicht-Programmierer k\u00f6nnen helfen, fehlende Verantwortlichkeiten zu erkennen.<\/p>\n<\/li>\n<li data-nodeid=\"4746\">\n<p data-nodeid=\"4747\"><strong data-nodeid=\"4866\">Zeichnen Sie anschlie\u00dfend ein einfaches Klassendiagramm<\/strong>\u00a0\u2014 Um Beziehungen zu visualisieren und Konsistenz zu \u00fcberpr\u00fcfen.<\/p>\n<\/li>\n<li data-nodeid=\"4748\">\n<p data-nodeid=\"4749\"><strong data-nodeid=\"4871\">Bleiben Sie dabei am\u00fcsiert<\/strong>\u00a0\u2014 Behandeln Sie es wie ein Spiel. Je mehr sich Ihr Team engagiert, desto besser sind die Ergebnisse.<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"4750\"\/>\n<h2 data-nodeid=\"4751\">\ud83d\udd04 Probieren Sie es selbst aus: N\u00e4chste Bereiche zur Erkundung<\/h2>\n<p data-nodeid=\"4752\">Sobald Sie das Bibliothekssystem beherrschen, versuchen Sie, CRC-Karten auf andere f\u00fcr Anf\u00e4nger geeignete Bereiche anzuwenden:<\/p>\n<h3 data-nodeid=\"4753\">\u2615 Kaffeehaus-Bestellsystem<\/h3>\n<ul data-nodeid=\"4754\">\n<li data-nodeid=\"4755\">\n<p data-nodeid=\"4756\">Klassen:\u00a0<code data-backticks=\"1\" data-nodeid=\"4876\">Kunde<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4878\">Bestellung<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4880\">Speisekartenartikel<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4882\">Barista<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4884\">Kasse<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4757\">\n<p data-nodeid=\"4758\">Szenarien: Bestellung aufgeben \u2192 Getr\u00e4nk hinzuf\u00fcgen \u2192 Rabatt anwenden \u2192 Bezahlen \u2192 Beleg ausdrucken<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4759\">\ud83e\ude99 Automat<\/h3>\n<ul data-nodeid=\"4760\">\n<li data-nodeid=\"4761\">\n<p data-nodeid=\"4762\">Klassen:\u00a0<code data-backticks=\"1\" data-nodeid=\"4888\">Automat<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4890\">Produkt<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4892\">M\u00fcnze<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4894\">Ausgabeger\u00e4t<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4896\">Wechselgeldrechner<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4763\">\n<p data-nodeid=\"4764\">Szenarien: M\u00fcnze einwerfen \u2192 Artikel ausw\u00e4hlen \u2192 Produkt ausgeben \u2192 Wechselgeld zur\u00fcckgeben<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4765\">\ud83c\udfae Quiz-Spiel<\/h3>\n<ul data-nodeid=\"4766\">\n<li data-nodeid=\"4767\">\n<p data-nodeid=\"4768\">Klassen:\u00a0<code data-backticks=\"1\" data-nodeid=\"4900\">Quiz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4902\">Frage<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4904\">Spieler<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4906\">Punktestand<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4908\">Spielrunde<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4769\">\n<p data-nodeid=\"4770\">Szenarien: Quiz starten \u2192 Frage beantworten \u2192 Korrektheit pr\u00fcfen \u2192 Endpunktzahl anzeigen<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4771\">\ud83d\ude97 Parkhaus<\/h3>\n<ul data-nodeid=\"4772\">\n<li data-nodeid=\"4773\">\n<p data-nodeid=\"4774\">Klassen:\u00a0<code data-backticks=\"1\" data-nodeid=\"4912\">Parkhaus<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4914\">Auto<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4916\">Parkplatz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4918\">Ticket<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4920\">Tor<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4775\">\n<p data-nodeid=\"4776\">Szenarien: Garage betreten \u2192 Auto abstellen \u2192 Verlassen \u2192 Geb\u00fchr bezahlen \u2192 Ticket abholen<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4777\">Jedes dieser Systeme basiert auf denselben Prinzipien:<\/p>\n<ul data-nodeid=\"4778\">\n<li data-nodeid=\"4779\">\n<p data-nodeid=\"4780\">Nomen identifizieren \u2192 Verantwortlichkeiten zuweisen \u2192 Rollenspiel \u2192 verfeinern \u2192 wiederholen.<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"4781\"\/>\n<h2 data-nodeid=\"4782\">\ud83d\udccc Abschlie\u00dfende Gedanken: CRC-Karten sind mehr als eine Technik \u2014 sie sind eine Einstellung<\/h2>\n<p data-nodeid=\"4783\">Die wahre Kraft der CRC-Karten liegt nicht in den Karten selbst \u2014 sondern in der\u00a0<strong data-nodeid=\"4930\">Konversation<\/strong>die sie ausl\u00f6sen.<\/p>\n<p data-nodeid=\"4784\">Wenn du eine Karte schreibst und sagst,\u00a0<em data-nodeid=\"4940\">\u201eWer macht das?\u201c<\/em>\u00a0oder\u00a0<em data-nodeid=\"4941\">\u201eMit wem muss es sprechen?\u201c<\/em>, denkst du bereits wie ein objektorientierter Designer.<\/p>\n<blockquote data-nodeid=\"4785\">\n<p data-nodeid=\"4786\">\ud83d\udd25\u00a0<strong data-nodeid=\"4947\">Pro-Tipp<\/strong>: Verwende CRC-Karten w\u00e4hrend der Sprintplanung, bei Technologie-Spikes oder sogar in Vorstellungsgespr\u00e4chen, um dein Design-Denken zu zeigen.<\/p>\n<\/blockquote>\n<p data-nodeid=\"4787\">Sie sind nicht nur f\u00fcr Entwickler \u2014 sie sind f\u00fcr\u00a0<strong data-nodeid=\"4953\">jeden<\/strong>\u00a0, der an der Entwicklung von Software beteiligt ist: Produktmanager, Designer, Tester und Studierende.<\/p>\n<hr data-nodeid=\"4788\"\/>\n<h2 data-nodeid=\"4789\">\ud83d\udcce Mehr?<\/h2>\n<p data-nodeid=\"4790\">\ud83d\udc49\u00a0<strong data-nodeid=\"4972\">Lade eine druckbare CRC-Karten-Vorlage herunter<\/strong>\u00a0(PDF oder digital), um sie in deinem n\u00e4chsten Workshop zu verwenden.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4973\">Probiere eine Live-CRC-Sitzung aus<\/strong>\u00a0mit einem Kollegen \u2014 verteile Rollen: \u201eDu bist der Mitglied\u201c, \u201eDu bist das Buch\u201c, usw.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4974\">Teile deine Ergebnisse<\/strong>\u00a0\u2014 teile deine Karten in sozialen Medien mit #CRCcards oder #OODesignJourney.<\/p>\n<hr data-nodeid=\"4791\"\/>\n<h2 data-nodeid=\"4792\">\ud83c\udfc1 Fazit<\/h2>\n<p data-nodeid=\"4793\">Die\u00a0<strong data-nodeid=\"4985\">System zum Ausleihen von B\u00fcchern in einer Bibliothek<\/strong>ist eines der klassischsten und effektivsten Beispiele f\u00fcr CRC-Karten \u2013 nicht, weil es komplex ist, sondern weil es<strong data-nodeid=\"4986\">einfach, nachvollziehbar und aufschlussreich<\/strong>.<\/p>\n<p data-nodeid=\"4794\">Indem man nur folgende Schritte befolgt<strong data-nodeid=\"4992\">f\u00fcnf Schritte<\/strong>\u2013 Brainstorming, Karten erstellen, Rollenspiel, Verfeinern und Iterieren \u2013 k\u00f6nnen Sie:<\/p>\n<ul data-nodeid=\"4795\">\n<li data-nodeid=\"4796\">\n<p data-nodeid=\"4797\">Klassen nat\u00fcrlich entdecken<\/p>\n<\/li>\n<li data-nodeid=\"4798\">\n<p data-nodeid=\"4799\">Verantwortlichkeiten klar zuweisen<\/p>\n<\/li>\n<li data-nodeid=\"4800\">\n<p data-nodeid=\"4801\">Designfehler fr\u00fch erkennen<\/p>\n<\/li>\n<li data-nodeid=\"4802\">\n<p data-nodeid=\"4803\">Ein gemeinsames mentales Modell als Team aufbauen<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4804\">Und am besten von allem? Sie m\u00fcssen kein Senior-Entwickler sein, um es zu tun.<br \/>\nSie brauchen nur Neugier, ein paar Karten und die Bereitschaft zu spielen.<\/p>\n<hr data-nodeid=\"4805\"\/>\n<blockquote data-nodeid=\"4806\">\n<p data-nodeid=\"4807\">\u2705\u00a0<strong data-nodeid=\"5005\">Jetzt ist Ihre Reihe<\/strong>: Nehmen Sie ein paar Post-it-Notizen, w\u00e4hlen Sie ein einfaches System (wie ein Caf\u00e9 oder ein Automat) aus und probieren Sie die CRC-Methode aus.<\/p>\n<p data-nodeid=\"4808\">\ud83d\udccc\u00a0<strong data-nodeid=\"5011\">Denken Sie daran<\/strong>: Gutes Design geht nicht darum, perfekten Code zu schreiben \u2013 es geht darum, die richtigen Fragen zu stellen.<\/p>\n<p data-nodeid=\"4809\">Und mit CRC-Karten stellen Sie bereits diese Fragen.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"4810\"\/>\n<h3 data-nodeid=\"4811\">\ud83d\udccc Bonus: Druckbare CRC-Karten-Vorlage (Textversion)<\/h3>\n<pre data-nodeid=\"4812\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502    [Klassenname]    \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Verantwortlichkeiten:  \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Mitwirkende:     \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n<\/code><\/pre>\n<p data-nodeid=\"4813\">Drucken Sie dies auf 3\u00d75-Karten oder verwenden Sie es in einem digitalen Tool wie Miro, Figma oder Google Slides.<\/p>\n<hr data-nodeid=\"4814\"\/>\n<p data-nodeid=\"4815\">\ud83d\udcda\u00a0<strong data-nodeid=\"5029\">N\u00e4chster Schritt?<\/strong><br \/>\nM\u00f6chten Sie eine vollst\u00e4ndige Anleitung zum<strong data-nodeid=\"5030\">Kaffeehaus-Bestellsystem<\/strong>in derselben CRC-Form?<br \/>\n\ud83d\udc49 Sag einfach ein Wort \u2013 ich schicke Ihnen die n\u00e4chste Fallstudie Schritt f\u00fcr Schritt mit Karten, Szenarien und Rollenspiel!<\/p>\n<p class=\"\" data-nodeid=\"4816\">Viel Spa\u00df beim Gestalten! \ud83c\udfae\ud83e\udde9\ud83d\udcbb<\/p>\n<ul>\n<li data-nodeid=\"655\"><a data-nodeid=\"684\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289\/6518_drawingcrcca.html\">Wie man CRC-Karten in Visual Paradigm zeichnet<\/a>: Dieser Schritt-f\u00fcr-Schritt-Leitfaden enth\u00e4lt Anweisungen zum Erstellen von CRC-Karten mit den speziellen Diagrammierungswerkzeugen der Software.<\/li>\n<li data-nodeid=\"657\"><a data-nodeid=\"698\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289_crccarddiagr.html\">Verst\u00e4ndnis von CRC-Karten-Diagrammen in Visual Paradigm<\/a>: Eine \u00dcbersicht, die erkl\u00e4rt, wie diese Diagramme zur Modellierung objektorientierter Systeme und ihrer Interaktionen verwendet werden.<\/li>\n<li data-nodeid=\"659\"><a data-nodeid=\"710\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/how-to-create-crc-card-diagram\/\">Wie man ein CRC-Karten-Diagramm in Visual Paradigm erstellt<\/a>: Ein detaillierter Leitfaden im Community Circle, der die Erstellung und Anpassung von CRC-Diagrammen abdeckt.<\/li>\n<li data-nodeid=\"661\"><a data-nodeid=\"722\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/\">Einf\u00fchrung in CRC-Diagramme in Visual Paradigm<\/a>: Ein umfassender Leitfaden, der sich auf die Nutzung von CRC-Diagrammen f\u00fcr objektorientierte Gestaltung und umfassende Systemmodellierung konzentriert.<\/li>\n<li data-nodeid=\"663\"><a data-nodeid=\"734\" href=\"https:\/\/forums.visual-paradigm.com\/t\/how-can-i-generate-crc-cards-using-class-diagram\/8733\">Erzeugen von CRC-Karten aus Klassendiagrammen<\/a>: Diese Community-Diskussion untersucht Methoden, bestehende Klassendiagramme zu nutzen, um Karten durch Reverse Engineering automatisch zu generieren.<\/li>\n<li data-nodeid=\"665\"><a data-nodeid=\"746\" href=\"https:\/\/forums.visual-paradigm.com\/t\/creating-crc-card-based-on-class-or-visa-versa\/12361\">Synchronisieren von CRC-Karten mit Klassendiagrammen<\/a>: Eine technische Ressource, die bidirektionales Modellieren diskutiert, um die Konsistenz der Gestaltung zwischen Karten und Klassensystemen sicherzustellen.<\/li>\n<li data-nodeid=\"667\"><a data-nodeid=\"758\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/?format=pdf\">Einf\u00fchrung in CRC-Karten-Diagramme (PDF-Leitfaden)<\/a>: Eine herunterladbare technische Ressource, die die Grundkonzepte und Anwendungen von CRC-Karten in der Systemanalyse erkl\u00e4rt.<\/li>\n<li data-nodeid=\"669\"><a data-nodeid=\"770\" href=\"https:\/\/forums.visual-paradigm.com\/t\/link-between-crc-and-class\/17656\">Herstellen von Verbindungen zwischen CRC-Karten und Klassendiagrammen<\/a>: Dieser Artikel hebt Techniken hervor, um die R\u00fcckverfolgbarkeit und Verkn\u00fcpfung zwischen verschiedenen Modellierungsebenen aufrechtzuerhalten.<\/li>\n<li data-nodeid=\"671\"><a data-nodeid=\"782\" href=\"https:\/\/www.visual-paradigm.com\/VPGallery\/capturing\/CRCCard.html\">CRC-Karten-Vorlage im Visual Paradigm-Galerie<\/a>: Eine Ressource mit einer herunterladbaren Vorlage, die zur Unterst\u00fctzung der fr\u00fchen Phase der objektorientierten Gestaltung gedacht ist.<\/li>\n<li data-nodeid=\"673\"><a data-nodeid=\"794\" href=\"https:\/\/forums.visual-paradigm.com\/t\/crc-cards-moving-from-diagram-to-diagram\/10242\">Verschieben von CRC-Karten zwischen Diagrammen<\/a>: Ein Leitfaden, der beschreibt, wie Karten zwischen verschiedenen Diagrammen \u00fcbertragen werden k\u00f6nnen, w\u00e4hrend die Datenkonsistenz gewahrt bleibt.<\/li>\n<\/ul>\n<p class=\"\" data-nodeid=\"4816\">\n","protected":false},"excerpt":{"rendered":"<p>\u201eDer beste Weg, objektorientierte Gestaltung zu erlernen, ist nicht durch Auswendiglernen von Mustern \u2013 sondern durch das Spielen der Rollen.\u201c<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-10870","post","type-post","status-publish","format-standard","hentry","category-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian\" \/>\n<meta property=\"og:description\" content=\"\u201eDer beste Weg, objektorientierte Gestaltung zu erlernen, ist nicht durch Auswendiglernen von Mustern \u2013 sondern durch das Spielen der Rollen.\u201c\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:site_name\" content=\"Cybermedian\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T03:49:24+00:00\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger\",\"datePublished\":\"2026-02-21T03:49:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"wordCount\":1903,\"articleSection\":[\"Software Engineering\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"url\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"name\":\"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/de\/#website\"},\"datePublished\":\"2026-02-21T03:49:24+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/de\/\",\"name\":\"Cybermedian\",\"description\":\"Jeden Tag eine neue Sache lernen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.cybermedian.com\/de\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_locale":"de_DE","og_type":"article","og_title":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian","og_description":"\u201eDer beste Weg, objektorientierte Gestaltung zu erlernen, ist nicht durch Auswendiglernen von Mustern \u2013 sondern durch das Spielen der Rollen.\u201c","og_url":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_site_name":"Cybermedian","article_published_time":"2026-02-21T03:49:24+00:00","author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"curtis","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger","datePublished":"2026-02-21T03:49:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"wordCount":1903,"articleSection":["Software Engineering"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","url":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","name":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger - Cybermedian","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/de\/#website"},"datePublished":"2026-02-21T03:49:24+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/de\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/de\/"},{"@type":"ListItem","position":2,"name":"Beherrschung der objektorientierten Gestaltung mit CRC-Karten: Ein Einstiegsfallstudie f\u00fcr Anf\u00e4nger"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/de\/#website","url":"https:\/\/www.cybermedian.com\/de\/","name":"Cybermedian","description":"Jeden Tag eine neue Sache lernen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d","name":"curtis","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.cybermedian.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.cybermedian.com\/de\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/posts\/10870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/comments?post=10870"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/posts\/10870\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/media?parent=10870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/categories?post=10870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/de\/wp-json\/wp\/v2\/tags?post=10870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}