Auf nach Git mit dem Krempel!

This commit is contained in:
2026-03-01 07:10:07 +01:00
commit d311d0c632
49 changed files with 2396 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
## Wasserfallmodell als Hausbau
Stell dir vor, du willst dein Traumhaus bauen. Du kannst nicht einfach loslegen und hoffen, dass am Ende alles passt du brauchst einen klaren Plan!
1**Anforderungsanalyse Der Wunschzettel**
Du setzt dich mit einem Architekten zusammen und überlegst: Wie groß soll das Haus sein? Wie viele Zimmer? Welche Materialien? Alles muss vorher genau definiert werden.
2**Entwurf Der Bauplan entsteht**
Der Architekt erstellt detaillierte Baupläne. Hier wird genau festgelegt, wo Wände, Fenster und Türen hinkommen. Änderungen sind jetzt noch möglich aber später wird es teuer.
3**Implementierung Der Bau beginnt**
Die Handwerker setzen den Plan um: Das Fundament wird gegossen, Mauern hochgezogen, das Dach gedeckt. Jeder Schritt basiert auf den vorherigen Planungen.
4**Testen Die Bauabnahme**
Ein Gutachter prüft, ob alles stabil ist, keine Risse in den Wänden sind und die Elektrik funktioniert. Falls Fehler auftauchen, müssen sie jetzt behoben werden. Endlich ist das Haus fertig! Du kannst einziehen und es nutzen. Alles ist genauso, wie es geplant war.
5**Wartung Reparaturen und Verbesserungen**
Mit der Zeit fällt dir vielleicht auf, dass der Wasserhahn tropft oder du ein neues Zimmer brauchst. Änderungen sind möglich aber aufwendig.
## Vorteile und Nachteile
|**Vorteile ✅**|**Nachteile ❌**|
|---|---|
| | |
|---|---|
|**Klare Struktur** Jede Phase ist definiert und nachvollziehbar.|**Unflexibel** Änderungen sind schwer und teuer umzusetzen.|
| | |
|---|---|
|**Einfache Planung** Gut für Projekte mit festen Anforderungen.|**Späte Fehlererkennung** Probleme werden oft erst spät entdeckt.|
| | |
|---|---|
|**Detaillierte Dokumentation** Hilft bei Wartung und Übergabe.|**Lange Entwicklungszeit** Kunden sehen erst am Ende das Ergebnis.|
| | |
|---|---|
|**Gut für kleine, stabile Projekte** Wenn Anforderungen klar sind, funktioniert es gut.|**Nicht für agile Anforderungen geeignet** Schlecht für dynamische Projekte.|
| | |
|---|---|
|**Einfache Kontrolle** Fortschritt lässt sich gut messen.|**Kunde ist wenig eingebunden** Feedback kommt erst spät, was zu Missverständnissen führen kann.|

View File

@@ -0,0 +1,17 @@
Wie kann ich Kästchen auf/absteigend sortieren?
#### Spaßige Antwort: Bogosort
Man stellt alle Kästchen in einer zufälligen Reihenfolge hin und schaut am Ende, ob es korrekt war. Wenn nicht, neu zufällig draufstellen.
### Mögliche Antwort:
Man nimmt den vorangegangenen Algorithmus, um das schwerste Element zu suchen. Nach dem ersten Durchlauf setzt man das schwerste Element an Position 1 und wiederholt den Vorgang für den Rest, bis alle Elemente nach und nach sortiert sind.
SOLANGE Schachteln nicht in Liste Sortierung sind
SOLANGE noch Schachteln vorhanden sind
greife eine Schachtel heraus
lege diese Schachtel auf die leere Waagschale
WENN die zuletzt auf die Waage gelegte Schachtel schwerer als die andere Schachtel ist:
lege die andere Schachtel in die Ablage
SONST
lege die zuletzt auf die Waage gelegte Schachtel in die Ablage
die verbleibende Schachtel auf der Waage in Liste Sortierung an Position x in Liste Sortierung.
x:=x+1
Ausgabe: Liste Sortierung

View File

@@ -0,0 +1,27 @@
Eine simple Methode wäre mit Element A anzufangen und dieses mit Element B zu vergleichen.
Das leichtere von beiden Elementen wird entfernt.
Dann wird Element C mit dem schwereren Element aus A und B (welches noch auf der Waage liegt) verglichen.
Das leichtere von beiden Elementen wird entfernt.
Dann wird das nächste nicht-gewogene Element auf die Waage gelegt.
Dieser Durchlauf wiederholt sich, bis alle Elemente einmal auf der Waage waren.
Es werden zwei Elemente auf die Waage gelegt.
Das leichtere Element wird entfernt.
Ein neues, nicht gewogenes Element wird auf die Waage gelegt.
Das leichtere Element wird entfernt.
Dieser Vorgang wird für jedes vorhandene nicht gewogene Element wiederholt.
Wenn keine nicht gewogene Elemente mehr vorhanden sind, ist das verbleibende Element auf der Waage das schwerste Element.
### Beispiel:
A: 5
B: 6
C: 3
D: 7
1. A (5) und B (6)
2. B bleibt auf der Waage
3. C (3) und B (6)
4. B bleibt auf der Waage
5. D (7) und B (6)
6. D bleibt auf der Waage
7. Da keine ungetesteten Elemente mehr da sind, muss D das schwerste Element sein.

View File

@@ -0,0 +1,58 @@
Anforderungsanalyse
- Marktanalyse durchführen
- Anforderungen dokumentieren
- Projektziele definieren
- Stakeholder-Interviews führen
- Lastenheft erstellen
- Kundenanforderungen erheben
Entwurf
- Pflichtenheft erstellen
- Mockups oder Prototypen mit Kunden abstimmen
- Erstellung eines ER-Diagramms
- Datenbankstruktur entwerfen
- Regelmäßige Rücksprachen mit dem Kunden zur Zufriedenheit
- Feedback-Schleifen zu ersten Ideen und Konzepten initiieren
- Neue Anforderungen oder Änderungswünsche aufnehmen
- Versionskontrolle einrichten
- Mockups für die Benutzeroberfläche zeichnen
- Konzept für Nutzerführung entwickeln
- Erstellung eines UML-Diagramms
- Architekturmuster auswählen (z. B. MVC)
- Anforderungsdokumente prüfen
Implementierung
- Unit Tests schreiben
- Klassenstruktur erstellen
- Systemoptimierung durchführen
- Zwischenstände der Software dem Kunden präsentieren
- Frameworks installieren
- Code schreiben
- Installationsanleitung erstellen
- Debugging durchführen
Testen
- Tests mit Kundendaten durchführen und validieren lassen
- Integrationstests durchführen
- Kundenfeedback zu Teilmodulen oder Funktionen einholen
- Testdaten generieren
- Testprotokolle auswerten
- Automatisierte Tests einrichten
- Feedback der Benutzer einholen
- Sicherheitslücken testen
- Fehlerbehebung durchführen
- System in einem finalen Kundentest freigeben lassen
- Endgültiges Feedback vor dem Go-Live einholen
Auslieferung/Deployment
- Benutzerkonten einrichten
- Kundenfeedback zur Benutzerfreundlichkeit einholen
- Anforderungen mit dem Kunden überprüfen und freigeben lassen
- Benutzerakzeptanztests organisieren
- Software auf Server bereitstellen
- Projektabschlussbericht und Kundendokumentation erstellen
Wartung/Support
- Dokumentation aktualisieren
- Updates entwickeln
- Kunden-Support leisten

View File

@@ -0,0 +1,30 @@
Planung:
1. Rahmenanforderungen mit Kunden etablieren (Betriebssystem, Plattform)
2. Kernfunktion mit Kunden etablieren
3. Programmiersprache festlegen
4. Entwicklungsumgebung auswählen
5. Programmablaufplan/Struktogramm erstellen
Entwicklung:
1. Entwicklungsumgebung einrichten
2. Die nötigen Dependencies/Libraries bereitstellen
3. Konstanten festlegen und notieren
4. Dokumentieren des Code
5. Testen
6. Bug Fixing
7. UX testen
8. Notfalls iterieren
9. Compilen
Abschluss:
1. Vom Kunden überprüfen lassen
2. Nutzung Dokumentieren
3. Auf Verteilungsmethode veröffentlichen
## Tatsächliche Phasen
1. Anforderungsanalyse
2. Entwurf
3. Implementierung
4. Testen
5. Auslieferung/Deployment
6. Wartung/Support

View File