Einführung in das Software Engineering - Cheatsheet.pdf

Einführung in das Software Engineering - Cheatsheet
Einführung in das Software Engineering - Cheatsheet Definition und Ziele des Software Engineering Definition: Erklärung der Begriffe Software Engineering und dessen Zielen. Details: Software Engineering (SW): systematische Entwicklung und Wartung von Software. Ziele von SW: Qualitätssicherung, Kosteneffizienz, Wartbarkeit, Zuverlässigkeit. Nutzung von Methoden, Werkzeugen und Theorien zur Software...

© StudySmarter 2024, all rights reserved.

Einführung in das Software Engineering - Cheatsheet

Definition und Ziele des Software Engineering

Definition:

Erklärung der Begriffe Software Engineering und dessen Zielen.

Details:

  • Software Engineering (SW): systematische Entwicklung und Wartung von Software.
  • Ziele von SW: Qualitätssicherung, Kosteneffizienz, Wartbarkeit, Zuverlässigkeit.
  • Nutzung von Methoden, Werkzeugen und Theorien zur Softwareentwicklung.
  • Fokus auf Prozessmodelle und Vorgehensweisen.

Softwareentwicklungsmodelle: Wasserfall-, V-, Spiral-, inkrementelle und iterative Modelle

Definition:

Wasserfall-, V-, Spiral-, inkrementelle und iterative Modelle sind Softwareentwicklungsansätze, die verschiedene Phasen der Softwareentwicklung strukturieren.

Details:

  • Wasserfallmodell: Sequentiell und linear; jede Phase muss abgeschlossen sein, bevor die nächste beginnt; typischer Ablauf: Anforderungsspezifikation, Entwurf, Implementierung, Testen, Wartung.
  • V-Modell: Erweiterung des Wasserfallmodells; Testphasen werden den Entwicklungsphasen zugeordnet; Fokus auf Verifikation und Validierung.
  • Spiralmodell: Iterativer Ansatz; Kombination von Design und Prototyping; risikobasiertes Management; vier Phasen: Planung, Risikobewertung, Entwicklung und Test, Bewertung.
  • Inkrementelles Modell: Software wird in inkrementellen, teilweise funktionalen Versionen entwickelt und ausgeliefert; jede neue Version verbessert oder erweitert die bereits vorhandene Funktionalität.
  • Iteratives Modell: Softwareentwicklung in wiederholten Zyklen (Iterationen); jede Iteration durchläuft die Phasen Anforderungsanalyse, Design, Implementierung und Testen; ermöglicht Feedback und Anpassungen während des gesamten Entwicklungsprozesses.

Methoden der Anforderungsanalyse und Erstellung von Lasten- und Pflichtenheften

Definition:

Methoden zur Identifikation und Dokumentation von Anforderungen für Softwareprojekte. Lastenheft beschreibt Anforderungen aus Kundensicht. Pflichtenheft enthält technische Umsetzung.

Details:

  • Anforderungsanalyse: Interview, Fragebogen, Beobachtung, Workshops
  • Lastenheft: Vom Auftraggeber verfasst, Fokus auf WAS und WARUM
  • Pflichtenheft: Vom Auftragnehmer verfasst, Fokus auf WIE
  • Ziele des Lastenhefts:
    • Klare Anforderungen
    • Basis für Vertragsgestaltung
  • Inhalte des Pflichtenhefts:
    • Technische Spezifikationen
    • Meilensteine und Zeitpläne

Grundlagen der Softwarearchitektur und Design Patterns

Definition:

Details:

  • Softwarearchitektur: Struktur eines Softwaresystems, bestehend aus Softwarekomponenten, deren Beziehungen und deren Eigenschaften.
  • Design Patterns: Wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwareentwicklung.
  • Architekturstile: Layered, Client-Server, Microservices, u.a.
  • Wichtige Design Patterns: Singleton, Observer, Factory, Strategy, Decorator, Adapter.
  • UML-Diagramme: Zur Visualisierung von Architektur und Design Patterns.
  • SOLID-Prinzipien: Fünf Prinzipien für gute Softwarearchitektur und -design.
  • Entwurfsmusterkategorien: Erzeugungsmuster, Strukturmuster, Verhaltensmuster.

Teststrategien und Testmethoden: Unit Testing, Integration Testing, System Testing

Definition:

Unit Testing: Testen einzelner Komponenten; Integration Testing: Testen des Zusammenspiels mehrerer Komponenten; System Testing: Testen des gesamten Systems

Details:

  • Unit Testing: Fokus auf kleine, isolierte Einheiten; oft durch Entwickler
  • Integration Testing: Testet Schnittstellen und Interaktion zwischen Modulen
  • System Testing: Verifizierung des gesamten integrierten Systems gegen Anforderungen; typischerweise durch QA-Team
  • Abdeckung wichtiger Teststrategien für fehlerfreie Softwareentwicklung

Techniken zur Auflösung von Anforderungskonflikten

Definition:

Methoden zur Lösung von Konflikten zwischen unterschiedlichen Anforderungen.

Details:

  • Anforderungskonflikte können durch Kommunikation, Verhandlungen und Kompromisse gelöst werden.
  • Priorisierung: Nutzwertanalysen, MoSCoW-Methode.
  • Verhandlungen: Konsensfindung, Win-Win-Techniken.
  • Prototypen und Mockups zur Veranschaulichung spezifischer Anforderungen.
  • Stakeholder-Workshops zur gemeinsamen Lösung.
  • Trade-off-Analysen: Nutzen, Kosten, Risiken abwägen.

Architekturstile und -muster

Definition:

Architekturstile und -muster beschreiben bewährte Lösungen für wiederkehrende Entwurfsprobleme auf hoher Abstraktionsebene in der Softwarearchitektur.

Details:

  • Architekturstile: Grundlegende Strukturansätze (z.B. Schichtenarchitektur, Client-Server, Microservices).
  • Architekturmuster: Konkrete Lösungsmuster innerhalb der Architekturstile (z.B. MVC, Schichtenmuster, Pipes & Filters).
  • Ziel: Erhöhung der Wartbarkeit, Wiederverwendbarkeit und Flexibilität der Software.
  • Wichtige Konzepte: Separation of Concerns, Modularität, Lose Kopplung.
  • Beispiele: Singleton-Muster, Factory-Methode, Observer-Muster.

Fehlermanagement und -reporting

Definition:

Prozess zur Identifikation, Analyse, Dokumentation und Kommunikation von Fehlern in Softwareprojekten.

Details:

  • Fehlermanagement: Identifikation, Analyse, Kategorisierung und Priorisierung von Fehlern.
  • Fehlerreporting: Dokumentation und Kommunikation von Fehlern an das Team.
  • Fehlerkategorien: z.B. kritische Fehler, schwerwiegende Fehler, triviale Fehler.
  • Fehleranalyse: Ursachenanalyse (Root Cause Analysis) und Einordnung der Fehler in Kategorien.
  • Tools: JIRA, Bugzilla, Redmine für Reporting und Tracking.
  • Prozesse: Bug-Tracking-System, regelmäßige Fehlerbesprechungen, Reviews.
  • Ziel: Minimierung der Fehleranzahl und Verbesserung der Softwarequalität.
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