Grundlagen des Software Engineering - Cheatsheet
Wasserfallmodell
Definition:
Ein sequentielles Vorgehensmodell in der Softwareentwicklung.
Details:
- Phasen: Anforderungsanalyse, Entwurf, Implementierung, Testen, Einführung, Wartung
- Jede Phase muss abgeschlossen sein, bevor die nächste beginnt.
- Rücksprünge sind möglich, aber teuer.
- Dokumentationsgetrieben
- Gut für Projekte mit klaren und stabilen Anforderungen
Agile Methoden (z.B. Scrum, Kanban)
Definition:
Agile Methoden: iterative und inkrementelle Ansätze in Softwareentwicklung zur Flexibilität und Effizienzsteigerung.
Details:
- Scrum: Rollen (Product Owner, Scrum Master, Entwicklerteam), Events (Sprint, Daily Standup, Sprint Review, Sprint Retrospective), Artefakte (Product Backlog, Sprint Backlog, Increment)
- Kanban: Visualisierung des Workflows, Limitierung der laufenden Arbeiten (WIP), kontinuierliche Verbesserung
- Ziele: schnelle Anpassung an Änderungen, häufige Lieferungen, erhöhte Kundenzufriedenheit
Projektlebenszyklus
Definition:
Projektlebenszyklus beschreibt die Phasen, die ein Softwareprojekt von der Planung bis zur Auslieferung und Wartung durchläuft.
Details:
- Initialisierungsphase: Projektdefinition und Machbarkeitsanalyse
- Planungsphase: Erstellung des Projektplans, Ressourcenplanung
- Umsetzungsphase: Codierung, Testen
- Abschlussphase: Projektabnahme, Dokumentation
- Wartungsphase: Fehlerbehebung, Updates
Softwaretests (Unit Testing, Integration Testing, System Testing)
Definition:
Softwaretests dienen der Sicherstellung der Funktionalität und Qualität von Software.
Details:
- Unit Testing: Testen einzelner Komponenten oder Funktionen.
- Integration Testing: Überprüfen der Zusammenarbeit von Komponenten.
- System Testing: Test des gesamten Systems auf spezifikationskonforme Funktionalität.
Erhebung und Dokumentation von Anforderungen
Definition:
Prozess der Sammlung und Beschreibung von Anforderungen an ein Softwaresystem
Details:
- Stakeholder identifizieren
- Anforderungen erheben: Interviews, Workshops, Umfragen, Beobachtungen
- Kategorisierung: funktionale und nicht-funktionale Anforderungen
- Dokumentation: Lastenheft, Pflichtenheft
- Validierung und Verifizierung
Architekturmuster (z.B. MVC, Microservices)
Definition:
Architekturmuster sind wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwarearchitektur.
Details:
- MVC (Model-View-Controller): Trennung von Daten (Model), Benutzeroberfläche (View) und Steuerung (Controller).
- Microservices: Modularisierung durch kleine, unabhängige Dienste, die über APIs kommunizieren.
- Fördern Wartbarkeit, Skalierbarkeit und Wiederverwendbarkeit.
- Verwendung von Design Patterns zur Erhöhung der Softwarequalität.
Risikomanagement
Definition:
Prozess zur Identifikation, Bewertung und Steuerung von Risiken im Softwareprojekt.
Details:
- Risikokategorien: Technisch, Organisatorisch, Finanziell
- Schritte: Risikoidentifikation, Risikobewertung, Risikosteuerung
- Risikomatrix: \[Risikokennzahl = Eintretenswahrscheinlichkeit \times Schadensausmaß\]
- Strategien: Vermeidung, Verminderung, Übertragung, Akzeptanz
Testautomatisierung
Definition:
Automatisierung von Softwaretests zur Reduzierung manueller Testaufwände und Steigerung der Effizienz und Zuverlässigkeit.
Details:
- Erstellung und Ausführung von Testscripten.
- Nutzung von Testautomatisierungswerkzeugen wie Selenium, JUnit.
- Kostensenkung und Zeitersparnis durch Wiederverwendung der Tests.
- Ermöglicht häufigere und systematische Testdurchläufe.
- Wichtig: Auswahl geeigneter Testfälle zur Automatisierung.
- Testabdeckung und Wartungsaufwand im Auge behalten.