Einführung in die Softwaretechnik - Cheatsheet.pdf

Einführung in die Softwaretechnik - Cheatsheet
Phasen des Softwareentwicklungslebenszyklus Definition: Phasen des Softwareentwicklungslebenszyklus umfassen die Schritte, die zur Entwicklung einer Software notwendig sind. Details: Anforderungsanalyse: Sammlung und Analyse der Anforderungen. Entwurf: Design der Softwarearchitektur und Komponenten. Implementierung: Programmierung und Umsetzung des Entwurfs. Testen: Überprüfung und Validierung der...

© StudySmarter 2024, all rights reserved.

Phasen des Softwareentwicklungslebenszyklus

Definition:

Phasen des Softwareentwicklungslebenszyklus umfassen die Schritte, die zur Entwicklung einer Software notwendig sind.

Details:

  • Anforderungsanalyse: Sammlung und Analyse der Anforderungen.
  • Entwurf: Design der Softwarearchitektur und Komponenten.
  • Implementierung: Programmierung und Umsetzung des Entwurfs.
  • Testen: Überprüfung und Validierung der Software.
  • Deployment: Bereitstellung der Software im Einsatzumfeld.
  • Wartung: Fehlerbehebung, Updates und Verbesserungen nach der Bereitstellung.

Scrum Framework: Rollen, Artefakte, und Zeremonien

Definition:

Scrum Framework: Ein agiles Projektmanagement-Framework, das iterative Entwicklungsprozesse betont.

Details:

  • Rollen:
    • Product Owner: Verantwortlich für das Produkt-Backlog und Produktvision.
    • Scrum Master: Sicherstellt, dass Scrum verstanden und umgesetzt wird; beseitigt Hindernisse.
    • Entwicklungsteam: Selbstorganisierende Fachleute, die das Produkt inkrementell erstellen.
  • Artefakte:
    • Produkt-Backlog: Priorisierte Liste aller gewünschten Arbeiten/Features.
    • Sprint-Backlog: Vom Team ausgewählte Elemente aus dem Produkt-Backlog für den aktuellen Sprint.
    • Inkrement: Fertiges Produktresultat am Ende eines Sprints.
  • Zeremonien:
    • Sprint Planning: Planung der Aufgaben und Ziele für den kommenden Sprint.
    • Daily Scrum: Tägliches 15-minütiges Teammeeting zur Synchronisation.
    • Sprint Review: Präsentation des Sprint-Inkrements und Feedback-Sammlung.
    • Sprint Retrospective: Rückblick auf den vergangenen Sprint zur Prozessverbesserung.

Teststufen: Unit-Tests, Integrationstests, Systemtests und Abnahmetests

Definition:

Testarten in der Softwareentwicklung zur Überprüfung der Funktionalität auf verschiedenen Ebenen

Details:

  • Unit-Tests: Testen einzelner Module/Funktionen. Fokus auf kleinste Testeinheit.
  • Integrationstests: Überprüfung des Zusammenspiels mehrerer Module. Erkennung von Schnittstellenproblemen.
  • Systemtests: Gesamtsystem wird auf Erfüllung der Anforderungen getestet. Umfassende End-to-End-Tests.
  • Abnahmetests: Endbenutzer prüft, ob die Software alle Anforderungen erfüllt. Grundlage für die Abnahme des Produkts.

Microservices Architekturmuster

Definition:

Architekturstil, der Anwendungen als Sammlung lose gekoppelter, kleinster Dienste strukturiert, die unabhängig voneinander entwickelt, bereitgestellt und skaliert werden können. Jeder Dienst erfüllt eine spezifische Geschäftsaufgabe und kommuniziert über Netzwerkschnittstellen.

Details:

  • Lose Kopplung und Unabhängigkeit der Dienste
  • Skalierbarkeit und Flexibilität
  • Jeder Dienst hat seine eigene Datenbank
  • Kommunikation oft über HTTP/REST oder Messaging-Protokolle
  • Verantwortungsbereich kleiner, selbstständiger Teams
  • Herausforderungen: Netzwerklatenzen, Datenkonsistenz

Black-Box-Testing und White-Box-Testing

Definition:

Black-Box-Testing: Testen der Software ohne Kenntnis der internen Implementierung.White-Box-Testing: Testen basierend auf Kenntnis der internen Implementierung.

Details:

  • Black-Box-Testing:
    • Fokus auf funktionale Anforderungen.
    • Testfälle basieren auf Spezifikationen, nicht auf Code.
    • Nützlich für Akzeptanztests.
  • White-Box-Testing:
    • Fokus auf interne Struktur und Logik.
    • Testfälle basieren auf Code-Struktur (z.B. Zweigüberdeckung).
    • Nützlich für Unit Tests und Code-Überprüfungen.

Extreme Programming (XP) Praktiken

Definition:

XP ist eine agile Methodik für Softwareentwicklung, die auf Einfachheit, Feedback und stetiger Verbesserung basiert.

Details:

  • Pair Programming: Zwei Entwickler arbeiten gemeinsam am selben Code.
  • Test-Driven Development (TDD): Tests werden vor dem eigentlichen Code geschrieben.
  • Continuous Integration: Häufiges Integrieren von Code in das Haupt-Repository.
  • Refactoring: Regelmäßige Verbesserung des Codes ohne Änderung seines Verhaltens.
  • Small Releases: Häufige, kleine Veröffentlichungen von Software.
  • Simple Design: Design so einfach wie möglich halten.
  • Collective Code Ownership: Jeder im Team kann jeden Teil des Codes ändern.
  • Customer On-Site: Ein Kunde ist ständig vor Ort für Rückfragen und Feedback.

Designentscheidungen und ihre Auswirkungen

Definition:

Einfluss von Entscheidungen im Designprozess auf das Endprodukt und den Entwicklungsprozess.

Details:

  • Architekturentscheidungen: beeinflussen Systemperformance, Wartbarkeit, Skalierbarkeit.
  • Technologieauswahl: beeinflusst Entwicklungszeit, Kosten, Teamkompetenz.
  • Entwurfsmuster: beeinflussen Flexibilität, Verständlichkeit von Code.
  • Refactoring: verbessert Codequalität ohne Verhaltensänderung.
  • Trade-offs: Balance zwischen kurzfristigen Nutzen und langfristigen Zielen.

Werkzeuge zur Unterstützung des Entwicklungsprozesses

Definition:

Werkzeuge und Softwarelösungen, die den gesamten Softwareentwicklungsprozess unterstützen.

Details:

  • Versionskontrollsysteme (z.B. Git)
  • Continuous Integration/Continuous Deployment (CI/CD) Systeme (z.B. Jenkins, GitLab CI)
  • Projektmanagement-Tools (z.B. Jira, Trello)
  • Code Review und Kollaboration (z.B. GitHub, Bitbucket)
  • Build-Automatisierung (z.B. Maven, Gradle)
  • Testautomatisierung (z.B. JUnit, Selenium)
  • Containerisierung und Virtualisierung (z.B. Docker, Kubernetes)
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