Grundlagen des Software Engineering - Cheatsheet.pdf

Grundlagen des Software Engineering - Cheatsheet
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 An...

© StudySmarter 2024, all rights reserved.

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.
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