ICT Fragebogen-Modul
Das ICT-Modul verarbeitet ICT-Framework-Fragebögen mit Reifegradbewertungen (1–4). Der Workflow ist analog zu BASO, ergänzt um Reifegradlogik und die Einbindung von Prüfberichten.
Verzeichnisstruktur
ict/
├── __init__.py
├── __main__.py
├── cli.py # CLI-Einstiegspunkt
├── config.py # Konfiguration inkl. Reifegrad-Skala
├── db.py # SQLite-Schema + CRUD
├── io_xlsx.py # XLSX lesen (Reifegrade)
├── prompts.py # Prompt-Generierung mit Reifegradanweisungen
├── apply_answers.py # Antworten + Reifegrade in XLSX schreiben
└── gui_module.py # Tkinter-GUI (ICTModuleFrame)
Konfiguration
Datei: ict.config.json
Reifegrad-Skala
| Reifegrad |
Bedeutung |
| 1 |
Initial / ad-hoc – keine formale Steuerung |
| 2 |
Wiederholt – grundlegende Prozesse vorhanden |
| 3 |
Definiert – dokumentierte, standardisierte Prozesse |
| 4 |
Gemessen / Optimiert – kontinuierliche Verbesserung |
Datenmodell
@dataclass(frozen=True)
class IctItem:
file_name: str
sheet_name: str
row: int
question_id: str # z.B. "ICT-01.1"
title: str
question: str
answer: str | None # "Ja" | "Nein"
maturity: int | None # 1-4
explanation: str | None
guidance: str | None
optimization_potential: str | None
Datenbankfunktionen
ict/db.py
| Funktion |
Beschreibung |
ensure_db(db_path) |
Schema erstellen |
ingest_questionnaires(source_dir, db_path, progress) |
ICT-XLSX einlesen |
ingest_sikos(sikos_dir, db_path, progress) |
DOCX-Sikos einlesen |
ingest_reports(reports_dir, db_path, progress) |
Prüfberichte einlesen |
fetch_answered_items(db_path) |
Beantwortete Elemente laden |
Besonderheiten gegenüber BASO
- Prüfberichte: ICT-Berichte (DOCX) werden zusätzlich zu Sikos in die DB eingelesen und als Kontext in Prompts eingebunden
- Reifegrad: Neben der Ja/Nein-Antwort wird ein Reifegrad 1–4 in den Prompt aufgenommen und in das XLSX zurückgeschrieben
- Fragen-ID: Jede Frage hat eine eindeutige ICT-ID (z.B.
ICT-01.1), die zur Zuordnung beim Antwortimport genutzt wird
CLI
# Fragebögen einlesen
python -m ict ingest --source data/ict/quelle --db data/db/ict.sqlite
# Sikos einlesen
python -m ict ingest-sikos --sikos data/shared/sikos --db data/db/ict.sqlite
# Prüfberichte einlesen
python -m ict ingest-reports --reports data/ict/berichte --db data/db/ict.sqlite
# Prompts erstellen
python -m ict prepare \
--new data/ict/neu \
--db data/db/ict.sqlite \
--out out/ict/prompts \
[--top 3] [--batch-size 20]
# Antworten eintragen
python -m ict apply \
--new data/ict/neu \
--answers out/ict/answers \
--out out/ict/filled