Applied Software Engineering Bachelor-Praktikum - Cheatsheet.pdf

Applied Software Engineering Bachelor-Praktikum - Cheatsheet
Applied Software Engineering Bachelor-Praktikum - Cheatsheet Wasserfallmodell Definition: Lineares Vorgehensmodell im Softwareentwicklungsprozess. Jede Phase muss vollständig abgeschlossen sein, bevor die nächste beginnt. Details: Phasen: Anforderungsanalyse, Entwurf, Implementierung, Test, Integration, Wartung Vorteile: Einfache Handhabung und Planung Nachteile: Wenig Flexibilität, spätes Testen ...

© StudySmarter 2024, all rights reserved.

Applied Software Engineering Bachelor-Praktikum - Cheatsheet

Wasserfallmodell

Definition:

Lineares Vorgehensmodell im Softwareentwicklungsprozess. Jede Phase muss vollständig abgeschlossen sein, bevor die nächste beginnt.

Details:

  • Phasen: Anforderungsanalyse, Entwurf, Implementierung, Test, Integration, Wartung
  • Vorteile: Einfache Handhabung und Planung
  • Nachteile: Wenig Flexibilität, spätes Testen
  • Formel: Kein formaler mathematischer Aspekt

Scrum und Kanban

Definition:

Scrum und Kanban sind agile Methoden im Projektmanagement, die zur Optimierung von Arbeitsabläufen und zur Steigerung der Effizienz in Softwareentwicklungsprojekten verwendet werden.

Details:

  • Scrum:
    • Zeitgebundene Sprints (meist 2-4 Wochen)
    • Daily Stand-ups
    • Rollen: Product Owner, Scrum Master, Entwicklungsteam
    • Artefakte: Product Backlog, Sprint Backlog, Increment
  • Kanban:
    • Kontinuierlicher Fluss, keine festen Iterationen
    • Visualisierung der Arbeit mit einem Kanban-Board
    • WIP-Limits (Work In Progress)
    • Fokus auf kontinuierliche Verbesserung

Versionskontrollsysteme (z.B. Git)

Definition:

Werkzeuge zur Verwaltung und Nachverfolgung von Änderungen an Quellcode und Dokumenten.

Details:

  • Git ist ein verteiltes Versionskontrollsystem (VCS).
  • Erstellt Snapshots des gesamten Repositorys.
  • Branching und Merging: parallele Entwicklungszweige.
  • Commit: speichert Änderungen.
  • Remote Repositories: z.B. auf GitHub, GitLab.

Continuous Integration/Continuous Deployment (CI/CD)

Definition:

CI/CD: kontinuierliche Integration (CI) und kontinuierliche Bereitstellung (CD), automatisierte Prozesse zur Verbesserung der Softwarequalität und -lieferung.

Details:

  • CI: Häufige Integration von Codeänderungen in ein gemeinsames Repository, automatische Builds und Tests.
  • CD: Automatisierte Bereitstellung der getesteten Software in verschiedene Umgebungen bis zur Produktion.
  • Ziel: Fehler frühzeitig erkennen, schnelle Auslieferung, kontinuierliches Feedback.
  • Tools: Jenkins, GitLab CI, Travis CI, CircleCI.

Unit-Tests und Integrationstests

Definition:

Unit-Tests prüfen einzelne Softwarekomponenten isoliert; Integrationstests prüfen das Zusammenwirken mehrerer Komponenten.

Details:

  • Unit-Tests: Einzelne Methoden/Funktionen separat testen.
  • Integrationstests: Zusammenarbeit mehrerer Komponenten prüfen.
  • Ziel: Fehler frühzeitig erkennen und beheben.
  • Automatisierung: Wichtig für kontinuierliche Integration.
  • Frameworks: JUnit für Java, NUnit für .NET etc.
  • Best Practices: Wiederholbarkeit, Unabhängigkeit der Tests, klare Assertionen.

Test Driven Development (TDD)

Definition:

Testgetriebene Entwicklung (TDD) ist ein Ansatz in der Softwareentwicklung, bei dem zunächst Testfälle geschrieben werden, bevor der eigentliche Code erstellt wird.

Details:

  • Schreibe Tests basierend auf den Anforderungen, bevor Du den Code schreibst
  • Schnelles Feedback durch kontinuierliches Testen
  • Struktur: Schreibe zuerst einen fehlenden Test, implementiere dann den minimalen Code, um den Test zu bestehen, schließlich verbessere den Code (Refactoring)
  • Ziel: Qualitätssicherung und Fehlerreduktion
  • Tests werden vollständig automatisiert
  • Helps with design decisions as the need for code simplicity and modularization becomes evident

Projektplanung und Meilensteine setzen

Definition:

Ein Projekt erfolgreich zu managen und zu steuern.

Details:

  • Ziele und Umfang des Projekts definieren
  • Ressourcen und Zeitplan erstellen
  • Wichtige Meilensteine festlegen, z.B. Projektstart, Meilenstein 1 (M1): Requirements abgeschlossen, Meilenstein 2 (M2): Implementierung abgeschlossen, Meilenstein 3 (M3): Testen abgeschlossen
  • Rollen und Verantwortlichkeiten verteilen
  • Regelmäßige Fortschrittsüberprüfung

Architektur- und Designmuster

Definition:

Architektur- und Designmuster bieten wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwareentwicklung.

Details:

  • Architekturmuster: Makroebene, Struktur der gesamten Anwendung (z.B. Schichtenarchitektur, Microservices).
  • Designmuster: Mikroebene, spezifische Problemlösungen (z.B. Singleton, Factory, Observer).
  • Erleichtern Kommunikation im Team durch gemeinsame Terminologie.
  • Fördern Wiederverwendbarkeit und Wartbarkeit.
  • \textbf{Beispiel Singleton}: Stellt sicher, dass eine Klasse nur eine Instanz hat.
    • Code: public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }}
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