Wasserfallmodell und V-Modell
Definition:
Wasserfallmodell und V-Modell gehören zu den sequentiellen Entwicklungsprozessen in der Softwaretechnik.
Details:
- Wasserfallmodell:
- Phasen: Anforderungsanalyse, Entwurf, Implementierung, Test, Wartung
- Jede Phase muss abgeschlossen sein, bevor die nächste beginnt.
- V-Modell:
- Erweiterung des Wasserfallmodells
- Links: Spezifikations- und Entwurfsphasen
- Rechts: Testphasen, die den linken Phasen entsprechen
- Verifkation und Validierung integriert
Klassen und Objekte in der OOP
Definition:
Kernkonzepte der objektorientierten Programmierung (OOP), wo Klassen als Baupläne und Objekte als Instanzen dieser Klassen dienen.
Details:
- Klassen enthalten Attribute (Daten) und Methoden (Funktionen).
- Objekte werden durch Instanziierung einer Klasse erstellt:
obj = Klasse()
. - Konstruktor:
__init__()
-Methode initialisiert Objekte. - Kapselung: Zugang zu Attributen/Methode kontrolliert (öffentlich vs. privat).
- Vererbung: Klassen können andere Klassen erweitern:
class Unterklasse(Oberklasse)
. - Polymorphismus: Methoden können je nach Objekt unterschiedlich reagieren.
Testmethoden (Unit Tests, Integrationstests)
Definition:
Unittest und Integrationstest sind zwei häufig eingesetzte Testmethoden in der Softwaretechnik, um die Funktionalität und das Zusammenspiel von Softwarekomponenten sicherzustellen.
Details:
- Unit Tests: Testen einzelne, isolierte Softwareeinheiten (Funktionen, Methoden)
- Häufig durch Nutzung von Mock-Objekten
- Tests sollen deterministisch und schnell ausführbar sein
- Beispiele: JUnit für Java, pytest für Python
- Integrationstests: Testen das Zusammenspiel mehrerer, bereits als einzelne Einheiten getesteter Komponenten
- Überprüfen Schnittstellen und Interaktionen zwischen Modulen
- Tests können komplexer und zeitaufwendiger sein
- Beispiel: Verwenden eines bestimmten Frameworks wie Maven Surefire für Java
Scrum und Kanban
Definition:
Agile Methoden zur Softwareentwicklung, die iterative Planung, kontinuierliche Verbesserung und Transparenz fördern.
Details:
- Scrum: Framework mit festen Rollen, Ereignissen und Artefakten
- Kanban: Visuelles Managementsystem zur Prozesssteuerung und Verbesserung
- Scrum-Rollen: Product Owner, Scrum Master, Entwicklungsteam
- Scrum-Ereignisse: Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
- Kanban-Prinzipien: Visualisierung der Arbeit, Begrenzung von WIP (Work in Progress), Management des Flusses, explizite Prozessregeln, kontinuierliche Verbesserung
Design Patterns
Definition:
Entwurfsmuster sind wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwareentwicklung.
Details:
- Ermöglichen die Wiederverwendung bewährter Praktiken
- Unterteilen sich in drei Kategorien: Erzeugungsmuster, Strukturmuster und Verhaltensmuster
- Bekannte Beispiele: Singleton, Factory Method, Observer, Decorator
- Erhöhen Lesbarkeit und Wartbarkeit des Codes
Automatisierte Tests und CI/CD
Definition:
Automatisierte Tests überprüfen automatisch, ob deine Software korrekt funktioniert. CI/CD (Continuous Integration/Continuous Deployment) gewährleistet, dass Änderungen kontinuierlich integriert und bereitgestellt werden.
Details:
- Automatisierte Tests sparen Zeit und erhöhen die Zuverlässigkeit durch ständige Überprüfung des Codes.
- CI: Kontinuierliche Integration stellt sicher, dass alle Änderungen in einem zentralen Repository integriert sind.
- CD: Kontinuierliche Bereitstellung automatisiert den Bereitstellungsprozess, wobei Software immer in einem bereitstellbaren Zustand ist.
- Tools: Jenkins, Travis CI, GitLab CI.
- Tests: Unit Tests, Integrationstests, Systemtests.
- Formeln/Begriffe: Build Pipeline, Testabdeckung, Roll-Back.
Projektmanagement-Tools (z.B., JIRA)
Definition:
Projektmanagement-Tools (z.B., JIRA) zur Planung, Verwaltung und Nachverfolgung von Softwareentwicklungsprojekten
Details:
- JIRA: Tool von Atlassian zur Problemverfolgung und Projektmanagement
- Unterstützt agile Methoden (Scrum, Kanban)
- Ticketsystem zur Verwaltung von Aufgaben, Bugs und Features
- Anpassbare Workflows und Dashboards
- Integration mit anderen Tools (z.B., Confluence, Bitbucket)
UML-Diagramme und ihre Anwendung
Definition:
Visuelle Modellierungssprache, um Softwareentwürfe zu dokumentieren und zu kommunizieren; hilft Strukturen und Prozesse abzubilden.
Details:
- Klassen-Diagramm: zeigt Klassen, Attribute, Methoden und Beziehungen
- Anwendungsfall-Diagramm (Use-Case): beschreibt Funktionen aus Sicht der Benutzer
- Sequenz-Diagramm: visualisiert Interaktionen zwischen Objekten in zeitlicher Reihenfolge
- Zustands-Diagramm: zeigt Zustände eines Objekts und Übergänge
- Aktivitäts-Diagramm: modelliert Geschäftsprozesse und Workflows