457 lines
14 KiB
Markdown
457 lines
14 KiB
Markdown
# HBO-I Beroepstaken
|
|
|
|
## Overview
|
|
|
|
Deze sectie beschrijft hoe je HBO-I beroepstaken uit het Open-ICT competentiekader kunt ophalen. Het framework organiseert professionele taken in een drie-dimensionale matrix van architectuurlagen, activiteiten en niveaus.
|
|
|
|
## Data Structuur
|
|
|
|
Het HBO-I competentiekader organiseert professionele taken volgens:
|
|
|
|
- **Architectuurlagen**: Verschillende technische domeinen in ICT systemen
|
|
- **Activiteiten**: Verschillende fasen van de ontwikkelingslevenscyclus
|
|
- **Niveaus**: Oplopende complexiteit en zelfstandigheid (1-4)
|
|
|
|
## Beschikbare Architectuurlagen
|
|
|
|
De volgende vijf architectuurlagen zijn beschikbaar:
|
|
|
|
1. **Gebruikersinteractie**: User interaction layer
|
|
2. **Organisatieprocessen**: Organizational processes layer
|
|
3. **Infrastructuur**: Infrastructure layer
|
|
4. **Software**: Software layer
|
|
5. **Hardwareinterfacing**: Hardware interfacing layer
|
|
|
|
## Beschikbare Activiteiten
|
|
|
|
De volgende vijf activiteiten zijn beschikbaar:
|
|
|
|
1. **Analyseren**: Analysis phase
|
|
2. **Adviseren**: Advisory phase
|
|
3. **Ontwerpen**: Design phase
|
|
4. **Realiseren**: Implementation phase
|
|
5. **Manage & Control**: Management and control phase
|
|
|
|
## Beschikbare Niveaus
|
|
|
|
Alle beroepstaken hebben vier niveaus (1-4) die oplopende complexiteit en zelfstandigheid representeren.
|
|
|
|
## Workflow Scenarios
|
|
|
|
### Scenario 1: Overzicht en Onderzoek (VERPLICHT: Alle Beroepstaken Ophalen)
|
|
|
|
**Wanneer te gebruiken:**
|
|
|
|
- Wanneer het nog niet duidelijk is aan welke beroepstaak er wordt gewerkt
|
|
- Wanneer de gebruiker wilt weten welke beroepstaken relevant zijn voor een bepaald bewijsstuk
|
|
- Wanneer je een overzicht nodig hebt van alle beschikbare beroepstaken en hun niveaus
|
|
- Bij het analyseren van bewijsstukken om te bepalen welke beroepstaken van toepassing zijn
|
|
- Wanneer je moet bepalen welke architectuurlagen of activiteiten relevant zijn
|
|
|
|
**VERPLICHTE WORKFLOW:**
|
|
|
|
1. **VOER UIT**: `python scripts/hboi.py` (zonder enige argumenten of filters)
|
|
2. **GEBRUIK ALLEEN**: De data die wordt gereturned door het script
|
|
3. **VERBODEN**: Het is **NIET TOEGESTAAN** om zelf criteria voor beroepstaken in te vullen of te verzinnen
|
|
4. **VERBODEN**: Het is **NIET TOEGESTAAN** om alleen een subset van beroepstaken op te halen in dit scenario
|
|
5. **ANALYSEER**: Gebruik de volledige dataset om te bepalen welke beroepstaken relevant zijn
|
|
|
|
**Voorbeeld gebruik:**
|
|
|
|
```bash
|
|
python scripts/hboi.py
|
|
```
|
|
|
|
**Resultaat**: JSON object met alle vijf architectuurlagen, elk met alle vijf activiteiten, elk met alle vier niveaus. Gebruik deze volledige dataset om te analyseren welke beroepstaken relevant zijn.
|
|
|
|
### Scenario 2: Specifieke Beroepstaak Bekend
|
|
|
|
**Wanneer te gebruiken:**
|
|
|
|
- Wanneer er al duidelijk is aan welke specifieke architectuurlaag en/of activiteit wordt gewerkt
|
|
- Wanneer de gebruiker expliciet vraagt naar een specifieke architectuurlaag of activiteit
|
|
- Wanneer je alleen informatie nodig hebt over één of meerdere specifieke beroepstaken
|
|
|
|
**WORKFLOW:**
|
|
|
|
#### 2a. Één Specifieke Combinatie (Laag + Activiteit)
|
|
|
|
**Wanneer**: Er is één specifieke architectuurlaag EN één specifieke activiteit bekend
|
|
|
|
**VOER UIT**:
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Architectuurlaag" --activity "Activiteit"
|
|
```
|
|
|
|
**BELANGRIJK**:
|
|
|
|
- Gebruik de exacte namen zoals vermeld in de lijsten hierboven
|
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd naar een specifiek niveau
|
|
- Haal alle niveaus op voor de combinatie, tenzij expliciet anders gevraagd
|
|
|
|
**Voorbeeld:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
|
```
|
|
|
|
**Resultaat**: JSON object met alleen de "Software" laag en "Realiseren" activiteit, inclusief alle vier niveaus.
|
|
|
|
#### 2b. Één Specifieke Architectuurlaag
|
|
|
|
**Wanneer**: Er is één specifieke architectuurlaag bekend, maar geen specifieke activiteit
|
|
|
|
**VOER UIT**:
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Architectuurlaag"
|
|
```
|
|
|
|
**BELANGRIJK**:
|
|
|
|
- Haal alle activiteiten op voor deze laag
|
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd
|
|
|
|
**Voorbeeld:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Software"
|
|
```
|
|
|
|
**Resultaat**: JSON object met alleen de "Software" laag, inclusief alle vijf activiteiten en alle vier niveaus.
|
|
|
|
#### 2c. Één Specifieke Activiteit
|
|
|
|
**Wanneer**: Er is één specifieke activiteit bekend, maar geen specifieke architectuurlaag
|
|
|
|
**VOER UIT**:
|
|
|
|
```bash
|
|
python scripts/hboi.py --activity "Activiteit"
|
|
```
|
|
|
|
**BELANGRIJK**:
|
|
|
|
- Haal alle architectuurlagen op voor deze activiteit
|
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd
|
|
|
|
**Voorbeeld:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --activity "Ontwerpen"
|
|
```
|
|
|
|
**Resultaat**: JSON object met alle vijf architectuurlagen, maar alleen de "Ontwerpen" activiteit voor elke laag, inclusief alle vier niveaus.
|
|
|
|
#### 2d. Meerdere Specifieke Combinaties
|
|
|
|
**Wanneer**: Er zijn meerdere specifieke combinaties van architectuurlagen en/of activiteiten bekend
|
|
|
|
**VERPLICHTE WORKFLOW:**
|
|
|
|
1. **VOER MEERDERE REQUESTS UIT**: Maak voor elke combinatie een aparte request naar het Python script
|
|
2. **GEEN COMBINATIE**: Je kunt niet meerdere combinaties in één request ophalen
|
|
3. **VOOR ELKE COMBINATIE**: Voer het juiste commando uit op basis van wat bekend is
|
|
|
|
**Voorbeelden:**
|
|
|
|
**Twee specifieke lagen:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Software"
|
|
python scripts/hboi.py --layer "Infrastructuur"
|
|
```
|
|
|
|
**Twee specifieke activiteiten:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --activity "Ontwerpen"
|
|
python scripts/hboi.py --activity "Realiseren"
|
|
```
|
|
|
|
**Twee specifieke combinaties:**
|
|
|
|
```bash
|
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
|
python scripts/hboi.py --layer "Gebruikersinteractie" --activity "Ontwerpen"
|
|
```
|
|
|
|
**Resultaat**: Meerdere aparte JSON objecten, één voor elke combinatie met alle relevante niveaus.
|
|
|
|
#### 2e. Specifiek Niveau (Alleen Wanneer Expliciet Gevraagd)
|
|
|
|
**Wanneer**: De gebruiker vraagt expliciet naar een specifiek niveau (bijv. "niveau 2", "level 3")
|
|
|
|
**VERPLICHTE WORKFLOW:**
|
|
|
|
1. **GEBRUIK `--level` FILTER**: Voeg `--level` toe aan de command alleen wanneer expliciet gevraagd
|
|
2. **COMBINEER MET ANDERE FILTERS**: Als er ook een specifieke laag en/of activiteit bekend is, combineer de filters
|
|
3. **GEEN NIVEAU FILTER**: Als er geen specifiek niveau wordt genoemd, haal alle niveaus op
|
|
|
|
**Voorbeelden:**
|
|
|
|
```bash
|
|
# Specifieke combinatie op specifiek niveau (expliciet gevraagd)
|
|
python scripts/hboi.py --layer "Software" --activity "Realiseren" --level 2
|
|
|
|
# Specifieke laag op specifiek niveau (expliciet gevraagd)
|
|
python scripts/hboi.py --layer "Software" --level 3
|
|
|
|
# Specifieke activiteit op specifiek niveau (expliciet gevraagd)
|
|
python scripts/hboi.py --activity "Ontwerpen" --level 4
|
|
|
|
# Alle beroepstaken op specifiek niveau (expliciet gevraagd)
|
|
python scripts/hboi.py --level 2
|
|
|
|
# Specifieke combinatie zonder niveau (geen niveau genoemd)
|
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
|
```
|
|
|
|
## Kritieke Regels
|
|
|
|
### VERPLICHT: Gebruik Alleen Gereturned Data
|
|
|
|
**KRITIEK**: Je MOET alleen de data gebruiken die wordt gereturned door het Python script.
|
|
|
|
**VERBODEN:**
|
|
|
|
- ❌ Het verzinnen of invullen van criteria voor beroepstaken
|
|
- ❌ Het gebruik van kennis over beroepstaken die niet in de gereturned data staat
|
|
- ❌ Het aannemen van wat een beroepstaak zou moeten zijn zonder de data te raadplegen
|
|
|
|
**VERPLICHT:**
|
|
|
|
- ✅ Gebruik alleen de `title` velden uit de gereturned JSON
|
|
- ✅ Baseer alle analyses en conclusies op de daadwerkelijke data
|
|
- ✅ Raadpleeg altijd de volledige dataset wanneer onzekerheid bestaat
|
|
|
|
### VERPLICHT: Scenario 1 bij Onzekerheid
|
|
|
|
**KRITIEK**: Wanneer het niet duidelijk is welke beroepstaak relevant is, MOET je Scenario 1 gebruiken (alle beroepstaken ophalen).
|
|
|
|
**VERBODEN:**
|
|
|
|
- ❌ Het gissen naar welke beroepstaak relevant zou kunnen zijn
|
|
- ❌ Het ophalen van alleen een subset van beroepstaken "omdat je denkt dat die relevant zijn"
|
|
- ❌ Het overslaan van het ophalen van alle data bij onzekerheid
|
|
|
|
**VERPLICHT:**
|
|
|
|
- ✅ Bij twijfel: gebruik altijd Scenario 1
|
|
- ✅ Haal alle beroepstaken op wanneer je moet bepalen welke relevant zijn
|
|
- ✅ Analyseer de volledige dataset om te bepalen welke beroepstaken van toepassing zijn
|
|
|
|
### VERPLICHT: Meerdere Requests voor Meerdere Combinaties
|
|
|
|
**KRITIEK**: Wanneer je meerdere specifieke combinaties nodig hebt, maak je meerdere aparte requests.
|
|
|
|
**VERBODEN:**
|
|
|
|
- ❌ Het proberen om meerdere combinaties in één request te combineren
|
|
- ❌ Het ophalen van alle beroepstaken wanneer je alleen specifieke nodig hebt (tenzij Scenario 1 van toepassing is)
|
|
|
|
**VERPLICHT:**
|
|
|
|
- ✅ Maak voor elke combinatie een aparte request
|
|
- ✅ Voer elk script commando apart uit
|
|
- ✅ Verwerk de resultaten van elke request afzonderlijk
|
|
|
|
### VERPLICHT: Niveau Filter Alleen bij Expliciete Vraag
|
|
|
|
**KRITIEK**: Gebruik de `--level` filter alleen wanneer de gebruiker expliciet vraagt naar een specifiek niveau.
|
|
|
|
**VERBODEN:**
|
|
|
|
- ❌ Het toevoegen van `--level` "omdat je denkt dat het handig is"
|
|
- ❌ Het filteren op niveau zonder expliciete vraag van de gebruiker
|
|
- ❌ Het aannemen van een niveau zonder dat dit wordt genoemd
|
|
|
|
**VERPLICHT:**
|
|
|
|
- ✅ Gebruik `--level` alleen wanneer expliciet gevraagd (bijv. "niveau 2", "level 3", "op niveau 4")
|
|
- ✅ Haal standaard alle niveaus op voor de geselecteerde combinatie(s)
|
|
- ✅ Laat de gebruiker alle niveaus zien tenzij specifiek anders gevraagd
|
|
|
|
## Script Gebruik
|
|
|
|
### Basis Commando
|
|
|
|
Het Python script `scripts/hboi.py` wordt gebruikt om beroepstaken op te halen:
|
|
|
|
```bash
|
|
python scripts/hboi.py [--layer LAYER] [--activity ACTIVITY] [--level LEVEL]
|
|
```
|
|
|
|
### Opties
|
|
|
|
Alle opties zijn optioneel en kunnen gecombineerd worden:
|
|
|
|
- `--layer LAYER`: Filter op architectuurlaag
|
|
|
|
- Als niet opgegeven: haalt alle lagen op
|
|
- Moet exact overeenkomen met een van de vijf geldige lagen
|
|
- Hoofdlettergevoelig
|
|
|
|
- `--activity ACTIVITY`: Filter op activiteit
|
|
|
|
- Als niet opgegeven: haalt alle activiteiten op
|
|
- Moet exact overeenkomen met een van de vijf geldige activiteiten
|
|
- Hoofdlettergevoelig
|
|
|
|
- `--level LEVEL`: Filter op niveau (1, 2, 3, of 4)
|
|
|
|
- **ALLEEN gebruiken wanneer expliciet gevraagd naar een specifiek niveau**
|
|
- Als niet opgegeven: haalt alle niveaus op
|
|
|
|
- `-h` of `--help`: Toont gebruiksinformatie en sluit af
|
|
|
|
### Response Formaat
|
|
|
|
**Scenario 1 - Alle beroepstaken (zonder filters):**
|
|
|
|
```json
|
|
{
|
|
"Gebruikersinteractie": {
|
|
"Analyseren": {
|
|
"1": { "title": "Identificeren van de kernelementen..." },
|
|
"2": { "title": "Benchmarken van functionaliteit..." },
|
|
"3": { "title": "Analyseren van de eindgebruiker..." },
|
|
"4": { "title": "Analyseren van maatschappelijke..." }
|
|
},
|
|
"Adviseren": {
|
|
"1": { "title": "..." },
|
|
"2": { "title": "..." },
|
|
"3": { "title": "..." },
|
|
"4": { "title": "..." }
|
|
},
|
|
...
|
|
},
|
|
"Organisatieprocessen": {
|
|
...
|
|
},
|
|
...
|
|
}
|
|
```
|
|
|
|
**Scenario 2a - Specifieke combinatie (zonder niveau filter):**
|
|
|
|
```json
|
|
{
|
|
"Software": {
|
|
"Realiseren": {
|
|
"1": { "title": "..." },
|
|
"2": { "title": "..." },
|
|
"3": { "title": "..." },
|
|
"4": { "title": "..." }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Scenario 2b - Specifieke laag (zonder niveau filter):**
|
|
|
|
```json
|
|
{
|
|
"Software": {
|
|
"Analyseren": {
|
|
"1": { "title": "..." },
|
|
"2": { "title": "..." },
|
|
"3": { "title": "..." },
|
|
"4": { "title": "..." }
|
|
},
|
|
"Adviseren": {
|
|
"1": { "title": "..." },
|
|
...
|
|
},
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
**Scenario 2e - Specifieke combinatie op specifiek niveau:**
|
|
|
|
```json
|
|
{
|
|
"Software": {
|
|
"Realiseren": {
|
|
"3": {
|
|
"title": "..."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Filter Logica
|
|
|
|
Filters worden in de volgende volgorde toegepast:
|
|
|
|
1. **Architectuurlaag filter**: Reduceert de dataset tot alleen de opgegeven laag
|
|
2. **Activiteit filter**: Filtert activiteiten binnen de overgebleven lagen
|
|
3. **Niveau filter**: Filtert niveaus binnen de overgebleven activiteiten
|
|
|
|
Filters zijn **additief**: alle opgegeven filters moeten worden voldaan voor een entry om in het resultaat te verschijnen.
|
|
|
|
## Validatie en Foutafhandeling
|
|
|
|
### Validatie
|
|
|
|
Het script valideert automatisch:
|
|
|
|
1. **Architectuurlaag**: Controleert of de opgegeven laag exact overeenkomt met een van de vijf geldige lagen
|
|
2. **Activiteit**: Controleert of de activiteit exact overeenkomt met een van de vijf geldige activiteiten
|
|
3. **Niveau**: Controleert of het niveau een geldige waarde is (1, 2, 3, of 4)
|
|
4. **Data bestand**: Controleert of het benodigde JSON bestand bestaat
|
|
|
|
### Foutmeldingen
|
|
|
|
**Ongeldige architectuurlaag:**
|
|
|
|
```
|
|
Error: Invalid architecture layer: Ongeldige Laag
|
|
Valid options: Gebruikersinteractie, Organisatieprocessen, Infrastructuur, Software, Hardwareinterfacing
|
|
```
|
|
|
|
**Ongeldige activiteit:**
|
|
|
|
```
|
|
Error: Invalid activity: Ongeldige Activiteit
|
|
Valid options: Analyseren, Adviseren, Ontwerpen, Realiseren, Manage & Control
|
|
```
|
|
|
|
**Ongeldig niveau:**
|
|
|
|
```
|
|
Error: Invalid level: 5 (must be 1-4)
|
|
```
|
|
|
|
**Ontbrekend data bestand:**
|
|
|
|
```
|
|
Error: Data file not found: /path/to/hboi-nl.json
|
|
```
|
|
|
|
**Geen resultaten:**
|
|
|
|
```
|
|
No professional tasks found with the specified filters
|
|
```
|
|
|
|
Alle foutmeldingen worden naar stderr geschreven. Het script eindigt met exit code 1 bij fouten.
|
|
|
|
## Exit Codes
|
|
|
|
- `0`: Succesvol uitgevoerd
|
|
- `1`: Fout opgetreden (ongeldige input, ontbrekend bestand, geen resultaten)
|
|
|
|
## Best Practices Samenvatting
|
|
|
|
1. **Bij onzekerheid**: Gebruik altijd Scenario 1 (alle beroepstaken ophalen)
|
|
2. **Gebruik alleen gereturned data**: Verzin geen criteria, gebruik alleen wat het script retourneert
|
|
3. **Meerdere combinaties**: Maak meerdere aparte requests
|
|
4. **Niveau filter**: Alleen gebruiken wanneer expliciet gevraagd
|
|
5. **Exacte namen**: Laag- en activiteitsnamen zijn hoofdlettergevoelig en moeten exact overeenkomen
|
|
6. **Alle niveaus**: Haal standaard alle niveaus op tenzij expliciet anders gevraagd
|
|
7. **Specifieke combinaties**: Gebruik `--layer` en `--activity` samen wanneer beide bekend zijn
|