| A – Objektorientiertes Design erstellen | 1 | A1G: Ich kann aus einer einfachen Situationsbeschreibung mögliche Klassenkandidaten, Attribute und Methoden ableiten | A1F: Ich kann unter Berücksichtigung von Delegation mögliche Klassenkandidaten, Attribute und Methoden aus einer Situationsbeschreibung ermitteln und abbilden | A1E: Ich kann komplexere Situationsbeschreibungen analysieren und Klassenkandidaten, Attribute und Methoden in einer Vererbungshierarchie abbilden |
| B – Objektorientiert modellieren | 2 | B1G: Ich kann den Aufbau einer Applikation anhand vorhandener Unterlagen interpretieren und erläutern (z.B. UML-Diagramme) | B1F: Ich kann den Aufbau einer Software modellieren (z.B. Klassen-, Aktivitäten- und Sequenzdiagramm) | B1E: Ich kann das Modell einer Software analysieren, kritische Punkte erkennen und Korrekturen vorschlagen (z.B. statische und dynamische Aspekte, Vererbung, Assoziationen) |
| C – Objektorientiert implementieren | 1,2,3 | C1G: Ich kann Klassen unter Verwendung von Konstruktoren und Methoden definieren und Objekte instanziieren | C1F: Ich kann ein- und zweiseitige Beziehungen gemäss dem statischen Entwurf implementieren | C1E: Ich kann Interaktionen zwischen Objekten unter Berücksichtigung des dynamischen Entwurfs umsetzen (z.B. Delegation) |
| D – Objektorientiert mit Vererbung implementieren | 1,2,3 | D1G: Ich kann Klassen und deren Super-Klassen implementieren und deren Objekte instanziieren | D1F: Ich kann Methoden in den Sub-Klassen ergänzen oder überschreiben, um die Fähigkeiten der Klasse zu erweitern oder anzupassen | D1E: Ich kann eine Vererbungshierarchie entwerfen und dabei gezielt entscheiden, welche Attribute und Methoden in der Super-Klasse und welche in den Sub-Klassen angesiedelt werden |
| 1,2,3 | D2G: Ich kann eigene Klassen unter Nutzung von Interfaces und abstrakten Klassen aus Bibliotheken implementieren | D2F: Ich kann eigene abstrakte Klassen oder Interfaces gemäss Entwurf implementieren | D2E: Ich kann Lösungsansätze für komplexe Problemstellungen durch Anwendung der Polymorphie umsetzen |
| E – Qualitätssicherung | 4 | E1G: Ich kann Code-Konventionen anwenden und den Quellcode entsprechend implementieren | E1F: Ich kann Code in einer Codereview-Sitzung auf dessen Qualität überprüfen | E1E: Ich kann die Qualität von Code anhand von automatisierten Tests und Review-Ergebnissen beurteilen und begründete Verbesserungen vorschlagen |
| 2 | E2G: Ich kann den Zweck eines Software-Dokumentationswerkzeugs erklären und dieses einsetzen (z.B. Tags anwenden, Dokumentation generieren) | E2F: Ich kann Software mit Hilfe eines Dokumentationswerkzeugs dokumentieren (z.B. Tags anwenden, Dokumentation generieren) | E2E: Ich kann die Kommentare in einer Software hinterfragen und Verbesserungen vorschlagen (z.B. Kommentare durch bessere Struktur vermeiden, Clean-Code-Regeln anwenden) |