Projekt angewandte Systemsoftwaretechnik - Cheatsheet.pdf

Projekt angewandte Systemsoftwaretechnik - Cheatsheet
Projekt angewandte Systemsoftwaretechnik - Cheatsheet Anforderungsanalyse und -spezifikation Definition: Prozess zur Erhebung, Dokumentation und Verwaltung von Anforderungen an ein Softwareprodukt Details: Ziele: Klare, vollständige und überprüfbare Anforderungen Techniken: Interviews, Fragebögen, Beobachtungen, Workshops Dokument: Lastenheft (Wünsche des Auftraggebers) und Pflichtenheft (konkrete...

© StudySmarter 2024, all rights reserved.

Projekt angewandte Systemsoftwaretechnik - Cheatsheet

Anforderungsanalyse und -spezifikation

Definition:

Prozess zur Erhebung, Dokumentation und Verwaltung von Anforderungen an ein Softwareprodukt

Details:

  • Ziele: Klare, vollständige und überprüfbare Anforderungen
  • Techniken: Interviews, Fragebögen, Beobachtungen, Workshops
  • Dokument: Lastenheft (Wünsche des Auftraggebers) und Pflichtenheft (konkrete Umsetzungsvorgaben)
  • Vermeidung von Missverständnissen mittels präziser und eindeutiger Formulierungen
  • Anforderungsarten: Funktionale Anforderungen (was das System tun soll), Nicht-funktionale Anforderungen (wie das System es tun soll; z.B. Performance, Sicherheit)
  • Validierung: Überprüfung der Anforderungen auf Vollständigkeit und Konsistenz
  • Priorisierung: Festlegung der Wichtigkeit einzelner Anforderungen

Scrum-Framework und Rollen

Definition:

Scrum ist ein agiles Framework zur Entwicklung und Lieferung von Produkten in iterativen Zyklen.

Details:

  • Product Owner: Verantwortlich für das Produkt-Backlog und die Maximierung des Produktwerts.
  • Scrum Master: Unterstützt das Team, Hindernisse zu überwinden und stellt sicher, dass Scrum-Praktiken eingehalten werden.
  • Development Team: Selbstorganisierte Experten, die die eigentliche Entwicklung durchführen.
  • Artefakte: Product Backlog, Sprint Backlog, Inkrement.
  • Ereignisse: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.

Architekturmuster und -stile

Definition:

Architekturmuster und -stile sind wiederverwendbare Lösungen für häufig auftretende Probleme in der Softwarearchitektur.

Details:

  • Schichtenarchitektur: Trennung von Verantwortlichkeiten in verschiedene Schichten (Präsentation, Logik, Daten).
  • Client-Server: Verteilung von Aufgaben zwischen einem Dienstleister (Server) und Dienstnutzer (Client).
  • Microservices: Modularisierung von Anwendungen in kleine, unabhängige Dienste.
  • Event-Driven: Kommunikation über Ereignisse zwischen losgekoppelten Komponenten.
  • REST: Architekturstil für verteilte Hypermedia-Systeme basierend auf HTTP-Methoden.
  • Model-View-Controller (MVC): Trennung von Datenmodell, Benutzeroberfläche und Steuerlogik.
  • Publisher-Subscriber: Nachrichtenverteilung an unterschiedliche Empfänger ohne direkte Kopplung.

Automatisierte Tests und Testskripte

Definition:

Automatisierte Tests und Testskripte: Automatisierte Durchführung und Auswertung von Softwaretests mittels Skripten, um die Testeffizienz zu steigern.

Details:

  • Reduzieren manuellen Testaufwand
  • Verwenden von Testframeworks wie JUnit, Selenium
  • Unterstützen kontinuierliche Integration (CI/CD)
  • Testskripte in verschiedenen Programmiersprachen schreibbar
  • Wiederholbarkeit und Konsistenz
  • Beispiel: \texttt{@Test public void testMethod() { ... }}

Modellierung und Design von Software-Systemen

Definition:

Modellierung und Design von Software-Systemen bezieht sich auf die Erstellung abstrakter Darstellungen und systematischer Entwürfe zur Entwicklung von Softwaresystemen.

Details:

  • Modellierung nutzt UML-Diagramme wie Klassendiagramme, Sequenzdiagramme usw.
  • Design-Prinzipien: Kapselung, Modularität, Abstraktion
  • Entwurfsmuster: Singleton, Observer, Factory, etc.
  • Verwendung von CASE-Tools zur Unterstützung des Modells und Designs
  • Erstellung von Architekturen: Schichtarchitektur, Client-Server, Mikroservices
  • Wichtige Rollen: Software-Architekt, Designer

Microservices und serviceorientierte Architekturen

Definition:

Microservices und SOA sind Architekturstile, die die Entwicklung verteilter Systeme unterstützen.

Details:

  • Microservices: Kleine, unabhängige Dienste, die jeweils einen bestimmten Geschäftsvorfall abbilden.
  • SOA: Gröbere Dienste, die oft mehrere Geschäftsvorgänge abdecken und über Enterprise Service Bus (ESB) kommunizieren.
  • Vorteile Microservices: Hohe Skalierbarkeit, einfache Wartung, technologische Diversität.
  • Nachteile Microservices: Komplexität im Management, höhere Anforderungen an die Infrastruktur.
  • Vorteile SOA: Wiederverwendbarkeit, Integration von Altsystemen, zentralisierte Steuerung.
  • Nachteile SOA: Monolithische Tendenzen, schwerfälliger in der Implementierung und Anpassung.

Iterative Entwicklungsprozesse

Definition:

Wiederholte Phasen des Planens, Implementierens und Evaluierens, um schrittweise zum Ziel zu gelangen.

Details:

  • User Feedback regelmäßig integrieren
  • Verbessert schrittweise das Produkt
  • Flexibel gegenüber Änderungen
  • Beispiel: Scrum, RUP (Rational Unified Process)
  • Risiken frühzeitig erkennen und minimieren

Versionskontrollsysteme und Code-Management

Definition:

Verwaltung von Änderungen an Quellcode in Softwareprojekten; ermöglicht Zusammenarbeit und Historiennachverfolgung.

Details:

  • Git und SVN häufig verwendete Systeme
  • Ermöglicht Branching, Merging und Reversion
  • Verwendung von Commit, Push, Pull Befehlen
  • Erleichtert Teamarbeit und Konfliktbewältigung
  • Integration in CI/CD-Pipelines möglich
  • Remote Repositories zur Datenzentralisierung
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