Grundlagen Flashcards
Was sind die gemeinsamen Konzepte der unterschiedlichen Architekturdefinitionen?
Bausteine (Building Blocks, Komponenten, Packages), Beziehungen (relationships) zwischen den Bausteinen, Beziehungen der Bausteine zur Umwelt (Außenwelt, Kontext), Prinzipien, Regeln, Guidelines…
Was ist das wichtigste Entwurfsziel?
Qualität
Warum nimmt Softwarearchitektur eine zentrale Roll in Projekten ein?
Sie unterstützt den Übergang von der Analyse- zur Implementierungsphase und ist somit Teil des Software Lifecycles.
Was sind die für eine Architektur typischen Sichten auf ein System?
- Kontextabgrenzung (Vogelperspektive & Nachbarsysteme)
- Laufzeitsicht
- Bausteinsicht
- Verteilungssicht
Was macht eine gute Softwarearchitektur aus?
- Definition von Design Guidelines
- Spezifikation notwendiger Eckpunkte
- Schafft Verständnis des Systems bei den Stakeholdern
- Dokumentation von Designentscheidungen
- Sinnvolle Aufteilung von Komponenten
- Sicherstellung der Erfüllung funktionaler und nicht-funktionaler Anforderungen an das System
Was sind die Ziele von Softwarearchitektur?
- High-Level Struktur des Systems festlegen => Anforderungen und Qualitätsziele werden erfüllt
- Zentrale Designparadigmen festlegen => Konsistenz im Entwurf (gleiche Probleme werden auf dieselbe Art gelöst)
- Zuweisen von gewünschten Funktionalitäten zu Systembausteinen => Verständlichkeit des Systems wird sichergestellt
- Anforderungen an Qualität festlegen => Nachvollziehbarkeit der Designentscheidungen
- Unterstützung des Entstehungsprozesses, der Wartung und des Betriebs des Systems => Fokus auf Langlebigkeit und Wartbarkeit
- Stakeholder unterstützen, das System zu verstehen => Wiederverwendbarkeit von Systemkomponenten oder Konzepten
Was sind die Aufgabenbereiche der Softwarearchitektur?
- Qualitätsanforderungen und -ziele erfüllen
- Konzeptionelle Integrität (Konsistenz)
- Verständlichkeit des Systems sicherstellen
- Fokus auf Langlebigkeit
- Unterstützung des gesamten Lebenszyklus
- Vereinfachung der Wiederverwendung von Bestandteilen
Was bedeutet Komplexität?
Complexity is the degree to which a system’s design or code is difficult to understand because of numerous components or relationships among components
Welche Einflussfaktoren auf eine Softwarearchitektur gibt es?
- Funktionale Anforderungen
- Nichtfunktionale/Qualitätsanforderungen
- Externe Einflussfaktoren
Architekten prüfen die Anforderungen hinsichtlich der Umsetzbarkeit und stellen ihre korrekte Umsetzung sicher
Welche Aufgaben hat ein Softwarearchitekt?
- Anforderungen und Randbedingungen klären
- Die Architektur evaluieren
- Architektur bewerten und kommunizieren
- Architektur entwerfen oder auswählen
- Implementation begleiten und anleiten
Was sind die drei Grundmotive eines Architekten?
- Effektivität
- Agilität
- Pragmatismus
Wie lautet der Satz von Conway und was bedeutet er?
“Die Strukturen von Organisationen und der von ihnen entwickelten Architekturen sind isomorph.”
Die Entwurfsentscheidungen, die Architektur und das System haben auch Auswirkungen auf die Organisation.
Wie entstehen Softwarearchitekturen nicht?
- Entkoppelt von der Realität echter Systeme
- Losgelöst von Kunden, Auftraggebern und dem Entwicklerteam
- Angepasst an eine bestimmte Technologie
Was sind die Stationen des Design Cycle?
- Start: Informationen sammeln, Ideen für das System entwickeln
- Anforderungen und Randbedingungen klären
- Risiken identifizieren
- Strukturen und technische Konzepte entwerfen
- Architektur kommunizieren
- Implementation begleiten und überwachen
- Die Architektur bewerten
- Ziel: die Auslieferung des Systems
Was sind die unterschiedlichen nichtfunktionalen bzw. Qualitätsanforderungen?
- Übertragbarkeit
- Funktionalität
- Effizienz
- Kompatibilität
- Benutzbarkeit
- Zuverlässigkeit
- Sicherheit
- Wartbarkeit
Wie werden Qualitätsanforderungen konkretisiert und was sind die Eigenschaften dieses Hilfsmittels?
Qualitätsanforderungen werden über Szenarien konkretisiert. Diese enthalten
- den Auslöser (stimulus)
- die Quelle des Auslösers (source)
- die Umgebung (environment)
- den Systembestandteil (artifact)
- die Antwort des Systems durch seine Architektur (response)
- die Antwortmetrik (response measure)