Aus einer Klasse des Diagramms wird nicht automatisch ein fertiges Programm, aber ihr Java-naher Entwurf lässt sich systematisch ableiten: Attribute werden zu Feldern, der Konstruktor übernimmt die geplante Initialisierung, und Methodensignaturen werden zu öffentlichen oder internen Operationen. Eine öffentliche Top-Level-Klasse muss in einer gleichnamigen .java-Datei liegen. Getrennte Dateien stehen deshalb nicht für zerlegten Text, sondern für getrennte Verantwortlichkeiten.
Der Vergleich mit einem E3-nahen Datenbestand beginnt erst an dieser Stelle, weil er eine Implementationsform beurteilt, nicht die Modellentscheidung begründet. Titel, Inventarnummer und Verfügbarkeit können zunächst in parallelen Arrays liegen. Solange jede Bearbeitung dieselben Indexplätze in allen Arrays trifft, lässt sich ein einzelnes Medium finden. Beim Sortieren, Löschen oder Ergänzen muss diese Kopplung jedoch jedes Mal von außen gesichert werden. Ein vertauschter Index verbindet dann etwa einen Buchtitel mit dem Zustand eines Films. Die Klasse ist nicht die technische Reparatur dieser Arrays, sondern die Konsequenz der zuvor getroffenen Entscheidung, Zustand und Verhalten eines Gegenstands gemeinsam zu modellieren.
// Unvollständiges Fragment: E3-Datenausschnitt ohne Klasse und main-Methode.
String[] titel = {"Tschick", "Die Welle"};
String[] inventarNummern = {"B-2048", "F-0312"};
boolean[] verfuegbar = {true, false};
// Der Index 0 beschreibt nur dann ein Medium,
// wenn alle drei Arrays denselben Platz meinen.
Im schulischen Mehrdateienprojekt wird deshalb jede öffentliche Klasse in einer eigenen gleichnamigen Datei geführt: Eine Klasse Medium gehört so in Medium.java; eine spätere Klasse Ausleihe erhält ihre eigene Datei. Main oder eine Testklasse erzeugt und verbindet Objekte und stößt ihr Zusammenspiel an; fachliche Zuständigkeiten liegen in den modellierten Klassen. Beziehungen aus dem UML-Modell werden durch Typverwendung, gespeicherte Referenzattribute und Methodenaufrufe implementiert. Beim Kompilieren werden die Dateien gemeinsam geprüft; die getrennten Dateiregister des Java-Werkzeugs bilden genau diese Projektarchitektur ab. Wie die Methoden intern arbeiten, entscheidet der Entwurf nicht vollständig, sondern erst die Implementation.
Damit wird die aus E4 bekannte Projektarbeit fachlich präzisiert: Aus Projektziel und Produktgrenze werden Modellzweck und Systemgrenze, aus Anforderungen überprüfbare Entscheidungen in UML und Java. Tests und Reviews prüfen Zustandsübergänge sowie Objektzusammenarbeit und können eine begründete Modellrevision auslösen. Klassenverantwortung meint dabei keine menschliche Projektrolle, sondern die Verantwortung eines modellierten Objekttyps.