SAQT

...

...


A. S.
Diese Lernkarten bieten eine Einführung in die Grundlagen der Informatikarchitektur. Sie konzentrieren sich auf Systemarchitektur, Schichtenmodelle, Service-Oriented Architecture (SOA), Qualitätsattribute und verschiedene Architekturmuster wie Pipes und Filter oder Peer-to-Peer (P2P). Die Karteikarten eignen sich besonders für Studierende und Berufseinsteiger, die ein Verständnis für die Struktur und Funktionsweise von Software-Systemen entwickeln möchten.
Flashcards
71
Students
1
Language
German
Category
Computer Science
Created / Updated
19.02.2015 / 15.12.2019

Flashcards

Wie definieren Sie die Architektur eines Softwaresystems?

Schnittstellen, Strukturen, Subsystem, Abgrenzungen Umwelt

Welche Elemente verbindet das Architektur-Denken?

  • Anforderung
  • Systemquliäten
  • Randbedingungen

Worum ist Komplexitätsreduktion das wichtigste Ziel beim Entwurf einer Architektur?

  • Wartbarkeit
  • Erweiterbarkeit

In welchen wesentlichen Schritten sollte der Prozess des Architekturentwurfs ablaufen?

Iterativ:

1. Denken in Systemen

  • Welches sind die grundlegenden Systemelemente?
  • Wie grenzen sie sich ab?
  • Welche Beziehungen treten auf?

2. Anwendung von Mustern

  • Welche Muster treten in den Elementen und ihren Beziehungen auf?

3. Bewertung des Systementwurfs

Warum ist ein strukturiertes und inkrementelles Vorgehen sinnvoll?

  • Reduziertes risiko
  • Fehler werden früh gefunden

Welche Teildisziplinen der Software Architektur kennen Sie?

  • Enterprise Architecture
  • Solution Architecture
  • Infrastructure Archtitecture

Unterschied zw. UseCase und UserStory?

UserStory

  • Was, Warum

UseCase

  • Wie

 

Ein hoher Detaillierungsgrad bei UserStories bedeutet?

Das nur wenig klärungsbedarf besteht und die wichtigsten Fragen beantwortet wurde, rsp. wenige Fragen offen bleiben.

Gute User Stories sind?

Sind INVEST:

  • Independent
  • Negotiable (flexible)
  • Valuable
  • Estimatable (usable for planning)
  • Scaleable (klein und schätzbar)
  • Testable

Team definiert Akzeptanzkriterien nach aufbereitung der Story, rsp. beim Grooming.

User Stories bearbeiten. 3 Stufig, inkrementeller Prozess. Erklären!

  1. Kurze beschreibung des Bedarfs
  2. Besprechung während des Backlock Groomings und der Iterationsplanung um die Details zu festigen
  3. Testen um zu Testen ob die Story zufriedenstellend umgesetzt werden kann
  4. Akzeptanzkriterien definieren

Fehler beim schreiben von User Stories?

  1. Zu Formal und zu detailiert
    • Zu viele details führen zu Punkt 3; Fragen werden vergessen
  2. Technischer Task getarnt als Story
    • Schwieriger zu priorisieren, evt. zu gross, verhindern Daily Build
  3. Konversation überspringen
    • Ohne Akzeptanzkriterien: Risiko wesentliches zu überspringen

Wie werden Szenarien Spezifiziert?

  1. Stimulus source
  2. Stimulus
  3. Environment
  4. Artifact
  5. Response
  6. Response measure
  • Szenarien machen nichtfunktionale Anforderungen SMART
  • Mehrere Szenarien pro nichtfunktionaler Anforderung möglich

 -

  • Arten von Fehlern (mögliche Stimuli)

Omission

  • kein Response auf einen Stimulus

Crash

  • Omissions treten wiederholt auf

Timing

  • Response tritt zu falscher Zeit ein (zu früh, zu spät)

Response

  • falscher Respnse des Systems

Responses auf Fehler

  • Prevention
  • Detection & Isolation
  • Recovery
    • Logging des Fehlers
    • Benachrichtigung von Benutzern und anderen Systemen
    • Aktionen zur Schadensbegrenzung
    • Einschränken der Verfügbarkeit oder Funktionalität des betroffenen Systems

Fehler Messen (3)

Mean Time to Recover (MTTR) - Zeitspanne bis ein ausgefallenes System wieder verfügbar ist

Mean Time to Failure (MTTF) - Zeitspanne bis zum Auftreten des nächsten Ausfall

Mean Time between Failure (MTBF) - Zeitspanne zwischen 2 Ausfällen

Erklärung: Interoperability (Interoperabilität, Integrierbarkeit) 

  • Grad in dem zwei oder mehr Systeme Information sinnvoll austauschen können
    • syntaktischer Datenaustausch (Schnittstellen)
    • semantische Dateninterpretation
  • Mit wem? Mit was? Unter welchen Bedingungen?

Erklärung: Modifiability (Modifizierbarkeit, Veränderbarkeit, Erweiterbarkeit)

  • Änderungen und Anpassungen vornehmen können
    • Risiko?
  • Was kann sich ändern?
  • Wie wahrscheinlich ist eine Änderung?
  • Wann passiert eine Änderung und durch wen?
  • Was wird sie kosten?

Erklärung: Performance (Leistung)

  • Systemreaktion in einer bestimmten Zeit auf ein bestimmtes Ereignis
    • oft mit Anforderungen an Skalierbarkeit verbunden
  • Ereignisse treten periodisch, stochastisch, sporadisch auf
  • Messung des Response
    • latency: Zeit zwischen Ereigniseintritt und Systemreaktion
    • deadlines, throughput (Transaktionen/s), jitter (Varianz der Latency, Anzahl nicht verarbeiteter Events)

Erklärung: Security (Sicherheit)

  • Fähigkeit eines Systems  
    • Daten und Informationen vor nichtberechtigtem Zugriff zu schützen, aber berechtigten Zugriff durch Benutzer (und andere Systeme) zuzulassen
    • Informationsintegrität zu sichern (Schutz vor nichterlaubter Manipulation)
    • für legitimierten Gebrauch verfügbar zu sein
  • Angriffe erkennen, ihnen widerstehen, darauf reagieren und sich von ihnen erholen 
  • Z.B. "Denial of service" Attacke verhindert nicht, dass Bücher in einem Online Shop bestellt werden können

Erklärung: Testability (Testbarkeit)

  • Einfachheit mit der Fehler im System festgestellt werden können
  • "a system is testable, if it gives up its faults easily"
  • Source: unit tester – Stimulus: code unit completed

 

  • Artifact: code unit
  • Environment: development
  • response: written & executed tests with results 
  • measure: 85% path coverage in 3 hours

Erklärung: Usability (Benutzerfreundlichkeit)

  • Wie einfach ist es für den Benutzer das System zu verwenden? Welche Unterstützung erhält er dabei?
  • Teilaspekte
    • Einarbeitung in ein System
    • Verwendbarkeit/Bedienbarkeit
    • Auswirkungen von Fehlerverhalten des Benutzers
    • Anpassungsfähigkeit des Systems an den Benutzer
    • Vertrauen und Zufriedenheit des Benutzers
  • "App x kann 2 Minuten nach Download verwendet werden"

Wie gehen Sie mit einem unbekannten Qualitätsattribut um?

  • Die Quellen der Anforderung befragen und das Attribut weiter aufschlüsseln - "was ist genau gemeint"?
  • Konkrete Scenarien für das Attribut sammeln
  • Die gesammelten Stimuli, Responses, Measures verallgemeinern – was ist der wesentliche Kern des Attributs?
  • Taktiken und Muster für die Umsetzung finden
  • Wie können die geforderten Responses erreicht werden?
  •  Woran kann eine Architektur in Bezug auf das Attribut scheitern und wie kann ich das verhindern?

Wie müssen Anforderungen im generellen formuliert sein:

SMART

  • Spezifisch
  • Messbar
  • Akzeptiert
  • Realistisch
  • Terminiert

Warum sind Akzeptanzkriterien in User Stories wichtig?

Definition of Done: 

Ohne Akzeptanzkriterien besteht ein erhöhtes Risiko, wesentliche Funktionalitäten zu übersehen oder falsch zu interpretieren. Die Software wird an den Bedürfnissen des Kunden vorbei entwickelt. 

Warum sollten Use Cases auf unterschiedlichen Detaillierungsstufen formuliert werden? Welche Stufen sind sinnvoll?

Zielhierarchie: Funktionale Abhängigkeiten

Kommunikation auf verschiedenen Leveln: (sichten)

  • Stakeholder (Weiss)
  • Management (blau)
  • Technisch (indigo/schwarz)

Wie hängen Ziele und Schritte in einem Use Case zusammen?

Ziel: Was soll erreicht werden.

Schritte: Wie sollen die Ziele erreicht werden.

Welche Rolle spielen nichtfunktionale Anforderungen und Qualitätsattribute im Architekturentwurf?

Spielen die entscheidende Rolle, bestimmen die Architektur.

Nennen Sie Beispiele für Qualitätsattribute.

  • Verfügbarkeit
  • Sicherheit
  • Leistung
  • Benutzbarkeit 
  • Skalierbarkeit

Wie beschreiben Sie ein Qualitätsattribute mit Hilfe von Szenarien?

  • 1. Stimulus source
  • 2. Stimulus
  • 3. Environment
  • 4. Artifact
  • 5. Response
  • 6. Response measure

Wie gehen Sie mit einem Ihnen unbekannten Qualitätsattribut um?

  • Die Quellen der Anforderung befragen und das Attribut weiter aufschlüsseln - "was ist genau gemeint"?
  • Konkrete Scenarien für das Attribut sammeln
  • Die gesammelten Stimuli, Responses, Measures verallgemeinern – was ist der wesentliche Kern des Attributs?
  • Taktiken und Muster für die Umsetzung finden
  • Wie können die geforderten Responses erreicht werden?
  • Woran kann eine Architektur in Bezug auf das Attribut scheitern und wie kann ich das verhindern?

Welche Beziehung besteht zwischen einem Qualitätsattribut und einem Use Case? Wie würden Sie Informationen zu einem Qualitätsattribut in einem Use Case hinzufügen?

Use Case-specific non-functional requirements 

oder

Special Considerations

Nennen Sie Beispiele für grundlegende Prinzipien für einen guten Architekturentwurf.

  1. Lose Kopplung (Loose Coupling)
  2. Hohe Kohäsion (High Cohasion)
  3. Entwurf für Veränderung (Design for Change)
  4. Trennung der Verantwortlichkeiten (Separation of Concerns)
  5. Geheimhaltung (Information Hiding)
  6. Abstraktion
  7. Modularität
  8. Rückverfolgbarkeit (Traceability)
  9. Selbstdokumentation
  10. Inkrementalität

Was ist ein Architekturprinzip?

Architektur-Prinzipien repräsentieren bewährte Grundsätze, die bei der Gestaltung einer Architektur zur Anwendung kommen sollten

2 Hauptziele:

  • Reduktion der Komplexität
  • Erhöhung der Flexibilität/Änderbarkeit

Womit beschäftigen sich Taktiken nicht?

  • Beschäftigen sich nicht mit Tradeoffs (Kompromissen)
  • Betrachten es isoliert, nicht mit den Zusammenhängen
  • Beschäftigen sich nicht mit der Funktionalität

Was verstehen Sie unter einer Taktik?

Eine Taktik ist eine Entwurfsentscheidung, die Einfluss nimmt auf die Realisierung der Reaktion eines Qualitätsattributszenarios.

Konkrete Entwurfsmuster für nichtfunktionale Anforderugnen.

Erläutern Sie Beispiele für Taktiken zu einem Qualitätsattribut.

  • Warum Heartbeat für Server
  • Monitoring
  • Overhead reduzieren

=> Beispiele zum lösen konkreter Probleme bringen. Warum das obige?

Welche wesentlichen Designentscheide im Zusammenhang mit nichtfunktionalen Anforderungen trifft ein Architekt?

Erläutern Sie diese an einem Beispiel.

1. Zuordnung von Verantwortlichkeiten

  • Welche Elemente im System sind für welche Funktionen und Qualitätsattribute verantwortlich?

2. Koordinationsmodel

  • Wie interagieren welche Elemente? Welche dürfen nicht interagieren?

3. Datenmodell (inkl. Datenhaltung)

4. Resourcenmanagement

  • Wie werden welche Resourcen "gemanaged", "geshared"? Welcher Resourcenbedarf besteht?

5. Zuordnungen von Architekturelementen (mapping)

  • Innerhalb der Architektur: z.B. Module und Laufzeitprozesse
  • Zur Umgebung: z.B. Prozesse und CPU Elemente

6. Binding time decisions

  • Variabilität in der Architektur
    • z.B. Auswahl von Modulen durch parametrisierbares Makefile
    • z.B. Protokoll negotiation erlaubt im Koordinationsmodell?
    • z.B. ein Appstore, der die App automatisch passend zur Smartphone Version auswählt

7. Technologiewahl – Vorgegeben als Constraint oder Wahl des Architekten

Erläutern Sie bekannte Architekturstile.

  1. Schichten (Layers, Tiers)
  2. Pipes & Filters
  3. Verteilte Systeme
    • Client/Server
    • P2P
  4. Blackboard
  5. SOA

Was verstehen Sie unter einem Architekturstil und einem Architekturmuster?

Architekturmuster

A pattern for software architecture describes a particular recurring design problem that arises in specific design contexts, and presents a well-proven generic scheme for its solution. 

Architektur Stile (Grundlegende Muster)

In der Literatur existieren unterschiedliche Auffassungen, welche grundlegenden Muster als Stil betrachtet werden

Erläutern Sie Beispiele für Integrationsmuster. 

  1. File Transfer
    • Anwendungen erzeugen Dateien für gemeinsam verwendete Daten, die ausgetauscht werden
  2. Shared Database
    • Anwendungen lesen und schreiben in eine gemeinsame Datenbank
  3. Remote Procedure Invocation
    • Anwendungen stellen Schnittstellen zur Verfügung, die extern aufrufbar sind
  4. Messaging
    • Anwendungen verwenden ein gemeinsames Messaging System für Datenaustausch und Aufruf

Study