Einführung in die Softwaretechnik - Cheatsheet.pdf

Einführung in die Softwaretechnik - Cheatsheet
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: ...

© StudySmarter 2024, all rights reserved.

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
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden