Praktische Softwaretechnik - Cheatsheet.pdf

Praktische Softwaretechnik - Cheatsheet
Praktische Softwaretechnik - Cheatsheet Anforderungsanalyse und Spezifikation Definition: Erfassung und Dokumentation der Anforderungen an ein Software-System, um als Basis für die Entwicklung zu dienen. Details: Ermittlung der Anforderungen: Interviews, Workshops, Beobachtungen Dokumentation: Lastenheft (was), Pflichtenheft (wie) Analysemethoden: Use Cases, User Stories, UML-Diagramme Verifikatio...

© StudySmarter 2024, all rights reserved.

Praktische Softwaretechnik - Cheatsheet

Anforderungsanalyse und Spezifikation

Definition:

Erfassung und Dokumentation der Anforderungen an ein Software-System, um als Basis für die Entwicklung zu dienen.

Details:

  • Ermittlung der Anforderungen: Interviews, Workshops, Beobachtungen
  • Dokumentation: Lastenheft (was), Pflichtenheft (wie)
  • Analysemethoden: Use Cases, User Stories, UML-Diagramme
  • Verifikation: Validierung durch Stakeholder

Vererbung und Polymorphismus in objektorientierter Programmierung

Definition:

Vererbung und Polymorphismus sind grundlegende Konzepte der objektorientierten Programmierung zur Wiederverwendung von Code und Flexibilität von Systemen.

Details:

  • Vererbung: Fähigkeit einer Klasse, Eigenschaften und Methoden einer anderen Klasse zu erben (Stichwort: Basisklasse und abgeleitete Klasse).
  • Schlüsselwort in Java: extends
  • Polymorphismus: Fähigkeit, dass eine Methode mehrere Formen annehmen kann. Ermöglicht Nutzung einer Schnittstelle oder Basisklasse durch verschiedene abgeleitete Klassen.
  • Wichtig: dynamisches Binden (Laufzeitbindung)
  • Schlüsselwort in Java: implements (für Interfaces)
  • Beispiel-Vererbung: class B extends A { }
  • Beispiel-Polymorphismus: Shape s = new Circle();

Klassifikation und Implementierung von Entwurfsmustern

Definition:

Klassifikation und Implementierung von Entwurfsmustern umfasst die Einteilung von Mustern in Kategorien und ihre Anwendung zur Lösung wiederkehrender Designprobleme in der Softwareentwicklung.

Details:

  • Entwurfsmuster: Wiederverwendbare Lösungen für häufig auftretende Probleme.
  • Kategorien: Erzeugungsmuster, Strukturmuster, Verhaltensmuster.
  • Erzeugungsmuster: Umgang mit der Objekterzeugung.
  • Strukturmuster: Zusammensetzung von Klassen/Objekten.
  • Verhaltensmuster: Interaktion und Zuständigkeit von Klassen/Objekten.
  • Implementierung: Werden meist durch UML-Diagramme und spezifische Codebeispiele dargestellt.

SCRUM-Prozess und Extreme Programming (XP) Praktiken

Definition:

SCRUM-Prozess: Framework zur agilen Softwareentwicklung. XP: Sammlung von Methoden zur Verbesserung der Softwarequalität und Responsivität.

Details:

  • SCRUM: Iterativ, inkrementell, produktorientiert.
  • Rollen: Product Owner, Scrum Master, Entwicklungsteam.
  • Artefakte: Produkt-Backlog, Sprint-Backlog, Inkrement.
  • Events: Sprint, Sprintplanung, tägliches Stand-up, Sprint-Review, Sprint-Retrospektive.
  • XP-Praktiken: Pair Programming, Test Driven Development (TDD), Continuous Integration, Refactoring.
  • XP-Werte: Kommunikation, Einfachheit, Feedback, Mut, Respekt.

Testgetriebene Entwicklung (TDD) mit JUnit

Definition:

Testgetriebene Entwicklung (TDD) ist eine Entwicklungsstrategie, bei der zuerst automatisierte Tests geschrieben werden, bevor der eigentliche Code implementiert wird.

Details:

  • Schritt 1: Schreibe einen fehlgeschlagenen Test (Red)
  • Schritt 2: Implementiere minimalen Code, damit der Test besteht (Green)
  • Schritt 3: Refaktoriere den Code (Refactor)
  • Wiederhole diese Schritte kontinuierlich
  • JUnit ist ein Framework zum Erstellen und Ausführen automatisierter Tests in Java
  • Testmethoden in JUnit mit @Test annotieren
  • Verwende Assertions wie assertEquals(), assertTrue() usw. zum Überprüfen von Testbedingungen
  • @Before und @After für Vor- und Nachbedingungen einzelner Tests verwenden

Microservice-Architekturen vs. Monolithische Architekturen

Definition:

Microservices: Unabhängige, modularisierte Dienste. Monolithen: Eine große, zusammenhängende Codebasis.

Details:

  • Microservices:
    • Jeder Service eigenständig deploybar
    • Skalierbarkeit auf individueller Servicebasis
    • Ermöglicht Polyglot-Programmierung
  • Monolithisch:
    • Eine zentrale Codebasis
    • Kann einfacher zu verwalten sein bei kleinen Projekten
    • Skalierbarkeit des gesamten Systems notwendig
  • Microservices Vorteile:
    • Bessere Wartbarkeit und Testbarkeit
    • Erhöhte Fehlertoleranz
    • Bessere Nutzung von Continuous Delivery/Deployment
  • Monolithische Vorteile:
    • Einfachere Deployment-Prozesse
    • Geringerer Initialaufwand

Refactoring in TDD

Definition:

Refactoring in TDD: Code verbessern ohne Funktionalität zu ändern. Nach dem Green-Phase refaktorisieren.

Details:

  • Erhöht die Codequalität und Wartbarkeit.
  • Wird nach erfolgreichen Tests (grünen Tests) durchgeführt.
  • Führt zu saubererem und lesbarem Code ohne das Verhalten zu beeinflussen.
  • Erfordert automatisierte Tests zur Validierung der Änderungen.

Praxisbeispiele und Implementierungsstrategien für Entwurfsmuster

Definition:

Praxisbeispiele und Implementierungsstrategien für Entwurfsmuster im Rahmen der Vorlesung Praktische Softwaretechnik vermitteln konkrete Anwendungen und Vorgehensweisen zur Implementierung von Entwurfsmustern.

Details:

  • Einführung: Überblick über gängige Entwurfsmuster wie Singleton, Observer, Factory, Strategy
  • Praxisbeispiele: Anwendungsfälle aus der Praxis verdeutlichen die Verwendung einzelner Entwurfsmuster
  • Strategien: Tipps und Best Practices zur Implementierung
  • Codebeispiele: Typische Implementierungen der Muster in verschiedenen Programmiersprachen (Java, C++)
  • Evaluation: Vergleich der Muster hinsichtlich ihrer Vor- und Nachteile
  • Werkzeuge: Einsatz von Software-Werkzeugen zur Unterstützung der Implementierung
  • Erfahrungen: Berichte aus Projekten und reale Herausforderungen
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