Grundlagen des Software Engineering - Cheatsheet.pdf

Grundlagen des Software Engineering - Cheatsheet
Grundlagen des Software Engineering - Cheatsheet Wasserfall-Modell und Agile Methoden (z.B. Scrum und Kanban) Definition: Wasserfall-Modell: sequentielles Phasenmodell. Agile Methoden: iterative Entwicklung mit Flexibilität (z.B. Scrum, Kanban). Details: Wasserfall-Modell: lineare Phasen (Anforderungsanalyse, Design, Implementierung, Testen, Wartung) Scrum: Sprints, Product Backlog, Daily Standups...

© StudySmarter 2024, all rights reserved.

Grundlagen des Software Engineering - Cheatsheet

Wasserfall-Modell und Agile Methoden (z.B. Scrum und Kanban)

Definition:

Wasserfall-Modell: sequentielles Phasenmodell. Agile Methoden: iterative Entwicklung mit Flexibilität (z.B. Scrum, Kanban).

Details:

  • Wasserfall-Modell: lineare Phasen (Anforderungsanalyse, Design, Implementierung, Testen, Wartung)
  • Scrum: Sprints, Product Backlog, Daily Standups, Rollen (Product Owner, Scrum Master, Team)
  • Kanban: Tafel zur Visualisierung des Arbeitsflusses, Work-in-Progress-Limits (WIP), kontinuierliche Verbesserung
  • Agile Prinzipien: flexible Reaktion auf Veränderungen, Kundenfeedback, iterative Entwicklung, funktionsübergreifende Teams

UML-Klassendiagramme und UML-Sequenzdiagramme

Definition:

UML-Klassendiagramme: Strukturmodell; zeigt Klassen, Attribute, Methoden und Beziehungen. UML-Sequenzdiagramme: Verhaltensmodell; zeigt Interaktionen zwischen Objekten über die Zeit.

Details:

  • UML-Klassendiagramme:
  • Klassen: Rechtecke mit Name, Attributen, und Methoden
  • Beziehungen: Assoziation, Aggregation, Komposition, Vererbung
  • Sichtbarkeit: + (öffentlich), # (geschützt), - (privat)
  • Beispiel:
    class Person {  -name: String  +getName(): String}
  • UML-Sequenzdiagramme:
  • Zeitliche Abfolge: vertikale Achse (Zeit)
  • Objekte: horizontale Achse
  • Nachrichten: Pfeile zwischen Objekten
  • Synchron vs. Asynchron: durchgehende vs. gestrichelte Pfeile
  • Beispiel:
    Person -> getName() : String

Anforderungserhebung und -dokumentation (Interviews, Workshops)

Definition:

Prozess der Identifikation und Dokumentation von Anforderungen, oft mithilfe von Interviews und Workshops.

Details:

  • Anforderungserhebung: Sammeln von Anforderungen von Stakeholdern.
  • Interviews: Einzelgespräche mit Stakeholdern zur detaillierten Anforderungsermittlung.
  • Workshops: Gruppenarbeit zur Erhebung und Diskussion von Anforderungen.
  • Dokumentation: Schriftliche Festhaltung der Anforderungen für spätere Phasen des Projekts.
  • Verwendung von UML-Diagrammen, Use Cases und User Stories zur Visualisierung.
  • Ziele: Klarheit, Vollständigkeit und Nachvollziehbarkeit der Anforderungen sicherstellen.

Design Patterns (Singleton, Factory, Observer)

Definition:

Design Patterns: Wiederverwendbare Lösungen für häufig auftretende Probleme. Singleton: Gewährleistet eine einzige Instanz. Factory: Erzeugt Objekte ohne Angabe der exakten Klasse. Observer: Benachrichtigt abhängige Objekte über Zustandsänderungen.

Details:

  • Singleton: Stellt sicher, dass eine Klasse nur eine Instanz hat und bietet einen globalen Zugangspunkt.
  • Factory Method: Definiert eine Schnittstelle zur Erzeugung eines Objekts, lässt aber Unterklassen entscheiden, welche Klasse instanziiert wird.
  • Observer: Ermöglicht es einem Subjekt, eine Liste von abhängigen Objekten zu pflegen und sie automatisch zu benachrichtigen, wenn sich sein Zustand ändert.

Testpyramide und Testmethoden (Unit-Tests, Integrationstests, Systemtests)

Definition:

Die Testpyramide illustriert das Verhältnis und die Häufigkeit von verschiedenen Testmethoden im Softwareentwicklungsprozess.

Details:

  • Unit-Tests: Testen einzelner Komponenten oder Funktionen, oft isoliert von anderen Teilen des Systems.
  • Integrationstests: Überprüfen das Zusammenspiel mehrerer Komponenten und deren Schnittstellen.
  • Systemtests: Testen das gesamte System als Ganzes, einschließlich aller integrierten Komponenten und Schnittstellen.

Vererbung und Polymorphismus im objektorientierten Design

Definition:

Vererbung erlaubt das Erstellen neuer Klassen basierend auf bestehenden Klassen (Superklasse/Subklasse). Polymorphismus erlaubt Methodenaufrufe, die sich basierend auf dem Typ des Objekts unterschiedlich verhalten.

Details:

  • Vererbung: Wiederverwendung von Code, Hierarchien schaffen
  • Polymorphismus: Methoden überschreiben, Interface-Programmierung
  • Syntax: class Subklasse extends Superklasse { ... }
  • Dynamische Bindung: Laufzeitzuweisung von Methoden
  • is-a-Beziehung: Subklasse ist eine spezialisierte Form der Superklasse
  • Vorteile: Wartbarkeit, Erweiterbarkeit
  • super()-Aufruf: Zugriff auf Konstruktor der Superklasse

DevOps und kontinuierliche Lieferung

Definition:

DevOps verbindet Softwareentwicklung (Dev) und IT-Betrieb (Ops) mit dem Ziel, Entwicklungs-, Test- und Bereitstellungsprozesse zu automatisieren und zu optimieren. Kontinuierliche Lieferung (Continuous Delivery) meint das fortlaufende und automatisierte Bereitstellen von Software in Produktionsumgebungen, sodass sie jederzeit freigegeben werden kann.

Details:

  • Automatisierung: Einsatz von Tools zur Automatisierung von Build-, Test- und Bereitstellungsprozessen.
  • Continuous Integration (CI): Regelmäßige Zusammenführung von Code-Änderungen in ein gemeinsames Repository, gefolgt von automatisierten Builds und Tests.
  • Continuous Deployment (CD): Automatisierte Bereitstellung jeder Änderung, die alle Tests erfolgreich bestanden hat, bis in die Produktionsumgebung.
  • Monitoring und Logging: Ständige Überwachung der Systeme und Analyse von Log-Dateien zur Fehlererkennung und -behebung.
  • Versionierung: Nutzung von Versionskontrollsystemen zur Nachverfolgung und Verwaltung von Codeänderungen.
  • Feedback-Schleifen: Schnelles Einholen und Umsetzen von Feedback für kontinuierliche Verbesserungen.

Werkzeuge für das Anforderungsmanagement und UML-Modellierung

Definition:

Werkzeuge zur Unterstützung von Anforderungsmanagement und UML-Modellierung im Software Engineering Kontext.

Details:

  • Tools erleichtern das Erfassen, Verwalten und Nachverfolgen von Anforderungen.
  • Haupttools: IBM Rational DOORS, Jira, Redmine.
  • UML-Modellierungstools: Enterprise Architect, Visual Paradigm, MagicDraw.
  • Ermöglichen visuelle Darstellung und Dokumentation der Softwarearchitektur.
  • Unterstützen verschiedene UML-Diagramme: Klassendiagramme, Anwendungsfalldiagramme, Sequenzdiagramme, Zustandsdiagramme.
  • Integration mit anderen Softwareentwicklungstools möglich.
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