Enterprise Application Development und Evolutionäre Informationssysteme - Cheatsheet.pdf

Enterprise Application Development und Evolutionäre Informationssysteme - Cheatsheet
Enterprise Application Development und Evolutionäre Informationssysteme - Cheatsheet Schichtenarchitekturen und deren Anwendung Definition: Architekturmuster für Software, bei dem die Anwendung in aufeinander aufbauende Schichten unterteilt wird. Details: Basis: Jede Schicht hat bestimmte Verantwortlichkeiten Vorteile: Verbesserung der Modularität, Wiederverwendbarkeit und Wartbarkeit Typische Sch...

© StudySmarter 2024, all rights reserved.

Enterprise Application Development und Evolutionäre Informationssysteme - Cheatsheet

Schichtenarchitekturen und deren Anwendung

Definition:

Architekturmuster für Software, bei dem die Anwendung in aufeinander aufbauende Schichten unterteilt wird.

Details:

  • Basis: Jede Schicht hat bestimmte Verantwortlichkeiten
  • Vorteile: Verbesserung der Modularität, Wiederverwendbarkeit und Wartbarkeit
  • Typische Schichten: Präsentation, Geschäftslogik, Datenzugriff
  • Anwendung in kaskadierenden Modellen und verteilten Systemen
  • Kommunikation zwischen Schichten über definierte Schnittstellen

MVC-Muster und dessen Implementierung

Definition:

MVC (Model-View-Controller) ist ein Architektur-Muster zur Trennung von Daten, Benutzeroberfläche und Anwendungslogik.

Details:

  • Model: Verwalten der Anwendungsdaten und Geschäftslogik.
  • View: Präsentation der Daten für den Benutzer.
  • Controller: Vermittelt zwischen Model und View, verarbeitet Benutzereingaben und aktualisiert Modelle und Ansichten.
  • Vorteile: Erleichtert Wartung und Erweiterung, bessere Testbarkeit, klare Trennung der Verantwortlichkeiten.
  • Umsetzung in Frameworks wie Spring (Java), ASP.NET (C#), Django (Python).

Design Patterns: Repository und Factory

Definition:

Repository: Schnittstelle zum Zugriff auf gespeicherte Daten | Factory: Erzeugungsmuster zur Objekterstellung

Details:

  • Repository: Abstrahiert Datenspeicherzugriffe und fördert Testbarkeit
  • Trennt Geschäfstlogik von Datenzugriff
  • Factory: Erzeugt Objekte ohne direkte Nutzung des Konstruktors
  • Fördert Entkopplung und Flexibilität in der Objekterstellung

Grundlagen und Implementierung von Microservices

Definition:

Architekturstil für die Entwicklung von Softwareanwendungen als Sammlung kleiner, unabhängiger, modularer Dienste, die jeweils für eine spezifische Geschäftsaufgabe verantwortlich sind.

Details:

  • Entkopplung: Jeder Microservice ist eigenständig und kommuniziert über APIs.
  • Skalierbarkeit: Microservices können unabhängig voneinander skaliert werden.
  • Technologieunabhängigkeit: Verschiedene Technologien/Programmiersprachen je Microservice erlaubt.
  • Continuous Deployment: Ermöglicht häufige und unabhängige Releases.
  • Fault Isolation: Fehler in einem Service beeinträchtigen nicht das gesamte System.

Kommunikationsprotokolle: REST und SOAP

Definition:

REST und SOAP sind Architekturstile und Protokolle für den Austausch von Nachrichten in verteilten Systemen.

Details:

  • REST (Representational State Transfer): Leichtgewichtig, nutzt HTTP, JSON und XML.
  • SOAP (Simple Object Access Protocol): Protokoll-basiert, nutzt XML, bietet mehr Standardisierung.
  • REST: Ressourcen-basierter Ansatz, CRUD-Operationen (GET, POST, PUT, DELETE).
  • SOAP: Funktionsbasierter Ansatz, definiert Operationen mit WSDL (Web Services Description Language).
  • REST: Höhere Performance und Skalierbarkeit.
  • SOAP: Bietet Sicherheit und Transaktionsunterstützung über WS-Security und WS-AtomicTransaction.
  • Verwendet in Webservices und Microservices-Architekturen.

Cloud-Service-Modelle: IaaS, PaaS, SaaS

Definition:

Bereitstellungsmodelle im Cloud-Computing

Details:

  • IaaS (Infrastructure as a Service): Virtuelle Rechenressourcen (Server, Speicher, Netzwerk)
  • PaaS (Platform as a Service): Entwicklungs- und Laufzeitumgebungen für Anwendungen, inkl. Middleware und Datenbanken
  • SaaS (Software as a Service): Web-basierte Anwendungen, bereitgestellt und verwaltet von Drittanbietern

CI/CD-Tools und -Workflows: Jenkins, GitLab CI

Definition:

Tools für Continuous Integration und Continuous Delivery/Deployment (CI/CD). Jenkins ist Open-Source-Automatisierungsserver für CI/CD. GitLab CI ist CI/CD-Tool, das in GitLab integriert ist.

Details:

  • Jenkins: bietet flexible und erweiterbare CI/CD-Lösungen.
  • GitLab CI: integriert in GitLab, bietet nahtlose CI/CD-Pipeline-Verwaltung.
  • Mit Jenkins: Pipelines werden in 'Jenkinsfile' definiert.
  • Mit GitLab CI: Pipelines werden in '.gitlab-ci.yml' definiert.
  • Beide Tools unterstützen Plugins/Erweiterungen für zusätzliche Funktionen.
  • Jenkins: basiert auf Master-Agent-Architektur.
  • GitLab CI: verwendet Runner für das Ausführen von Jobs.
  • Beide Tools unterstützen paralleles Ausführen von Jobs, Codetests, und Automatisierung von Deployments.

Agile Methoden: Scrum und Kanban

Definition:

Scrum und Kanban sind agile Methoden zur Softwareentwicklung und Prozessoptimierung.

Details:

  • Scrum: Framework für iterative Entwicklung, betont Rollen (Product Owner, Scrum Master, Dev-Team), Zeremonien (Sprint Planning, Daily Stand-up, Sprint Review, Sprint Retrospective) und Artefakte (Product Backlog, Sprint Backlog, Increment).
  • Kanban: Visualisierung von Arbeitsprozessen mittels Kanban-Board, Schwerpunkt auf kontinuierlicher Verbesserung (Kaizen), Limitierung der Arbeit in Arbeit (WIP), Pull-System.
  • Beide Methoden: Fokus auf Flexibilität, schnelle Anpassung an Änderungen, kontinuierliche Verbesserung, Kundenzufriedenheit.
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