Skip to content

Latest commit

 

History

History
290 lines (197 loc) · 12.2 KB

ke05.md

File metadata and controls

290 lines (197 loc) · 12.2 KB
recall
header

Was ist das Ergebnis der Analyse und wie setzt es sich zusammen?

Analysespezifikation:

  • Analyseklassenmodell
  • Interaktionsdiagramme
  • Zustandsdiagramme
  • Dokumentation der Modellverifikation

Wozu dient die Analyse?

Aufbereitung und Präzisierung der Anforderungsspezifikation im Hinblick auf Realisierungserfordernisse

Welche Schritte umfasst die Analyse?

  • Erweitern des Domänenklassenmodells um Schnittstellen- und Kontrollklassen
  • Zuordnung von funktionalen Verantwortlichkeiten zu den Klassen
  • Hinzufügen von Operationen
  • komplexe Anwendungsfälle in Mechanismen und Interaktionsdiagrammen abbilden
  • Zustandsdiagramm erweitern / verfeinern
  • Verifikation des Modells auf Konsistenz und Vollständigkeit

Wie entscheidet man im Analyseklassenmodell zwischen gleichwertigen Modellierungsalternativen?

Willkürlich für eins, Dokumentiert aber die Entscheidung sowie die Vor- und Nachteile beider Modellierungen, um ggf. später einfach zu wechseln

Wie kann zwischen einer 1:1 Assoziation und einer größeren Klasse entscheiden werden?

  • Ist die Assoziation an mindestens einem Ende optional, sollten separate Klassen gewählt werden
  • Geht eine der beiden Klassen eine Verbindung zu einer Klasse ein, die die andere Klasse nicht interessiert, sollten separate Klassen gewählt werden

Wie wird bei einer assoziierten Klasse, die aufgeteilt werden soll, entscheiden zu welcher neuen Klasse die Assoziation zeigt?

Die alte Assoziation wird so verknüpft, dass eine Änderung der neuen 1:1 Assoziation zwischen der aufgeteilten Klasse möglichst keinen Einfluss auf die alte Assoziation hat

Wie kann entschieden werden, ob zwei ähnliche Klassen von einer Oberklasse erben oder zu einer Klasse zusammengefasst und Objekte nur durch wenige Attribute einem spezielleren Typ des Objekts zugeschrieben werden?

Sind es wenige Attribute und diese können sich dynamisch ändern ist es einfacher unterscheidende Attribute einzuführen. Unterscheiden sich Objekte unterschiedlichen Typs auch in ihrem Verhalten, sind unterschiedliche Klassen vorzuziehen

Welche Heuristiken zur Klassenmodellierung gibt es (Analyse)?

  1. Bei gleichwertigen Alternativen, entscheidet man sich für irgendeine (und dokumentiert es)
  2. Zwei Klassen, wenn eine Assoziation zwischen ihnen an mindestens einem Ende optional ist
  3. Zwei Klassen, wenn nur eine von ihnen eine Assoziation mit einer dritten eingehen kann
  4. Beim Aufteilen einer Klasse, werden bestehende Assoziationen so verknüpft, dass die neue 1:1 Assoziation geringsten Einfluss auf sie hat
  5. Verhaltens- und Attributgleiche Klassen werden zusammengefasst und ggf. durch wenige unterscheidende Attribute "spezialisiert"
  6. Unterscheiden sich Objekte in mehreren Attributen oder ihrem Verhalten, gehören aber zur gleichen Familie, ist eine Generalisierung angebracht

Wie unterscheiden sich Analyseklassen von Entwurfsklassen?

Analyseklassen Entwurfsklassen
nicht-funktionale Anforderungen berücksichtigt
implementierungssprachenspezifische Typen
Navigierbarkeit von Assoziationen
Generalisierung zur Redundanzvermeidung
Verhalten in texueller Form beschrieben primär in Modellform
nicht-Standardoperationen nur wenn nötig
komplexe nicht-Standardoperationen nur Signatur

In welche Stereotypen werden alle Klassen den Analyseklassenmodells eingeteilt?

  • Schnittstellen- (boundary)
  • Kontroll- (control)
  • Entitäts- (entity)

klassen

Was sind Entitätsklassen?

  • enthalten langlebige Informationen
  • repräsentieren Domänenklassen
  • repräsentieren Systemklassen, die zur Verwendung nötig sind, aber nicht zur Domäne gehören

Wozu dienen Schnittstellenklassen?

  • Auswahl von Anwendungsfällen (Menüs)
  • Unterstützung der externen Interaktion (Schnittstellen)
  • Repräsentation von Daten (Listen, Views)
  • Akteur-gesteuerte Modifikation von Daten (Dialoge)
  • Umsetzung von Kommunikationsprotokollen (Schnittstellen)

Was sind Akteur-Schnittstellenklassen?

Bietet einem Akteur die ihm zur Verfügung stehenden Anwendungsfälle zur Auswahl an. Im Grunde Toolbar / Menü im Hauptfenster einer Anwendung

Was sind Anwendungsfall-Akteur-Schnittstellenklassen?

Schnittstellenklasse, die einen bestimmten Anwendungsfall gegenüber einem menschlichen Akteur abwickelt (Dialogbox, Wizard)

Was sind Kontrollklassen?

Implementieren die fachliche Logik (Control) eines Anwendungsfalls, Vermitteln zwischen Entitätsklasse (Model) und Schnittstellenklasse (View)

Welche Unterpakete werden bei der Analyse eingeführt?

Die Pakete der Akteure / Anwendungsfälle werden in Schnittstellen- Kontroll- und Entitätspakete untergliedert

Was sind Dienstpakete?

Pakete mit Klassen, die nach Funktionalität gruppiert sind und mehreren Akteuren / Anwendugsfällen dienen

Wie detailliert wird der Ablauf komplexer nicht-Standardoperationen in der Analyse dargestellt?

komplexe nicht-Standardoperationen werden eingeführt aber erst im Entwurf detailliert

Wie wird bei der Verhaltensmodellierung während der Analyse vorgegangen?

  • an Anwendungsfall beteiligte Klassen werden in Mechanismus dargestellt
  • in Objektdiagramm dieser Klassen werden Operationsaufrufe eingezeichnet -> Kollaborationsdiagramm
  • gefundene, noch nicht vermerkte nicht-Standardoperationen werden in Analyseklassenmodell übernommen

Was ist Intra-Modell Verifikation?

Prüfen eines einzelnen Modells auf Vollständigkeit, Eindeutigkeit und Konsistenz während der Analyse-Phase

Wann ist ein Modell vollständig (Intra-Modell Verifikation der Analyse)?

Wenn alle Modellelemente die Spezifikationsrichtlinien befolgen

Wann ist ein Modell eindeutig (Intra-Modell Verifikation der Analyse)?

Wenn es nur auf eine Art und Weise interpretiert werden kann

Wann ist ein Modell konsistent (Intra-Modell Verifikation der Analyse)?

Wenn alle Querbezüge auf existente und richtige Modellelemente verweisen und keine redundanten / widersprüchlichen Spezifikationen auftauchen

Was wird bei der Intra-Modell Verifikation des Anwendungsfallmodells geprüft (Analyse)?

Konsistenz zwischen textueller Spezifikation und Diagramm:

  • alle «include»-Beziehungen konsistent?
  • Erweiterungspunkte für «extend»-Beziehnung beschrieben?

Was wird bei der Intra-Modell Verifikation des Klassenmodells geprüft (Analyse)?

  • Alle Assoziationen haben Multiplizitäten
  • keine nicht deklarierten ableitbaren Attribute
  • keine redundanten Features in Unterklassen
  • letzte Unterklasse ist regulär
  • Unterklassen abstrakter Klassen implementieren abstrakte Operationen
  • alle in Invarianten, Vor- und Nachbedingung vorkommenden nicht-Standardoperationen müssen auch im Klassenmodell vorkommen

Was wird bei der Intra-Modell Verifikation von Interaktionsdiagrammen geprüft (Analyse)?

  • alle Pfeile sind mit Operationsnamen gekennzeichnet
  • alle nicht in der ersten Zeile stehenden Objekte werden explizit erzeugt (nur Sequenzdiagramm)
  • korrekte Markierung aller Objekte mit {new}, {destroyed} oder {transient} (nur Kollaborationsdiagramme)

Was ist Inter-Modell Verifikation?

Abgleich von Modellen untereinander

  1. Analyseklassenmodell vs. Anwendungsfallmodell
  2. Analyseklassenmodell vs. Zustandsdiagramme
  3. Analyseklassenmodell vs. Interaktionsdiagramme
  4. (Zustandsdiagramme vs. Interaktionsdiagramme)

Welche drei Kriterien gewährleisten Konsistenz von Analyseklassenmodell gegenüber Anwendungsfallmodell?

  1. Für jede Aktion in jedem Szenario muss es eine Operation geben, die diese Aktion im Klassenmodell umsetzt
  2. Jede Operation wird in mindestens einem Szenario "benutzt"
  3. Operationen eines Szenarios im Klassenmodell stellen die Vor- und Nachbedingungen des Anwendungsfalls sicher

Welche drei Eigenschaften gewährleisten Konsistenz von Analyseklassenmodell gegenüber Zustandsdiagrammen?

  1. Für jede Aktion eines Zustandsübergangs im Zustandsdiagramm existiert eine entsprechende Operation im Klassenmodell
  2. Ausgangszustand eines Zustandsübergangs im Zustandsdiagramm erfüllt die Vorbedingung der Operation, die der zum Übergang gehörenden Aktion entspricht
  3. Nachbedingungen für Attributwerte und Verbindungen ist mit dem Folgezustand (und den enthaltenen Bedingungen) verträglich

Welche drei Eigenschaften gewährleisten Konsistenz von Analyseklassenmodell gegenüber Interaktionsdiagrammen?

  1. Für jeden Operationsaufruf in Interaktionsdiagrammen existiert eine entsprechende Operation im Klassenmodell
  2. In Kollaborationsdiagrammen dargestellten Verbindungen ensprechen die Assoziationen im Klassenmodell
  3. Objekterzeugung und -zerstörung im Fall von Aggregations- und Kompositionsbeziehungen passt zu deren spezieller Semantik

Welche zwei Eigenschaften gewährleisten Konsistenz von Zustandsdiagrammen gegenüber Interaktionsdiagrammen?

  1. Die Folge der Ereignisse im Zustandsdiagramm korrespondiert mit der Folge der empfangenen Nachrichten (Operationsaufrufe) im Interaktionsdiagramm
  2. Die Folge der Sendeaktionen im Zustandsdiagramm korrespondiert mit der Folge der gesendeten Nachrichten (Operationsaufrufe) im Interaktionsdiagramm.

Wie werden Verbindungen zwischen Akteur-Anwendungsfall-Schnittstellenklassen festgestellt?

«include» und «extend» Beziehungen im Anwendungsfalldiagramm führen zu Assoziationen zwischen AAS-Klassen im Analyseklassenmodell

Wie werden «include» und «extend» Beziehungen im Anwendungsfalldiagramm im Analyseklassenmodell berücksichtigt?

Assoziationen zwischen den entsprechenden AAS Klassen

Welche Schichtenmodell hat sich im Architekturentwurf etabliert?

Drei-Schichten-Modell:

  • Externe Schnittstelle
  • Anwendungskern
  • Datenhaltung

Welche Vorteile bietet die Zerlegung eines Systems in abgegrenzte Teilbereiche und Komponenten?

  1. Komplexitätsbeherrschung: Man muss sich nur auf einen Teilbereich konzentrieren
  2. Arbeitsteilung: Mehrere Teilbereiche können von mehreren Teams bearbeitet werden
  3. Spezialisierung: Aufgaben können an Spezialisten übergeben werden

Was ist das Ziel des Architekturentwurfs?

Zerlegung des Anwendungssystems in große Teilsysteme / Komponenten

Was ist eine Softwarearchitektur?

grundsätzliches Strukturierungsschema einer Software, das große Teile in Schichten aufteilt und Schnittstellen / Kommunikation festlegt

Wann kommen erstmalig die nicht-funktionalen Anforderungen im Entwicklungsprozess zum Tragen?

Im Architekturentwurf

Was zeichnet eine gute Softwarearchitektur aus?

  • Verwendung von Standards und Konzepten, die in den wichtigsten objektorientierten Sprachen verfügbar sind
  • Unabhängigkeit vom speziellen Anwendungsbereich
  • Wiederverwendbarkeit von Entwürfen, Entwurf wiederverwendbarer Module

Welches Diagramm bietet die UML zur Darstellung von Architekturen?

Verteilungsdiagramm (deployment diagram)

Was ist die Idee einer Schichtenarchitektur?

  • Aufteilung von Aufgaben auf unabhängige Schichten, die nur Funktionen derselben oder der darunterliegenden Schicht aufruft
  • Änderungen wirken sich nur schichtlokal aus (feste Schnittstellen zwischen Schichten)

Wie wird die Schicht externe Schnittstelle charakterisiert?

  • Interaktion zwischen Anwendungssystem und Akteuren
  • GUI
  • API

Wie wird die Schicht Anwendungskern charakterisiert?

  • Fokus auf Gegenstände und Sachverhalte der Domäne
  • bildet fachliche Funktionalität ab (Anwendungsfälle)
  • stellt Einhaltung der Geschäftsregeln sicher

Wie wird die Schicht Datenhaltung charakterisiert?

Realisiert persistente Speicherung

Was ist eine (allgemeine) Vermittlungsschicht / Middleware?

Schicht, die Anwendungsbestandteile mit unterschiedlichen Konzepten verknüpft. Beispiel: Klassen / Objekte mit Relationen und Tupeln

Was ist eine Client-Schicht?

Typisch für Webapplikationen. Die Client-Schicht enthält Komponenten, die für den Browser bestimmt sind (Javascript, CSS etc.)