Initial commit: IHK Ausbildung materials
This commit is contained in:
231
3-Ausbildungsjahr/LF10a-Benutzeroberflächen/LF10a-Notizen.md
Normal file
231
3-Ausbildungsjahr/LF10a-Benutzeroberflächen/LF10a-Notizen.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# LF 10a: Benutzerschnittstellen gestalten und entwickeln
|
||||
|
||||
> **3. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, Benutzeroberflächen für softwarebasierte Arbeitsabläufe und Geschäftsprozesse zu gestalten und zu entwickeln.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Geschäftsprozesse analysieren und modellieren
|
||||
- [ ] Benutzeroberflächen ergonomisch gestalten
|
||||
- [ ] UI/UX-Prinzipien anwenden
|
||||
- [ ] Responsive Design umsetzen
|
||||
- [ ] Agile Entwicklungsmethoden anwenden
|
||||
- [ ] Datenschutz und Benutzerfreundlichkeit prüfen
|
||||
|
||||
---
|
||||
|
||||
## UI/UX-Grundlagen
|
||||
|
||||
### UI (User Interface)
|
||||
|
||||
```
|
||||
Gestaltungselemente:
|
||||
├── Layout
|
||||
│ ├── Struktur
|
||||
│ ├── Hierarchie
|
||||
│ └── Weißraum
|
||||
├── Typografie
|
||||
│ ├── Schriftart
|
||||
│ ├── Schriftgröße
|
||||
│ └── Lesbarkeit
|
||||
├── Farben
|
||||
│ ├── Farbschema
|
||||
│ ├── Kontrast
|
||||
│ └── Bedeutung
|
||||
└── Komponenten
|
||||
├── Buttons
|
||||
├── Formulare
|
||||
└── Navigation
|
||||
```
|
||||
|
||||
### UX (User Experience)
|
||||
|
||||
```
|
||||
UX-Prinzipien:
|
||||
├── Benutzerzentrierung
|
||||
├── Konsistenz
|
||||
├── Feedback
|
||||
├── Fehlertoleranz
|
||||
├── Übersichtlichkeit
|
||||
└── Erwartungskonformität
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Web-Entwicklung
|
||||
|
||||
### HTML5
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Beispielseite</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav>
|
||||
<a href="/">Start</a>
|
||||
<a href="/produkte">Produkte</a>
|
||||
<a href="/kontakt">Kontakt</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
<h1>Willkommen</h1>
|
||||
<p>Dies ist eine Beispielseite.</p>
|
||||
</main>
|
||||
<footer>© 2024</footer>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
### CSS3
|
||||
|
||||
```css
|
||||
/* Responsive Design */
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
/* Mobile First */
|
||||
@media (min-width: 768px) {
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.grid {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
/* Flexbox Navigation */
|
||||
nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
```
|
||||
|
||||
### JavaScript
|
||||
|
||||
```javascript
|
||||
// DOM Manipulation
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const button = document.getElementById('submit-btn');
|
||||
|
||||
button.addEventListener('click', async (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
const formData = new FormData(document.querySelector('form'));
|
||||
const data = Object.fromEntries(formData);
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/submit', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
alert('Erfolgreich gesendet!');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Fehler:', error);
|
||||
}
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Geschäftsprozess-Modellierung
|
||||
|
||||
### BPMN (Business Process Model and Notation)
|
||||
|
||||
```
|
||||
BPMN-Elemente:
|
||||
├── Start/End Event
|
||||
├── Task (Aufgabe)
|
||||
├── Gateway (Verzweigung)
|
||||
│ ├── XOR (entweder-oder)
|
||||
│ ├── AND (parallel)
|
||||
│ └── OR (möglicherweise)
|
||||
├── Sequence Flow (Sequenzfluss)
|
||||
└── Message Flow (Nachrichtenfluss)
|
||||
```
|
||||
|
||||
### EPK (Ereignisgesteuerte Prozesskette)
|
||||
|
||||
```
|
||||
Komponenten:
|
||||
├── Funktionen (Aktivitäten)
|
||||
├── Ereignisse (Auslöser)
|
||||
├── Kanten (Verknüpfungen)
|
||||
└── Operatoren (UND, ODER, XOR)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Agile Methoden
|
||||
|
||||
### Scrum
|
||||
|
||||
```
|
||||
Scrum-Rollen:
|
||||
├── Product Owner
|
||||
├── Scrum Master
|
||||
└── Development Team
|
||||
|
||||
Scrum-Events:
|
||||
├── Sprint Planning
|
||||
├── Daily Standup
|
||||
├── Sprint Review
|
||||
└── Sprint Retrospective
|
||||
|
||||
Scrum-Artefakte:
|
||||
├── Product Backlog
|
||||
├── Sprint Backlog
|
||||
└── Increment
|
||||
```
|
||||
|
||||
### Kanban
|
||||
|
||||
```
|
||||
Kanban-Prinzipien:
|
||||
├── Visualisierung
|
||||
├── Limit Work in Progress
|
||||
├── Flow-Management
|
||||
└── Kontinuierliche Verbesserung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Wichtig für LF 12a (Abschlussprojekt)
|
||||
- UI-Design wird in Teil 2 geprüft
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[2-Ausbildungsjahr/LF9-Netzwerke-Dienste|Vorher: LF 9]]
|
||||
- [[3-Ausbildungsjahr/LF11a-Funktionalität-realisiren|Nachher: LF 11a]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
@@ -0,0 +1,261 @@
|
||||
# LF 11a: Funktionalität in Anwendungen realisieren
|
||||
|
||||
> **3. Ausbildungsjahr** | Zeitrichtwert: **80 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, modulare Komponenten zur informationstechnischen Verarbeitung von Arbeitsabläufen und Geschäftsprozessen zu entwickeln und deren Qualität zu sichern.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Datenstrukturen und Funktionalitäten aus Anforderungen ableiten
|
||||
- [ ] Modulare Softwarekomponenten planen
|
||||
- [ ] Objektorientierte Programmierung anwenden
|
||||
- [ ] Schnittstellen dokumentieren
|
||||
- [ ] Testfälle formulieren und automatisierte Tests durchführen
|
||||
- [ ] Qualitätskriterien anwenden
|
||||
|
||||
---
|
||||
|
||||
## Objektorientierte Programmierung (OOP)
|
||||
|
||||
### Grundkonzepte
|
||||
|
||||
```
|
||||
OOP-Prinzipien:
|
||||
├── Kapselung (Encapsulation)
|
||||
│ └── Daten und Methoden zusammenfassen
|
||||
├── Vererbung (Inheritance)
|
||||
│ └── Gemeinsame Eigenschaften vererben
|
||||
├── Polymorphismus
|
||||
│ └── Gleiches Verhalten, unterschiedliche Formen
|
||||
└── Abstraktion
|
||||
└── Komplexität reduzieren
|
||||
```
|
||||
|
||||
### Klassen-Beispiel (Python)
|
||||
|
||||
```python
|
||||
from abc import ABC, abstractmethod
|
||||
from datetime import datetime
|
||||
|
||||
class Kunde(ABC):
|
||||
"""Abstrakte Basisklasse für Kunden"""
|
||||
|
||||
def __init__(self, kundennummer: int, name: str):
|
||||
self._kundennummer = kundennummer
|
||||
self._name = name
|
||||
self._erstellt_am = datetime.now()
|
||||
|
||||
@property
|
||||
def kundennummer(self) -> int:
|
||||
return self._kundennummer
|
||||
|
||||
@abstractmethod
|
||||
def berechne_rabatt(self, betrag: float) -> float:
|
||||
"""Berechnet den Rabatt für den Kunden"""
|
||||
pass
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Kunde {self._kundennummer}: {self._name}"
|
||||
|
||||
|
||||
class Privatkunde(Kunde):
|
||||
"""Privatkunde mit Standard-Rabatt"""
|
||||
|
||||
def __init__(self, kundennummer: int, name: str):
|
||||
super().__init__(kundennummer, name)
|
||||
self._rabatt_stufe = 1
|
||||
|
||||
def berechne_rabatt(self, betrag: float) -> float:
|
||||
return betrag * 0.05 * self._rabatt_stufe
|
||||
|
||||
|
||||
class Firmenkunde(Kunde):
|
||||
"""Firmenkunde mit erhöhtem Rabatt"""
|
||||
|
||||
def __init__(self, kundennummer: int, name: str, firmenname: str):
|
||||
super().__init__(kundennummer, name)
|
||||
self._firmenname = firmenname
|
||||
self._rabatt_stufe = 2
|
||||
|
||||
def berechne_rabatt(self, betrag: float) -> float:
|
||||
return betrag * 0.10 * self._rabatt_stufe
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Entwurfsmuster (Design Patterns)
|
||||
|
||||
### Singleton
|
||||
|
||||
```python
|
||||
class DatabaseConnection:
|
||||
"""Singleton für Datenbankverbindung"""
|
||||
|
||||
_instance = None
|
||||
|
||||
def __new__(cls):
|
||||
if cls._instance is None:
|
||||
cls._instance = super().__new__(cls)
|
||||
cls._instance.connection = None
|
||||
return cls._instance
|
||||
|
||||
def connect(self, connection_string: str):
|
||||
if self.connection is None:
|
||||
print(f"Verbinde mit: {connection_string}")
|
||||
self.connection = "Datenbankverbindung hergestellt"
|
||||
|
||||
def disconnect(self):
|
||||
if self.connection:
|
||||
print("Trenne Verbindung")
|
||||
self.connection = None
|
||||
```
|
||||
|
||||
### Factory Method
|
||||
|
||||
```python
|
||||
class KundeFactory:
|
||||
"""Factory für Kunden-Erstellung"""
|
||||
|
||||
@staticmethod
|
||||
def create_kunde(kundentyp: str, **kwargs) -> Kunde:
|
||||
if kundentyp == "privat":
|
||||
return Privatkunde(**kwargs)
|
||||
elif kundentyp == "firma":
|
||||
return Firmenkunde(**kwargs)
|
||||
else:
|
||||
raise ValueError(f"Unbekannter Kundentyp: {kundentyp}")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schnittstellen
|
||||
|
||||
### API-Design
|
||||
|
||||
```python
|
||||
from typing import List, Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
class BestellPosition(BaseModel):
|
||||
"""Datenmodell für Bestellposition"""
|
||||
artikel_id: int
|
||||
menge: int
|
||||
einzelpreis: float
|
||||
|
||||
class Bestellung(BaseModel):
|
||||
"""Datenmodell für Bestellung"""
|
||||
bestell_id: Optional[int] = None
|
||||
kundennummer: int
|
||||
positionen: List[BestellPosition]
|
||||
gesamtpreis: float
|
||||
|
||||
def berechne_gesamtsumme(self) -> float:
|
||||
return sum(p.menge * p.einzelpreis for p in self.positionen)
|
||||
```
|
||||
|
||||
### REST-API mit FastAPI
|
||||
|
||||
```python
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from typing import List
|
||||
|
||||
app = FastAPI(title="Bestell-API")
|
||||
|
||||
bestellungen: List[Bestellung] = []
|
||||
|
||||
@app.post("/bestellungen", response_model=Bestellung)
|
||||
async def create_bestellung(bestellung: Bestellung):
|
||||
"""Neue Bestellung erstellen"""
|
||||
bestellung.gesamtpreis = bestellung.berechne_gesamtsumme()
|
||||
bestellung.bestell_id = len(bestellungen) + 1
|
||||
bestellungen.append(bestellung)
|
||||
return bestellung
|
||||
|
||||
@app.get("/bestellungen/{bestell_id}")
|
||||
async def get_bestellung(bestell_id: int):
|
||||
"""Bestellung abrufen"""
|
||||
for b in bestellungen:
|
||||
if b.bestell_id == bestell_id:
|
||||
return b
|
||||
raise HTTPException(status_code=404, detail="Nicht gefunden")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Qualitätssicherung
|
||||
|
||||
### Testmethoden
|
||||
|
||||
```
|
||||
Test-Pyramide:
|
||||
╱╲
|
||||
╱ ╲ E2E Tests
|
||||
╱────╲
|
||||
╱ ╲ Integrationstests
|
||||
╱────────╲
|
||||
╱ ╲ Unit-Tests
|
||||
╱────────────╲
|
||||
```
|
||||
|
||||
### Unit-Tests (pytest)
|
||||
|
||||
```python
|
||||
import pytest
|
||||
from bestellung import Bestellung, BestellPosition
|
||||
|
||||
class TestBestellung:
|
||||
|
||||
@pytest.fixture
|
||||
def beispiel_bestellung(self):
|
||||
positionen = [
|
||||
BestellPosition(artikel_id=1, menge=2, einzelpreis=10.00),
|
||||
BestellPosition(artikel_id=2, menge=1, einzelpreis=25.00)
|
||||
]
|
||||
return Bestellung(kundennummer=100, positionen=positionen)
|
||||
|
||||
def test_gesamtsumme_berechnung(self, beispiel_bestellung):
|
||||
"""Test der Gesamtsummen-Berechnung"""
|
||||
ergebnis = beispiel_bestellung.berechne_gesamtsumme()
|
||||
# 2 × 10 + 1 × 25 = 45
|
||||
assert ergebnis == 45.00
|
||||
|
||||
def test_leere_bestellung(self):
|
||||
"""Test mit leerer Positionen-Liste"""
|
||||
bestellung = Bestellung(kundennummer=100, positionen=[])
|
||||
ergebnis = bestellung.berechne_gesamtsumme()
|
||||
assert ergebnis == 0.00
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Handlungsphasen
|
||||
|
||||
1. **Analysieren**: Anforderungen verstehen, Datenmodelle ableiten
|
||||
2. **Planen**: Module und Schnittstellen entwerfen
|
||||
3. **Implementieren**: Komponenten entwickeln
|
||||
4. **Testen**: Tests durchführen, Qualität sichern
|
||||
5. **Optimieren**: Verbesserungen einarbeiten
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- Programmierkenntnisse für Teil 2
|
||||
- Wichtig für Abschlussprojekt
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[3-Ausbildungsjahr/LF10a-Benutzeroberflächen|Vorher: LF 10a]]
|
||||
- [[3-Ausbildungsjahr/LF12a-Kundenspezifische-Entwicklung|Nachher: LF 12a]]
|
||||
- [[Programmiersprachen/Python|OOP mit Python]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
@@ -0,0 +1,273 @@
|
||||
# LF 12a: Kundenspezifische Anwendungsentwicklung durchführen
|
||||
|
||||
> **3. Ausbildungsjahr** | Zeitrichtwert: **120 Stunden**
|
||||
|
||||
## Kernkompetenz
|
||||
|
||||
Die Schülerinnen und Schüler verfügen über die Kompetenz, einen Kundenauftrag zur Anwendungsentwicklung vollständig durchzuführen und zu bewerten.
|
||||
|
||||
---
|
||||
|
||||
## Lernziele
|
||||
|
||||
Nach diesem Lernfeld kannst du:
|
||||
- [ ] Eine Anforderungsanalyse durchführen
|
||||
- [ ] Ein Projekt planen und kalkulieren
|
||||
- [ ] Lösungsvarianten entwickeln und vergleichen
|
||||
- [ ] Ein Angebot erstellen
|
||||
- [ ] Die Lösung implementieren
|
||||
- [ ] Qualitätssicherung durchführen
|
||||
- [ ] Das Projekt präsentieren und dokumentieren
|
||||
|
||||
---
|
||||
|
||||
## Projektphasen
|
||||
|
||||
```
|
||||
PROJEKTLEBENSZYKLUS
|
||||
|
||||
┌─────────────┐
|
||||
│ 1. Start │ Kick-off, Projektziele definieren
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 2. Analyse │ Anforderungen erheben, Lastenheft
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 3. Planung │ Pflichtenheft, Aufwandsschätzung
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 4. Design │ Architektur, Datenmodell, UI
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 5. Implem. │ Programmierung, Tests
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 6. Test │ Qualitätssicherung, Abnahme
|
||||
└──────┬──────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ 7. Abschluss│ Übergabe, Schulung, Dokumentation
|
||||
└─────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anforderungsanalyse
|
||||
|
||||
### Lastenheft (vom Kunden)
|
||||
|
||||
```markdown
|
||||
# Lastenheft - Projekt [Name]
|
||||
|
||||
## 1. Ausgangslage
|
||||
[Beschreibung der aktuellen Situation]
|
||||
|
||||
## 2. Zielsetzung
|
||||
[Was soll erreicht werden?]
|
||||
|
||||
## 3. Funktionale Anforderungen
|
||||
- [ ] Anforderung 1
|
||||
- [ ] Anforderung 2
|
||||
|
||||
## 4. Nicht-funktionale Anforderungen
|
||||
- Performance: < 2s Ladezeit
|
||||
- Verfügbarkeit: 99%
|
||||
- Sicherheit: TLS-Verschlüsselung
|
||||
|
||||
## 5. Randbedingungen
|
||||
- Budget: [Betrag]
|
||||
- Zeitrahmen: [Datum]
|
||||
- Technologien: [Liste]
|
||||
```
|
||||
|
||||
### Pflichtenheft (vom Auftragnehmer)
|
||||
|
||||
```markdown
|
||||
# Pflichtenheft - Projekt [Name]
|
||||
|
||||
## 1. Zielbestimmung
|
||||
[Festlegung der zu erreichenden Ziele]
|
||||
|
||||
## 2. Produkteinsatz
|
||||
[Für wen/was wird das Produkt eingesetzt?]
|
||||
|
||||
## 3. Produktfunktionen
|
||||
### F001: [Funktionsname]
|
||||
- Beschreibung: [Was macht die Funktion?]
|
||||
- Priorität: [Must/Should/Could]
|
||||
|
||||
## 4. Produktdaten
|
||||
[List der zu verwaltenden Daten]
|
||||
|
||||
## 5. Produktleistungen
|
||||
- Antwortzeit: < 500ms
|
||||
- Verfügbarkeit: 99,9%
|
||||
|
||||
## 6. Abnahmekriterien
|
||||
[Wie wird die Abnahme durchgeführt?]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Projektkalkulation
|
||||
|
||||
### Aufwandsschätzung
|
||||
|
||||
**Funktionspunktmethode:**
|
||||
|
||||
```
|
||||
FP = Σ (Komplexität × Gewichtung)
|
||||
|
||||
Beispiel:
|
||||
- Bildschirmmasken: 5 × 5 = 25 FP
|
||||
- Datenbanktabellen: 8 × 10 = 80 FP
|
||||
- Schnittstellen: 3 × 7 = 21 FP
|
||||
- Berichte: 4 × 5 = 20 FP
|
||||
────────────────────────────
|
||||
Gesamt-FP: 146
|
||||
|
||||
Aufwand (Stunden) = 146 × 4h = 584h
|
||||
```
|
||||
|
||||
### Kostenberechnung
|
||||
|
||||
```
|
||||
PERSONALKOSTEN:
|
||||
Entwickler 500€/Tag × 60 Tage = 30.000€
|
||||
Projektleiter 600€/Tag × 20 Tage = 12.000€
|
||||
────────────────────────────────────────────
|
||||
Summe Personal: = 42.000€
|
||||
|
||||
SACHKOSTEN:
|
||||
Software-Lizenzen = 5.000€
|
||||
Hardware = 3.000€
|
||||
Reisekosten = 2.000€
|
||||
────────────────────────────────────────────
|
||||
Summe Sachkosten: = 10.000€
|
||||
|
||||
GESAMTKOSTEN: = 52.000€
|
||||
|
||||
+ Gewinn (15%): = 7.800€
|
||||
+ MwSt (19%): = 11.382€
|
||||
─────────────────────────────────────────────────────
|
||||
ANGEBOTSPREIS: = 71.182€
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Qualitätssicherung
|
||||
|
||||
### Testverfahren
|
||||
|
||||
```
|
||||
TESTMETHODEN
|
||||
├── Statische Tests
|
||||
│ ├── Code-Review
|
||||
│ └── Statische Analyse
|
||||
├── Dynamische Tests
|
||||
│ ├── Unit-Tests
|
||||
│ ├── Integrationstests
|
||||
│ ├── Systemtests
|
||||
│ └── Abnahmetests
|
||||
└── Weitere
|
||||
├── Performance-Tests
|
||||
├── Security-Tests
|
||||
└── Usability-Tests
|
||||
```
|
||||
|
||||
### Testdokumentation
|
||||
|
||||
```markdown
|
||||
# Testprotokoll
|
||||
|
||||
## Testobjekt: [Komponente/Funktion]
|
||||
|
||||
## Testfall TC-001
|
||||
| Schritt | Beschreibung | Erwartetes Ergebnis | Ergebnis |
|
||||
|--------|--------------|---------------------|---------|
|
||||
| 1 | Start Button klicken | Anwendung startet | ✓ OK |
|
||||
| 2 | Login eingeben | Feld zeigt Eingabe | ✓ OK |
|
||||
| 3 | Falsches Passwort | Fehlermeldung | ✓ OK |
|
||||
|
||||
## Tester: [Name]
|
||||
## Datum: [Datum]
|
||||
## Ergebnis: BESTANDEN / NICHT BESTANDEN
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Präsentation und Übergabe
|
||||
|
||||
### Präsentationsstruktur
|
||||
|
||||
```
|
||||
PRÄSENTATION (15-20 Minuten)
|
||||
|
||||
1. Einleitung (2 min)
|
||||
- Projektvorstellung
|
||||
- Ausgangslage
|
||||
|
||||
2. Lösung (5 min)
|
||||
- Vorgehensweise
|
||||
- Architektur
|
||||
- Kernfunktionen
|
||||
|
||||
3. Demonstration (5 min)
|
||||
- Live-Vorführung
|
||||
- Highlight-Features
|
||||
|
||||
4. Projektmanagement (3 min)
|
||||
- Zeitplan
|
||||
- Herausforderungen
|
||||
|
||||
5. Fazit (2 min)
|
||||
- Erreichte Ziele
|
||||
- Ausblick
|
||||
```
|
||||
|
||||
### Übergabedokumentation
|
||||
|
||||
- Installationsanleitung
|
||||
- Benutzerhandbuch
|
||||
- Administratorhandbuch
|
||||
- Technische Dokumentation
|
||||
- Abnahmeprotokoll
|
||||
|
||||
---
|
||||
|
||||
## Prüfungsrelevanz
|
||||
|
||||
- **Gewichtung Teil 2: 50%**
|
||||
- Betriebliche Projektarbeit (40h + Dokumentation)
|
||||
- Präsentation + Fachgespräch (30 min)
|
||||
|
||||
---
|
||||
|
||||
## Tipps für die Prüfung
|
||||
|
||||
1. **Projektplanung**: Realistische Zeitplanung
|
||||
2. **Dokumentation**: Vollständig und nachvollziehbar
|
||||
3. **Präsentation**: Übung, Übung, Übung!
|
||||
4. **Fachgespräch**: Fachbegriffe sicher beherrschen
|
||||
|
||||
---
|
||||
|
||||
## Querverweise
|
||||
|
||||
- [[3-Ausbildungsjahr/LF11a-Funktionalität-realisiren|Vorher: LF 11a]]
|
||||
- [[Prüfungsvorbereitung/Teil2-Projekt|Teil 2 Projekt]]
|
||||
|
||||
---
|
||||
|
||||
*Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019*
|
||||
Reference in New Issue
Block a user