M320 Objektorientiert Programmieren

KompetenzbandHZGrundlagenFortgeschrittenErweitert
A – Objektorientiertes Design erstellen1A1G: Ich kann aus einer einfachen Situationsbeschreibung mögliche Klassenkandidaten, Attribute und Methoden ableitenA1F: Ich kann unter Berücksichtigung von Delegation mögliche Klassenkandidaten, Attribute und Methoden aus einer Situationsbeschreibung ermitteln und abbildenA1E: Ich kann komplexere Situationsbeschreibungen analysieren und Klassenkandidaten, Attribute und Methoden in einer Vererbungshierarchie abbilden
B – Objektorientiert modellieren2B1G: 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 implementieren1,2,3C1G: Ich kann Klassen unter Verwendung von Konstruktoren und Methoden definieren und Objekte instanziierenC1F: Ich kann ein- und zweiseitige Beziehungen gemäss dem statischen Entwurf implementierenC1E: Ich kann Interaktionen zwischen Objekten unter Berücksichtigung des dynamischen Entwurfs umsetzen (z.B. Delegation)
D – Objektorientiert mit Vererbung implementieren1,2,3D1G: Ich kann Klassen und deren Super-Klassen implementieren und deren Objekte instanziierenD1F: Ich kann Methoden in den Sub-Klassen ergänzen oder überschreiben, um die Fähigkeiten der Klasse zu erweitern oder anzupassenD1E: 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,3D2G: Ich kann eigene Klassen unter Nutzung von Interfaces und abstrakten Klassen aus Bibliotheken implementierenD2F: Ich kann eigene abstrakte Klassen oder Interfaces gemäss Entwurf implementierenD2E: Ich kann Lösungsansätze für komplexe Problemstellungen durch Anwendung der Polymorphie umsetzen
E – Qualitätssicherung4E1G: Ich kann Code-Konventionen anwenden und den Quellcode entsprechend implementierenE1F: Ich kann Code in einer Codereview-Sitzung auf dessen Qualität überprüfenE1E: Ich kann die Qualität von Code anhand von automatisierten Tests und Review-Ergebnissen beurteilen und begründete Verbesserungen vorschlagen
2E2G: 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)

Die Handlungsziele erwähnen Exceptions und Exceptionhandling nicht, die Autoren der Kompetenzmatrix erachten dieses Thema allerdings als wichtig.

KompetenzbandHZGrundlagenFortgeschrittenErweitert
X - Exceptionhandlingnicht vorhandenX1G: Ich kann bei der Benutzung von Methoden Exceptions abfangen und behandelnX1F: Ich kann in meinen Implementierungen im Fehlerfall geeignete Exceptions werfenX1E: Ich kann für eine Applikation die Fehlerbehandlung einheitlich umsetzen
Änderung vorschlagen GitHub