M320 Objektorientiert Programmieren

KompetenzbandHZBeginner (B)Intermediate (I)Advanced (A)
A – Objektorientiertes Design erstellen1A1B: Ich kann aus einer einfachen Situationsbeschreibung mögliche Klassenkandidaten, Attribute und Methoden ableitenA1I: Ich kann unter Berücksichtigung von Delegation mögliche Klassenkandidaten, Attribute und Methoden aus einer Situationsbeschreibung ermitteln und abbildenA1A: Ich kann komplexere Situationsbeschreibungen analysieren und Klassenkandidaten, Attribute und Methoden in einer Vererbungshierarchie abbilden
B – Objektorientiert modellieren2B1B: Ich kann den Aufbau einer Applikation anhand vorhandener Unterlagen interpretieren und erläutern (z.B. UML-Diagramme)B1I: Ich kann den Aufbau einer Software modellieren (z.B. Klassen-, Aktivitäten- und Sequenzdiagramm)B1A: 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,3C1B: Ich kann Klassen unter Verwendung von Konstruktoren und Methoden definieren und Objekte instanziierenC1I: Ich kann ein- und zweiseitige Beziehungen gemäss dem statischen Entwurf implementierenC1A: Ich kann Interaktionen zwischen Objekten unter Berücksichtigung des dynamischen Entwurfs umsetzen (z.B. Delegation)
D – Objektorientiert mit Vererbung implementieren1,2,3D1B: Ich kann Klassen und deren Super-Klassen implementieren und deren Objekte instanziierenD1I: Ich kann Methoden in den Sub-Klassen ergänzen oder überschreiben, um die Fähigkeiten der Klasse zu erweitern oder anzupassenD1A: 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,3D2B: Ich kann eigene Klassen unter Nutzung von Interfaces und abstrakten Klassen aus Bibliotheken implementierenD2I: Ich kann eigene abstrakte Klassen oder Interfaces gemäss Entwurf implementierenD2A: Ich kann Lösungsansätze für komplexe Problemstellungen durch Anwendung der Polymorphie umsetzen
E – Qualitätssicherung4E1B: Ich kann Code-Konventionen anwenden und den Quellcode entsprechend implementierenE1I: Ich kann Code in einer Codereview-Sitzung auf dessen Qualität überprüfenE1A: Ich kann die Qualität von Code anhand von automatisierten Tests und Review-Ergebnissen beurteilen und begründete Verbesserungen vorschlagen
2E2B: Ich kann den Zweck eines Software-Dokumentationswerkzeugs erklären und dieses einsetzen (z.B. Tags anwenden, Dokumentation generieren)E2I: Ich kann Software mit Hilfe eines Dokumentationswerkzeugs dokumentieren (z.B. Tags anwenden, Dokumentation generieren)E2A: 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.

KompetenzbandHZBeginner (B)Intermediate (I)Advanced (A)
X - Exceptionhandlingnicht vorhandenX1B: Ich kann bei der Benutzung von Methoden Exceptions abfangen und behandelnX1I: Ich kann in meinen Implementierungen im Fehlerfall geeignete Exceptions werfenX1A: Ich kann für eine Applikation die Fehlerbehandlung einheitlich umsetzen
Änderung vorschlagen GitHub