7-Schritte-Dekonstruktion
Das CharGraph-Projekt folgt einem bewährten 7-Schritte-Ansatz zur Problemlösung:
Schritt 1: Analyse (Analysis)
Fragestellung: Wie kann man Zeit mit Buchstaben darstellen?
Anforderungen identifizieren
-
Darstellung von Stunden (1-12)
-
Darstellung von Minuten (0-59)
-
Lesbare deutsche Sprachausgabe
-
Begrenzte Anzahl von Zeichen (110 in 11×10 Anordnung)
-
Zusätzliche Präzision durch 4 Anzeigepunkte
Constraints
-
Physikalische Begrenzung: 11×10 Buchstabenfeld
-
Sprachliche Begrenzung: Deutsche Zeitangaben
-
Kognitive Begrenzung: Schnelle Lesbarkeit
Schritt 2: Dekonstruktion (Decomposition)
Problem aufteilen in Teilprobleme
- Layout-Problem: Welche Wörter müssen platziert werden?
- Mapping-Problem: Wie wird Zeit auf Wörter abgebildet?
- Positions-Problem: Wo stehen die Wörter im Raster?
- Präzisions-Problem: Wie zeigt man 1-4 Minuten zwischen 5er-Schritten?
- Validierungs-Problem: Wie prüft man die Korrektheit?
Schritt 3: Design (Design)
Lösungsstrategien entwickeln
A) Sprachliches Design
Zeitangabe = Einleitung + Minutenangabe + Stundenangabe + Abschluss = "ES IST" + [Minuten] + [Stunde] + ["UHR"] = "WIR HABEN" + [Minuten] + [Stunde] + ["UHR"]
B) Layout-Design
Reihenfolge: [Feste Einleitung] [Variable Minuten] [Referenzpunkt] [Variable Stunden] [Fester Abschluss]
C) Algorithmisches Design
-
Modulo-Arithmetik für 12-Stunden-Zyklus
-
Bereichs-Mapping für Minutenintervalle
-
Prioritäts-Queues für optionale Wörter
Schritt 4: Implementierung (Implementation)
Code-Struktur entwickeln
function berechneSichtbareWoerter(stunde, minute) { // 1. Normalisierung let h12 = stunde % 12; if(h12 === 0) h12 = 12;
// 2. Kontext-abhängige Stundenauswahl let anzeigeStunde = (minute >= 20) ? h12 + 1 : h12;
// 3. Bereichs-Mapping if(minute >= 0 && minute <= 4) return ["ES", "IST", "NACH", stunden[h12]]; // ... weitere Bereiche }
Schritt 5: Test (Testing)
Systematisches Testen
-
Unit-Tests für einzelne Zeitpunkte
-
Grenzwert-Tests (0:00, 12:00, 23:59)
-
Szenario-Tests (alle 5-Minuten-Schritte)
-
Edge-Cases (Minutenübergänge)
Schritt 6: Evaluation (Evaluation)
Bewertung der Lösung
-
Funktionale Korrektheit
-
Benutzbarkeit
-
Performance
-
Wartbarkeit
-
Erweiterbarkeit
Schritt 7: Iteration (Iteration)
Verbesserungen
-
Hinzufügen optionaler Wörter (KURZ, BALD, FAST)
-
Regionale Varianten (DREIVIERTEL)
-
Optimierung der Algorithmen
-
Verbesserung der Benutzeroberfläche