GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Karteikarten

Software Architecture

Mei Lyn Computer Science proficiency Englisch 27 Karten

Software Architecture

Karten in diesem Stapel (27)

  1. 1Wozu eignen sich Zustandsdiagramme besondersDarstellen von Abhängigkeiten und logischen Programmflüssen
  2. 2Fragile Baseclass Problemwenn Änderungen an der Basisklasse die Spezialisierungen zerstört. Die Entwickler trafen unterschiedliche Annahmen und verlassen sich auf Abhängigkeiten ein, die nicht spezifiziert sind.
  3. 3Wozu eignen sich Kommunikationsdiagramme?Ist ähnlich einem Sequenzdiagramm, aber mit weniger Struktur. Die Kommunikation zwischen den Objekttypen und damit die Schnittstellen können sehr gut visualisiert werden.
  4. 4Wozu eignen sich Kommunikationsdiagramme nicht?Spezifizierung von Vor- oder Nach-Bedingungen. Rückgabewerte werden nicht angegeben. Schwierig zu lesen bei vielen Interaktionen zwischen zwei Objekten
  5. 5Wie unterscheiden sich logische Sicht und Entwicklersicht?Die logische Sicht zeigt die Objekte & Beziehungen zur Laufzeit. Also auch, ob LRG gut umgesetzt ist.
    Die Entwicklersicht zeigt die dafür nötigen Klassen & Beziehungen. Also auch, welche zusammen benötigt werden.
  6. 6Was ist Responsibility Driven Design?Eine Entwurfsmethode, die für jede der vom System wahrzunehmende Verantwortung ein geeignetes Objekt einführt. Der Entwurf wird getrieben durch die Suche nach Verantwortungsträgern.
  7. 7Welche Typen von Verantwortung unterscheiden wir im RDD?Creator: Erstellt Objekte
    Controller/Coordinator: Koord. Abläufe, führt Aktionen anderer Objekte aus
    Information Expert: Speichert/Berechnet Informationen & stellt sie zur Verfügung
  8. 8Was heisst contra-Varianz?contra-Varianz akzeptiert Supertypen, wo ein Subtyp spezifiziert ist.
    Parameter dürfen contra-variant sein, Return-Werte nicht (Liskov)
  9. 9Was heisst co-Varianzco-Varianz aktzeptiert einen Subtyp, wo ein Supertyp spezifiziert ist.
    Return-Werte dürfen co-Variant sein, Parameter nicht (Liskov)
  10. 10Was steht im 4+1 Architectural View Model4 Sichten auf SW-Architekturen: Logical (Enduser), Development (Programmer), Process (Functional Req, concurrency), Physical (Mapping auf HW). Und Scenarios der Anforderungen.
  11. 11Was sagt das Open / Closed PrinzipDass man die Implementierung nicht ändern, sondern nur erweitern darf. Vererbung verwenden anstatt auf konkrete Eigenschaften eines Objekts abzufragen. Grosse Code-Blöcke aufteilen.
  12. 12Was sagt das Dependency Inversion Prinzip?Es sollte keine Abhängigkeiten zu konkreten Implementierungen geben, sondern nur zur Abstraktion. Dependency Injection folgt diesem Prinzip
  13. 13Was sagt das Liskov-Prinzip?Dass Subtypen alle für den Supertyp gültigen Bedingungen erfüllen müssen.
  14. 14Was ist das Prinzip "Low Representational Gap" und wie wird es umgesetzt?Ein Grundprinzip das die Analysierbarkeit von Programm-Code fördert, da dieser den Erwartungen aus der Realität entspricht. Domain Driven Design hilft dieses einzuhalten.
  15. 15Was ist das Interface Segregation Prinzip?Auf die einzelnen Anforderungen abgestimmte kleine Schnittstellen sind besser als eine grosse.
  16. 16Was sind die grundlegenden Aussagen eines Box-and-Arrow DiagrammsWas sind die grundlegenden Aussagen eines Box-and-Arrow Diagramms
  17. 17Was sind die Hauptunterschiede zwischen ERM-Entwurf und Klassendiagramm?Relationales Modell erlaubt mehrere Konkretisierungen gleichzeitig, diese Rollen können einfach hinzugefügt und entfernt werden, allenfalls kann eine Person eine Rolle mehrfach haben.
  18. 18Wie implementiert man Klassen, dass sie gemeinsam die im Entwurf dokumentierten Szenarien ausführen können?Operationen, die ein Objekt auf einem anderen auslösen soll, müssen public sein. Beziehungen zwischen Objekten verlangen nach entsprechend gespeicherten Referenzen, z.B., in Instanzvariablen.
  19. 19Was sagt das Single Responsibility Prinzip?Dass jede Klasse nur eine Aufgabe und damit nur einen Grund zur Änderung der Implementierung haben soll. Responsibility Driven Design hilft bei Umsetzung.
  20. 20Was ist GRASP?SW Pattern zur Zuweisung von Verantwortungen:
    Creator, Controller/Coordinator, Information Expert
  21. 21Unterschied zwischen Variation Point und Extension/Evolution PointVariation Point: Varianten, die sicher zukünftig oder bereits jetzt benötigt werden
    Evolution Point: Spekulativ, eventuell zukünftig benötigte Varianten
  22. 22Nachteile einer zu offenen (und komplexen) ArchitekturMehr Aufwand für
    - Laufzeit
    - Programmieren und Dokumentation
    - Einarbeitung
    - Veränderungen
    - Wartung
  23. 23Was ist der Unterschied zwischen Sub-Typing und Sub-ClassingSubclassing: Code inheritance
    vs.
    Subtyping: Is-a-Relation, Polymorphismus
  24. 24Aufgabe Microservices: Was sind Vor-/Nachteile wenn die Schnittstelle nur Tripel (Zeit, Temperatur, Drehzahl) zurückgeben kann?- Einfache Schnittstelle
    - Für diverse Aufgaben nutzbar
    - Mehr Daten müssen übertragen werden, da Berechnungen beim Client erfolgen
    - Interface Segregation Prinzip verletzt?
  25. 25Aufgabe Microservices: Warum nicht direkt SQL-Abfragen erlauben?- Grössere Missbrauchsmöglichkeiten
    - Die interne Struktur muss offengelegt werden (-> Information Hiding verletzt)
    - Spätere Änderungen kaum möglich
  26. 26Berechnung der Wirtschaftlichkeit: Entwicklung: 60 unvorbereitete Integration: 30 Entwicklung Schnittstelle heute: 15 Integration an Schnittstelle: 2 Wahrscheinlichkeit Bedarf p=0.3Kosten unvorbereitet: (60+30) * 0.3 = 27
    Kosten vorbereitet: 15 + (60+2) * 0.3= 33.6
  27. 27DesignForExtension RegelAlle nicht-privaten, nicht-statischen Methoden müssen abstract, final oder leer implementiert sein

Informationen

Beschreibung
Study Set zur ersten Prüfung
Erstellt von
Mei Lyn
Aufrufe
15
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck