| Kompetenzband | HZ | Grundlagen | Fortgeschritten | Erweitert |
|---|---|---|---|---|
| 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) |
Die Handlungsziele erwähnen Exceptions und Exceptionhandling nicht, die Autoren der Kompetenzmatrix erachten dieses Thema allerdings als wichtig.
| Kompetenzband | HZ | Grundlagen | Fortgeschritten | Erweitert |
|---|---|---|---|---|
| X - Exceptionhandling | nicht vorhanden | X1G: Ich kann bei der Benutzung von Methoden Exceptions abfangen und behandeln | X1F: Ich kann in meinen Implementierungen im Fehlerfall geeignete Exceptions werfen | X1E: Ich kann für eine Applikation die Fehlerbehandlung einheitlich umsetzen |
| Code | Ziel (Anfang) | Bloom-Stufe | Stufenname | Schlüsselverben |
|---|---|---|---|---|
| A1G | Ich kann aus einer einfachen Situationsbeschreibung… ableiten… | 3 | Anwenden | ableiten |
| A1F | Ich kann unter Berücksichtigung von Delegation… ermitteln… | 3 | Anwenden | ermitteln, abbilden |
| A1E | Ich kann komplexere Situationsbeschreibungen analysieren… | 4 | Analysieren | analysieren, abbilden |
| B1G | Ich kann den Aufbau einer Applikation anhand… interpretieren… | 2 | Verstehen | interpretieren, erläutern |
| B1F | Ich kann den Aufbau einer Software modellieren… | 3 | Anwenden | modellieren |
| B1E | Ich kann das Modell einer Software analysieren, kritische Punkte… | 4 | Analysieren | analysieren, erkennen, vorschlagen |
| C1G | Ich kann Klassen unter Verwendung von Konstruktoren… definieren… | 3 | Anwenden | definieren, instanziieren |
| C1F | Ich kann ein- und zweiseitige Beziehungen… implementieren… | 3 | Anwenden | implementieren |
| C1E | Ich kann Interaktionen zwischen Objekten… umsetzen… | 3 | Anwenden | umsetzen |
| D1G | Ich kann Klassen und deren Super-Klassen implementieren… | 3 | Anwenden | implementieren, instanziieren |
| D1F | Ich kann Methoden in den Sub-Klassen ergänzen oder überschreiben… | 3 | Anwenden | ergänzen, überschreiben |
| D1E | Ich kann eine Vererbungshierarchie entwerfen und… entscheiden… | 5 | Bewerten | entwerfen, entscheiden |
| D2G | Ich kann eigene Klassen unter Nutzung von Interfaces… implementieren… | 3 | Anwenden | implementieren |
| D2F | Ich kann eigene abstrakte Klassen oder Interfaces… implementieren… | 3 | Anwenden | implementieren |
| D2E | Ich kann Lösungsansätze für komplexe Problemstellungen… umsetzen… | 3 | Anwenden | umsetzen |
| E1G | Ich kann Code-Konventionen anwenden und… implementieren… | 3 | Anwenden | anwenden, implementieren |
| E1F | Ich kann Code in einer Codereview-Sitzung… überprüfen… | 5 | Bewerten | überprüfen (validieren) |
| E1E | Ich kann die Qualität von Code anhand… beurteilen… | 5 | Bewerten | beurteilen, vorschlagen |
| E2G | Ich kann den Zweck eines Software-Dokumentationswerkzeugs erklären… | 2 | Verstehen | erklären, einsetzen |
| E2F | Ich kann Software mit Hilfe eines Dokumentationswerkzeugs dokumentieren… | 3 | Anwenden | dokumentieren |
| E2E | Ich kann die Kommentare in einer Software hinterfragen… | 5 | Bewerten | hinterfragen, vorschlagen |
| X1G | Ich kann bei der Benutzung von Methoden Exceptions abfangen… | 3 | Anwenden | abfangen, behandeln |
| X1F | Ich kann in meinen Implementierungen im Fehlerfall… werfen… | 3 | Anwenden | werfen |
| X1E | Ich kann für eine Applikation die Fehlerbehandlung… umsetzen… | 3 | Anwenden | umsetzen |
| Zelle | Änderung | Begründung |
|---|---|---|
| D1E | Fehlende Erweitert-Stufe ergänzt | Vollständige Progression G/F/E |
| Alle Bänder | Buchstaben-Präfix ergänzt (A - …, B - …, etc.) | Vorgabe |
| Header, Separator (beide Tabellen) | Normalisiert auf Vorgabeformat | Vorgabe Tabellenformat |
| Alle Zellen | Trailing Periods entfernt | Keine abschliessenden Punkte |
| A1G | “schliessen” → “ableiten” | Präzisere Formulierung |
| A1F | “eruieren” → “ermitteln” | Verständlichere Formulierung |
| B1G | “erkläutern” → “erläutern”; “auf Grund” → “anhand” | Tippfehler; idiomatischer Ausdruck |
| C1E | “Delegation” als Beispiel in Klammern verschoben | Klarere Struktur |
| D2G | Produktnamen “AbstractList, Comparator, Comparable” entfernt | Produktneutralität |
| D2E | Vages “effizient” entfernt | Keine vagen Begriffe |
| E1G | “Ich kenne” → “Ich kann … anwenden” | “Ich kann”-Format |
| E1E | Produktname “junit” entfernt | Produktneutralität |
| E2G | “wie man es einsetzt” → “Ich kann … erklären und dieses einsetzen”; “JavaDoc” entfernt | “Ich kann”-Format; Produktneutralität |
| E2F | Produktname “JavaDoc” entfernt; <br/> entfernt |
Produktneutralität; keine HTML-Tags |
| E2E | “Vorschläge zur Verbesserung machen” → “Verbesserungen vorschlagen” | Direktere Aktivformulierung |
| X-Tabelle | Header/Separator normalisiert; Buchstaben-Präfix ergänzt; Trailing Periods entfernt | Vorgabe |
| E1E | “Code mit vorgegebenen, automatisierten Tests überprüfen” → “die Qualität von Code anhand von automatisierten Tests und Review-Ergebnissen beurteilen und begründete Verbesserungen vorschlagen” | Bloom-Regel 2: E1F ist Stufe 5 (Bewerten), E1E muss ≥ Stufe 5 sein |
| Bloom-Tabelle | Neu hinzugefügt | Bloom-Taxonomie-Analyse für alle G/F/E-Zellen beider Tabellen ergänzt |