Software Architektur Flashcards
Zentrale Begriffe der Softwarearchitektur
Kontextabgrenzung
Prinzipien
Querschnittskonzepte
Bausteine, Struktur, Schnittstelle, Laufzeitverhalten, Verteilung
Definition Baustein
Ein allgemeiner Begriff für Komponenten, Subsysteme, Pakete, Module, Klassen, Funktionen, Prozeduren, Frameworks oder andere Abstraktionen von Quellcode
Definition Schnittstelle
Zugangspunkt zum System oder Baustein
Kommunikation nach aussen
Fäden des gesamten Systems
Ziele der Softwarearchitektur
Beschreiben
Nachweisen
Vorschreiben
Risiken vermeiden
Architektur-Aktivitäten
Einflussfaktoren: Ziele, Stakeholderanliegen, Rahmenbedingungen, Anforderungen und Szenarien
Stakeholder & Kommunikation: Stakeholderzusammenarbeit, Architekt (Berater, Verkäufer, Entscheidungsträger), Sichten
Leitfaden: Annahmen & Risiken, Vorgehen, Hilfmittel/Werkzeuge, Prinzipien
Lösungsstrategie: Kontextabgrenzung, Architekturstruktur -> Auswahl der Alternativen
Lösungsentwurf: Bausteine, Laufzeitverhalten, Verteilung, Querschnittskonzepte, Architekturentscheidungen, Prototyp, Feedback, Vorgaben, Bewertung/Feedback
Zusammenfassung der Architekturaufgaben
Einflussfaktoren klären Kommunizieren Leitfaden bestimmen Lösungsstrategie erstellen Lösungsentwurf erstsellen Bewertung & Feedback einholen
Was für Randbedingungen gibt es?
Ressourcen Standards Organisation Trends Technologien juristische Aspekte
Welche Einflussfaktoren schränken die Lösungsmöglichekeiten ein?
Ziele
Anforderungen
Randbedingung
Stakeholder Anliegen
Projektmanagement magisches Dreieck
Ressourcen, Scope, Zeitplan
Conways Law
Organisationen, die Systeme entwerfen… sind gezwungen, Designs zu produzieren, die Kopien der Kommunikationsstrukturen dieser Organisation sind.
Umgekehrt beeinflussen Architekturentscheidungen die Organisationen
Definition: funktionale Anforderungen
Die Fähigkeit, die Arbeit auszuführen, für die es bestimmt war. Beschreibt was das System zu leisten hat.
Definition: Qualitätsanforderungen (Non- Funktional)
Eigenschaften eines Systems. die den Erfüllungsgrad der angegeben und implizierten Bedürfnisse seiner Stakeholder spezifiziert. Sie formen die Architektur und beschreiben die Eignung des Systems für seinen Zweck.
Was für Qualitätsanforderungen nach ISO 25010 gibt es?
Benutzbarkeit Sicherheit Portabilität Skalierbarkeit Funktionale Eignung Leistungseffizienz Kompatibilität Wartbarkeit Zuverlässigkeit
Qualitätsszenario
Wie ein System beim Eintreffen eines Stimulus in bestimmten Situationen reagiert.
Auslöser -> Quelle -> Umstände -> Antwort -> Antwortmetrik -> Artefakte
Qualitätsbaum: Blätter priorisieren
Negative Wechselwirkungsbeispiele von Qualität
Benutzbarkeit <> Sicherheit Anpassbarkeit <> Leistungseffizienz Sicherheit <> Leistungseffizienz Testbarkeit <> Leistungseffizienz Hohe Qualität <> niedrige Ressourcen
Merkmale guter Dokumentation
Benutzbarkeit und Zielgruppenorientierung Angemessenheit Top-Down Wartbarkeit und Kostenbewusstheit Korrektheit und Aktualität Einfachheit, Benutzbarkeit, Effizienz Verständlichkeit
Ausgeschlossen: Vollständigkeit
Definition: Blackbox
Darstellung aus der Perspektive eines Bausteinnutzers von ausserhalb des Systems
Visualisierung des Umfeldes
Beschreibt der Verantwortlichkeiten, Zweck bzw, Aufgabe eines Bausteins
Folgt dem Geheimnisprinzip: verbirgt das “private Innenleben” des Bausteins
Definition: Whitebox
Eine Darstellung aus der Perspektive eines Baustein-Entwicklers von innen
Sie zeigen die innere Struktur und Implementierung des Blackbox-Bausteins
Bestehen ihrerseits wiederum aus einer Anzahl von Blackboxes
Hierarchische Verfeinerung
Der Detaillierungsgrad der Architekturbeschreibung kann durch abwechselnde Blackbox und Whitebox Darstellungen iterativ verfeinert werden
Hauptsichten laut iSAQB
Kontextabgrenzung
Laufzeitsichten
Bausteinsichten
Verteilungssichten
Kontextsicht
Dient allen Beteiligten als EInstiegspunkt für das zu beschreibende System
Zeigt das System als Blackbox in seinem Konxtext (Umfeld) aus einer Vogelperspektive
Stellt die Abgrenzung zu externen Systemen und deren Schnittstellen dar
Abbildung der Verantwortungsbereiche des Systems
Bausteinsicht
Bildet die Anwendungsfunktionalität und Qualitätsanforderungen auf Softwarebausteine ab
Macht die Zusammenhänge, Aufbau und Zerlegung der Bausteine im System explizit
Dient der Zuteilung von Arbeitspaketen in Form von Architekturbausteine
Fungiert als Referenz bzw. Vorgabe für Softwareentwickler und Qualitätsssicherung
Laufzeitsicht
Eine dynamische Sicht, die das Zusammenwirken mehrerer Softwarebausteine bzw. das Verhalten eines Bausteines zur Laufzeit abbildet
Dokumentiert, wie das System zur Laufzeit seine wesentliche Funktionen, Use-Cases, bzw. Abläufe ausführt, inkl. Steuerung, Konfiguration, Administration Nutzung
Verteilungssicht (Infrastuktur bzw. Deploymentsicht)
Zeigt das System aus Betreibersicht
Abbildung der technischen Laufzeitumgebung des Systems
Abbildung der Softwarebausteine auf die Infrastrukturkompononenten