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 Grundlagen von Software-Architekturen Definition: Grundkonzepte und Prinzipien zum Entwurf und zur Strukturierung von Softwaresystemen Details: Ziel: Verständliche, wartbare und erweiterbare Systeme Layer-Architektur: Trennung der Systemebenen (Präsentation, Logik, Daten) Client-Server-Modell: Verteilung der Aufga...

© StudySmarter 2024, all rights reserved.

Enterprise Application Development und Evolutionäre Informationssysteme - Cheatsheet

Grundlagen von Software-Architekturen

Definition:

Grundkonzepte und Prinzipien zum Entwurf und zur Strukturierung von Softwaresystemen

Details:

  • Ziel: Verständliche, wartbare und erweiterbare Systeme
  • Layer-Architektur: Trennung der Systemebenen (Präsentation, Logik, Daten)
  • Client-Server-Modell: Verteilung der Aufgaben zwischen Client und Server
  • Mikroservices: Modularisierung durch kleine, unabhängige Dienste
  • Design Patterns: Wiederverwendbare Lösungen für wiederkehrende Probleme (Singleton, Factory, etc.)
  • SOLID-Prinzipien: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
  • Wichtige Qualitätsmerkmale: Performance, Skalierbarkeit, Sicherheit, Testbarkeit

Architekturmuster und -stile

Definition:

Architekturmuster und -stile definieren die grundlegende Struktur von Softwaresystemen und beschreiben wiederverwendbare Lösungsansätze für häufig auftretende Entwurfsprobleme.

Details:

  • Anwendung: Ermöglicht die Strukturierung und Organisation komplexer Systeme.
  • Beispiele für Architekturmuster: Schichtenarchitektur, Client-Server, Microservices.
  • Beispiele für Architekturstile: REST, SOAP, Event-Driven Architecture.
  • Ziele: Wartbarkeit, Skalierbarkeit, Wiederverwendbarkeit, Flexibilität.
  • Schichtenarchitektur: Vorteil: klare Aufgabentrennung, Nachteil: Leistungsüberhead.
  • Microservices: Vorteil: hohe Skalierbarkeit und Unabhängigkeit, Nachteil: komplexer Betrieb.
  • Client-Server: Vorteil: zentrale Verwaltung, Nachteil: Skalierungsprobleme bei hoher Last.

Kommunikationsmethoden zwischen Microservices

Definition:

Wege und Protokolle, die Microservices verwenden, um miteinander zu kommunizieren, oft asynchron und dezentral.

Details:

  • REST (Representational State Transfer): HTTP-basiert, leichtgewichtig, oft für CRUD-Operationen
  • gRPC: Protokoll mit Protobuf, schnelle und effiziente Kommunikation
  • Message Broker (z.B. RabbitMQ, Kafka): Asynchrone Kommunikation, entkoppelt
  • GraphQL: API-Abfragen, flexibel und effizient
  • WebSockets: Bidirektionale Kommunikation in Echtzeit

Automatisierung von Build- und Testprozessen

Definition:

Prozess der automatischen Erstellung und Prüfung von Software zur Reduktion manueller Arbeit und Fehler.

Details:

  • **Continuous Integration** (CI): Häufige Integration von Code in ein zentrales Repository mit automatischen Tests.
  • **Continuous Delivery** (CD): Automatisierte Bereitstellung von Codeänderungen zur Produktion.
  • **Build-Tools**: z.B. Maven, Gradle, Jenkins.
  • **Test-Frameworks**: z.B. JUnit, Selenium, TestNG.
  • **Vorteile**: Schnellere Fehlererkennung, Konsistenz, Zeitersparnis.

Strategien zur Migration und Modernisierung von Legacy-Systemen

Definition:

Strategien zur Umstellung alter Systeme auf moderne Technologien

Details:

  • Big Bang Migration: Alle Komponenten auf einmal umstellen; risikoreich und teuer.
  • Inkrementelle Migration: Schrittweise Umstellung; weniger riskant, komplexer.
  • Parallelbetrieb: Alte und neue Systeme parallel laufen lassen; ermöglicht schrittweise Validierung.
  • Wrapper: Legacy-Systeme mit einer neuen Schicht umgeben; erleichtert schrittweise Modernisierung.
  • Rehosting: Verlagerung des alten Systems auf neue Infrastruktur ohne Code-Änderungen; minimaler Aufwand.
  • Refactoring: Verbesserung der bestehenden Codebasis zur besseren Wartbarkeit; relativ aufwendig.
  • Reengineering: Tiefgehende Überarbeitung inklusive Neuentwicklung von Komponenten; teuer, aber effektiv.
  • Verwendung von APIs: Zugriff auf Legacy-Daten über moderne Schnittstellen; erleichtert Integration.

Lebenszyklus von Informationssystemen

Definition:

Enthält alle Phasen, die ein Informationssystem von der Planung bis zur Stilllegung durchläuft

Details:

  • Planung: Problemdefinition und erste Analyse
  • Systemanalyse: Strukturierte Untersuchung und Definition der Anforderungen
  • Entwurf: Konzeptionelle und physische Gestaltung des Systems
  • Implementierung: Programmierung und technische Realisierung
  • Testen: Prüfung auf Fehler und Sicherstellung der Funktionalität
  • Installation: Rollout des Systems in der Produktionsumgebung
  • Wartung: Laufende Pflege und Anpassungen
  • Stilllegung: Abschaltung und mögliche Ablösung durch ein neues System

Technische Schuld und Refactoring

Definition:

Technische Schuld: Kosten und Probleme, die durch schnelle, unsaubere Lösungen entstehen. Refactoring: Umgestaltung des Codes ohne Änderung des Verhaltens zur Verbesserung der Codequalität.

Details:

  • Technische Schuld steigert Wartungskosten und Fehleranfälligkeit.
  • Frühzeitiges Identifizieren und Managen von technischer Schuld notwendig.
  • Refactoring zielt auf Lesbarkeit, Wartbarkeit und Testbarkeit ab.
  • Tools: SonarQube zur Analyse technischer Schuld.
  • Methoden: Clean Code, Design Patterns, Test Driven Development (TDD).

Best Practices für CI/CD

Definition:

Best Practices für CI/CD beinhalten die Methoden und Strategien, die angewendet werden, um Continuous Integration und Continuous Delivery in der Softwareentwicklung effektiv und effizient zu gestalten.

Details:

  • Kleine, häufige Änderungen integrieren
  • Automatisierte Tests in die Pipeline einbetten
  • Feedback-Schleifen verkürzen
  • Infrastruktur als Code nutzen
  • Kontinuierliche Überwachung und Logging implementieren
  • Security und Compliance in den Prozess integrieren
  • Rollback-Strategien vorbereiten
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