cert learning Flashcards
LZ 1-1 Wieviele definitionen von Softwarearchitekturen gibt es?
Dutzende
LZ 1-1 Es gibt genau eine Definition von Software Architektur (Wahr/Falsch)
Falsch, es gibt mehrere
LZ 1-1 Was ist in ISO 42010 geregelt
Formelle Beschreibung von Software Architektur
Die grundsätzliche Organisation eines Systems, wie sie sich in dessen Komponenten, deren Beziehung zueinander und zur Umgebung widerspiegelt, sowie die Prinzipien die für seinen Entwurf und seine Evolution gelten.
LZ 1-1 Was ist mit Bausteinen gemeint
Bausteine oder auch “Building Blocks” sind die fundamentalen Strukturen eines Softwaresystems
LZ 1-1 Welche statischen Strukturen(Sichten) gibt es
Bausteinsicht (Bausteine und Beziehungen), Verteilungssicht (Systeme und deren Umgebung, auf welchen Servern laufen sie und welche Hardware ist beteiligt)
LZ 1-1 Welche Gemeinsamkeiten haben Architekturen? Nenne 7 Schlagworte
Bausteine, Komponenten, Schnittstellen, Beziehungen, Strukturen, Konzepte, Prinzipien
LZ 1-1 Nenne fünf Gemeinsamkeiten vieler Architekturdefinitionen
- Strukturelemente (Allgemein Bausteine oder konkrete Komponenten) und deren Zerlegung
- Beziehungen zwischen den Elementen und ihrer Umgebung
- Grundsätze, die Design und Enwicklung des Systems bestimmten
- Entwurfsentscheidungen,
- Unterstützt Evolution eines Systems
LZ 1-2 Formuliere einen Satz zum Ziel von Softwarearchitektur
Softwarearchitektur hat zum Ziel Softwaresysteme längerfristig in angemessener Zeit, Qualität und Kosten weiterentwickeln zu können
LZ 1-7 Architekturziele und Projektziele sind immer gleich (wahr/falsch)
Falsch, sind oft Konträr. Projektziele sind eher kurzfristig und Architekturziele eher langfristig, daher müssen möglichst große Schnittmengen gefunden werden
LZ 1-7 Projektziele vs. Architekturziele, was ist die Aufgabe eines Architekten
Möglichst große Schnittmenge finden
LZ 1-3 Welche Phasen der Softwareentwicklung begleitet Softwarearchitektur
Alle (Spezifikation => Implementierung => Validierung => Betrieb)
LZ 1-6 Welche Aufgaben gehören zu der Rolle Softwarearchitekt
- Anforderungen und Randbedingungen klären
- Strukturen entwerfen
- Querschnittkonzepte einbringen
- Architektur kommunizieren
- Umsetzung begleiten
- Architektur bewerten
LZ 1-5 Nenne zwei Möglichkeiten wie die Rolle “Softwarearchitekt” sinnvoll in Teams eingesetzt werden kann
- Aufgabenverteilung mit Architekturagenten; Hierbei werden Architekturthemen explizit verteilt sodass Entwickler ihr eigenes Teilgebiet haben
- Dedizierter Architekt im Entwicklungsteam, unterstützt Team bei Architekturaufgaben / entwickelt mit / leitet an
LZ 1-8 Warum Architekturziele explizit aufschreiben
- Sichert Konsitenz bei Entscheidungen
- Fördert abstimmen und festlegen mit relevanten Stakehholdern
- Legt auch Abwägungen (Tradeoffs) offen
LZ 1-8 Warum sind implizite Aussagen schlecht
Aussagen die implizit getroffen werden (u. a. Wünsche) oder Annahmen die “einfach so” getroffen werden, werden vergessen wenn es darauf ankommt. Daher lieber explizit aufschreiben
LZ 1-2 Warum Langfristigkeit, geht Software kaputt?
Software geht nicht von alleine kaputt, aber Welt dreht sich weiter. Ständiges Anpassen und iteratives vorgehen Notwendig
LZ 1-2 Welchen Nutzen hat Softwarearchitektur, wie Unterstützt sie in der Organisation
- Bindeglied zwischen Analyse (Business) und Umsetzung (Technik)
- Unterstützt Entwicklung Initial und kontinuierlich (Neuentwicklung, Weiterentwicklung, Wartung, …)
Nenne Einflussfaktoren für Architekturentscheidungen
- Projektziele, Unternehmensstrategie, Geschäftsmodell
- Budget & Zeit
- Verfügbarkeit und Qualifikation von Mitarbeitern
- Gesetze
LZ 1-10 Durch den Typ eines Systems werden meist die Kernaufgaben bekannt. Nenne sechs Typen
- Interaktives Online System (CRUD Business Anwendung)
- Mobile Systeme
- Entscheidungsunterstützung (datawarehouse, dashboards)
- Hintergrundsysteme (Batch Systeme, Nachtjobs für Datenmanipulation)
- Eingebettete Systeme (Firmware)
- Echtzeitsysteme, Operationen werden in garantierter Zeit erledigt
Welche Methodiken einsetzen um Komplexität managen? Nenne zwei
- Mit Strukturen und Konnzepten
- Iterativ vorgehenen
Entwurfsentscheidungen unterliegen diversen Einflussfaktoren (Wahr / Falsch)
Ja, z. B. Gesetze, Time und Budget, Know How der Mitarbeiter, Qualtitätsansprüche
Was versteht man unter Stakeholdern
Alle die mit dem System irgendwie zu tun haben oder interesse daran haben
Wichtige Fragen bei der Stakeholderanalyse
- Wer nimmt Einfluss und wer ist betroffen?
- Was ist die Erwartungshaltung?
- Wie Stark/mächtig ist der Einfluss und Worauf
- Wo gibt es Konflikte
Stakeholder haben immer die gleichen Interessen (Wahr/Falsch)
Falsch
Welche Werkzeuge/Methodiken gibt es für die Erhebung von Stakeholder, nenne Zwei
- Stakeholder Priorisierungsmatrix
- Stakeholder Tabelle
LZ 1-6 Bei der Stakeholder Analyse werden auch die Anforderungen die oft nur schwammig vorliegen geklärt. Worauf müssen Software Architekten besonders achten?
- Anforderungen die besondere Auswirkung auf die Architektur haben (ASR) identifizieren und bearbeiten
Architecturally Significant Requirements
Was bedeutet ASR
Archtecturally Significant Requirements, Anforderungen die maßgeblich die Architektur beeinflussen (können).
LZ 1-6 Nenne fünf Schritte die nötig sind um Anforderungen zu klären
- Stakeholder identifizieren
- Kontext / Scope abgrenzen
- Funktionen, Prozesse, Abläufe ermitteln / verstehen
- Qualitätsziele ermitteln und präzisieren
- Randbedingungen ermitteln
LZ 1-6 Was sind Funktionale Anforderungen
Was soll das System/Produkt tun
LZ 1-6 Was sind Qualitätsanforderungen
Wie schnell, sicher, flexibel, …, soll das System sein
LZ 1-6 Was sind Randbedinungen
Constraints, Dinge die nicht geändert werden können (Technik, Team, Resourcen, bestehende Systeme)
LZ 1-6 Was sind Nicht-Anforderungen
Was soll ganz bewusst NICHT gemacht werden, out of scope
LZ 3-5 Was ist Kontextabgrenzung
In Diagram, Top Level
- Zeigt System von außen
- Schnittstellen zu Nachbarn (Fremdsystemen)
- Die wichtigsten Anwendungsfälle (fachlicher Kontext)
LZ 3-5 Was ist zusätzlich zum Diagram Kontextabgrenzung erforderlich
Eine Tabelle mit zusätzlichen Details, welche die Bausteine beschreibt
LZ 3-5 Wird ein technischer Kontext für die Kontextabgrenzung immer benötigt?
Nein, nur bei Bedarf
LZ 3-5 Wofür kann das Diagram Kontextabgrenzung genutzt werden, nenne drei
- Kommunikation auf Toplevel, Feedback einholen
- Klärung fachlicher Konstellationen
- Kennzeichnung von Risiken
LZ 3-5 Welche Notationen gibt es für Kontextabgrenzung
- Einfache Boxen und Pfeile mit Tabelle
- Komponenten mit Schnittstellenobjekten
- Diagram mit Ball/Socket Schnittstellen
LZ 3-5 Was ist im Diagram Kontextabgrenzung irrelevant
Nachbarn der Nachbarn
LZ 3-5 Was kann man tun wenn es besonders viele Nachbarn im Diagram Kontextabgrenzung gibt
Fachliche Cluster bilden
LZ 1-5 Themen Architekt Management? Nenne Fünf
- Risikoüberwachung und Eskalation
- Entscheidungskompetenzen
- Auswahl und Beurteilung der techn. Fähigkeiten von Bewerbern und Mitarbeitern
- Auswahl Tools und Technologien
- Organisation Entwicklungsteam
LZ 1-5 Themen Architekt Auftraggeber? Nenne drei
- Verbreitung und Akzeptanz der Systemvision
- Einschränkungen und Vorhaben/Wünsche berücksichtigen
- Feedback einholen
LZ 1-5 Themen Architekt Entwickler? Nenne 6
- Akzeptanz der Architektur sicherstellen
- Training und Beratung
- Moderation und Koordination an den Schnittstellen
- Durchsetzen der Architekturvorgaben
- Feedback einholen und einarbeiten
- Entscheidungen herbeiführen
LZ 1-5 Themen Architekt Betrieb? Nenne 5
- Sicherstellen der Betriebbarkeit
- Hardwareanforderungen
- Festlegen des Personalbedarfs
- Einschränkunen und Anforderungen festhalten und berücksichtigen
- Anforderungen an SLA definieren
LZ 1-2 Wie fachliche Anforderungen festhalten
- Kernaufgaben aufzeigen mit 2-3 einletenden Sätzen, Fachbegriffe ins Glossar
- Strukturieren nach Funktionalität und Cluster bilden
LZ 1-2 Wie können komplexe fachliche Anforderungen besser greifbar gemacht werden um sie zu klären/erklären
- Architekturrelevante Aufgaben anhand von konkreten Beispielen (fachliche Szenarien) festhalten
Was ist “Qualität” in Software? Q: Ist == Soll
Das was die Software in Gänze machen soll und wie sie das geforderte erfüllt.
“Softwarequalität ist die Gesamtheit der Merkmalen und Merkmalswerte eines Softwareproduktes die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen”
Was ist ein Qualitätsmerkmal (Quallity attribute, bilities)
Eine Eigenschaft an eine Software die üblihcherweise von Stakeholdern nicht explizit genannt werden. Beinflussen Erstellung, Benutzung oder Weiterentwicklung
Nenne drei Qualitätsmerkmale
- Performance
- Benutzbarkeit / Usability
- Ausfallsicherheit
- Testbarkeit
- Wartbarkeit
- Erweiterbarkeit
Sind in ISO 25010 geregelt
Was ist eine Qualitätsanforderung
Eine konkrete Ausprägung von einem Qualitätsmerkmal
Mit Hilfe von Qualitätszenarien werden Qualitätsmerkmale zu konkreten Qualitätsanforderungen die ein Softwaresystem erfüllen muss
Beispiel: “Von 1000 Benutzern können 90% den Businessprozess X alleine durchführen, ohne den Hilfe Button zu verwenden”
Ein Architekt muss alle Qualitsmerkmale auswendig kennen
Nein, sie sind in ISO 25010 geregelt und das nimmt man einfach als Referenz
Was versteht man unter Qualitätsziel und welche wesentlichen Dinge sollte ein Architekt abfragen?
Auch Architekturziel genannt, am Anfang von einem Projekt sollten 5 bis 10 der wesentlichen Qualitätsanforderungen der maßgeblichen Stakeholder erfasst werden. Diese Anforderungen sind priorisiert.
Hier müssen vom Architekten wesentliche Dinge abgefragt werden welche die Architektur maßgeblich beinflussen können (Performance, Sicherheit, Änderbarkeit, Bedienbarkeit, …) Hierzu gehören auch Mengengerüste
Was ist für ein gutes Qualitätsszenario ausschlaggebend
Sind Konkret in einen Kontext gesetzt, möglichst präzise sowie Mess- und Validierbar.
Nenne drei Kategorien von Qualitätszenarien
- Verwendungszenarien (Use Cases scenarios)
- Änderungsszenarien (Growth scenarios)
- Stressszenarien (Exploratory scenarios)
Es können stets alle geforderten Qualitäten im vollen Umfang erfüllt werden
Nein, es gibt konkurierende Qualitäten. Zum Beispiel Sicherheit und Benutzbarkeit, 3 factor auth ist nicht besonders Benutzbar…
Wie mit Konflikten bei Qualitäten umgehen
- Priorisierung (Alles ist ein Trade-off)
- Priorisierung erfolgt in der Regel anhand der Geschäftsziele
Wie können Prioritäten für Qualitäten festgehalten werden? Nenne 2 Methodiken
- In Tabelle aufgeschrieben und Prios vergeben
- In einem Qualitätsbaum mit Prioritäten