Applied Software Engineering Master-Projekt - Cheatsheet.pdf

Applied Software Engineering Master-Projekt - Cheatsheet
Applied Software Engineering Master-Projekt - Cheatsheet Prinzipien des Agilen Manifests Definition: Vier zentrale Werte und zwölf Prinzipien, die eine agile Softwareentwicklung unterstützen. Details: Individuen und Interaktionen über Prozesse und Werkzeuge Funktionierende Software über umfassende Dokumentation Zusammenarbeit mit dem Kunden über Vertragsverhandlung Reagieren auf Veränderung über B...

© StudySmarter 2024, all rights reserved.

Applied Software Engineering Master-Projekt - Cheatsheet

Prinzipien des Agilen Manifests

Definition:

Vier zentrale Werte und zwölf Prinzipien, die eine agile Softwareentwicklung unterstützen.

Details:

  • Individuen und Interaktionen über Prozesse und Werkzeuge
  • Funktionierende Software über umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden über Vertragsverhandlung
  • Reagieren auf Veränderung über Befolgen eines Plans
  • Höchste Priorität: Kundenzufriedenheit durch frühe und kontinuierliche Auslieferung wertvoller Software
  • Anforderungsänderungen auch spät in der Entwicklung willkommen
  • Liefern funktionierender Software in regelmäßigen, kurzen Intervallen
  • Enger täglicher Austausch zwischen Fachexperten und Entwicklern
  • Schaffung einer motivierenden Umgebung und Unterstützung für Entwicklerteams
  • Effiziente und effektive Kommunikation: Face-to-Face-Interaktion
  • Funktionierende Software als primäres Fortschrittsmaß
  • Nachhaltige Entwicklung durch gleichbleibendes Tempo
  • Technische Exzellenz und gutes Design fördern Agilität
  • Einfachheit: Kunst des Maximierens der Arbeit, die nicht getan wird
  • Selbstorganisierte Teams erzeugen die besten Architekturen, Anforderungen und Designs
  • Regelmäßiges Reflektieren und Anpassen des eigenen Verhaltens zur Steigerung der Effektivität

Scrum-Framework: Rollen, Events, Artefakte

Definition:

Scrum ist ein agiles Framework zur Entwicklung und Wartung komplexer Produkte.

Details:

  • Rollen:
    • Product Owner: Verantwortlich für die Maximierung des Werts des Produkts.
    • Scrum Master: Verantwortlich für die Einhaltung von Scrum-Praktiken.
    • Entwicklungsteam: Selbstorganisiert, cross-funktional, liefert Produktinkremente.
  • Events:
    • Sprint: Zeitbegrenzter Entwicklungszeitraum (max. 1 Monat).
    • Sprint Planning: Planung des kommenden Sprints.
    • Daily Scrum: Tägliches Standup-Meeting (max. 15 Minuten).
    • Sprint Review: Präsentation des Ergebnisses am Ende des Sprints.
    • Sprint Retrospective: Reflexion zur Prozessverbesserung.
  • Artefakte:
    • Product Backlog: Liste von Aufgaben und Anforderungen.
    • Sprint Backlog: Ausgewählte Items für den nächsten Sprint.
    • Increment: Fertiges Produktinkrement am Ende jedes Sprints.

Testautomatisierung und Frameworks (z.B. Selenium, JUnit)

Definition:

Einsatz von Software-Tools zur automatisierten Durchführung von Tests. Genutzt in CI/CD Pipelines zur Sicherstellung der Softwarequalität.

Details:

  • Selenium: Automatisierung von Webanwendungen für Tests (browserübergreifend).
  • JUnit: Unit-Testing-Framework für Java, unterstützt Test-Driven Development (TDD).
  • Reduzierung manueller Testaufwände.
  • Verbesserung der Testabdeckung und Wiederholbarkeit.
  • Integration in Continuous Integration/Continuous Deployment (CI/CD) Systeme.

Versionierungssysteme (Git, SVN)

Definition:

Versionierungssysteme ermöglichen die Verwaltung und Nachverfolgung von Änderungen an Projektdaten. Git und SVN sind häufig verwendete Systeme.

Details:

  • Git: Dezentralisiertes System, erlaubt gleichzeitige Arbeit mehrerer Entwickler, Branching und Merging sind zentral.
  • SVN: Zentralisiertes System, einfacher als Git, geeignet für kleinere Teams oder Projekte.
  • Branch: Isolierte Arbeitsumgebung zur Entwicklung neuer Features oder Fixes.
  • Commit: Speichern einer momentanen Version des Projekts in der Historie.
  • Merge: Zusammenführen von Änderungen aus verschiedenen Branches.
  • Repository: Speicherort der Versionierungshistorie des Projekts.
  • Workflow: Zentralisierte (SVN) vs. Dezentrale Arbeitsweise (Git).

Continuous Integration/Continuous Deployment (CI/CD)

Definition:

Kontinuierliche Integration (CI) und kontinuierliche Bereitstellung/Deployment (CD) sind Praktiken der Softwareentwicklung, die häufig zusammen verwendet werden, um Entwicklungs- und Operationsprozesse zu automatisieren und zu optimieren.

Details:

  • CI: Integration von Code in ein zentrales Repository häufiger & automatisiertes Testen
  • CD: Automatisiertes Deployment von Code in Produktionsumgebungen nach erfolgreichem Testen
  • Tools: Jenkins, GitLab CI, Travis CI
  • Verkürzt Release-Zyklen
  • Reduziert manuelle Fehler
  • Ermöglicht kontinuierliches Feedback

Entwurfsmuster (Design Patterns)

Definition:

Entwurfsmuster sind bewährte Lösungen für wiederkehrende Entwurfsprobleme in der Softwareentwicklung.

Details:

  • Teilt in drei Kategorien ein: Erzeugungsmuster, Strukturmuster, Verhaltensmuster
  • Erzeugungsmuster: Umgang mit der Objekterstellung, z.B. Singleton, Factory Method
  • Strukturmuster: Aufbau von Klassen und Objekten, z.B. Adapter, Composite
  • Verhaltensmuster: Interaktion und Zuständigkeitsverteilung zwischen Objekten, z.B. Observer, Strategy
  • Verbesserung der Wartbarkeit und Erweiterbarkeit von Software
  • Verwendung in gängigen Frameworks und Bibliotheken

Ressourcenmanagement und Zuweisung

Definition:

Planung, Zuweisung und Überwachung von Ressourcen (Personen, Zeit, Budget) in Softwareprojekten.

Details:

  • Effiziente Ressourcenverteilung erhöht die Projektproduktivität.
  • Verwaltung von Teammitgliedern, um Überlastung zu vermeiden.
  • Fähigkeiten und Verfügbarkeit der Teammitglieder berücksichtigen.
  • Nutzung von Planungstools (z. B. Gantt-Diagrammen) zur Veranschaulichung.
  • Kontinuierliche Überwachung und Anpassung von Ressourcenverteilungen.
  • Stakeholder-Involvierung zur Sicherstellung der Ressourcenzufriedenheit.

Fehlermanagement und Bugtracking

Definition:

Fehlermanagement und Bugtracking betreffen die Identifizierung, Dokumentation und Verwaltung von Fehlern in Softwareprojekten.

Details:

  • Fehlermanagement: Prozess der Handhabung und Analyse von Fehlern zur Verbesserung der Softwarequalität.
  • Bugtracking: Verwendung von Tools zur Aufzeichnung, Verfolgung und Verwaltung von Fehlerberichten.
  • Wichtige Bugtracking-Tools: JIRA, Bugzilla, Redmine.
  • Fehlerklassifizierung: Einteilung in Kategorien basierend auf Schweregrad und Priorität.
  • Fehlerlebenszyklus: Entdeckung, Berichterstattung, Zuordnung, Behebung, Testen, Abschluss.
  • Beinhaltet: Fehlerbeschreibung, Reproduzierschritte, erwartetes vs. tatsächliches Verhalten.
  • Ziel: Minimierung der Fehleranzahl und ihrer Auswirkungen auf das System.
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